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

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

OpenStack資源調(diào)度和現(xiàn)狀分析

大?。?/span>0.8 MB 人氣: 2017-10-10 需要積分:2
 OpenStack云端的資源調(diào)度和優(yōu)化剖析2016-07-03 19:12
  作者簡介:胡曉亮,目前就職于IBM Platform Computing 系統(tǒng)科技云計(jì)算部門,擔(dān)任云計(jì)算開發(fā)部工程師。自2013年8月開始參與OpenStack相關(guān)的開發(fā)工作,涉及Nova、Cinder、Heat、等項(xiàng)目。本文節(jié)選自《程序員》,謝絕轉(zhuǎn)載,更多精彩,請訂閱《程序員》
  OpenStack簡介:OpenStack是旨在為公有及私有云的建設(shè)與管理提供軟件的一個(gè)開源項(xiàng)目,采用Apache授權(quán)協(xié)議,它的核心任務(wù)是簡化云系統(tǒng)的部署過程,并且賦予其良好的可擴(kuò)展性和可管理性。它已經(jīng)在當(dāng)前的基礎(chǔ)設(shè)施即服務(wù)(IaaS)資源管理領(lǐng)域占據(jù)領(lǐng)導(dǎo)地位,成為公有云、私有云及混合云管理的“云操作系統(tǒng)”事實(shí)上的標(biāo)準(zhǔn),在政府、電信、金融、制造、能源、零售、醫(yī)療、交通等行業(yè)成為企業(yè)創(chuàng)新的利器。OpenStack基于開放的架構(gòu),支持多種主流的虛擬化技術(shù),許多重量級的科技公司如RedHat,AT&T,IBM,HP,SUSE,Intel,AMD,Cisco,Microsoft,Citrix,Dell等參與貢獻(xiàn)設(shè)計(jì)和實(shí)現(xiàn),更加推動了OpenStack的高速成長, 打破了Amazon等少數(shù)公司在市場上壟斷的局面,解決了云服務(wù)被單一廠商綁定的問題并降低了云平臺部署成本。
  OpenStack資源調(diào)度和優(yōu)化現(xiàn)狀
  OpenStack的虛擬機(jī)調(diào)度策略主要是由FilterScheduler和ChanceScheduler實(shí)現(xiàn)的,其中FilterScheduler作為默認(rèn)的調(diào)度引擎實(shí)現(xiàn)了基于主機(jī)過濾(filtering)和權(quán)值計(jì)算(weighing)的調(diào)度算法,而ChanceScheduler則是基于隨機(jī)算法來選擇可用主機(jī)的簡單調(diào)度引擎。如圖1是FilterScheduler的虛擬機(jī)調(diào)度過程,它支持多種built-in的filter和weigher來滿足一些常見的業(yè)務(wù)場景。在設(shè)計(jì)上,OpenStack基于filter和weigher支持第三方擴(kuò)展,因此用戶可以通過自定義filter和weigher,或者使用json資源選擇表達(dá)式來影響虛擬機(jī)的調(diào)度策略從而滿足不同的業(yè)務(wù)需求。
  OpenStack資源調(diào)度和現(xiàn)狀分析
  圖 1:OpenStack調(diào)度workflow
  Built-in的filter(部分):
  ComputeFilter過濾計(jì)算節(jié)點(diǎn)down機(jī)的主機(jī)CoreFilter過濾vcpu不滿足虛擬機(jī)請求的主機(jī)DiskFilter過濾disk不滿足虛擬機(jī)請求的主機(jī)RamFilter過濾ram不滿足虛擬機(jī)請求的主機(jī)ImagePropertiesFilter過濾 architecture, hypervisor type不滿足虛擬機(jī)請求的主機(jī)SameHostFilter過濾和指定虛擬機(jī)不在同一個(gè)主機(jī)上的主機(jī)DifferentHostFilter過濾和指定虛擬機(jī)在同一個(gè)主機(jī)上的主機(jī)JsonFilter過濾不滿足OpenStack自定義的json資源選擇表達(dá)式的主機(jī):json資源選擇表達(dá)式形如 query=’[“》”, “$cpus”,4]’表示過濾掉cpus小于等于4的主機(jī)
  Built-in的weigher(部分):
  RAMWeigher根據(jù)主機(jī)的可用ram排序IoOpsWeigher根據(jù)主機(jī)的io負(fù)載排序
  在一個(gè)復(fù)雜的云系統(tǒng)中,對云計(jì)算資源的監(jiān)控和優(yōu)化對于保證云系統(tǒng)的健康運(yùn)行,提高IT管理的效率有重要的作用。最新版本的OpenStack也沒有提供類似的功能,這可能是由于云系統(tǒng)的監(jiān)控的對象和優(yōu)化目標(biāo)對于不同的用戶有不同的要求,難于形成統(tǒng)一實(shí)現(xiàn)和架構(gòu),但是OpenStack已經(jīng)意識到這部分的重要性并且啟動了2個(gè)項(xiàng)目來彌補(bǔ)這個(gè)短板,當(dāng)前它們都處于孵化階段:
  Watcher(https://github.com/openstack/watcher):一個(gè)靈活的、可伸縮的多租戶OpenStack-based云資源優(yōu)化服務(wù),通過智能的虛擬機(jī)遷移策略來減少數(shù)據(jù)中心的運(yùn)營成本和增加能源的利用率。Congress(https://github.com/openstack/congress):一個(gè)基于異構(gòu)云環(huán)境的策略聲明、監(jiān)控,實(shí)施,審計(jì)的框架。
  PRS簡介
  由于OpenStack開源的特性,直接投入商業(yè)使用可能面臨后期升級,維護(hù),定制化需求無法推進(jìn)的問題,因此一些有技術(shù)實(shí)力的公司都基于OpenStack開發(fā)了自己商業(yè)化的版本,這些商業(yè)化版本的OpenStack都包含了一些獨(dú)有的特性并和社區(qū)開源的OpenStack形成了差異化, 比如完善了OpenStack虛擬機(jī)的調(diào)度和編排功能,加強(qiáng)了云系統(tǒng)的運(yùn)行時(shí)監(jiān)控和優(yōu)化,彌補(bǔ)了云系統(tǒng)自動化災(zāi)難恢復(fù)的空缺,簡化了云系統(tǒng)的安裝和部署,引入了基于資源使用時(shí)長的帳務(wù)費(fèi)用系統(tǒng)等等。PRS(Platform Resource Scheduler)是IBM Platform Computing公司的基于OpenStack的商業(yè)化資源調(diào)度,編排和優(yōu)化的引擎,它基于對云計(jì)算資源的抽象和預(yù)先定義的調(diào)度和優(yōu)化策略,為虛擬機(jī)的放置動態(tài)地分配和平衡計(jì)算容量,并且不間斷地監(jiān)控主機(jī)的健康狀況,提高了主機(jī)的利用率并保持用戶業(yè)務(wù)的持續(xù)性和穩(wěn)定性,降低IT管理成本。PRS采用可插拔式的無侵入設(shè)計(jì),100%兼容OpenStack API, 并且對外提供標(biāo)準(zhǔn)的接口,方便用戶進(jìn)行二次開發(fā),以滿足不同用戶的業(yè)務(wù)需求。本文將會從虛擬機(jī)初始調(diào)度策略,實(shí)時(shí)監(jiān)控和優(yōu)化策略,用戶自定義OpenStack Filter,虛擬機(jī)調(diào)度失敗的Trouble Shooting Report和基于拓?fù)浣Y(jié)構(gòu)調(diào)度等方面概括介紹PRS的主要功能和使用場景,之后將有一系列文章對每個(gè)主題展開深入介紹。
  虛擬機(jī)初始調(diào)度策略
  虛擬機(jī)的初始放置策略指的是用戶根據(jù)虛擬機(jī)對資源的要求決定虛擬機(jī)究竟應(yīng)該創(chuàng)建在哪種類型的主機(jī)上,這種資源要求就是一些約束條件或者策略。例如,用戶的虛擬機(jī)需要選擇CPU或者內(nèi)存大小滿足一定要求的主機(jī)去放置,虛擬機(jī)是需要放置在北京的數(shù)據(jù)中心還是西安的數(shù)據(jù)中心,幾個(gè)虛擬機(jī)是放在相同的主機(jī)上還是放置在不同的主機(jī)上等等。原生OpenStack調(diào)度框架在靈活的支持第三方的filter和weigher的同時(shí)也喪失了對調(diào)度策略的統(tǒng)一配置和管理,當(dāng)前PRS支持如圖2的初始放置策略,并且可以在運(yùn)行時(shí)動態(tài)的修改放置策略。
  

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

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

      ?