Openstack組件實現原理 — Nova 體系結構

版權聲明:轉載請註明出處 JmilkFan:http://blog.csdn.net/jmilk

目錄



前文列表

Openstack組件部署 — Overview和前期環境準備 
Openstack組建部署 — Environment of Controller Node 
Openstack組件部署 — Keystone功能介紹與認證實現流程 
Openstack組件部署 — Keystone Install & Create service entity and API endpoints 
Openstack組件部署 — keystone(domain, projects, users, and roles) 
Openstack組件實現原理 — Keystone認證功能 
Openstack組建部署 — Glance Install 
Openstack組件實現原理 — Glance架構(V1/V2) 
Openstack組件部署 — Nova overview 
Openstack組件部署 — Nova_安裝和配置Controller Node 
Openstack組件部署 — Nova_Install and configure a compute node

Nova體系結構

這裏寫圖片描述 
Nova主要有API、Compute、Conductor、Scheduler四個核心服務組成,這些服務之間通過AMQP消息隊列來進行通信。

Client:Nova Client能夠讓Tenant管理員或用戶終端提交指令,是Openstack官方爲了簡化用戶對RESTful API的使用所提供的API封裝,Client能夠將用戶的請求轉換爲標準的HTTP請求。

API(nova-api service):nova-api service能夠接收和響應Client的Compute API調用,所以API就是Client進入Nova的HTTP接口。

Compute(nova-compute service):nova-compute service是一個通過hypervisor APIs(虛擬化層API)來實現創建和終止虛擬機實例的守護進程,Compute通過和VMM的交互來運行虛擬機並管理虛擬機的生命週期。

Scheduler(nova-scheduler service):nova-scheduler service會從queue中接收一個虛擬機實例的請求,並確定該實例能夠運行在哪一臺Compute server中。Scheduler通過讀取數據庫的內容,從可用的池中選擇最合適的Compute Node來創建新的虛擬機實例。

Conductor(nova-conductor):nova-conductor module能夠協調nova-compute service和database之間的交互,Conductor爲數據庫訪問提供了一層安全保障。

Queue:queue是Nova 服務組件之間傳遞信息的中心樞紐。通常使用AMQP(高級消息隊列協議Advanced Message Queuing Protocol)的RabbitMQ消息隊列來實現。

注意:因爲Scheduler只能讀取數據庫內容,和API通過Policy機制來限制數據庫的訪問,所以Scheduler和API這兩個服務都可以直接訪問數據庫。但是支持引入了Conductor服務之後,更加規範的方法是通過Conductor服務來對數據庫進行操作。

虛擬機實例化流程

  • Step1:首先用戶執行Nova Client提供的用於創建虛擬機的指令

  • Step2:nova-api service監聽到來自於Nova Client的HTTP請求,並將這些請求轉換爲AMQP消息之後加入消息隊列Queue

  • Step3:通過消息隊列Queue調用nova-conductor service

  • Step4:nova-conductor service從Queue接收到虛擬機實例化請求消息後,進行一些準備工作(EG. 彙總HTTP請求中所需要實例化的虛擬機參數)

  • Step5:nova-conductor service通過Queue告訴nova-scheduler去選擇一個合適的Compute Node來創建虛擬機,此時nova-scheduler會讀取數據庫的內容

  • Step6:nova-conductor從nova-scheduler得到了合適的Compute Node的信息後,在通過Queue來通知nova-compute service實現虛擬機的創建

送虛擬機實例化的過程可以看出,Nova中最重要的4個服務之間的通信都是通過Queue來實現的。這符合鬆耦合的實現方式。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章