導(dǎo)讀:何謂云之“大腦”?
云計(jì)算技術(shù)是一系列復(fù)雜基礎(chǔ)技術(shù)的綜合體,包括物理設(shè)備管理、計(jì)算虛擬化、分布式存儲(chǔ)、網(wǎng)絡(luò)虛擬化以及軟件定義數(shù)據(jù)中心等,基于這些技術(shù)構(gòu)建的云計(jì)算平臺(tái)無疑是一套復(fù)雜的系統(tǒng)。在這樣復(fù)雜的系統(tǒng)中充當(dāng)“大腦”角色,管控決策所有資源使用的部件是云調(diào)度器。
在云計(jì)算的模式下,傳統(tǒng)“煙囪式”的獨(dú)立的服務(wù)器、存儲(chǔ)和網(wǎng)絡(luò)等物理資源被虛擬化成一個(gè)個(gè)共享資源池,云調(diào)度器通過資源使用調(diào)度的策略自動(dòng)為云平臺(tái)上的業(yè)務(wù)統(tǒng)一調(diào)配資源,以滿足業(yè)務(wù)對(duì)基礎(chǔ)設(shè)施資源的動(dòng)態(tài)需求。
本文將為您解密云之“大腦”的工作原理,展示華云數(shù)據(jù)在OpenStack核心領(lǐng)域的技術(shù)創(chuàng)新。
資源的分配和調(diào)度是云計(jì)算中的關(guān)鍵技術(shù),那么云調(diào)度器是如何工作呢?作為國(guó)內(nèi)最早一批開始對(duì)Openstack進(jìn)行研究及應(yīng)用的團(tuán)隊(duì),下面就以目前流行的開源云計(jì)算平臺(tái)Openstack為例,闡述其調(diào)度器(Nova scheduler)組件是如何管理和控制云平臺(tái)資源的。Nova scheduler是Openstack核心服務(wù)nova的組件之一,主要負(fù)責(zé)為創(chuàng)建、啟動(dòng)的云主機(jī)實(shí)例尋找合適的計(jì)算節(jié)點(diǎn),同時(shí)在遷移云主機(jī)的時(shí)候負(fù)責(zé)檢查目標(biāo)端計(jì)算節(jié)點(diǎn)的物理資源是否足夠。下面就談一談我們對(duì)Nova scheduler技術(shù)原理的解析與應(yīng)用優(yōu)化。
原理解析
下圖是Openstack架構(gòu)圖,從中我們可以看出Nova scheduler是通過與Message queue和Nova database交互來完成調(diào)度任務(wù)。
云調(diào)度器的核心任務(wù)是:基于業(yè)務(wù)對(duì)資源的請(qǐng)求,從當(dāng)前所管理的所有云資源中選擇最適合的資源分配給該業(yè)務(wù),使該業(yè)務(wù)正常部署和運(yùn)行;但何為“最適合”?在不同的場(chǎng)景下可能實(shí)質(zhì)含義不同,有的希望業(yè)務(wù)盡量運(yùn)行在較少數(shù)量的機(jī)器上以節(jié)省電力消耗,有的則希望業(yè)務(wù)盡量均勻分布在所有可用的服務(wù)器上,以保障運(yùn)行性能;因此,這里的“最適合”是相對(duì)于特定場(chǎng)景下所定義的調(diào)度策略而言的。
下圖是Nova scheduler的簡(jiǎn)化工作流程圖,首先根據(jù)配置的Filters(過濾器)過濾出符合條件的主機(jī)列表,然后對(duì)得到的主機(jī)列表進(jìn)行權(quán)重并排序,最后選出最優(yōu)的Host。
Nova scheduler的主要流程包括:
2.1主機(jī)過濾(Filters)
2.2權(quán)值計(jì)算(Weighting)
2.1 主機(jī)過濾
所有的Filters實(shí)現(xiàn)都位于nova/scheduler/filters目錄,以O(shè)penstack Mitaka版本為例:
├── affinity_filter.py
├── aggregate_image_properties_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_filter.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.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支持以上這些過濾策略,開發(fā)者也可以根據(jù)具體需要實(shí)現(xiàn)自己的過濾策略。為了便于擴(kuò)展,Nova將一個(gè)調(diào)度器必須要實(shí)現(xiàn)的接口提取出來成為nova.scheduler.driver.Scheduler,只要繼承了該類并實(shí)現(xiàn)其中的接口,我們就可以自定義任何我們需要的調(diào)度器。啟用它們只需要在 /etc/nova/nova.conf配置文件中的添加該過濾器即可。
2.2 權(quán)值計(jì)算
所有的Weigher實(shí)現(xiàn)都位于nova/scheduler/weights目錄,以O(shè)penstack Mitaka版本為例:
├── _init__.py
├── metrics.py
├── ram.py
嘗試在一臺(tái)不適合的主機(jī)上創(chuàng)建云主機(jī)的代價(jià)比在一臺(tái)合適主機(jī)上創(chuàng)建的代價(jià)要高,比如說在一臺(tái)高性能主機(jī)上創(chuàng)建一臺(tái)功能簡(jiǎn)單的普通云主機(jī)的代價(jià)是高的。
OpenStack對(duì)權(quán)值的計(jì)算需要一個(gè)或多個(gè)(Weight值,代價(jià)函數(shù))的組合,然后對(duì)每一個(gè)經(jīng)過過濾的主機(jī)調(diào)用代價(jià)函數(shù)進(jìn)行計(jì)算,將得到的值與weight值乘積,得到最終的權(quán)值。開發(fā)者可以實(shí)現(xiàn)自己的代價(jià)函數(shù),設(shè)置自己的Weight值來更精確的利用更加復(fù)雜的算法選擇主機(jī)。下圖展示了對(duì)于每個(gè)宿主節(jié)點(diǎn)如何計(jì)算Weight值,以及最后根據(jù)Weight值排序,挑選出當(dāng)前最合適的節(jié)點(diǎn)的過程。
華云數(shù)據(jù)對(duì)Nova scheduler的優(yōu)化與應(yīng)用
3.1 基于指標(biāo)監(jiān)控的動(dòng)態(tài)調(diào)度支持
OpenStack原生調(diào)度器自帶了很多基礎(chǔ)的Filters過濾策略,能夠滿足大部分的使用場(chǎng)景,但是這個(gè)調(diào)度的基本機(jī)制是靜態(tài)的,即在資源開通過程中基于請(qǐng)求的資源數(shù)量完成調(diào)度分配決策,而不考慮業(yè)務(wù)實(shí)際運(yùn)行時(shí)對(duì)各種資源的使用情況,所以可能出現(xiàn)該調(diào)度分配在部署時(shí)是最優(yōu)的,但在運(yùn)行時(shí)并不是。比如有兩臺(tái)服務(wù)器A和B,vm1已經(jīng)運(yùn)行在Host A上,現(xiàn)在要開通vm2,假如按照資源最優(yōu)的方式調(diào)度,vm2被調(diào)度到Host B上,經(jīng)過一段時(shí)間的運(yùn)行,發(fā)現(xiàn)vm1與vm2間經(jīng)常有大量網(wǎng)絡(luò)通信,我們知道在云環(huán)境下,跨節(jié)點(diǎn)的網(wǎng)絡(luò)通信性能是不如同節(jié)點(diǎn)上的網(wǎng)絡(luò)直接轉(zhuǎn)發(fā),所以基于運(yùn)行時(shí)情況,讓vm1與vm2同時(shí)運(yùn)行在一個(gè)host上會(huì)是較優(yōu)的方式。
基于上述考慮,華云云平臺(tái)引入了基于運(yùn)行時(shí)指標(biāo)監(jiān)控的動(dòng)態(tài)調(diào)度支持,即通過對(duì)業(yè)務(wù)vm的持續(xù)指標(biāo)監(jiān)控(包括cpu、磁盤、內(nèi)存、網(wǎng)絡(luò)io、業(yè)務(wù)的峰谷、vm間的通信量等),充分考慮業(yè)務(wù)vm在運(yùn)行時(shí)的資源需求,提供再次優(yōu)化調(diào)度建議。通過納入運(yùn)行時(shí)情況指標(biāo)運(yùn)算,優(yōu)化調(diào)度所挑選的host和初始調(diào)度的host很可能不一樣,如果不一致,可以通過動(dòng)態(tài)遷移機(jī)制完成遷移,使之達(dá)到階段性的最優(yōu)分布。
3.2 調(diào)整云主機(jī)大小
OpenStack Nova的resize功能內(nèi)在實(shí)現(xiàn)是基于冷遷移, 只不過resize在遷移后使用了一個(gè)不一樣的flavor。
OpenStack在處理resize接口的時(shí)候,每次resize都會(huì)隨機(jī)調(diào)度到某個(gè)可用主機(jī)節(jié)點(diǎn),但這樣做存在一定缺陷。首先,每次resize都是一次冷遷移,即使當(dāng)前節(jié)點(diǎn)的資源足夠,也會(huì)發(fā)生一次冷遷移;這個(gè)在使用共享存儲(chǔ)的場(chǎng)景不是什么大問題,但是在本地存儲(chǔ)的場(chǎng)景,resize vm一定要做一次遷移就不太智能了。其次,有的客戶希望可以指定resize vm到用戶指定的節(jié)點(diǎn),希望這個(gè)功能有更好的靈活性;
基于上述考慮,我們對(duì)resize功能進(jìn)行優(yōu)化與調(diào)整,當(dāng)執(zhí)行resize操作的時(shí)候,如果當(dāng)前節(jié)點(diǎn)上資源充足,優(yōu)先在當(dāng)前節(jié)點(diǎn)上完成resize,無需遷移;如果當(dāng)前節(jié)點(diǎn)資源不足,則由調(diào)度器調(diào)度到其他可用節(jié)點(diǎn)。此外,擴(kuò)展resize接口,使其支持resize云主機(jī)至隨機(jī)節(jié)點(diǎn)、指定節(jié)點(diǎn)或本地節(jié)點(diǎn)等策略,做到可控可配置。
3.3 基于分區(qū)部署的調(diào)度
隨著云計(jì)算服務(wù)類型的細(xì)化,需要針對(duì)不同的業(yè)務(wù)場(chǎng)景提供不同類型的云資源,在同一個(gè)數(shù)據(jù)中心內(nèi)會(huì)包括不同類型的計(jì)算節(jié)點(diǎn),比如支持CPU獨(dú)占、支持GPU虛擬化、支持OVS-DPDK網(wǎng)絡(luò)加速等等。這些計(jì)算節(jié)點(diǎn)之間是功能與特性上的差異,華云數(shù)據(jù)合理優(yōu)化與利用Nova scheduler中基于分區(qū)的調(diào)度技術(shù),實(shí)現(xiàn)把不同功能與特性的云主機(jī)需求開通到該類型的計(jì)算節(jié)點(diǎn)上。比如當(dāng)用戶創(chuàng)建CPU獨(dú)占或者GPU類型的VM時(shí),OpenStack會(huì)在相應(yīng)分區(qū)類型的計(jì)算節(jié)點(diǎn)上開通。
總結(jié)
本文簡(jiǎn)單介紹了云調(diào)度器Nova scheduler的基本原理與工作流程,同時(shí)分享了目前華云數(shù)據(jù)云平臺(tái)對(duì)其的部分?jǐn)U展優(yōu)化。目前OpenStack社區(qū)也在孵化類似Watcher等云平臺(tái)優(yōu)化項(xiàng)目,這些項(xiàng)目會(huì)與調(diào)度器結(jié)合提供云平臺(tái)的運(yùn)行時(shí)優(yōu)化。如何把搭建的云平臺(tái)更好的運(yùn)行,使之最大化的發(fā)揮能效,仍然有許多可挖掘優(yōu)化的地方。
華云數(shù)據(jù)對(duì)于OpenStack的研究和應(yīng)用,一直秉承源于社區(qū)、優(yōu)于社區(qū)、回饋社區(qū)的理念,緊跟社區(qū)的步伐,不斷改進(jìn)與優(yōu)化,將優(yōu)化的功能代碼回饋于社區(qū)、將優(yōu)秀的產(chǎn)品功能交付于客戶。
關(guān)于華云數(shù)據(jù)
華云數(shù)據(jù)集團(tuán)成立于2010年,是專業(yè)從事云計(jì)算服務(wù)的創(chuàng)新型公司,公司遍布于北京、上海、無錫、深圳、廈門、杭州、南京、臨沂等;香港、拉斯維加斯擁有運(yùn)營(yíng)中心,在國(guó)內(nèi)擁有超過15個(gè)城市的20余個(gè)數(shù)據(jù)中心和上萬臺(tái)物理服務(wù)器集群。網(wǎng)絡(luò)覆蓋中國(guó)電信、中國(guó)聯(lián)通以及華云數(shù)據(jù)自有BGP網(wǎng)絡(luò),實(shí)現(xiàn)從邊緣到核心的全覆蓋。華云數(shù)據(jù)在北京、上海、廣州、深圳、香港打造高速專線直連的高品質(zhì)節(jié)點(diǎn)提升業(yè)務(wù)性能,提高用戶體驗(yàn)。另外,2個(gè)中國(guó)電信美洲數(shù)據(jù)中心和2個(gè)香港數(shù)據(jù)中心還可滿足客戶對(duì)海外業(yè)務(wù)的需求。
華云數(shù)據(jù)以為用戶提供定制化混合架構(gòu)為目標(biāo),產(chǎn)品覆蓋公有云、私有云、混合云及IDC轉(zhuǎn)云等領(lǐng)域,可以為用戶提供數(shù)十種解決方案,深度滿足企業(yè)云化需求。
來源:XXX(非中文科技資訊)的作品均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載請(qǐng)尊重版權(quán)保留出處,一切法律責(zé)任自負(fù)。
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請(qǐng)謹(jǐn)慎對(duì)待。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。
如發(fā)現(xiàn)本站文章存在問題,提供版權(quán)疑問、身份證明、版權(quán)證明、聯(lián)系方式等發(fā)郵件至news@citnews.com.cn。
2024年以前,具身智能還是以學(xué)術(shù)界為主,是需要長(zhǎng)期研發(fā)創(chuàng)新的試驗(yàn)田。
奧維云網(wǎng)(AVC)推總數(shù)據(jù)顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現(xiàn)優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。
“以前都要去窗口辦,一套流程下來都要半個(gè)月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進(jìn)了21600元。
華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準(zhǔn)的色彩呈現(xiàn)能力,為您的創(chuàng)作工作帶來實(shí)質(zhì)性的幫助,雙十一期間低至2799元,性價(jià)比很高,簡(jiǎn)直是創(chuàng)作者們的首選。
9月14日,2024全球工業(yè)互聯(lián)網(wǎng)大會(huì)——工業(yè)互聯(lián)網(wǎng)標(biāo)識(shí)解析專題論壇在沈陽成功舉辦。