Nova虛擬機(jī)管理的主線
從主線上看捏雌,只涉及Nova-api配紫,nova-Scheduler和nova-compute等3個服務(wù)
- nova-api
(1)接收來自客戶端、Dashboard創(chuàng)建虛擬機(jī)的請求。
(3)接收到請求之后汁雷,驗(yàn)證請求是否合法。
(3)通過驗(yàn)證后的請求窿锉,將會轉(zhuǎn)給nova-scheduler - nova-scheduler:
(1)scheduler顧名思義氮唯,調(diào)度器。nova-scheduler主要工作就是選擇主機(jī)良风。
(2)將接收到nova-api的請求后谊迄,會查看所有服務(wù)正常的計算節(jié)點(diǎn),從這些節(jié)點(diǎn)中選擇一個節(jié)點(diǎn)啟動虛擬機(jī)烟央。
(3)選擇節(jié)點(diǎn)的算法一般是隨機(jī)算法统诺,就是從計算節(jié)點(diǎn)中隨機(jī)選擇一臺。
(4)選擇結(jié)束后吊档,將創(chuàng)建虛擬機(jī)的請求轉(zhuǎn)發(fā)到選中的節(jié)點(diǎn)的nova-compute服務(wù)篙议。 - nova-compute
(1)nova-compute服務(wù)運(yùn)行在計算節(jié)點(diǎn)上,專門負(fù)責(zé)創(chuàng)建虛擬機(jī)怠硼。
(2)nova-compute服務(wù)中鬼贱,Compute Manager負(fù)責(zé)接收消息,而真正負(fù)責(zé)干活的就是compute Driver香璃。
(3)Openstack的Compute Driver可以支持很多種Hypervisor这难。比如Hyper-V、vmware葡秒、XenServer姻乓、KVM和XEN等等嵌溢。
(4)其中KVM和XEN主要通過libvirt進(jìn)行管理。Openstack默認(rèn)采用的是libvirt作為底層來管理虛擬機(jī)蹋岩。因此nova-compute將消息轉(zhuǎn)給libvirt的時候赖草,nova-compute的活就算干完了。剩下的就交給libvirt負(fù)責(zé)了 - libvirt剪个、KVM和Xen
(1)首先libvirt接收到消息
(2)然后將具體的任務(wù)交給KVM和Xen秧骑。