周晴倫



摘要:〖HT5”K〗針對OpenStack云平臺中云主機的運行及安全狀況,分析開源OpenStack云平臺對于云主機監控的關鍵技術,提出OpenStack云平臺的云主機監控系統解決方案,設計系統框架,實現一套云主機監控系統。該系統既有助于完善OpenStack云管理平臺,又為云平臺運維人員提供更好的云主機監控數據,為云用戶提供更好的云主機服務。
關鍵詞:云計算;OpenStack;云主機;監控系統
中圖分類號:TP319
文獻標識碼:A
文章編號:16727800(2017)004007303
0引言 云計算(Cloud Computing)是分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing)、虛擬化(Virtualization)、負載均衡(Load Balance)、網絡存儲(Network Storage Technologies)等傳統網絡與計算機技術等發展融合的產物[13]。自2006年谷歌提出云計算概念以來,云計算在全世界掀起了一股研究熱潮,涌現了多個開源云計算平臺,這些云計算平臺方便了科研人員的研究,對推動云計算技術的發展起到了重要作用。在這些開源云計算平臺中,應用比較廣泛的有Eucalyptus、OpenStack、Oracle VM、Abi Cloud、Open Nabula、Open QRM、Xen Server、ConVirt以及CloudStack等[4]。 OpenStack是由Rackspace和美國國家航空航天局合作發起的一個開源項目,為公有云和私有云的搭建以及管理提供一種解決方案。云平臺主要由Nova、Swift、Glance、Keystone和Horizon共5個部分組成[57]:①Nova即計算服務,提供運行在主機操作系統上潛在的虛擬化機制交互的驅動,并提供基于Web的API功能;②Swift即存儲服務,提供可擴展的對象存儲系統,可以用來創建基于云的彈性存儲;③Glance即鏡像服務,提供虛擬機鏡像的存儲、查詢和檢索系統;④即Keystone:認證服務,提供認證和管理用戶、賬號和角色信息服務,并為OpenStack對象存儲提供授權服務;⑤Horizon即UI服務,提供用戶Web管理控制臺,可以通過Web界面訪問的方式來操作管理網絡和虛擬機實例等。 OpenStack云平臺的低控制性、強兼容性和高擴展性使其深受企業青睞。OpenStack開源性使其不受某個廠商的限制,任何人都可以進行開發、使用[910]。同時OpenStack具有強大的社區支持,用戶可以很容易地獲得開發和使用相關參考資料。但是,OpenStack發展時間較短,系統還不夠完善,尤其是與之相關的監控功能。OpenStack是通過其Horizon組件來完成運行信息的查看等操作,而目前Horizon組件中僅僅可以查看一些簡單的云主機運行概況,比如啟動、暫停還是關閉,并無法獲取云主機監控數據。云平臺的運維人員和云用戶無法通過其監控數據得知云主機的詳細運行狀態。因此,必須設計一套完善的監控系統來實現對OpenStack云主機的實時監控,然后根據監控數據,采取相應的措施處理云主機。監控系統可以最大程度地提升運維人員的工作效率,同時簡化他們的工作[10]。 Libvirt是一套用來對底層各種形式的虛擬機(云主機)進行管理的編程接口,本身構建于一種抽象的概念之上。它為受支持的虛擬機監控程序實現的常用功能提供通用的API。它屏蔽了底層虛擬化層的不同,這樣用戶可以直接通過調用就可以實現對多種虛擬機的管理和控制,并且可以通過Libvirt接口獲得各種形式的虛擬機的運行狀況。Libvirt的基本架構如圖1所示。 從Libvirt基本框架可以看出,Libvirt為各種虛擬機管理器提供了一套統一的調用接口。Libvirt的主要功能有以下幾種:①虛擬機(云主機)管理:對虛擬機的生命周期進行管理,包括對虛擬機的啟動、停止、保存、恢復和遷〖HJ〗移等;②存儲管理:管理不同類型的存儲,主要對虛擬機鏡像的管理,如創建不同格式的鏡像文件;③網絡管理:管理物理和邏輯的網絡接口,如管理和創建虛擬網絡;④遠程機器支持:控制遠程機器(物理節點)上的虛擬機(見圖2),當管理應用程序和域位于不同的物理節點時,該管理程序可以在遠程節點上運行Libvirtd守護進程來實現對遠程機器的控制。Libvirtd守護進程會隨著Libvirt的安裝自行啟動,而且可以自動識別本地虛擬監控程序,并為其安裝驅動程序。該管理應用程序通過一種通用協議從本地Libvirt連接到遠程Libvirtd。
本文所設計的云主機監控系統的業務結構如圖3所示。①監控系統的用戶分為云平臺運維人員和云主機的用戶,可以通過身份認證后,登錄至監控系統中,可以根據各自的身份權限,看到不同的監控和展示界面;②監控系統用戶(包括云平臺運維人員和云主機用戶)可以通過監控管理端設置云主機監控的指標參數,監控管理端通過調用監控子系統進行設置,并寫入DB系統(數據庫系統)中;③監控系統用戶可以直接通過查詢DB系統來查看當前各云主機的監控指標參數;④實時展示端通過訪問DB系統,獲取云主機的各種參數,直觀展示給監控系統的用戶。
3云主機監控系統實現基于上述業務需求分析,本文的系統功能模塊設計如圖4所示。
(1)用戶管理模塊。主要實現用戶權限分配,用戶類型主要分為兩大類:云平臺運維人員和云用戶,各類型的用戶分別擁有不同級別的權限。 (2)數據庫模塊。用數據庫存儲相關數據表,比如用戶身份識別數據、云主機類型參數、云主機的設置參數、云主機自動控制的參數閾值等。 (3)云主機采集器。主要是利用Libvirt接口完成云主機運行狀態信息的采集工作,比如云主機CPU占用情況、內存占用情況、網絡流量使用情況以及系統磁盤占用情況等。 (4)監控功能模塊。這部分包括了云主機的監視展示、云主機的監控參數設置、自動控制云主機模塊、監控告警模塊。監視展示是在頁面上直觀展現當前云主機的各種運行數據指標。監控參數設置是指各云主機所需監控參數的設置。自動控制模塊是監控系統根據各云主機的控制閾值、當前云平臺的資源狀況以及云主機的重要性等級來決定重啟、關閉云主機等操作。 在OpenStack平臺上,對云主機的數據采集主要包括CPU狀態、內存狀態、網絡狀況、磁盤狀況,將這些數據進行處理可以獲得一些更多的性能參數。對云主機周期性采集的數據描述如表1所示。
4結語 本文設計的監控系統不僅能夠監測到云主機的運行數據,而且能夠根據云主機的運行狀態、系統突發異常狀況或者其它有關云平臺用戶的需求等一系列狀況,對云主機甚至整個云平臺作出智能操作,提高系統的自律性。該系統在OpenStack云平臺的實際運維過程中效果良好。
參考文獻:[1]梁宇.OpenStack資源監控和計費系統的設計和實現[D].沈陽:中國科學院研究生院(沈陽計算技術研究所),2014.
[2]孫香花.云計算研究現狀與發展趨勢[J].計算機測量與控制,2011,19(5):9981001.
[3]張建勛,古志民,鄭超.云計算研究進展綜述[J].計算機應用研究,2010,27(2):429433.
[4]陳俊汝.基于openstack的維修信息中心云平臺設計與實現[D].成都:電子科技大學,2013.
[5]李小寧,李磊,金連文,等.基于OpenStack構建私有云計算平臺[J].電信科學,2012(9):18.
[6]OpenStack[DB/OL].http://www.OpenStack.org.cn/,2016.[7]王志浩,王俊芳,高瞻.基于OpenStack的綜合網絡管理體系架構研究[J].計算機與網絡,2015(16):5759.
[8]OpenStack[EB/OL].http://hc.csdn.net/article.html?arcid=2808301,2012.
[9]劉智超.基于OpenStack的虛擬機集群監控系統的設計與實現[D].北京:北京郵電大學,2014.
[10]OMA AGMON BENYEHUDA,MULI BENYEHUDA,ASSAF SCHUSTER.Deconstructing amazon EC2 spot instance pricing[C].In 2011 Third IEEE International Conference on Cloud Computing Technology and Science,2011:304311.(責任編輯:孫娟)