華云it課堂 云之“大腦”是如何煉成的?_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、華云IT課堂 云之“大腦”是如何煉成的?,,導讀,云計算技術是一系列復雜基礎技術的綜合體,包括物理設備管理、計算虛擬化、分布式存儲、網(wǎng)絡虛擬化以及軟件定義數(shù)據(jù)中心等,基于這些技術構建的云計算平臺無疑是一套復雜的系統(tǒng)。在這樣復雜的系統(tǒng)中充當“大腦”角色,管控決策所有資源使用的部件是云調度器。在云計算的模式下,傳統(tǒng)“煙囪式”的獨立的服務器、存儲和網(wǎng)絡等物理資源被虛擬化成一個個共享資源池,云調度器通過資源使用調度的策略自動為云平臺上的業(yè)務

2、統(tǒng)一調配資源,以滿足業(yè)務對基礎設施資源的動態(tài)需求。,何謂云之“大腦”?,本文將為您解密云之“大腦”的工作原理,展示華云數(shù)據(jù)在OpenStack核心領域的技術創(chuàng)新。資源的分配和調度是云計算中的關鍵技術,那么云調度器是如何工作呢?作為國內(nèi)最早一批開始對Openstack進行研究及應用的團隊,下面就以目前流行的開源云計算平臺Openstack為例,闡述其調度器(Nova scheduler)組件是如何管理和控制云平臺資源的。Nova sc

3、heduler是Openstack核心服務nova的組件之一,主要負責為創(chuàng)建、啟動的云主機實例尋找合適的計算節(jié)點,同時在遷移云主機的時候負責檢查目標端計算節(jié)點的物理資源是否足夠。下面就談一談我們對Nova scheduler技術原理的解析與應用優(yōu)化。,原理解析,下圖是Openstack架構圖,從中我們可以看出Nova scheduler是通過與Message queue和Nova database交互來完成調度任務。,云調度器的核心

4、任務是:基于業(yè)務對資源的請求,從當前所管理的所有云資源中選擇最適合的資源分配給該業(yè)務,使該業(yè)務正常部署和運行;但何為“最適合”?在不同的場景下可能實質含義不同,有的希望業(yè)務盡量運行在較少數(shù)量的機器上以節(jié)省電力消耗,有的則希望業(yè)務盡量均勻分布在所有可用的服務器上,以保障運行性能;因此,這里的“最適合”是相對于特定場景下所定義的調度策略而言的。,下圖是Nova scheduler的簡化工作流程圖,首先根據(jù)配置的Filters(過濾器)過濾出

5、符合條件的主機列表,然后對得到的主機列表進行權重并排序,最后選出最優(yōu)的Host。,Nova scheduler的主要流程包括:,2.1主機過濾(Filters)2.2權值計算(Weighting),2.1 主機過濾,所有的Filters實現(xiàn)都位于nova/scheduler/filters目錄,以Openstack Mitaka版本為例:├── affinity_filter.py├── aggregate_image_prope

6、rties_isolation.py├── aggregate_instance_extra_specs.py├── aggregate_multitenancy_isolation.py├── all_hosts_filter.py├── availability_zone_filter.py├── compute_capabilities_filter.py├── compute_filter.py├── core_f

7、ilter.py├── cpu_pinning_filter.py├── disk_filter.py├── exact_core_filter.py,├── exact_disk_filter.py├── exact_ram_filter.py├── image_props_filter.py├── io_ops_filter.py├── isolated_hosts_filter.py├── json_filter.

8、py├── metrics_filter.py├── numa_topology_filter.py├── num_instances_filter.py├── pci_passthrough_filter.py├── ram_filter.py├── retry_filter.py├── trusted_filter.py├── type_filter.py,目前,社區(qū)的OpenStack Mitaka支持以上這些過濾

9、策略,開發(fā)者也可以根據(jù)具體需要實現(xiàn)自己的過濾策略。為了便于擴展,Nova將一個調度器必須要實現(xiàn)的接口提取出來成為nova.scheduler.driver.Scheduler,只要繼承了該類并實現(xiàn)其中的接口,我們就可以自定義任何我們需要的調度器。啟用它們只需要在 /etc/nova/nova.conf配置文件中的添加該過濾器即可。,2.2 權值計算,所有的Weigher實現(xiàn)都位于nova/scheduler/weights目錄,以Ope

10、nstack Mitaka版本為例:├── _init__.py├── metrics.py├── ram.py嘗試在一臺不適合的主機上創(chuàng)建云主機的代價比在一臺合適主機上創(chuàng)建的代價要高,比如說在一臺高性能主機上創(chuàng)建一臺功能簡單的普通云主機的代價是高的。,OpenStack對權值的計算需要一個或多個(Weight值,代價函數(shù))的組合,然后對每一個經(jīng)過過濾的主機調用代價函數(shù)進行計算,將得到的值與weight值乘積,得到最終的權值。開

