本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò),特別涉及一種基于集群下虛擬機(jī)numa自動(dòng)調(diào)度方法。
背景技術(shù):
1、numa(non-uniform?memoryaccess),非一致性?xún)?nèi)存訪(fǎng)問(wèn),是一種關(guān)于多個(gè)cpu如何訪(fǎng)問(wèn)內(nèi)存的架構(gòu)模型,在numa架構(gòu)中,將處理器和存儲(chǔ)器劃分到不同的節(jié)點(diǎn)(numanode),它們都擁有幾乎相等的資源;在numa節(jié)點(diǎn)內(nèi)部會(huì)通過(guò)自身的存儲(chǔ)總線(xiàn)訪(fǎng)問(wèn)內(nèi)部的本地內(nèi)存,而所有numa節(jié)點(diǎn)都可以通過(guò)qpi(quick?path?inter?connect)總線(xiàn)來(lái)訪(fǎng)問(wèn)其他節(jié)點(diǎn)的遠(yuǎn)程內(nèi)存。
2、由于cpu訪(fǎng)問(wèn)不同類(lèi)型節(jié)點(diǎn)內(nèi)存的速度是不相同的,訪(fǎng)問(wèn)本地節(jié)點(diǎn)的速度最快,訪(fǎng)問(wèn)遠(yuǎn)端節(jié)點(diǎn)的速度最慢,即訪(fǎng)問(wèn)速度與節(jié)點(diǎn)的距離有關(guān),距離越遠(yuǎn)訪(fǎng)問(wèn)速度越慢,所以叫做非一致性?xún)?nèi)存訪(fǎng)問(wèn),這個(gè)訪(fǎng)問(wèn)內(nèi)存的距離稱(chēng)作節(jié)點(diǎn)距離node?distance。
3、雖然numa很好地解決了對(duì)稱(chēng)多處理架構(gòu)(smp,symmetrical?multi-processing))下處理器大量擴(kuò)展帶來(lái)的性能問(wèn)題,但是其自身也存在著不足,當(dāng)node節(jié)點(diǎn)本地內(nèi)存不足時(shí),需要跨節(jié)點(diǎn)訪(fǎng)問(wèn)內(nèi)存,節(jié)點(diǎn)間的訪(fǎng)問(wèn)速度慢,從而也會(huì)帶來(lái)性能的下降。
4、且numa作為云基礎(chǔ)設(shè)施平臺(tái)的通用技術(shù),以虛擬機(jī)為維度進(jìn)行管理,需要專(zhuān)業(yè)的運(yùn)維人員去布局numa,因此,虛擬機(jī)的虛擬處理器(vcpu,virtual?central?processingunit)和內(nèi)存在numa節(jié)點(diǎn)上的錯(cuò)誤布局,不但會(huì)導(dǎo)致降低服務(wù)器的性能,而且會(huì)導(dǎo)致服務(wù)器資源的嚴(yán)重浪費(fèi),這將抹掉任何內(nèi)存與cpu決策所帶來(lái)的好處,甚至?xí)?dǎo)致虛擬機(jī)啟動(dòng)失敗。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種基于集群下虛擬機(jī)numa自動(dòng)調(diào)度方法,其目的是為了在有效降低運(yùn)維的使用成本的同時(shí)提高虛擬機(jī)的性能。
2、為了達(dá)到上述目的,本發(fā)明提供了一種基于集群下虛擬機(jī)numa自動(dòng)調(diào)度方法,應(yīng)用于云基礎(chǔ)設(shè)施平臺(tái),云基礎(chǔ)設(shè)施平臺(tái)包括由多個(gè)服務(wù)器構(gòu)成的集群、numa管理裝置、多個(gè)numa資源監(jiān)控裝置,一個(gè)numa資源監(jiān)控裝置對(duì)應(yīng)一個(gè)服務(wù)器,自動(dòng)調(diào)度方法包括:
3、步驟1,numa管理裝置基于集群中各服務(wù)器的numa資源組建虛擬numa資源池;
4、步驟2,針對(duì)集群中的每個(gè)服務(wù)器,利用與服務(wù)器對(duì)應(yīng)的numa資源監(jiān)控裝置對(duì)服務(wù)器的numa資源使用情況進(jìn)行統(tǒng)計(jì),得到每個(gè)服務(wù)器的統(tǒng)計(jì)結(jié)果并上報(bào)至numa管理裝置;
5、步驟3,numa管理裝置接收待調(diào)度虛擬機(jī)開(kāi)啟numa自動(dòng)調(diào)度功能的消息,當(dāng)虛擬numa資源池滿(mǎn)足待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量要求時(shí),在虛擬numa資源池內(nèi),根據(jù)集群中每個(gè)服務(wù)器的統(tǒng)計(jì)結(jié)果為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器,并將選擇結(jié)果下發(fā)至與目標(biāo)服務(wù)器對(duì)應(yīng)的numa資源監(jiān)控裝置;
6、步驟4,numa管理裝置根據(jù)選擇結(jié)果以及待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量,在目標(biāo)服務(wù)器內(nèi)對(duì)待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源進(jìn)行調(diào)度,得到調(diào)度結(jié)果。
7、進(jìn)一步來(lái)說(shuō),自動(dòng)調(diào)度方法還包括:
8、將集群中的服務(wù)器劃分為一個(gè)控制節(jié)點(diǎn)和多個(gè)計(jì)算節(jié)點(diǎn);
9、numa管理裝置部署于控制節(jié)點(diǎn)上,用于對(duì)虛擬numa資源池進(jìn)行管理,為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器,根據(jù)選擇結(jié)果在目標(biāo)服務(wù)器內(nèi)對(duì)待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源進(jìn)行調(diào)度;
10、numa資源監(jiān)控裝置部署于計(jì)算節(jié)點(diǎn)上,numa資源監(jiān)控裝置與計(jì)算節(jié)點(diǎn)一一對(duì)應(yīng),用于對(duì)每個(gè)服務(wù)器的numa資源使用情況進(jìn)行統(tǒng)計(jì),并將每個(gè)服務(wù)器的統(tǒng)計(jì)結(jié)果上報(bào)至numa管理裝置。
11、進(jìn)一步來(lái)說(shuō),步驟2包括:
12、根據(jù)虛擬numa資源池內(nèi)各服務(wù)器的numa資源使用情況,按照空閑資源量對(duì)各服務(wù)器的numa資源使用情況進(jìn)行統(tǒng)計(jì),并根據(jù)空閑資源量為各服務(wù)器打分,得到第一得分結(jié)果;
13、按照已分配虛擬機(jī)的numa資源量的服務(wù)器進(jìn)行統(tǒng)計(jì),并根據(jù)已分配虛擬機(jī)的numa資源量為各服務(wù)器打分,得到第二得分結(jié)果;
14、對(duì)第一得分結(jié)果和第二得分結(jié)果進(jìn)行加權(quán)求和,得到每個(gè)服務(wù)器的統(tǒng)計(jì)結(jié)果。
15、進(jìn)一步來(lái)說(shuō),服務(wù)器的numa資源使用情況包括:
16、服務(wù)器的numa拓?fù)淝闆r、服務(wù)器的處理器使用情況、服務(wù)器的內(nèi)存使用情況。
17、進(jìn)一步來(lái)說(shuō),步驟3包括:
18、numa管理裝置接收待調(diào)度虛擬機(jī)開(kāi)啟numa自動(dòng)調(diào)度功能的消息;
19、判斷虛擬numa資源池內(nèi)的cpu利用率、內(nèi)存使用率是否滿(mǎn)足待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量的使用要求;
20、當(dāng)虛擬numa資源池內(nèi)的cpu利用率、內(nèi)存使用率不滿(mǎn)足待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量的使用要求時(shí),結(jié)束調(diào)度;
21、當(dāng)虛擬numa資源池內(nèi)的cpu利用率、內(nèi)存使用率滿(mǎn)足待調(diào)度虛擬機(jī)分配的虛擬處理器和內(nèi)存資源量的使用要求時(shí),在虛擬numa資源池內(nèi),根據(jù)每個(gè)服務(wù)器的統(tǒng)計(jì)結(jié)果選擇目標(biāo)服務(wù)器,并將選擇結(jié)果下發(fā)至numa資源監(jiān)控裝置。
22、進(jìn)一步來(lái)說(shuō),在目標(biāo)服務(wù)器內(nèi)對(duì)待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源進(jìn)行調(diào)度,得到調(diào)度結(jié)果,包括:
23、numa管理裝置獲取統(tǒng)計(jì)結(jié)果;
24、根據(jù)選擇結(jié)果判斷目標(biāo)服務(wù)器的空閑資源量是否大于待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量;
25、當(dāng)目標(biāo)服務(wù)器的空閑資源量大于或等于待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量時(shí),將待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源調(diào)度至目標(biāo)服務(wù)器中的一個(gè)物理numa節(jié)點(diǎn)上運(yùn)行;
26、當(dāng)目標(biāo)服務(wù)器的空閑資源量小于待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量時(shí),將待調(diào)度虛擬機(jī)與目標(biāo)服務(wù)器進(jìn)行關(guān)聯(lián)映射,并將待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源分別調(diào)度至目標(biāo)服務(wù)器中不同的物理numa節(jié)點(diǎn)上運(yùn)行。
27、進(jìn)一步來(lái)說(shuō),自動(dòng)調(diào)度方法還包括:
28、當(dāng)待調(diào)度虛擬機(jī)重啟時(shí),numa管理裝置根據(jù)虛擬numa資源池的統(tǒng)計(jì)結(jié)果以及待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量,對(duì)待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源進(jìn)行重新調(diào)度。
29、本發(fā)明的上述方案有如下的有益效果:
30、本發(fā)明應(yīng)用于云基礎(chǔ)設(shè)施平臺(tái),云基礎(chǔ)設(shè)施平臺(tái)包括由多個(gè)服務(wù)器構(gòu)成的集群、numa管理裝置、多個(gè)numa資源監(jiān)控裝置;numa管理裝置基于集群中各服務(wù)器的numa資源組建虛擬numa資源池;針對(duì)集群中的每個(gè)服務(wù)器,利用與服務(wù)器對(duì)應(yīng)的numa資源監(jiān)控裝置對(duì)服務(wù)器的numa資源使用情況進(jìn)行統(tǒng)計(jì),得到統(tǒng)計(jì)結(jié)果并上報(bào)至numa管理裝置;numa管理裝置接收待調(diào)度虛擬機(jī)開(kāi)啟numa自動(dòng)調(diào)度功能的消息,當(dāng)虛擬numa資源池滿(mǎn)足待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量要求時(shí),在虛擬numa資源池內(nèi),根據(jù)集群中每個(gè)服務(wù)器的統(tǒng)計(jì)結(jié)果為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器,并將選擇結(jié)果下發(fā)至與目標(biāo)服務(wù)器對(duì)應(yīng)的numa資源監(jiān)控裝置;numa管理裝置根據(jù)選擇結(jié)果以及待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量,在目標(biāo)服務(wù)器內(nèi)對(duì)待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源進(jìn)行調(diào)度,得到調(diào)度結(jié)果;與現(xiàn)有技術(shù)相比,以多個(gè)服務(wù)器構(gòu)成的集群為維度,通過(guò)numa管理裝置將各服務(wù)器的numa資源整合成虛擬numa資源池,通過(guò)numa資源監(jiān)控裝置對(duì)服務(wù)器的numa資源使用情況進(jìn)行統(tǒng)計(jì),得到每個(gè)服務(wù)器的統(tǒng)計(jì)結(jié)果,通過(guò)numa管理裝置根據(jù)每個(gè)服務(wù)器的統(tǒng)計(jì)結(jié)果選擇目標(biāo)服務(wù)器,根據(jù)選擇結(jié)果和待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源量,在目標(biāo)服務(wù)器內(nèi)對(duì)待調(diào)度虛擬機(jī)的虛擬處理器和內(nèi)存資源進(jìn)行調(diào)度進(jìn)行動(dòng)態(tài)調(diào)度,確保待調(diào)度虛擬機(jī)在最合適的目標(biāo)服務(wù)器上運(yùn)行,在有效降低運(yùn)維的使用成本的同時(shí)提高了虛擬機(jī)的性能。
31、本發(fā)明的其它有益效果將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。