溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

發(fā)布時(shí)間:2021-12-28 15:54:39 來源:億速云 閱讀:132 作者:柒染 欄目:云計(jì)算

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

openstack在創(chuàng)建虛擬機(jī)或進(jìn)行虛擬機(jī)的冷遷移時(shí)根據(jù)在nova.conf文件中scheduler_default_filters和scheduler_available_filters配置的過濾器,

對主機(jī)進(jìn)行篩選,選擇合適的目的主機(jī)。

下面根據(jù)nova M版源碼分析調(diào)度不同過濾器的。

一、conductor服務(wù)通過rpc調(diào)用scheduler服務(wù) SchedulerManager類的select_destinations,由此開始進(jìn)入進(jìn)入主機(jī)過濾階段,

       此階段主要目的是調(diào)用事先在nova.conf文件中配置的過濾器,選擇合適的計(jì)算節(jié)點(diǎn)。

文件nova/scheduler/manager.py

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

104行,self.driver實(shí)際是在nova.conf文件中配置的FileterScheduler

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

二、nova/scheduler/filter_scheduler.py文件

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

52行,num_instances是要選擇的計(jì)算節(jié)點(diǎn)數(shù)。

53行,self._schedule是實(shí)際的調(diào)度函數(shù),在此函數(shù)中調(diào)度各個過濾器的函數(shù)。

三、_schedule函數(shù)

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

94行,加載json文件可以在json文件里配置過濾規(guī)則,現(xiàn)在m版json文件沒起作用。

104行,在過濾之前首先要從數(shù)據(jù)庫拿到所有計(jì)算節(jié)點(diǎn)的的當(dāng)前狀態(tài)。

112行,進(jìn)行主機(jī)過濾

120行,拿到過濾的主機(jī)計(jì)算權(quán)重,并返回根據(jù)權(quán)重排序的列表。

四、nova/scheduler/host_manager.py文件

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

get_filtered_host函數(shù)中參數(shù)filter_class_names傳進(jìn)來的值是None,進(jìn)入517分支

517行,filters是所有過濾器類名字的列表,由self._choose_host_filters函數(shù)返回

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

_choose_host_filters(),函數(shù)根據(jù)nova.conf文件中的scheduler_default_filters和scheduler_available_filters挑選出要使用的過濾器

self._load_filters()加載nova.conf文件中的scheduler_default_filters項(xiàng),默認(rèn)在nova/scheduler/filters下的全部過濾器都打開。

545行,調(diào)用nova/filters.py文件中BaseFilterHandler::get_filtered_objects,參數(shù)filters是要使用的過濾器類列表,hosts是所有的計(jì)算節(jié)點(diǎn)。

五、nova/filters.py文件

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

81行,循環(huán)調(diào)用過濾器

85行,調(diào)用過濾器類的filter_all方法,對主機(jī)進(jìn)行篩選,以AvailabilityZoneFilter類說明調(diào)用關(guān)系

如何實(shí)現(xiàn)nova-scheduler模塊調(diào)度

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI