1. 程式人生 > >openstack建立虛擬機器流程,從介面任務發起,到nova等元件處理,到虛機建立完成

openstack建立虛擬機器流程,從介面任務發起,到nova等元件處理,到虛機建立完成

1.客戶端使用自己的使用者名稱密碼請求認證。
2.keystone通過查詢在keystone的資料庫user表中儲存了user的相關資訊,包括password加密後的hash值,並返回一個token_id(令牌),和serviceCatalog(一些服務的endpoint地址,cinder、glance-api後面下載映象和建立塊儲存時會用到)。
3.客戶端帶上keystone返回的token_id和建立虛機的相關引數,Post請求nova-api建立虛擬機器
4.nova-api接收到請求後,首先使用請求攜帶的token_id來訪問該api,以驗證請求是否有效。
5.keystone驗證通過後返回更新後的認證資訊。
6.nova api檢查建立虛擬機器引數是否有效與合法。
檢查虛擬機器name是否符合命名規範,flavor_id是否在資料庫中存在,image_uuid是否是正確的uuid格式
檢查instance、vcpu、ram的數量是否超過配額。
7.當且僅當所有傳參都有效合法時,更新nova資料庫,新建一條instance記錄,vm_states設為BUILDING,task_state設為SCHEDULING.
8.nova api 遠端呼叫傳遞請求、引數給nova scheduler,把訊息“請給我建立一臺虛擬機器”丟到訊息佇列,然後定期查詢虛機的狀態。
9.nova scheduler從queue中獲取到這條訊息
10.nova scheduler訪問nova 資料庫,通過排程演算法,過濾出一些合適的計算節點,然後進行排序。
11.更新虛機節點資訊,返回一個最優節點id給nova scheduler。
12.nova scheduler選定host之後,通過rpc呼叫nova-compute服務,把“建立虛機請求”訊息丟個mq。
13.nova compute收到建立虛擬機器請求的訊息
#nova-compute有個定時任務,定期從資料庫中查詢到執行在該節點上的所有虛擬機器資訊,統計得到空閒記憶體大小和空閒磁碟大小。然後更新資料庫compute_node資訊,以保證排程的準確性。
14.nova compute通過rpc查詢nova資料庫中虛機的資訊例如主機模板和id
15.nova conductor從訊息佇列中拿到請求查詢資料庫
16.nova conductor查詢nova資料庫
17.資料庫返回虛機資訊
18.nova compute從訊息佇列中獲取資訊。
19.nova compute 請求glance 的rest api,下載所需要的映象,一般是qcow2的。
20.glance api 也會去驗證請求的token的有效性。
21.glance api 返回映象資訊給nova-compute。
22.同理,nova compute請求neutron api配置網路,例如獲取虛機ip地址
23.驗證token的有效性
24.neutron返回網路資訊
25-27 同glance、neutron驗證token返回塊裝置資訊
28.據上面配置的虛擬機器資訊,生成xml,寫入libvirt,xml檔案,然後呼叫libvirt driver去使用libvirt.xml檔案啟動虛擬機器。

相關推薦

openstack建立虛擬機器流程介面任務發起nova元件處理建立完成

