Nova虛擬機管理的主線
從主線上看,只涉及Nova-api,nova-Scheduler和nova-compute等3個服務
Nova虛擬機管理主線.jpg
- nova-api
(1)接收來自客戶端、Dashboard創建虛擬機的請求。
(3)接收到請求之后,驗證請求是否合法。
(3)通過驗證后的請求,將會轉給nova-scheduler - nova-scheduler:
(1)scheduler顧名思義,調度器。nova-scheduler主要工作就是選擇主機。
(2)將接收到nova-api的請求后,會查看所有服務正常的計算節點,從這些節點中選擇一個節點啟動虛擬機。
(3)選擇節點的算法一般是隨機算法,就是從計算節點中隨機選擇一臺。
(4)選擇結束后,將創建虛擬機的請求轉發到選中的節點的nova-compute服務。 - nova-compute
(1)nova-compute服務運行在計算節點上,專門負責創建虛擬機。
(2)nova-compute服務中,Compute Manager負責接收消息,而真正負責干活的就是compute Driver。
(3)Openstack的Compute Driver可以支持很多種Hypervisor。比如Hyper-V、vmware、XenServer、KVM和XEN等等。
(4)其中KVM和XEN主要通過libvirt進行管理。Openstack默認采用的是libvirt作為底層來管理虛擬機。因此nova-compute將消息轉給libvirt的時候,nova-compute的活就算干完了。剩下的就交給libvirt負責了 - libvirt、KVM和Xen
(1)首先libvirt接收到消息
(2)然后將具體的任務交給KVM和Xen。