基于open-stack的虛擬機策略管理裝置及管理方法
【技術領域】
[0001 ] 本發明涉及一種基于open-stack的虛擬機實時監控,尤其涉及一種基于open-stack的虛擬機策略管理裝置及管理方法。
【背景技術】
[0002]眾所周知,open-stack是一個開源的云計算管理平臺項目,被眾多開發項目所使用。
[0003]如圖1所示,open-stack由若干主要的模塊組件組合起來實現一個云平臺的構建,主要包括以下幾個部分:
[0004]計算控制模塊-Nova:用于為單個用戶或使用群組管理虛擬機實例的整個生命周期,根據用戶需求來提供虛擬服務。負責虛擬機創建、開機、關機、掛起、暫停、調整、迀移、重啟、銷毀等操作,配置CPU、內存等信息規格。
[0005]鏡像管理模塊-Glance:—套虛擬機鏡像查找及檢索系統,支持多種虛擬機鏡像格式(AK1、AM1、AR1、ISO、QC0W2、Raw、VD1、VHD、VMDK),有創建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。
[0006]網絡管理模塊-Neutron:提供云計算的網絡虛擬化技術,為Open-stack其他服務提供網絡連接服務。為用戶提供接口,可以定義Network、Subnet、Router,配置DHCP、DNS、負載均衡、L3服務,網絡支持GRE、VLAN。
[0007]虛擬機接口控制模塊-Libvirt:在虛擬機和云計算管理之間設置一個抽象管理層,libvirt提供各種不同的虛擬機API,供上層來管理不同的虛擬機。
[0008]虛擬機承載模塊:open_stack支持接入多種主流虛擬機軟件,包括KVM、LXC、QEMU、Hyper-V、VMware、XenServer 等。
[0009]Open-stack主要由各自不同功能的組件模塊實現一套完整的云計算管理平臺,其他模塊,還包括對象存儲模塊-Swift、身份認證模塊-keystone等等,與本發明沒有直接關系,不再贅述。
[0010]在原生的open-stack云平臺管理項目中,針對處于運行狀態的虛擬機,只能通過Libvirt實現對虛擬機的實時狀態監控,且要想實現實時動態地通知處于運行狀態的虛擬機執行不同的用戶需求(例如用戶希望虛擬機A到虛擬機B的網絡流量加密傳輸,希望虛擬機C的存儲內容加密保存等等),需要修改open-stack從頂層到底層所有涉及模塊的代碼,這對于open-stack原生云平臺管理系統侵入性很大,會引入大量漏洞,同時也可能會增加open-stack的不穩定性,且需要人力來實現,耗時耗力,增加人力成本。
【發明內容】
[0011]針對以上所述現有技術的不足,本發明提供一種基于open-stack的虛擬機策略管理裝置,在不入侵open-stack核心模塊代碼保證系統穩定的前提下,實現對虛擬機的實時監控和用戶需求的實時通知和執行。
[0012]本發明的一種基于open-stack的虛擬機策略管理裝置,如圖2和圖3所示,所述策略管理裝置從Horizon用戶交互界面模塊收集用戶需求,所述策略管理裝置對用戶需求進行策略處理,輸出與用戶需求匹配的策略指令至Qemu虛擬機承載模塊,并指導虛擬機執行策略指令;所述策略管理裝置包括一策略交互模塊,所述策略交互模塊直接收集來自于Horizon用戶交互界面模塊的用戶需求,并對用戶需求進行抽象處理,然后將抽象處理結果傳送至一策略管理模塊;所述策略管理模塊針對接收到的抽象處理后的用戶需求進行策略生成、策略存儲和策略下發,所述策略管理模塊將生成的策略存儲后下發至一策略轉發模塊;所述策略轉發模塊對接收到的策略進行識別并轉換成原生虛擬機可識別的策略指令派發給相應的策略實施模塊;由所述策略實施模塊指導Qemu虛擬機承載模塊中與策略指令對應的虛擬機執行策略指令。
[0013]本發明還提供一種基于open-stack的虛擬機管理方法,所述策略管理方法通過一策略管理裝置來實現對虛擬機策略的管理,如圖4所示,包括如下步驟:
[0014]S1、通過所述策略管理裝置中的一策略交互模塊中的一策略收集模塊收集Horizon用戶交互界面模塊的用戶需求;
[0015]S2、通過所述策略交互模塊中的一用戶交互模塊對所述策略收集模塊收集到的用戶需求進行抽象處理;
[0016]S3、通過所述用戶交互模塊將抽象處理后用戶需求傳送給所述策略管理裝置中的一策略管理模塊,通過所述策略管理模塊,針對抽象處理后的用戶需求生成與之匹配的策略;
[0017]S4、通過所述策略管理模塊將生成的策略進行存儲并打包下發給所述策略管理裝置中的一策略轉發模塊;通過所述策略轉發模塊識別策略并將策略轉換成原生虛擬機可識別的策略指令;
[0018]S5、通過所述策略轉發模塊判斷策略指令所對應的虛擬機,并通過所述策略轉發模塊中相應的一子轉發模塊將策略指令派發給所述策略管理裝置中的一策略實施模塊;
[0019]S6、通過所述策略實施模塊中的一與策略指令匹配的子實施模塊將所述策略指令派送給Qemu虛擬機承載模塊;
[0020]S7、通過所述與策略指令匹配的子實施模塊指導Qemu虛擬機承載模塊中策略指令對應的原生虛擬機執行策略指令。
[0021]通過使用本發明的虛擬機策略管理裝置及管理方法,可以在不入侵open-stack原生云平臺管理系統的前提下,實現實時監控運行狀態中的虛擬機,保證系統的穩定性和安全性。尤其對于虛擬機網絡流量和存儲對象的加密需求,使用本發明,可以讓云平臺用戶能夠具備控制網絡流量和存儲對象是否加密的能力,在不侵入Open-stack核心模塊代碼的前提下,實現通知虛擬機進行網絡流量加密和存儲加密的安全功能,實時地將用戶的安全需求通知虛擬機,讓虛擬機實時執行用戶需求。
【附圖說明】
[0022]圖1是open-stack原生架構圖;
[0023]圖2是本發明策略管理裝置結構示意圖;
[0024]圖3是本發明策略管理裝置與open-stack原生架構連接示意圖;
[0025]圖4是本發明策略管理方法流程示意圖。
【具體實施方式】
[0026]如圖2和3所示,本發明的一種基于open-stack的虛擬機策略管理裝置,所述策略管理裝置從Horizon用戶交互界面模塊收集用戶需求,所述策略管理裝置對用戶需求進行策略處理,輸出與用戶需求匹配的策略指令至Qemu虛擬機承載模塊,并指導虛擬機執行策略指令。
[0027]其中,所述策略管理裝置包括一策略交互模塊,所述策略交互模塊直接收集來自于Horizon用戶交互界面模塊的用戶需求,并對用戶需求進行抽象處理,然后將抽象處理結果傳送至一策略管理模塊;所述策略管理模塊針對接收到的抽象處理后的用戶需求進行策略生成、策略存儲和策略下發,所述策略管理模塊將生成的策略存儲后下發至一策略轉發模塊;所述策略轉發模塊對接收到的策略進行識別并轉換成原生虛擬機可識別的策略指令派發給相應的策略實施模塊;由所述策略實施模塊指導Qemu虛擬機承載模塊中與策略指令對應的虛擬機執行策略指令。
[0028]優選方式下,所述策略交互模塊包括一策略收集模塊及一用戶交互模塊;所述策略收集模塊直接收集來自于Horizon用戶交互界面模塊的用戶需求,并將用戶需求發送給所述用戶交互模塊;所述用戶交互模塊對接收到的用戶需求進行抽象處理,并將抽象處理后的用戶需求傳送至所屬策略管理模塊。
[0029]此外,所述策略轉發模塊包含至少一個子轉發模塊,所述子轉發模塊的數量與虛擬機系統中布局的物理服務器數量一致。由于在布局一個虛擬機系統時所采用的物理服務器的數量是根據系統的大小預先確定的,因而在為該系統配備策略管理裝置時所布局的子轉發模塊數量以物理服務器數量為準,布局完成之后不再改變。且每一子轉發模塊與每一物理服務器一一對應,所述每一子轉發模塊僅對其對應的物理服務器中的虛擬機用戶需求進行策略生成、策略存儲和策略下發。
[0030]所述策略實施模塊包含至少一個子實施模塊,且所述子實施模塊的數量與虛擬機數量保持一致,所述子實施模塊與虛擬機一一對應。每一子轉發模塊給至少一個子實施模塊發送策略指令;每一子實施模塊僅對應一個子轉發模塊;所述每一子轉發模塊僅向其對應的子實施模塊發送策略指令。所述策略實施模塊與Qemu虛擬機承載模塊實時交互,所述Qemu虛擬機承載模塊中每一虛擬機的建立,所述策略實施模塊即時布局與每一虛擬機對應的一子實施模塊。具體地說,由于布局虛擬機系統時會采用多個物理服務器,且每一服務器上會建立多個虛擬機,每一個虛擬機需要一個對應的子實施模塊,因而在給每一個物理服務器配備的子轉發模塊將負責給其對應物理服務器上的虛擬機對應的所有子實施模塊發送策略指令。