
虛擬機(jī)啟動(dòng)過(guò)程如下:
界面或命令行通過(guò)RESTful API向keystone獲取認(rèn)證信息。
keystone通過(guò)用戶請(qǐng)求認(rèn)證信息,并生成auth-token返回給對(duì)應(yīng)的認(rèn)證請(qǐng)求。
界面或命令行通過(guò)RESTful API向nova-api發(fā)送一個(gè)boot instance的請(qǐng)求(攜帶auth-token)。
nova-api接受請(qǐng)求后向keystone發(fā)送認(rèn)證請(qǐng)求,查看token是否為有效用戶和token。
keystone驗(yàn)證token是否有效,如有效則返回有效的認(rèn)證和對(duì)應(yīng)的角色(注:有些操作需要有角色權(quán)限才能操作)。
通過(guò)認(rèn)證后nova-api和數(shù)據(jù)庫(kù)通訊。
初始化新建虛擬機(jī)的數(shù)據(jù)庫(kù)記錄。
nova-api通過(guò)rpc.call向nova-scheduler請(qǐng)求是否有創(chuàng)建虛擬機(jī)的資源(Host ID)。
nova-scheduler進(jìn)程偵聽(tīng)消息隊(duì)列,獲取nova-api的請(qǐng)求。
nova-scheduler通過(guò)查詢nova數(shù)據(jù)庫(kù)中計(jì)算資源的情況,并通過(guò)調(diào)度算法計(jì)算符合虛擬機(jī)創(chuàng)建需要的主機(jī)。
對(duì)于有符合虛擬機(jī)創(chuàng)建的主機(jī),nova-scheduler更新數(shù)據(jù)庫(kù)中虛擬機(jī)對(duì)應(yīng)的物理主機(jī)信息。
nova-scheduler通過(guò)rpc.cast向nova-compute發(fā)送對(duì)應(yīng)的創(chuàng)建虛擬機(jī)請(qǐng)求的消息。
nova-compute會(huì)從對(duì)應(yīng)的消息隊(duì)列中獲取創(chuàng)建虛擬機(jī)請(qǐng)求的消息。
nova-compute通過(guò)rpc.call向nova-conductor請(qǐng)求獲取虛擬機(jī)消息。(Flavor)
nova-conductor從消息隊(duì)隊(duì)列中拿到nova-compute請(qǐng)求消息。
nova-conductor根據(jù)消息查詢虛擬機(jī)對(duì)應(yīng)的信息。
nova-conductor從數(shù)據(jù)庫(kù)中獲得虛擬機(jī)對(duì)應(yīng)信息。
nova-conductor把虛擬機(jī)信息通過(guò)消息的方式發(fā)送到消息隊(duì)列中。
nova-compute從對(duì)應(yīng)的消息隊(duì)列中獲取虛擬機(jī)信息消息。
nova-compute通過(guò)keystone的RESTfull API拿到認(rèn)證的token,并通過(guò)HTTP請(qǐng)求glance-api獲取創(chuàng)建虛擬機(jī)所需要鏡像。
glance-api向keystone認(rèn)證token是否有效,并返回驗(yàn)證結(jié)果。
token驗(yàn)證通過(guò),nova-compute獲得虛擬機(jī)鏡像信息(URL)。
nova-compute通過(guò)keystone的RESTfull API拿到認(rèn)證k的token,并通過(guò)HTTP請(qǐng)求neutron-server獲取創(chuàng)建虛擬機(jī)所需要的網(wǎng)絡(luò)信息。
neutron-server向keystone認(rèn)證token是否有效,并返回驗(yàn)證結(jié)果。
token驗(yàn)證通過(guò),nova-compute獲得虛擬機(jī)網(wǎng)絡(luò)信息。
nova-compute通過(guò)keystone的RESTfull API拿到認(rèn)證的token,并通過(guò)HTTP請(qǐng)求cinder-api獲取創(chuàng)建虛擬機(jī)所需要的持久化存儲(chǔ)信息。
cinder-api向keystone認(rèn)證token是否有效,并返回驗(yàn)證結(jié)果。
token驗(yàn)證通過(guò),nova-compute獲得虛擬機(jī)持久化存儲(chǔ)信息。
nova-compute根據(jù)instance的信息調(diào)用配置的虛擬化驅(qū)動(dòng)來(lái)創(chuàng)建虛擬機(jī)。
