如何實現(xiàn)nova-scheduler模塊調(diào)度,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在云浮等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設(shè)計、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需設(shè)計網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,云浮網(wǎng)站建設(shè)費用合理。
openstack在創(chuàng)建虛擬機或進行虛擬機的冷遷移時根據(jù)在nova.conf文件中scheduler_default_filters和scheduler_available_filters配置的過濾器,
對主機進行篩選,選擇合適的目的主機。
下面根據(jù)nova M版源碼分析調(diào)度不同過濾器的。
一、conductor服務通過rpc調(diào)用scheduler服務 SchedulerManager類的select_destinations,由此開始進入進入主機過濾階段,
此階段主要目的是調(diào)用事先在nova.conf文件中配置的過濾器,選擇合適的計算節(jié)點。
文件nova/scheduler/manager.py
104行,self.driver實際是在nova.conf文件中配置的FileterScheduler
二、nova/scheduler/filter_scheduler.py文件
52行,num_instances是要選擇的計算節(jié)點數(shù)。
53行,self._schedule是實際的調(diào)度函數(shù),在此函數(shù)中調(diào)度各個過濾器的函數(shù)。
三、_schedule函數(shù)
94行,加載json文件可以在json文件里配置過濾規(guī)則,現(xiàn)在m版json文件沒起作用。
104行,在過濾之前首先要從數(shù)據(jù)庫拿到所有計算節(jié)點的的當前狀態(tài)。
112行,進行主機過濾
120行,拿到過濾的主機計算權(quán)重,并返回根據(jù)權(quán)重排序的列表。
四、nova/scheduler/host_manager.py文件
get_filtered_host函數(shù)中參數(shù)filter_class_names傳進來的值是None,進入517分支
517行,filters是所有過濾器類名字的列表,由self._choose_host_filters函數(shù)返回
_choose_host_filters(),函數(shù)根據(jù)nova.conf文件中的scheduler_default_filters和scheduler_available_filters挑選出要使用的過濾器
self._load_filters()加載nova.conf文件中的scheduler_default_filters項,默認在nova/scheduler/filters下的全部過濾器都打開。
545行,調(diào)用nova/filters.py文件中BaseFilterHandler::get_filtered_objects,參數(shù)filters是要使用的過濾器類列表,hosts是所有的計算節(jié)點。
五、nova/filters.py文件
81行,循環(huán)調(diào)用過濾器
85行,調(diào)用過濾器類的filter_all方法,對主機進行篩選,以AvailabilityZoneFilter類說明調(diào)用關(guān)系
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。