11、發(fā)者可以實現(xiàn)自己的代價函數(shù),設置自己的Weight值來更精確的利用更加復雜的算法選擇主機。下圖展示了對于每個宿主節(jié)點如何計算Weight值,以及最后根據(jù)Weight值排序,挑選出當前最合適的節(jié)點的過程。,華云數(shù)據(jù)對Nova scheduler的優(yōu)化與應用,3.1 基于指標監(jiān)控的動態(tài)調度支持,OpenStack原生調度器自帶了很多基礎的Filters過濾策略,能夠滿足大部分的使用場景,但是這個調度的基本機制是靜態(tài)的,即在資源開通過程中基于

12、請求的資源數(shù)量完成調度分配決策,而不考慮業(yè)務實際運行時對各種資源的使用情況,所以可能出現(xiàn)該調度分配在部署時是最優(yōu)的,但在運行時并不是。比如有兩臺服務器A和B,vm1已經(jīng)運行在Host A上,現(xiàn)在要開通vm2,假如按照資源最優(yōu)的方式調度,vm2被調度到Host B上,經(jīng)過一段時間的運行,發(fā)現(xiàn)vm1與vm2間經(jīng)常有大量網(wǎng)絡通信,我們知道在云環(huán)境下,跨節(jié)點的網(wǎng)絡通信性能是不如同節(jié)點上的網(wǎng)絡直接轉發(fā),所以基于運行時情況,讓vm1與vm2同時運行

13、在一個host上會是較優(yōu)的方式?;谏鲜隹紤],華云云平臺引入了基于運行時指標監(jiān)控的動態(tài)調度支持,即通過對業(yè)務vm的持續(xù)指標監(jiān)控(包括cpu、磁盤、內(nèi)存、網(wǎng)絡io、業(yè)務的峰谷、vm間的通信量等),充分考慮業(yè)務vm在運行時的資源需求,提供再次優(yōu)化調度建議。通過納入運行時情況指標運算,優(yōu)化調度所挑選的host和初始調度的host很可能不一樣,如果不一致,可以通過動態(tài)遷移機制完成遷移,使之達到階段性的最優(yōu)分布。,3.2 調整云主機大小,Ope

14、nStack Nova的resize功能內(nèi)在實現(xiàn)是基于冷遷移, 只不過resize在遷移后使用了一個不一樣的flavor。OpenStack在處理resize接口的時候,每次resize都會隨機調度到某個可用主機節(jié)點,但這樣做存在一定缺陷。首先,每次resize都是一次冷遷移,即使當前節(jié)點的資源足夠,也會發(fā)生一次冷遷移;這個在使用共享存儲的場景不是什么大問題,但是在本地存儲的場景,resize vm一定要做一次遷移就不太智能了。其次,

15、有的客戶希望可以指定resize vm到用戶指定的節(jié)點,希望這個功能有更好的靈活性;基于上述考慮,我們對resize功能進行優(yōu)化與調整,當執(zhí)行resize操作的時候,如果當前節(jié)點上資源充足,優(yōu)先在當前節(jié)點上完成resize,無需遷移;如果當前節(jié)點資源不足,則由調度器調度到其他可用節(jié)點。此外,擴展resize接口,使其支持resize云主機至隨機節(jié)點、指定節(jié)點或本地節(jié)點等策略,做到可控可配置。,3.3 基于分區(qū)部署的調度,隨著云計算服務

16、類型的細化,需要針對不同的業(yè)務場景提供不同類型的云資源,在同一個數(shù)據(jù)中心內(nèi)會包括不同類型的計算節(jié)點,比如支持CPU獨占、支持GPU虛擬化、支持OVS-DPDK網(wǎng)絡加速等等。這些計算節(jié)點之間是功能與特性上的差異,華云數(shù)據(jù)合理優(yōu)化與利用Nova scheduler中基于分區(qū)的調度技術,實現(xiàn)把不同功能與特性的云主機需求開通到該類型的計算節(jié)點上。比如當用戶創(chuàng)建CPU獨占或者GPU類型的VM時,OpenStack會在相應分區(qū)類型的計算節(jié)點上開通。

17、,,本文簡單介紹了云調度器Nova scheduler的基本原理與工作流程,同時分享了目前華云數(shù)據(jù)云平臺對其的部分擴展優(yōu)化。目前OpenStack社區(qū)也在孵化類似Watcher等云平臺優(yōu)化項目,這些項目會與調度器結合提供云平臺的運行時優(yōu)化。如何把搭建的云平臺更好的運行,使之最大化的發(fā)揮能效,仍然有許多可挖掘優(yōu)化的地方。,,總結,華云數(shù)據(jù)對于OpenStack的研究和應用,一直秉承源于社區(qū)、優(yōu)于社區(qū)、回饋社區(qū)的理念,緊跟社區(qū)的步伐,不斷改

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論