您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

詳解OpenStack虛擬機的資源調(diào)度錯誤排查

大小:0.8 MB 人氣: 2017-10-11 需要積分:1
回望二十一世紀(jì)已過去的十六個年頭,云計算可謂賺足了風(fēng)頭,而作為云計算IaaS(基礎(chǔ)設(shè)施即服務(wù))模式的新貴,OpenStack打出生起(2010年7月份NASA和Rackspace公司將其開源)便立馬集眾方IT大佬如IBM、Red Hat、HP、Inter等寵愛于一身,一時間IT界眾多門派、各路草莽紛紛出錢出力以促進(jìn)OpenStack的茁壯成長,而OpenStack不負(fù)眾望,以其開源免費、可擴展、高兼容等優(yōu)良品德立名IT界,迅速坐穩(wěn)開源云市場占用率頭把交椅。
  本文將基于OpenStack最新release的liberty版本,分析OpenStack的虛擬機資源調(diào)度服務(wù)nova-scheduler的調(diào)度流程,并逐步說明OpenStack管理員在進(jìn)行資源調(diào)度的錯誤排查過程中的尷尬境遇,然后提出一個OpenStack資源調(diào)度錯誤排查的改進(jìn)方案,最后,本文會為大家展示IBM PRS(Platform Resource Scheduler)基于此方案的實現(xiàn)版本。
  OpenStack虛擬機的資源調(diào)度
  OpenStack對虛擬機的資源調(diào)度由nova模塊的nova-scheduler服務(wù)實現(xiàn),根據(jù)調(diào)度策略的不同,有兩個插件:基于filter的調(diào)度和基于隨機策略的調(diào)度,其中基于隨機策略的調(diào)度僅對正在服務(wù)的host隨機選擇,不進(jìn)行任何資源審查,在實際生產(chǎn)環(huán)境中基本上不會用到,所以本文僅就OpenStack的默認(rèn)的調(diào)度策略:基于filter的調(diào)度進(jìn)行分析。如圖1所示,該策略主要通過三步完成虛擬機的資源調(diào)度返回候選host:
  詳解OpenStack虛擬機的資源調(diào)度錯誤排查
  圖1.基于filter的調(diào)度workflow
  Step 1: 獲取所有host的信息,如果調(diào)度請求中要求忽略一些host(ignore hosts),就將這些host從本次的候選host中刪除掉(一種特殊的情況是如果調(diào)度請求中要求虛擬機只能調(diào)度到一些host或者節(jié)點上,則只保留這些host作為候選host,不會對這些host做進(jìn)一步額外的資源審查即step 2便直接返回)。
  Step 2: 將第一步中返回的host列表依次迭代地通過scheduler_default_filters配置的所有filter的host_passes處理函數(shù),該函數(shù)會過濾掉不滿足相應(yīng)filter條件的host。
  Step 3:對第二步返回的host列表根據(jù)scheduler_weight_classes配置的weigher對候選host進(jìn)行排序。
  至此調(diào)度服務(wù)完成對虛擬機的資源調(diào)度,nova-conductor服務(wù)將會向調(diào)度服務(wù)選出的host所對應(yīng)的nova-compute服務(wù)發(fā)出虛擬機部署請求。由于OpenStack調(diào)度服務(wù)固有的race condition,當(dāng)虛擬機在compute節(jié)點部署失敗時,相應(yīng)nova-compute服務(wù)將會向nova-conductor服務(wù)發(fā)送重新部署對應(yīng)虛擬機的請求,用戶可以通過scheduler_max_attempts配置最多可以容忍compute部署失敗的次數(shù),該reschedule機制如圖2所示:
  詳解OpenStack虛擬機的資源調(diào)度錯誤排查
  圖2.OpenStack資源調(diào)度的reschedule機制
  由上可知,當(dāng)我們在部署一個虛擬機的時候,本質(zhì)上有兩類型的錯誤可能導(dǎo)致部署失敗:第一是調(diào)度服務(wù)發(fā)現(xiàn)沒有host可以滿足虛擬機的資源需求,第二是虛擬機在調(diào)度服務(wù)選出的目標(biāo)host上部署時因為某種原因部署失敗(如卷請求超時或者網(wǎng)卡創(chuàng)建失敗等等)。我們在虛擬機部署失敗的錯誤排查時,需要從這兩類錯誤類型逐一排查。怎么查呢?當(dāng)然是看日志(其實也可以首先通過nova show命令查看fault項,但基本上通過這個信息是看不出錯誤所在的),從圖2可以看出,我們應(yīng)該從nova-conductor的日志開始,然后根據(jù)對應(yīng)錯誤信息決定下一步該看nova-scheduler的日志還是對應(yīng)nova-compute的日志。下面舉一個最簡單的由第一種錯誤導(dǎo)致虛擬機部署失敗的錯誤排查的例子來說明一下OpenStack原生資源調(diào)度的錯誤排查是如何讓管理員望而生畏的。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?