目標加速設備被配置給了客戶端300,當客戶端300中的應用程序的需要釋放加速設備時,客戶端300可以通過釋放請求,告知加速管理節(jié)點100釋放該目標加速設備。
[0096]更進一步地,在釋放目標加速設備之后,所述存儲單元102還用于將之前保存的所述分配結果置為無效,由于目標加速設備已經(jīng)被釋放,因此,目標加速設備的分配結果也需要置為無效,以免影響加速管理節(jié)點繼續(xù)為客戶端分配加速設備。
[0097]如圖3所示,本發(fā)明實施例提供了一種加速節(jié)點200的結構示意圖,該加速節(jié)點200包括:代理單元201、驅動202以及至少一個加速設備,示例性的,這里分別用203a和203b來分別表示兩個加速設備,實際的加速設備的數(shù)量不應受此限制;本領域技術人員應當知道,所述驅動202用于驅動加速設備203a和203b,加速設備203a和203b分別用于提供硬件加速功能;所述代理單元201用于:
[0098]調用所述驅動202分別查詢所述至少一個加速設備,以獲取每個加速設備的加速設備信息,所述加速設備信息包括:加速類型、算法類型,示例性的,代理單元201可以周期性地調用驅動202查詢加速設備203a和203b上的各個接口,獲取加速設備203a和203b的加速設備信息;
[0099]將查詢到的所述加速設備信息上報給加速管理節(jié)點100,具體地,代理單元201查詢到所述加速設備信息之后,可以以RPC的方式調用加速管理節(jié)點100中的接收單元101,將所述加速設備信息上報給加速管理節(jié)點100。
[0100]需要說明的是,本實施例中,本實施例中,加速節(jié)點200具體也可以為一個物理主機,該物理主機中可以包括存儲器、處理器以及至少一個加速設備(也稱為加速器),加速設備可以為處理器、GPU、FPGA、PCI設備等,其中,代理單元201以及驅動202可以是存儲在存儲器中的程序指令,處理器讀取存儲器中的程序指令以執(zhí)行代理單元201以及驅動202相應的功能。
[0101]本實施例中,所述加速設備信息還包括:加速帶寬。
[0102]本實施例中,加速節(jié)點通過上報自身的加速設備的加速設備信息給加速管理節(jié)點,使得加速管理節(jié)點可以根據(jù)上報的加速設備信息,給客戶端配置合適的加速設備,從而滿足業(yè)務需求,并實現(xiàn)精確調用。
[0103]進一步地,本實施例中,所述代理單元201還用于:
[0104]接收所述加速管理節(jié)點100發(fā)送的配置指示消息,其中,在所述加速設備信息包括:加速類型、算法類型的情況下,所述配置指示消息指示了與客戶端的調用請求相匹配的目標加速設備的目標加速類型、目標算法類型,或者在所述加速設備信息包括:加速類型、算法類型以及加速帶寬的情況下,所述配置指示消息指示了與客戶端300的調用請求相匹配的目標加速設備的目標加速類型、目標算法類型以及目標加速帶寬;并根據(jù)所述配置指示消息,調用所述驅動202檢測所述目標加速設備是否正常工作;當所述目標加速設備正常工作時,將所述目標加速設備的目標接口配置給所述客戶端300。
[0105]進一步地,本實施例中,當加速節(jié)點200與客戶端300為同一個物理主機時,且該物理主機采用多核架構時,所述加速設備信息還包括:非統(tǒng)一內(nèi)存訪問架構NUMA信息。相應的,所述配置指示消息還指示了與客戶端的調用請求相匹配的目標NUMA信息。
[0106]加速節(jié)點將每個加速設備的NUMA信息上報給加速管理節(jié)點100,以便于加速管理節(jié)點100根據(jù)NUMA信息,給客戶端300分配合適的目標加速設備,保證客戶端的業(yè)務跟目標加速設備在同一個NUMA中,以提高存儲時的讀寫性能。
[0107]需要說明的是,加速設備對客戶端300提供加速功能時,具體是通過加速設備的接口與客戶端300通信的,一個加速設備可能包括不止一個接口,代理單元201在配置時,是把其中一個接口作為目標接口,配置給客戶端的。
[0108]更進一步地,所述代理單元201還用于將所述目標加速類型、所述目標算法類型以及所述目標加速帶寬配置為所述目標接口的硬件屬性,應當知道,在前面的描述中,當把目標加速設備的目標接口配置給了客戶端300之后,該目標加速設備就可以給客戶端300提供加速功能,與此同時,如果目標加速設備的加速帶寬未被全部占用,該目標加速設備理論上還可以通過其它接口為別的客戶端的應用程序提供硬件加速功能,但是,由于代理單元201是根據(jù)所述加速管理節(jié)點100發(fā)送的配置指示消息配置目標加速設備,而加速管理節(jié)點在確定目標加速設備時,是將加速類型和算法類型分別與所述目標加速類型和所述目標算法類型相同,且剩余帶寬大于或等于所述目標加速帶寬的加速設備作為目標加速設備的,由此可知,如果將一個未占用帶寬遠大于客戶端所需的目標加速帶寬的目標加速設備配置給了客戶端,就會對該目標加速設備的加速能力造成浪費。因此,在本實施例中,代理單元201將目標接口配置給客戶端300之后,還可以將目標接口的硬件屬性配置成所述目標加速類型、所述目標算法類型以及所述目標加速帶寬,以便后續(xù)代理單元201可以周期性的調用驅動202查詢該目標加速設備包括目標接口在內(nèi)的各個接口,實時獲取該目標加速設備的加速設備屬性,進而使得加速管理節(jié)點100可以將該目標加速設備分配給其它客戶端,從而最大限度地發(fā)揮該目標加速設備的加速能力。
[0109]本實施例中,進一步地,當客戶端300的業(yè)務完成加速后,客戶端300會給加速管理節(jié)點100發(fā)送釋放所述目標加速設備的釋放請求,則加速管理節(jié)點100會調用所述代理單元201釋放所述目標加速設備,因此,所述代理單元201還用于響應所述加速管理節(jié)點100,釋放所述目標加速設備。
[0110]更進一步地,所述代理單元210還用于將所述目標接口的硬件屬性置為空。
[0111]在前面的描述中,為了最大限度發(fā)揮目標加速設備的加速能力,代理單元210將目標接口的硬件屬性配置成所述目標加速類型、所述目標算法類型以及所述目標加速帶寬,當代理單元201響應所述加速管理節(jié)點100,釋放所述目標加速設備之后,相應的,也需要將所述目標接口的硬件屬性置為空,以表示該目標接口未被占用,以避免代理單元201周期性地查詢加速設備信息時,獲取的目標加速設備的加速設備信息出現(xiàn)錯誤。
[0112]如圖4所示,本發(fā)明實施例提供了一種客戶端300的結構示意圖,該客戶端300包括:
[0113]請求單元301,用于根據(jù)業(yè)務的加速需求生成調用請求,所述調用請求包括加速所述業(yè)務所需的目標加速類型、目標算法類型;
[0114]發(fā)送單元302,用于將所述調用請求發(fā)送給加速管理節(jié)點,以申請調用與所述調用請求相匹配的目標加速設備來加速所述業(yè)務。
[0115]進一步地,所述調用請求還可以包括加速所述業(yè)務所需的目標加速帶寬。
[0116]更進一步地,所述調用請求還可以包括所述業(yè)務所需的目標NUMA信息。
[0117]需要說明的是,本實施例中,客戶端300具體可以是運行應用程序的物理主機,該物理主機可以包括存儲器以及處理器,處理器通過讀取存儲器中的應用程序,以執(zhí)行相應的功能,其中,應用程序根據(jù)功能可以分為請求單元301以及發(fā)送單元302,請求單元301是根據(jù)其需要卸載到硬件上進行加速的業(yè)務(即應用程序的部分功能)的加速需求,生成相應的調用請求,該調用請求具體包括加速該業(yè)務所需要的目標加速類型、目標算法類型以及目標加速帶寬,或者還可以進一步包括目標NUMA信息,發(fā)送單元302則通過與加速管理節(jié)點100之間的通信接口反饋給加速管理節(jié)點100,以向加速管理節(jié)點100申請與所述調用請求相匹配的目標加速設備。
[0118]采用本發(fā)明實施例的方案,客戶端的應用程序可以將滿足加速自身業(yè)務需求的加速設備所對應的目標加速類型、目標算法類型以及目標加速帶寬發(fā)送給加速管理節(jié)點,向該加速管理節(jié)點申請加速設備,從而使得加速管理節(jié)點在調用客戶端所需的目標加速設備時,可以更精確地調用,同時,由于加速管理節(jié)點調用的目標加速設備的加速類型、算法類型、加速帶寬以及目標NUMA信息與客戶端所申請的目標加速類型、目標算法類型、目標加速帶寬以及目標NUMA信息相適應,可以保證業(yè)務的正常運行。
[0119]進一步地,所述請求單元301還用于,當所述業(yè)務完成加速時,生成釋放所述目標加速設備的釋放請求;
[0120]所述發(fā)送單元302還用于將所述釋放請求發(fā)送給所述加速管理節(jié)點100,以便所述加速管理節(jié)點調用所述目標加速設備所在的目標加速節(jié)點釋放所述目標加速設備。
[0121]也就是說,即當客戶端的應用程序的業(yè)務完成加速之后,需要指示加速管理節(jié)點釋放相應的目標加速設備,避免對目標加速設備的無效占用。
[0122]以下結合附圖5-7對本發(fā)明實施例的方法進行簡要說明,應當知道,圖5-7所示的方法實施例分別與圖2-4所示的裝置實施例一一對應,因此,可以相互參考,后續(xù)不再說明。
[0123]如圖5所示,本發(fā)明實施例提供一種加速管理方法的流程圖,應用于加速管理節(jié)點(參見圖2),所述方法可以包括如下步驟:
[0124]S401,分別接收至少一個加速節(jié)點上報的各自的加速設備的加速設備信息,其中,每個加速節(jié)點包括至少一個加速設備,所述加速設備信息包括:加速類型、算法類型;
[0125]S402,存儲所述加速設備信息,應當知道,因為接收加速設備信息的接收單元自身可能具有緩存能力,因此S402是可選的;
[0126]S403,獲取客戶端發(fā)送的的調用請求,所述調用請求用于調用加速設備對所述客戶端的業(yè)務進行加速,所述調用請求包括:目標加速類型、目標算法類型;
[0127]S404,查詢所述加速設備信息,從所述至少一個加速節(jié)點各自的加速設備中確定與所述調用請求相匹配的目標加速設備;
[0128]S405,指示所述目標加速設備所在的目標加速節(jié)點響應所述調用請求,以便所述目標加速節(jié)點將所述目標加速設備配置給所述客戶端,示例性地,加速管理節(jié)點可以給所述目標加速節(jié)點發(fā)送配置指示消息,所述配置指示消息用于指示所述目標加速節(jié)點將所述目標加速設備配置給所述客戶端。
[0129]更為具體地,S404可以包括:查詢所述加速設備信息,以從所述至少一個加速節(jié)點各自的加速設備中確定加速類型和算法類型分別與所述目標加速類型和所述目標算法類型相同的所述目標加速設備。
[0130]本實施例中,加速管理節(jié)點通過獲取各個加速節(jié)點的加速設備信息,并進行加速設備調用,可以根據(jù)客戶端的應用程序的需求,并結合各個加速設備的加速類型以及算法類型,給應用程序分配相應的加速設備,實現(xiàn)正確調用,從而保證加速業(yè)務的正常運行。
[0131]進一步地,所述加速信息還包括:加速帶寬,其中,每個加速設備的加速帶寬包括:總帶寬以及被占用帶寬,相應的,所述調用請求還包括:目標加速帶寬;
[0132]則S404具體可以包括:
[0133]查詢所述加速設備信息,以從所述至少一個加速節(jié)點各自的加速設備中確定加速類型和算法類型分別與所述目標加速類型和所述目標算法類型相同,且剩余帶寬大于或等于所述目標加速帶寬的備選加速設備,并將所述備選加速設備中的一個確定為所述目標加速設備,其中,所述剩余帶寬根據(jù)所述總帶寬以及所述被占用帶寬計算得到。
[0134]更進一步地,S401中所接收的加速設備信息還可以包括:NUMA信息,S403中所獲取的調用請求還可以包括:目標NUMA信息;則S404具體還可以包括:
[0135]查詢所述加速設備信息,以從所述至少一個加速節(jié)點各自的加速設備中確定加速類型和算法類型分別與所述目標加速類型和所述目標算法類型相同,且剩余帶寬大于或等于所述目標加速帶寬,以及NUMA信息與所述目標NUMA信息一致的備選加速設備,并將所述備選加速設備中的一個確定為所