本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò),特別涉及一種集群下虛擬機(jī)gpu自動(dòng)調(diào)度方法。
背景技術(shù):
1、gpu(graphic?processing?unit),全稱為計(jì)算機(jī)圖像處理器,gpu的并行計(jì)算能力使其在深度學(xué)習(xí)、科學(xué)計(jì)算、圖像渲染等領(lǐng)域具有巨大的優(yōu)勢(shì)。尤其是最近幾年機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等領(lǐng)域的快速發(fā)展,加快了異構(gòu)計(jì)算場(chǎng)景搬遷上云的步伐,有效管理和利用gpu資源對(duì)于提供高性能計(jì)算環(huán)境至關(guān)重要,管理gpu資源也成為開(kāi)發(fā)者日益關(guān)注解決的問(wèn)題。
2、目前gpu虛擬化技術(shù),大致分為:純軟件模擬虛擬顯卡,物理gpu透?jìng)?,gpu虛擬化三種方案;各有優(yōu)缺點(diǎn),設(shè)備模擬是用軟件來(lái)模擬硬件,物理顯卡透?jìng)靼裧pu獨(dú)立分配給虛擬機(jī)使用,gpu虛擬化修改虛擬機(jī)監(jiān)控器(vmm,virtual?machine?monitor)以管理gpu。
3、gpu透?jìng)?pass-through)也叫顯卡直通,直通設(shè)備利用虛擬化技術(shù)(vt-d,virtualization?technology?fordirect)將gpu核直通給單個(gè)虛擬機(jī)使用,具有性能佳、功能完備的優(yōu)點(diǎn);但其缺點(diǎn)是不能共享。
4、虛擬gpu(vgpu)允許多個(gè)虛擬機(jī)實(shí)例共享同一塊物理gpu,并提供給每個(gè)虛擬機(jī)一定比例的gpu資源。通過(guò)使用vgpu,可以在虛擬化環(huán)境中實(shí)現(xiàn)對(duì)gpu資源的合理分配和管理。
5、gpu虛擬化就是將一個(gè)物理gpu切分為多個(gè)虛擬gpu以供不同虛擬機(jī)使用(gpu切分),nvidia和amd對(duì)于gpu虛擬化采用不同的技術(shù)。
6、nvidiavgpu方案(軟切分),基于虛擬化技術(shù)的gpu資源共享方式,硬件層面不做切分,通過(guò)虛擬化層和虛機(jī)中的驅(qū)動(dòng)來(lái)完成切分。通過(guò)vgpu技術(shù),可以將一個(gè)物理gpu虛擬化為多個(gè)虛擬gpu,每個(gè)虛擬gpu可以獨(dú)立運(yùn)行一個(gè)操作系統(tǒng)和應(yīng)用程序。這種技術(shù)可以在多個(gè)用戶之間共享gpu資源,提高資源利用率。
7、amd?mxgpu(硬切分),基于硬件虛擬化技術(shù)的gpu資源共享方式。通過(guò)mxgpu技術(shù),可以將一個(gè)物理gpu分割成多個(gè)虛擬gpu,每個(gè)虛擬gpu都可以獨(dú)立運(yùn)行一個(gè)操作系統(tǒng)和應(yīng)用程序。與vgpu不同的是,mxgpu技術(shù)通過(guò)硬件虛擬化技術(shù)實(shí)現(xiàn)了資源的隔離和互斥訪問(wèn),保證了各個(gè)虛擬gpu之間的獨(dú)立性和安全性。
8、雖然虛擬機(jī)使用gpu的方式很多,以虛擬機(jī)為維度進(jìn)行管理,需要專業(yè)的運(yùn)維人員去管理分配gpu資源,難度較大,且容易導(dǎo)致宿主機(jī)資源的嚴(yán)重浪費(fèi),重復(fù)分配,甚至?xí)?dǎo)致虛擬機(jī)啟動(dòng)失敗。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種集群下虛擬機(jī)gpu自動(dòng)調(diào)度方法,其目的是為了降低管理難度、減少虛擬機(jī)因找不到gpu資源導(dǎo)致開(kāi)機(jī)失敗的情況的同時(shí)提高gpu資源的利用率。
2、為了達(dá)到上述目的,本發(fā)明提供了一種集群下虛擬機(jī)gpu自動(dòng)調(diào)度方法,應(yīng)用于云基礎(chǔ)設(shè)施平臺(tái),云基礎(chǔ)設(shè)施平臺(tái)包括由多個(gè)服務(wù)器構(gòu)成的集群、gpu管理裝置、多個(gè)gpu資源監(jiān)控裝置,一個(gè)gpu資源監(jiān)控裝置對(duì)應(yīng)一個(gè)服務(wù)器;
3、自動(dòng)調(diào)度方法包括:
4、步驟1,基于集群中各服務(wù)器的gpu資源利用gpu管理裝置組建多個(gè)gpu資源池和多個(gè)vgpu資源池,并按照使用場(chǎng)景將物理gpu虛擬化為vgpu并為每個(gè)vgpu打上類型標(biāo)簽;
5、步驟2,針對(duì)集群中的每個(gè)服務(wù)器,利用與服務(wù)器對(duì)應(yīng)的gpu資源監(jiān)控裝置對(duì)服務(wù)器的gpu資源使用情況與vgpu資源使用情況進(jìn)行統(tǒng)計(jì),得到每個(gè)服務(wù)器的第一統(tǒng)計(jì)結(jié)果和第二統(tǒng)計(jì)結(jié)果并上報(bào)至gpu管理裝置;
6、步驟3,gpu管理裝置根據(jù)每個(gè)服務(wù)器的第一統(tǒng)計(jì)結(jié)果、第二統(tǒng)計(jì)結(jié)果以及類型標(biāo)簽,在多個(gè)gpu資源池中篩選出所有滿足待調(diào)度虛擬機(jī)需求的gpu資源池和vgpu資源池;
7、步驟4,gpu管理裝置根據(jù)配置的調(diào)度策略,在所有滿足需求的gpu資源池和vgpu資源池中為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器,并將選擇結(jié)果下發(fā)至與目標(biāo)服務(wù)器對(duì)應(yīng)的gpu資源監(jiān)控裝置;
8、步驟5,gpu資源監(jiān)控裝置根據(jù)的類型標(biāo)簽和評(píng)分規(guī)則,將待調(diào)度虛擬機(jī)調(diào)度至目標(biāo)服務(wù)器內(nèi)的gpu顯卡上。
9、進(jìn)一步來(lái)說(shuō),自動(dòng)調(diào)度方法還包括:
10、將集群中的服務(wù)器劃分為一個(gè)控制節(jié)點(diǎn)和多個(gè)計(jì)算節(jié)點(diǎn);
11、gpu管理裝置部署于控制節(jié)點(diǎn)上,用于對(duì)所有g(shù)pu資源池、所有vgpu資源池、類型標(biāo)簽進(jìn)行管理,為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器;
12、gpu資源監(jiān)控裝置部署于計(jì)算節(jié)點(diǎn)上,gpu資源監(jiān)控裝置與計(jì)算節(jié)點(diǎn)一一對(duì)應(yīng),用于對(duì)每個(gè)服務(wù)器的gpu資源使用情況和vgpu資源使用情況進(jìn)行統(tǒng)計(jì),將每個(gè)服務(wù)器的第一統(tǒng)計(jì)結(jié)果、第二統(tǒng)計(jì)結(jié)果上報(bào)至gpu管理裝置,并將待調(diào)度虛擬機(jī)調(diào)度至目標(biāo)服務(wù)器內(nèi)的gpu顯卡上。
13、進(jìn)一步來(lái)說(shuō),按照使用場(chǎng)景將物理gpu虛擬化為vgpu并為每個(gè)vgpu打上類型標(biāo)簽,包括:
14、按照使用場(chǎng)景將物理gpu進(jìn)行虛擬化,得到多種類型的vgpu,類型包括云桌面渲染、圖形渲染和高性能計(jì)算;
15、對(duì)云桌面渲染類型的vgpu打上第一類型標(biāo)簽;
16、對(duì)圖像渲染類型的vgpu打上第二類型標(biāo)簽;
17、對(duì)高性能計(jì)算類型的vgpu打上第三類型標(biāo)簽。
18、進(jìn)一步來(lái)說(shuō),服務(wù)器的gpu資源使用情況與vgpu資源使用情況包括:gpu顯卡利用率、gpu顯存使用率、溫度、vgpu空閑數(shù)量、運(yùn)行的任務(wù)數(shù)、功耗。
19、進(jìn)一步來(lái)說(shuō),gpu管理裝置根據(jù)配置的調(diào)度策略,在所有滿足需求的gpu資源池和vgpu資源池中為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器,包括:
20、gpu管理裝置選擇配置的親和性規(guī)則作為調(diào)度策略,在所有滿足需求的gpu資源池和vgpu資源池中為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器;
21、或,
22、gpu管理裝置選擇配置的反親和性規(guī)則作為調(diào)度策略,在所有滿足需求的gpu資源池和vgpu資源池中為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器。
23、進(jìn)一步來(lái)說(shuō),親和性規(guī)則為:允許選擇gpu資源時(shí),規(guī)定待調(diào)度虛擬機(jī)在指定的同一資源上運(yùn)行,包括gpu資源池親和性、服務(wù)器親和性、gpu顯卡親和性。
24、進(jìn)一步來(lái)說(shuō),反親和性規(guī)則為:允許選擇gpu資源時(shí),規(guī)定待調(diào)度虛擬機(jī)不在指定的同一資源上運(yùn)行,包括gpu資源池反親和性、服務(wù)器反親和性、gpu顯卡反親和性。
25、進(jìn)一步來(lái)說(shuō),為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器包括:
26、根據(jù)服務(wù)器評(píng)分表達(dá)式mark1=hgu*hw0+hgu*hw1+hgn*hw2+hgvn*hw3、gpu資源池和vgpu資源池內(nèi)的資源使用情況對(duì)gpu資源池和vgpu資源池內(nèi)的服務(wù)器進(jìn)行評(píng)分,得到評(píng)分最高的服務(wù)器,并將評(píng)分最高的服務(wù)器作為目標(biāo)服務(wù)器;
27、其中,hgu表示同一服務(wù)器內(nèi)gpu顯卡利用率的平均值,hgm表示同一服務(wù)器內(nèi)gpu顯存使用率平均值,hgn表示同一服務(wù)器內(nèi)安裝的gpu顯卡數(shù)量,hgvn表示同一服務(wù)器內(nèi)未分配的vgpu總和,hw0、hw1、hw2、hw3均表示權(quán)重。
28、進(jìn)一步來(lái)說(shuō),步驟5包括:
29、gpu資源監(jiān)控裝置根據(jù)的類型標(biāo)簽確定目標(biāo)服務(wù)器中所有滿足待調(diào)度虛擬機(jī)需求的gpu顯卡;
30、根據(jù)評(píng)分規(guī)則設(shè)計(jì)顯卡評(píng)分表達(dá)式mark2=gp*w0+gt*w1+gd*w2對(duì)所有滿足待調(diào)度虛擬機(jī)需求的gpu顯卡的負(fù)載情況、溫度和功耗進(jìn)行評(píng)分,得到分?jǐn)?shù)最低的gpu顯卡作為目標(biāo)顯卡,并將待調(diào)度虛擬機(jī)調(diào)度至目標(biāo)顯卡上;
31、其中,gp表示gpu顯卡的負(fù)載情況,gt表示gpu顯卡的溫度,gd表示gpu顯卡的功耗,w0、w1、w2均表示權(quán)重。
32、本發(fā)明的上述方案有如下的有益效果:
33、本發(fā)明應(yīng)用于云基礎(chǔ)設(shè)施平臺(tái),云基礎(chǔ)設(shè)施平臺(tái)包括由多個(gè)服務(wù)器構(gòu)成的集群、gpu管理裝置、多個(gè)gpu資源監(jiān)控裝置;利用gpu管理裝置組建多個(gè)gpu資源池和多個(gè)vgpu資源池,將物理gpu虛擬化為vgpu并打上類型標(biāo)簽;利用gpu資源監(jiān)控裝置對(duì)服務(wù)器的gpu資源使用情況與vgpu資源使用情況進(jìn)行統(tǒng)計(jì),得到第一統(tǒng)計(jì)結(jié)果和第二統(tǒng)計(jì)結(jié)果并上報(bào)至gpu管理裝置,以在多個(gè)gpu資源池中篩選出所有滿足待調(diào)度虛擬機(jī)需求的gpu資源池和vgpu資源池;gpu管理裝置根據(jù)配置的調(diào)度策略,在所有滿足需求的gpu資源池和vgpu資源池中為待調(diào)度虛擬機(jī)選擇目標(biāo)服務(wù)器,并將選擇結(jié)果下發(fā)至與目標(biāo)服務(wù)器對(duì)應(yīng)的gpu資源監(jiān)控裝置;gpu資源監(jiān)控裝置根據(jù)的類型標(biāo)簽和評(píng)分規(guī)則,將待調(diào)度虛擬機(jī)調(diào)度至目標(biāo)服務(wù)器內(nèi)的gpu顯卡上;與現(xiàn)有技術(shù)相比,本發(fā)明以多個(gè)服務(wù)器構(gòu)成的集群為維度,根據(jù)集群內(nèi)所有的gpu資源池和vgpu資源池內(nèi)的資源使用情況對(duì)待調(diào)度虛擬機(jī)進(jìn)行動(dòng)態(tài)調(diào)度至最優(yōu)服務(wù)器上,不需要運(yùn)維人員了解整個(gè)云基礎(chǔ)設(shè)施平臺(tái)中的gpu和vgpu布局,減少了因運(yùn)維人員對(duì)虛擬機(jī)的vgpu和gpu錯(cuò)誤布局導(dǎo)致性能低效的問(wèn)題,降低了管理難度,減少了虛擬機(jī)因找不到gpu資源導(dǎo)致開(kāi)機(jī)失敗的情況的同時(shí)很大程度上提高了gpu資源的使用率。
34、本發(fā)明的其它有益效果將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。