openstack 源码分析

简介:   Nova对于底层Hypervisor(如KVM/QEMU等)的调用与管理主要通过LibvirtDriver类,nova/virt/libvirt/driver.py   Libvirt对Hypervisor的连接有两种方式:一种是只读式,用于管理;另一种是认证式,用于操作;   创建实例过程:/nova/api/ec2/cloud.

  Nova对于底层Hypervisor(如KVM/QEMU等)的调用与管理主要通过LibvirtDriver类,nova/virt/libvirt/driver.py

  Libvirt对Hypervisor的连接有两种方式:一种是只读式,用于管理;另一种是认证式,用于操作;

  创建实例过程:/nova/api/ec2/cloud.py/L1193, run_instances(),获取创建数目,kernal_id,ramdisk_id,镜像uuid等通过self.compute_api.create()

  发送实例的信息和要运行实例的请求消息到远程调度器scheduler.

  

   从用户发送请求(创建新实例)的工作流程:

   上图是一个全局的流程图,图中每个服务是一个单独的进程实例,他们之间通过rpc调用(广播或者调用)另一个服务。

  nova-api服务是一个wsgi服务实例,创建新instance的入口代码是在nova /api/openstack/compute/servers.py,处理函数为create(self, req, body);

  参数验证之后,调用compute api的create 函数(代码在nova/compute/api.py中):

http://www.infoq.com/cn/articles/openstack-access-request-calling-process

eclipse快捷键:

  注释:ctrl+/

  跳转函数定义:F3

  显示outline: ctrl+o

  自己用c++实现c++反射机制;类比java反射机制

相关文章
|
Python
openstack之horizon源码分析之二
一、概述:   django基础入手:     django新建project:#django-admin startproject mysite 1 生成如下目录: 2 mysite 3 ├── manage.
1459 0
|
Web App开发 Python
openstack之horizon源码分析
一、基础准备:   Horizon是基于django webframework开发的标准的Python wsgi程序,django的设计专注于代码的高度可重用,信奉DRY原则,一切面向对象,而Horizon可以说高度match了django的设计风格。
1960 0
|
API 调度 数据库
Openstack nova-scheduler 源码分析 — Filters/Weighting
目录 目录 前言 调度器 FilterScheduler调度器的工作流程 Filters 过滤器 Filters 类型 Weighting 权重 源码实现 关键文件及其意义 阶段一nova-scheduler 接收 build_instances RPC 远程...
1990 0
|
虚拟化 API 数据库
Openstack Nova 源码分析 — 使用 VCDriver 创建 VMware Instance
目录 目录 前言 流程图 nova-compute vCenter 前言 在上一篇 Openstack Nova 源码分析 — Create instances (nova-conductor阶段) 中,记录了 nova-api 接收到创建虚拟机的请求后,在 nova-conductor 中的执行流程。
1446 0
|
API 数据库 虚拟化
Openstack Nova 源码分析 — Create instances (nova-conductor阶段)
目录 目录 前言 Instance Flavor Instance Status Virt Driver Resource Tracker nova-conductor Create Instancenova-conductor阶段 前言 Nova 控制着一个个虚拟机的状态变迁和生命周期,这种对虚拟机生命周期的管理是由 nova-compute service 来完成的。
1671 0
|
API 数据库 安全
Openstack Nova 源码分析 — RPC 远程调用过程
目录 目录 Nova Project Services Project 的程序入口 setuppy Nova中RPC远程过程调用 nova-compute RPC API的实现 novacomputemanager 模块 最后 Nova Project Services nova-api:捕获novaclient发送过来的HTTP请求,并且将它转换为AMQP消息,通过Queue来与别的services通信。
1855 0
OpenStack Nova 源码分析
http://blog.51cto.com/zt/366
619 0
|
网络协议 Linux 网络安全
openstack 云平台一体化部署(超详细)
openstack 云平台一体化部署(超详细)
819 0
openstack 云平台一体化部署(超详细)
|
8月前
|
存储 弹性计算 资源调度
openstack组件部署 3
openstack组件部署
|
4月前
|
存储 Ubuntu KVM
Ubuntu部署OpenStack踩坑指南:还要看系统版本?
Ubuntu部署OpenStack踩坑指南:还要看系统版本?
90 0
Ubuntu部署OpenStack踩坑指南:还要看系统版本?