1.客戶端使用自己的使用者名稱密碼請求認證。 2.keystone通過查詢在keystone的資料庫user表中儲存了user的相關資訊,包括password加密後的hash值,並返回一個token_id(令牌),和serviceCatalog(一些服務的endpoint地址,cinder、glance-ap

Nova API服務 之 建立虛擬機器流程(1)

本小節,將以虛擬機器建立請求為例,分析底層Controller類的HTTP請求處理方法。 一、回憶總結 1、處理HTTP請求的核心工作都在底層Controller物件中定義。Resource物件在底層Controller物件的基礎上,實現 數據的轉化工作。 2、Resour

openstacknova中“映象啟動(建立一個新卷)”建立虛擬機器流程

原文網址:http://blog.csdn.net/xiangpingli/article/details/47912777 nova還有一種啟動方式:“從映象啟動(建立一個新卷)” 這個流程中,nova會在_prep_block_device中的attach_blo

openstacknova中“雲硬碟啟動”建立虛擬機器流程

原文網址:http://blog.csdn.net/xiangpingli/article/details/47912601 先使用cinder建立雲硬碟 然後在nova中建立示例的時候,會先在_prep_block_device中掛載cinder中建立的卷,然後建

OpenStacknova元件建立虛擬機器的原始碼流程

此處以OpenStack mitaka版本為例,實際最新的Ocata版本也差不多,以建立一個虛擬機器為例來分析nova原始碼中執行流程,該流程有助於二次開發,閱讀原始碼前最好先熟悉一下pastedeploy、webob、stevedore等openstack中的

使用qemu-img管理虛擬機器磁碟映象(建立虛擬機器虛擬機器快照)

一臺虛擬機器的核心就是一個磁碟映象,這個映象可以理解成虛擬機器的磁碟,裡面有虛擬機器的作業系統和驅動等重要檔案。本文主要介紹建立虛擬機器的一般過程。 建立虛擬機器映象 要在一臺host上跑起一個虛擬機器一般需要兩個步驟: 第一步:建立虛擬機器映象    

CentOS 7 安裝KVM建立虛擬機器

使用KVM(基於核心的虛擬機器)+ QEMU的虛擬化。 需要具有Intel VT或AMD-V功能的CPU。 安裝KVM [root@kvm-centos7 ~]# yum -y inst

建立OpenStack高效能虛擬機器能實現“零損耗”麼?

使用預設引數建立的虛擬機器,虛擬機器的VCPU在物理CPU不同核心之間動態排程,另外,由於Linux還可能會將軟中斷,記憶體交換等程序排程到虛擬機器正在使用的物理核心上,這些因素導致這些虛擬機器相對於物理機的計算效能可能會產生較大的抖動,不能滿足一些對計算SLA要求很嚴格的業務,比如,很多金融業務就要求99.

vmware centos7建立虛擬機器搭建本地yum源和阿里雲yum源

一.做本地的的yum源進行備份處理 mkdir /repo cd /etc/yum.repos.d/ mv * /repo (備份所有的本地yum原始檔) 2.搭建本地的yum源 右擊選擇設定,選項 選擇跟自己對應的映象檔案 2.本地掛載使用 mount /dev

[映象製作]VMWare搭建Openstack——Libvirt工具建立虛擬機器映象

前面我們已經將整個openstack環境進行了部署,也通過示例映象建立了相關的虛擬機器,但是如果使用者自己想建立映象怎麼才能完成呢? 下面我們介紹一個比較直觀的視覺化介面可以做到的建立方法,利用lib

OpenStack使用CentOS7官方通用雲映象建立虛擬機器例項

實驗環境: OpenStack Queens社群版 1控制節點、1計算節點、1塊儲存節點 單網絡卡provider供應商網路模式 作業系統版本 [root@controller ~]# cat /etc/redhat-release Cent

OpenStackNova分析——建立虛擬機器(五)

上篇兩篇文章分析了Nova Scheduler服務,這篇文章我們繼續來分析建立虛擬機器的過程。先來回顧一下。 class FilterScheduler(driver.Scheduler): def scheduler_run_instance(self, cont

基於VMware Workstation建立虛擬機器以Ubuntu16.04為例

為了工作和學習的需要,越來越多的人選擇安裝虛擬機器來滿足自己的需求,下面的方法即為本文章的主要內容: 之前寫過一個基於VirtualBox虛擬機器,但是覺得此虛擬機器的執行速度越來越慢,所以安裝了本文提到的VM虛擬機器,推薦大家下載正版軟體。 1、下載VMware Wor

OpenStack啟動虛擬機器Nova內部工作流程

Spawn instance 接下來是由虛擬化驅動器執行的虛擬機器生成程序。這個case中使用libvirt,下面要看的程式碼在virt/libvirt_conn.py 啟動一個虛擬機器首先要做的是建立libvirt xml檔案。使用to_xml()方法來獲取xml內容。

搭網路yum建立虛擬機器

雲平臺部署與管理 NSD CLOUD DAY01內容 09:00 ~ 09:30 上午 09:30 ~ 10:20 10:30 ~ 11:20 11:30 ~ 12:00 14:00 ~ 14:50 下午 15:00 ~ 15:50 KVM簡介 Virsh管理 自定義虛擬機器

OpenStackNova分析——建立虛擬機器(七)——建立虛擬機器映象檔案

虛擬機器的映象檔案主要是指磁碟映象檔案,當然有的還包括ramdisk和kernel映象來配合磁碟映象檔案使用,這篇文章我們來重點分析一下建立虛擬機器磁碟映象的整個過程。 虛擬機器磁碟映象是虛擬機器正常執行不可缺少的映象檔案,它是虛擬機器的主磁碟。先來概述一下建立虛擬機器磁碟

效率工具 | 快速建立虛擬機器Vagrant真香!

![](https://img2020.cnblogs.com/other/2024393/202101/2024393-20210106084325493-312474582.png) - `Vagrant` 是一個基於`Ruby`的工具,主要用於建立和部署虛擬化開發環境。它以來於`Oracle`的開源[`

Vagrant 建立虛擬機器

Vagrant  建立虛擬機器 1. 下載相關軟體 虛擬機器軟體:vmware  virtualbox Vagrant 軟體:vagrant   cd /tmpwget http://download.virtualbox.org/virtualbox/5.1.28/V

虛擬機器安裝Oracle WebCenter Sites 12c (一)搭建安裝環境安裝虛擬機器

       因為工作原因需要我在虛擬機器上安裝 Oracle Webcenter 12C ,百度上找了很多資料,自己第一次研究安裝,安裝過程中有很多麻煩,為了防止自己以後忘記,也能為了幫助別人,特意記錄下來,希望能有所幫助,記得點贊。 安裝 Oracle

RabbitMQ安裝及建立虛擬機器、使用者名稱

  一、RabbitMQ安裝       安裝erlang的執行環境(虛擬機器雲主機)       安裝erlang語言,需要安裝30-50分鐘。centOs-empty映象已經安裝好的,erl