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