一種加速管理節(jié)點、加速節(jié)點、客戶端及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬化技術(shù)領(lǐng)域,尤其涉及一種加速管理節(jié)點、加速節(jié)點、客戶端及其方法。
【背景技術(shù)】
[0002]應(yīng)用程序為了縮短執(zhí)行時間,提高運行效率,通??梢詫⒊绦蛑械牟糠謽I(yè)務(wù)(或者功能)分配到硬件加速設(shè)備上執(zhí)行,由于硬件加速設(shè)備本身的運行速度快,因此可以縮短應(yīng)用程序的執(zhí)行時間。常見的加速業(yè)務(wù)有加解密、壓縮、解壓縮、音視頻編解碼等。硬件加速設(shè)備則包括提供特殊指令的處理器,以及其它可提供加速功能的外圍部件互連標(biāo)準(zhǔn)(peripheral component interconnect,PCI)設(shè)備,比如:圖形處理器(graphicsprocessing unit,GPU)、現(xiàn)場可編程門陣列(field programmable gate array,F(xiàn)PGA)等。
[0003]目前,提出網(wǎng)絡(luò)功能虛擬化(Network Funct1n Virtualizat1n, NFV)的目的是希望通過虛擬化技術(shù),在通用的高性能服務(wù)器、交換機和存儲中實現(xiàn)部分網(wǎng)絡(luò)功能。在網(wǎng)絡(luò)功能虛擬化(Network Funct1n Virtualizat1n,NFV)演進場景下,基于專用硬件的網(wǎng)絡(luò)設(shè)備可以利用虛擬化技術(shù)部署在通用服務(wù)器之上,從傳統(tǒng)的“嵌入式軟件+專用硬件”的組合形態(tài),演變成“軟件+通用硬件”的組合形態(tài)。也就是說,為了實現(xiàn)硬件通用化,需要將傳統(tǒng)的專用硬件中的網(wǎng)絡(luò)功能(Network Funct1n,NF)程序剝離出來,形成虛擬網(wǎng)絡(luò)功能(Virtualizat1n Network Funct1n, VNF)程序,使得傳統(tǒng)的專用硬件成為NFV通用硬件。
[0004]然而,NFV硬件通用化后,在調(diào)用NFV硬件時,如何根據(jù)應(yīng)用程序的業(yè)務(wù)需求,對NFV硬件實現(xiàn)精確的調(diào)度,成為了亟待解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供一種應(yīng)用于虛擬化場景的加速管理節(jié)點、加速節(jié)點、客戶端及方法,可以實現(xiàn)根據(jù)客戶端的業(yè)務(wù)需求,對加速設(shè)備進行精確調(diào)用。
[0006]第一方面,本發(fā)明實施例提供了一種加速管理節(jié)點,該加速管理節(jié)點包括:接收單元,用于分別接收至少一個加速節(jié)點上報的各自的加速設(shè)備的加速設(shè)備信息,其中,每個加速節(jié)點包括至少一個加速設(shè)備,所述加速設(shè)備信息包括:加速類型、算法類型;獲取單元,用于獲取客戶端發(fā)送的的調(diào)用請求,所述調(diào)用請求用于調(diào)用加速設(shè)備對所述客戶端的業(yè)務(wù)進行加速,所述調(diào)用請求包括:目標(biāo)加速類型、目標(biāo)算法類型;分配單元,用于查詢所述加速設(shè)備信息,從所述至少一個加速節(jié)點各自的加速設(shè)備中確定與所述調(diào)用請求相匹配的目標(biāo)加速設(shè)備;指示單元,用于指示所述目標(biāo)加速設(shè)備所在的目標(biāo)加速節(jié)點響應(yīng)所述調(diào)用請求。加速管理節(jié)點根據(jù)各個加速節(jié)點中的加速設(shè)備信息進行加速設(shè)備調(diào)用,可以根據(jù)客戶端的應(yīng)用程序的需求,并結(jié)合各個加速設(shè)備的加速類型,算法類型,給應(yīng)用程序分配相應(yīng)的加速設(shè)備,從而滿足業(yè)務(wù)需求。
[0007]在第一方面的第一種可能的實現(xiàn)方式中,所述分配單元用于查詢所述加速設(shè)備信息,以從所述至少一個加速節(jié)點各自的加速設(shè)備中確定加速類型和算法類型分別與所述目標(biāo)加速類型和所述目標(biāo)算法類型相同的所述目標(biāo)加速設(shè)備。加速管理節(jié)點根據(jù)各個加速節(jié)點中的加速設(shè)備信息進行加速設(shè)備調(diào)用時,根據(jù)各個加速設(shè)備的加速類型,算法類型以及加速帶寬進行調(diào)用,保證了加速設(shè)備的帶寬能夠滿足業(yè)務(wù)的需求,從而實現(xiàn)精確調(diào)用。
[0008]結(jié)合第一方面,或者第一方面第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述加速信息還包括:加速帶寬,所述加速帶寬包括:總帶寬,以及被占用帶寬;所述調(diào)用請求還包括:目標(biāo)加速帶寬;所述分配單元具體用于查詢所述加速設(shè)備信息,以確定加速類型和算法類型分別與所述目標(biāo)加速類型和所述目標(biāo)算法類型相同,且剩余帶寬大于或等于所述目標(biāo)加速帶寬的備選加速設(shè)備,并將所述備選加速設(shè)備中的一個確定為所述目標(biāo)加速設(shè)備,其中,所述剩余帶寬根據(jù)所述總帶寬以及所述被占用帶寬計算得到。
[0009]結(jié)合第一方面第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述加速設(shè)備信息還包括:非統(tǒng)一內(nèi)存訪問架構(gòu)NUMA信息;所述調(diào)用請求還包括:目標(biāo)NUMA信息;所述分配單元具體用于查詢所述加速設(shè)備信息,以確定加速類型和算法類型分別與所述目標(biāo)加速類型和所述目標(biāo)算法類型相同,剩余帶寬大于或等于所述目標(biāo)加速帶寬,以及NUMA信息與所述目標(biāo)NUMA信息一致的備選加速設(shè)備,并將所述備選加速設(shè)備中的一個確定為所述目標(biāo)加速設(shè)備,其中,所述剩余帶寬根據(jù)所述總帶寬以及所述被占用帶寬計算得到。
[0010]結(jié)合第一方面第二種可能的實現(xiàn)方式以及第三種可能的實現(xiàn)方式中的任意一種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述分配單元具體用于當(dāng)所述備選加速設(shè)備為一個時,將所述備選加速設(shè)備確定為所述目標(biāo)加速設(shè)備。
[0011]結(jié)合第一方面第二到第四種中任意一種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述分配單元具體用于當(dāng)所述備選加速設(shè)備為多個時,根據(jù)所述加速帶寬確定所述多個備選加速設(shè)備中剩余帶寬最大的第一加速設(shè)備,若所述第一加速設(shè)備為一個,則將所述第一加速設(shè)備確定為所述目標(biāo)加速設(shè)備。
[0012]結(jié)合第一方面第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述分配單元具體用于當(dāng)剩余帶寬最大的第一加速設(shè)備為多個時,根據(jù)所述VF數(shù)確定所述多個第一加速設(shè)備中VF數(shù)最多的第二加速設(shè)備,若所述第二加速設(shè)備為一個,則將所述第二加速設(shè)備作為所述目標(biāo)加速設(shè)備。
[0013]結(jié)合第一方面第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,所述分配單元具體用于當(dāng)VF數(shù)最多的所述第二加速設(shè)備為多個時,根據(jù)查詢所述加速設(shè)備信息時的時間順序,將最先查詢到的一個第二加速設(shè)備作為所述目標(biāo)加速設(shè)備。
[0014]結(jié)合第一方面,或者第一方面第一至第七種任意一種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,所述指示單元具體用于發(fā)送配置指示信息給所述目標(biāo)加速節(jié)點,以指示所述目標(biāo)加速節(jié)點響應(yīng)所述調(diào)用請求,所述配置指示消息指示了與所述調(diào)用請求相匹配的所述目標(biāo)加速設(shè)備的加速類型、算法類型,或者所述配置指示消息指示了所述目標(biāo)加速設(shè)備的加速類型、算法類型以及加速帶寬。
[0015]結(jié)合第一方面,或者第一方面第一至第八種任意一種可能的實現(xiàn)方式,在第九種可能的實現(xiàn)方式中,所述加速管理節(jié)點還包括:存儲單元,用于存儲所述加速設(shè)備信息。
[0016]結(jié)合第一方面第二到第九種中任意一種可能的實現(xiàn)方式,在第十種可能的實現(xiàn)方式中,所述存儲單元還用于根據(jù)所述目標(biāo)加速帶寬,更新之前保存的與所述目標(biāo)加速設(shè)備對應(yīng)的加速設(shè)備信息;以及記錄所述指示單元的分配結(jié)果。
[0017]結(jié)合第一方面,或者第一方面第一至第十種任意一種可能的實現(xiàn)方式,在第十一種可能的實現(xiàn)方式中,所述加速管理節(jié)點還包括:釋放單元,用于獲取所述客戶端發(fā)送的釋放所述目標(biāo)加速設(shè)備的釋放請求,并調(diào)用所述目標(biāo)加速節(jié)點釋放所述目標(biāo)加速設(shè)備。
[0018]結(jié)合第一方面第十一種可能的實現(xiàn)方式,在第十二種可能的實現(xiàn)方式中,所述釋放單元還用于,當(dāng)監(jiān)測到所述客戶端的業(yè)務(wù)出現(xiàn)異常時,根據(jù)所述存儲單元記錄的所述分配結(jié)果,找到所述目標(biāo)加速設(shè)備,并調(diào)用所述目標(biāo)加速節(jié)點釋放所述目標(biāo)加速設(shè)備。
[0019]結(jié)合第一方面第九到第十二種中任意一種可能的實現(xiàn)方式,在第十三種可能的實現(xiàn)方式中,所述存儲單元還用于將所述分配結(jié)果置為無效。
[0020]第二方面,本發(fā)明實施例提供了一種加速節(jié)點,包括:代理單元、驅(qū)動以及至少一個加速設(shè)備;所述驅(qū)動用于驅(qū)動所述至少一個加速設(shè)備,所述至少一個加速設(shè)備用于提供硬件加速功能;所述代理單元用于:調(diào)用所述驅(qū)動分別查詢所述至少一個加速設(shè)備,以獲取每個加速設(shè)備的加速設(shè)備信息,所述加速設(shè)備信息包括:加速類型、算法類型;將所述加速設(shè)備信息上報給加速管理節(jié)點。加速節(jié)點通過上報自身的加速設(shè)備的加速設(shè)備信息給加速管理節(jié)點,使得加速管理節(jié)點可以根據(jù)上報的加速設(shè)備信息,給客戶端配置合適的加速設(shè)備,從而滿足業(yè)務(wù)需求,并實現(xiàn)精確調(diào)用。
[0021]在第二方面的第一種可能的實現(xiàn)方式中,所述代理單元還用于:加速帶寬。
[0022]結(jié)合第二方面,或者第二方面第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述代理單元還用于:接收所述加速管理節(jié)點發(fā)送的配置指示消息,其中,所述配置指示消息指示了與客戶端的調(diào)用請求相匹配的目標(biāo)加速設(shè)備的目標(biāo)加速類型、目標(biāo)算法類型,或者所述配置指示消息指示了與客戶端的調(diào)用請求相匹配的目標(biāo)加速設(shè)備的目標(biāo)加速類型、目標(biāo)算法類型以及目標(biāo)加速帶寬;并根據(jù)所述配置指示消息,調(diào)用所述驅(qū)動檢測所述目標(biāo)加速設(shè)備是否正常工作;當(dāng)所述目標(biāo)加速設(shè)備正常工作時,將所述目標(biāo)加速設(shè)備的目標(biāo)接口配置給所述客戶端。
[0023]結(jié)合第二方面,或者第二方面第一至第二種任意一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述加速設(shè)備信息還包括:非統(tǒng)一內(nèi)存訪問架構(gòu)NUMA信息。
[0024]結(jié)合第二方面第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述配置指示消息還指示了與客戶端的調(diào)用請求相匹配的目標(biāo)NUMA信息。
[0025]結(jié)合第二方面第二到第四種中任意一種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述代理單元還用于將所述目標(biāo)加速類型、所述目標(biāo)算法類型以及所述目標(biāo)加速帶寬配置為所述目標(biāo)接口的硬件屬性。
[0026]結(jié)合第二方面第二到第五種中任意一種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述代理單元還用于響應(yīng)所述加速管理節(jié)點,釋放所述目標(biāo)加速設(shè)備。
[0027]結(jié)合第二方面第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,所述代理單元還用于將所述目標(biāo)接口的硬件屬性置為空。
[0028]第三方面,本發(fā)明實施例提供了一種客戶端,包括:請求單元,用于根據(jù)業(yè)務(wù)的加速需求生成調(diào)用請求,所述調(diào)用請求包括加速所述業(yè)務(wù)所需的目標(biāo)加速類型、目標(biāo)算法類型;發(fā)送單元,用于將所述調(diào)用請求發(fā)送給加速管理節(jié)點,以申請調(diào)用與所述調(diào)用請求相匹配的目標(biāo)加速設(shè)備來加速所述業(yè)務(wù)??蛻舳说膽?yīng)用程序可以將滿足加速自身業(yè)務(wù)需求的加速設(shè)備所對應(yīng)的目標(biāo)加速類型、目標(biāo)算法類型發(fā)送給加速管理節(jié)點,向該加速管理節(jié)點申請加速設(shè)備,從而使得加速管理節(jié)點在調(diào)用客戶端所需的目標(biāo)加速設(shè)備時,可以更精確地調(diào)用。
[0029]在第三方面的第一種可能的實現(xiàn)方式中,所述調(diào)用請求還包括:加速所述業(yè)務(wù)所需的目標(biāo)加速帶寬。
[0030]結(jié)合第三方面,或者第三方面第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述調(diào)用請求還包括所述業(yè)務(wù)所需的目標(biāo)NUMA信息。
[0031]結(jié)合第三方面,或者第三方面第一至第二種任意一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述請求單元還用于,當(dāng)客戶端需要釋放加速設(shè)備時,生成釋放所述目標(biāo)加速設(shè)備的釋放請求;所述發(fā)送單元還用于將所述釋放請求發(fā)送給所述加速管理節(jié)點。
[0032]第四方面,本發(fā)明實施例提供了一種加速管理方法,包括:分別接收至少一個加速節(jié)點上報的各自的加速設(shè)備的加速設(shè)備信息,其中,每個加速節(jié)點包括至少一個加速設(shè)備,所述加速設(shè)備信息包括:加速類型、算法類型;獲取客戶端發(fā)送的調(diào)用請求,所述調(diào)用請求用于調(diào)用加速設(shè)備對所述客戶端的業(yè)務(wù)進行加速,所述調(diào)用請求包括:目標(biāo)加速類型、目標(biāo)算法類型;查詢所述加速設(shè)備信息,從所述至少一個加速節(jié)點各自的加速設(shè)備中確定與所述調(diào)用請求相匹配的目標(biāo)加速設(shè)備;指示所述目標(biāo)加速設(shè)備所在的目標(biāo)加速節(jié)點響應(yīng)所述調(diào)用請求。本方法中,加速管理節(jié)點通過獲取各個加速節(jié)點的加速設(shè)備信息,并進行加速設(shè)備調(diào)用,可以根據(jù)客戶端的應(yīng)用程序的需求,并結(jié)合各個加速設(shè)備的加速類型,算法類型,給應(yīng)用程序分配相應(yīng)的加速設(shè)備,從而保證加速業(yè)務(wù)的正常運行,同時實現(xiàn)精