加速器虛擬化的方法、裝置及集中資源管理器的制造方法
【技術領域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)領域,特別涉及一種加速器虛擬化的方法、裝置及集中資源管 理器。
【背景技術】
[0002] 虛擬化技術可以實現(xiàn)互聯(lián)網(wǎng)資源的動態(tài)分配、靈活調度和跨域共享,可以提高IT 資源利用率,因此成為互聯(lián)網(wǎng)發(fā)展的新趨勢。
[0003] 加速器是互聯(lián)網(wǎng)資源的一種,是將CPU完成的部分功能轉移至加速器自身處理, 以降低CPU負載的功能單元,目前廣泛使用的加速器包括圖形加速器、加解密加速器、視 頻編解碼加速器、壓縮加速器等。但目前單一的加速器已經(jīng)越來越難以滿足CPU的負載轉 移的需求,為了提高加速器的性能,迫切需要將加速器和互聯(lián)網(wǎng)資源虛擬化技術相結合。 VirtIO的方案中,虛擬機監(jiān)控器為每個虛擬加速資源創(chuàng)建一對收發(fā)隊列,該收發(fā)隊列基于 共享內存實現(xiàn)。虛擬加速資源通過收發(fā)隊列實現(xiàn)對物理加速資源的訪問,虛擬機監(jiān)控器調 度每個虛擬加速資源的收發(fā)隊列,并且轉換成對物理加速資源的訪問。
[0004] 現(xiàn)有技術中,將互聯(lián)網(wǎng)資源虛擬化通常有兩種方法,第一種是VirtIO方案,另一 種是 SRIOV(Single_Root IO Virtuliaztion,單根 IO 虛擬化)方案。在 VirtIO 方案中, 虛擬機監(jiān)控器(Virtual Machine Monitor,也稱虛擬機管理器Virtual Machine Manager, 或者管理程序hypervisor)為每個虛擬資源創(chuàng)建一對收發(fā)隊列,虛擬資源通過收發(fā)隊列和 虛擬機監(jiān)控器的調度實現(xiàn)對物理資源的訪問。SRIOV方案是基于PCIe總線的IO虛擬化技 術,物理資源通過PCIe總線與CPU互聯(lián)。在SRIOV方案中,用軟件將收發(fā)隊列集成到硬件 中,允許在虛擬機中直接訪問硬件,從而提尚性能。
[0005] 通過虛擬化技術,可以將物理資源虛擬成多個虛擬資源,多個虛擬資源組合起來 構成虛擬機,在虛擬機上,可以部署業(yè)務處理單元完成不同的業(yè)務功能。一個典型的虛擬化 系統(tǒng)如圖1所示,包括集中資源管理器101,虛擬機監(jiān)控器102,虛擬機103、104。其中,集中 資源管理器和虛擬機監(jiān)控器可以是基于物理CUP的軟件實現(xiàn),在軟件層面,可以是操作系 統(tǒng)的一部分功能模塊,也可以是相對獨立的一部分功能軟件,具體形式并不限定。集中資源 管理器101用于完成對各種物理資源107的管理,具體的產(chǎn)品代表如開源軟件openstack, VMware公司的vCenter以及Huawei的FusionSphere等;虛擬機監(jiān)控器102用于實現(xiàn)虛擬 資源的管理。如圖1所示,虛擬機103上部署有業(yè)務處理單元105,虛擬機104上部署有業(yè) 務處理單元106。業(yè)務處理單元105和106上分別運行有工作負載。每個業(yè)務處理單元上 運行的業(yè)務負載可以有多個。虛擬機上的虛擬資源按照屬性區(qū)分可以分為虛擬計算資源、 虛擬存儲資源、虛擬網(wǎng)卡資源等,同樣物理資源也可以分為物理計算資源、物理存儲資源、 物理網(wǎng)卡資源。虛擬機通過虛擬資源訪問對應的物理資源,將工作負載轉移至對應的物理 資源。
[0006] 但現(xiàn)有的虛擬化技術無法實現(xiàn)加速器的虛擬化,因此也無法創(chuàng)建含有虛擬加速器 的虛擬機,從而無法在虛擬機中使用加速器。
【發(fā)明內容】
[0007] 本發(fā)明實施例中提供了一種加速虛擬化的方法、裝置及集中資源管理器,能解決 現(xiàn)有技術中無法實現(xiàn)加速器虛擬化的問題。
[0008] 為了解決上述技術問題,本發(fā)明實施例公開了如下技術方案:
[0009] -方面,提供了一種加速器虛擬化的方法,應用于主機,所述主機上運行有集中資 源管理器和虛擬機監(jiān)控器,所述方法包括:
[0010] 所述集中資源管理器接收虛擬機資源配置命令,所述虛擬機資源配置命令中包含 待創(chuàng)建虛擬加速器信息;
[0011] 所述集中資源管理器根據(jù)所述虛擬機資源配置命令中的待創(chuàng)建虛擬加速器信息, 從物理加速器資源池中選擇相匹配的物理加速器作為匹配物理加速器;
[0012] 所述集中資源管理器生成用于描述匹配物理加速器的描述信息;
[0013] 所述集中資源管理器向虛擬機監(jiān)控器發(fā)送第一虛擬機創(chuàng)建命令,所述第一虛擬機 創(chuàng)建命令包括所述描述信息,使得所述虛擬機監(jiān)控器收到所述第一虛擬機創(chuàng)建命令后,創(chuàng) 建包含有所述匹配物理加速器對應的第一虛擬加速器的第一虛擬機,其中,所述第一虛擬 加速器通過所述描述信息生成,或者,所述集中資源管理器向所述虛擬機監(jiān)控器發(fā)送第二 虛擬機創(chuàng)建命令,所述第二虛擬機創(chuàng)建命令包括描述信息獲取標識,使得所述虛擬機監(jiān)控 器收到所述第二虛擬機創(chuàng)建命令后創(chuàng)建第二虛擬機,并使得所述第二虛擬機根據(jù)所述描述 ?目息獲取標識獲取所述描述?目息后生成第二虛擬加速器。
[0014] 結合第一方面,在第一方面的第一種可能實現(xiàn)方式中,所述在集中資源管理器接 收虛擬機資源配置命令之前,所述方法還包括:
[0015] 所述集中資源管理器獲取物理加速器的信息,所述物理加速器至少包括本地物理 加速器或遠端物理加速器;
[0016] 所述集中資源管理器根據(jù)所述物理加速器的信息,生成物理加速器信息文件以生 成物理加速器資源池;
[0017] 所述集中資源管理器根據(jù)所述虛擬機資源配置命令中的待創(chuàng)建虛擬加速器信息, 從物理加速器資源池中選擇相匹配的物理加速器作為匹配物理加速器,包括:
[0018] 所述集中資源管理器根據(jù)所述待創(chuàng)建虛擬加速器信息,從所述物理加速器信息文 件中選擇相匹配的物理加速器的信息,將相匹配的物理加速器的信息對應的物理加速器作 為匹配物理加速器。
[0019] 結合第一方面的第一種可能實現(xiàn)方式,在第一方面的第二種可能實現(xiàn)方式中,所 述集中資源管理器從所述物理加速器資源池中選擇相匹配的物理加速器作為匹配物理加 速器,包括:
[0020] 所述集中資源管理器根據(jù)所述物理位置從所述物理加速器資源池中選擇相匹配 的匹配物理加速器;和/或
[0021] 所述集中資源管理器根據(jù)物理加速器負荷從所述物理加速器資源池中選擇相匹 配的匹配物理加速器。
[0022] 結合第一方面至第一方面的第二種可能實現(xiàn)方式中的任一種實現(xiàn)方式,在第一方 面的第三種可能實現(xiàn)方式中,所述匹配物理加速器不在所述主機上,所述虛擬機監(jiān)控器創(chuàng) 建所述第一虛擬機或第二虛擬機之后,所述方法還包括:
[0023] 所述虛擬機監(jiān)控器發(fā)送通訊地址和匹配物理加速器標識至所述匹配物理加速器 所在節(jié)點上的遠端加速器管理單元,以使所述虛擬機監(jiān)控器通過所述通訊地址與所述遠端 加速器管理單元進行通訊,且使所述遠端加速器管理單元通過所述匹配物理加速器標識與 對應的匹配物理加速器通訊。
[0024] 結合第一方面至第一方面的第三種可能實現(xiàn)方式中的任一種實現(xiàn)方式,在第一方 面的第四種可能實現(xiàn)方式中,所述在集中資源管理器創(chuàng)建第一虛擬機或第二虛擬機之后, 所述方法還包括:
[0025] 所述虛擬加速器將所述虛擬機上的業(yè)務單元發(fā)送的加速請求轉移至所述匹配物 理加速器進行處理,并將所述匹配物理加速器處理后的結果返回至所述業(yè)務單元,其中,所 述虛擬加速器為第一虛擬加速器或第二虛擬加速器。
[0026] 結合第一方面第四種可能實現(xiàn)方式,在第一方面的第五種可能實現(xiàn)方式中,所述 匹配物理加速器不在主機上,則所述第一虛擬加速器將所述虛擬機上的業(yè)務單元發(fā)送的加 速請求轉移至所述匹配物理加速器進行處理,并將所述匹配物理加速器處理后的結果返回 至所述業(yè)務單元,包括:
[0027] 所述虛擬加速器向所述遠端加速器管理單元發(fā)送基于握手協(xié)議的握手請求,并接 收所述加速器管理單元反饋的握手成功響應;
[0028] 所述虛擬加速器發(fā)送所述加速請求至所述遠端加速器管理單元,以使所述遠端加 速器管理單元將所述加速請求發(fā)送至對應的匹配物理加速器進行處理;
[0029] 所述虛擬加速器接收所述遠端加速器管理單元發(fā)送的加速請求響應,所述加速請 求響應是所述匹配物理加速器處理所述加速請求后向所述遠端加速器管理單元返回的處 理結果;
[0030] 所述虛擬加速器將所述加速請求響應發(fā)送至所述業(yè)務單元;
[0031 ] 其中,所述虛擬加速器為第一虛擬加速器或第二虛擬加速器。
[0032] 第二方面,提供了一種加速器虛擬化的裝置,應用于主機,所述裝置包括集中資源 管理器和虛擬機監(jiān)控器,所述集中資源管理器包括:
[0033] 接收單元,用于接收虛擬機資源配置命令,所述虛擬機資源配置命令中包含待創(chuàng) 建虛擬加速器信息;
[0034] 匹配物理加速器選擇單元,用于根據(jù)所述接受單元接收的虛擬機資源配置命令中 的待創(chuàng)建虛擬加速器信息,從物理加速器資源池中選擇相匹配的物理加速器作為匹配物理 加速器;
[0035] 生成單元,用于生成用于描述匹配物理加速器的描述信息;
[0036] 發(fā)送單元,用于向虛擬機監(jiān)控器發(fā)送第一虛擬機創(chuàng)建命令,所述第一虛擬機創(chuàng)建 命令包括所述描述信息,使得所述虛擬機監(jiān)控器收到所述第一虛擬機創(chuàng)建命令后,創(chuàng)建包 含有所述匹配物理加速器對應的第一虛擬加速器的第一虛擬機,其中,所述第一虛擬加速 器通過所述描述信息生成,或者,所述發(fā)送單元用于向所述虛擬機監(jiān)控器發(fā)送第二虛擬機 創(chuàng)建命令,所述第二虛擬機創(chuàng)建命令包括描述信息獲取標識,使得所述虛擬機監(jiān)控器收到 所述第二虛擬機創(chuàng)建命令后創(chuàng)建第二虛擬機,并使得所述第二虛擬機根據(jù)所述描述信息獲 取標識獲取所述描述信息后生成第二虛擬加速器。
[0037] 結合第二方面,在第二方面的第一種可能實現(xiàn)方式中,所述集中資源管理器還包 括:
[0038] 物理加速器信息獲取單元,用于獲取物理加速器的信息,所述物理加速器至少包 括本地物理加速器或遠端物理加速器;
[0039] 物理加速器資源池生成單元,用于根據(jù)所述物理加速器的信息,生成物理加速器 信息文件以生成物理加速器資源池;
[0040] 所述匹配物理加速器選擇單元還用于根據(jù)所述待創(chuàng)建虛擬加速器信息,從所述物 理加速器信息文件中選擇相匹配的物理加速器的信息,將相匹配的物理加速器的信息對應 的物理加速器作為匹配物理加速器。
[0041] 結合第二方面的第一種可能實現(xiàn)方式,在第二方面的第二種可能實現(xiàn)方式中,所 述匹配物理加速器選擇單元還用于根據(jù)所述物理位置從所述物理加速器資源池中選擇相 匹配的匹配物理加速器;和/或