《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 多云平臺(tái)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
多云平臺(tái)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2017年微型機(jī)與應(yīng)用第10期
楊靖琦,,胡勛
中國電子科學(xué)研究院,,北京 100041
摘要: 近年來,,隨著云計(jì)算的興起和逐步發(fā)展,,云平臺(tái)已成為各類企業(yè)和機(jī)構(gòu)提供服務(wù)的主要方式,,為保證云平臺(tái)高效穩(wěn)定運(yùn)行,,需要對(duì)云平臺(tái)進(jìn)行實(shí)時(shí)監(jiān)控,。針對(duì)以上需求,,基于開源監(jiān)控工具Ganglia和Ceilometer,,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)多云平臺(tái)監(jiān)控系統(tǒng),,提供云平臺(tái)、物理機(jī)和虛擬機(jī)中內(nèi)存,、CPU和硬盤等資源使用情況的監(jiān)控能力,,同時(shí),通過物理資源管理,、監(jiān)控策略管理,、日志管理和用戶管理等功能,提升監(jiān)控系統(tǒng)的可擴(kuò)展水平和用戶友好程度,。最終,,實(shí)現(xiàn)對(duì)多云平臺(tái)全方位可視化的管理和控制。
Abstract:
Key words :

  楊靖琦,,胡勛

 ?。ㄖ袊娮涌茖W(xué)研究院,北京 100041)

  摘要:近年來,,隨著云計(jì)算的興起和逐步發(fā)展,,云平臺(tái)已成為各類企業(yè)和機(jī)構(gòu)提供服務(wù)的主要方式,為保證云平臺(tái)高效穩(wěn)定運(yùn)行,,需要對(duì)云平臺(tái)進(jìn)行實(shí)時(shí)監(jiān)控,。針對(duì)以上需求,基于開源監(jiān)控工具Ganglia和Ceilometer,,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)多云平臺(tái)監(jiān)控系統(tǒng),,提供云平臺(tái),、物理機(jī)虛擬機(jī)中內(nèi)存、CPU和硬盤等資源使用情況的監(jiān)控能力,,同時(shí),,通過物理資源管理、監(jiān)控策略管理,、日志管理和用戶管理等功能,,提升監(jiān)控系統(tǒng)的可擴(kuò)展水平和用戶友好程度。最終,,實(shí)現(xiàn)對(duì)多云平臺(tái)全方位可視化的管理和控制,。

  關(guān)鍵詞:云平臺(tái);監(jiān)控系統(tǒng),;物理機(jī),;虛擬機(jī)

  中圖分類號(hào):TP399文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.030

  引用格式:楊靖琦,胡勛.多云平臺(tái)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,,2017,36(10):102-105.

0引言

  計(jì)算平臺(tái)的發(fā)展主要經(jīng)歷了以主機(jī)為中心和以PC為中心兩個(gè)階段,,目前正處于以網(wǎng)絡(luò)為中心的階段。在這一階段,,隨著云計(jì)算技術(shù)的快速發(fā)展,,以云平臺(tái)為代表的網(wǎng)絡(luò)計(jì)算平臺(tái)逐漸成為主要的資源提供方式。企業(yè)可以基于分散的計(jì)算,、存儲(chǔ)等物理資源按照不同組織架構(gòu)搭建云平臺(tái),,動(dòng)態(tài)地為用戶提供所需的計(jì)算、存儲(chǔ)等資源,,提高資源利用率,,降低運(yùn)營復(fù)雜度和成本[1]。隨著云平臺(tái)的不斷增多和規(guī)模的不斷擴(kuò)大,,平臺(tái)監(jiān)控難度急劇增加,,傳統(tǒng)的人工查詢方式已不適用于多個(gè)大規(guī)模云平臺(tái)的監(jiān)控和管理,為實(shí)現(xiàn)更有效的云平臺(tái)管理,,需提供云平臺(tái)資源的統(tǒng)一監(jiān)控管理能力,,從而直觀地了解平臺(tái)運(yùn)行狀態(tài),最大限度地使用系統(tǒng)的資源,。

  目前,,國內(nèi)已開展了對(duì)云平臺(tái)監(jiān)控的研究,其中一些研究[2]實(shí)現(xiàn)了OpenStack云平臺(tái)中虛擬資源的監(jiān)控,,另外一些研究[3]實(shí)現(xiàn)了OpenStack云平臺(tái)中物理資源的監(jiān)控,,但現(xiàn)有云平臺(tái)監(jiān)控研究成果大多針對(duì)單個(gè)云平臺(tái)的單一資源類型,無法提供多個(gè)平臺(tái)中物理資源和虛擬資源的多功能,、一體化監(jiān)控系統(tǒng),。為解決現(xiàn)有問題,,本文設(shè)計(jì)并實(shí)現(xiàn)了面向多個(gè)云平臺(tái)、覆蓋物理資源和虛擬資源的監(jiān)控系統(tǒng),。

  本文的多云平臺(tái)監(jiān)控系統(tǒng)面向OpenStack云平臺(tái)設(shè)計(jì)和實(shí)現(xiàn),,具有可移植性,,其中物理資源監(jiān)控是平臺(tái)無關(guān)的,,無需修改即可適用于其他平臺(tái),虛擬資源監(jiān)控可通過修改訪問接口的方式應(yīng)用于對(duì)其他云平臺(tái)的監(jiān)控,,由于文章篇幅限制,,在此不做贅述。

1云平臺(tái)及監(jiān)控方法

  1.1OpenStack

  OpenStack是美國國家航天局和Rackspace公司共同開發(fā)的開源云計(jì)算平臺(tái),,可支撐公有云或私有云的建設(shè)和管理,,為用戶提供IaaS(基礎(chǔ)設(shè)施即服務(wù))層的云服務(wù)。OpenStack包括Nova,、Swift,、Glance和Keystone等主要模塊,分別提供計(jì)算,、存儲(chǔ),、鏡像和安全認(rèn)證等能力,由于其具備模塊松耦合,、組件配置靈活,、易于二次開發(fā)等優(yōu)點(diǎn),已成為應(yīng)用最廣的開源云平臺(tái)[4],。

  1.2Ceilometer

  2012年10月,,隨著OpenStack Folsom的發(fā)布,Ceilometer項(xiàng)目發(fā)布了第一個(gè)版本,,從2013年開始,,Ceilometer作為OpenStack發(fā)行版的一部分發(fā)布,提供OpenStack平臺(tái)的虛擬機(jī)監(jiān)控功能,。為適應(yīng)云計(jì)算環(huán)境節(jié)點(diǎn)大規(guī)模動(dòng)態(tài)調(diào)整的特點(diǎn),,Ceilometer通過插件機(jī)制,提供了可靈活擴(kuò)展的架構(gòu),。

Ceilometer通過輪詢計(jì)算節(jié)點(diǎn)上的虛擬機(jī)實(shí)例獲取監(jiān)控信息,,并在數(shù)據(jù)庫中將監(jiān)控信息進(jìn)行持久化存儲(chǔ),為計(jì)費(fèi)和監(jiān)控提供支撐,。

Image 001.jpg

  1.3Ganglia

  目前,,在集群計(jì)算機(jī)監(jiān)控領(lǐng)域主要有Cacti、Parmon,、Nagios,、Ganglia等軟件系統(tǒng),。通過對(duì)此類軟件的比較分析可知,Ganglia具備功能模塊豐富,、監(jiān)控功能強(qiáng),、可擴(kuò)展性高等優(yōu)點(diǎn),同時(shí)具有良好的移植性,,支撐在Linux,、Solaris、Mac OS和Windows等主流操作系統(tǒng)上運(yùn)行,,可滿足復(fù)雜環(huán)境下的集群監(jiān)控需求[5],。

  Ganglia是加州學(xué)校伯克利分校發(fā)起的計(jì)算機(jī)集群監(jiān)視項(xiàng)目[6],用于監(jiān)控大規(guī)模集群的運(yùn)行狀態(tài),,如:CPU,、內(nèi)存、網(wǎng)絡(luò)負(fù)載,、硬盤利用率等,。Ganglia采用分布式的監(jiān)控結(jié)構(gòu),通過安裝gmond和gmetad軟件實(shí)現(xiàn)集群的監(jiān)控,,其中,,被監(jiān)控的節(jié)點(diǎn)安裝gmond實(shí)現(xiàn)節(jié)點(diǎn)運(yùn)行狀態(tài)的收集和上報(bào);監(jiān)控節(jié)點(diǎn)安裝gmetad實(shí)現(xiàn)與gmond通信,,通過輪詢的方式收集區(qū)域內(nèi)節(jié)點(diǎn)上報(bào)的狀態(tài)信息,。Ganglia使用RRDTool工具實(shí)現(xiàn)采集數(shù)據(jù)的存儲(chǔ)和處理,并可通過個(gè)性化配置實(shí)現(xiàn)基于Web的圖形化顯示,。

2系統(tǒng)設(shè)計(jì)

  2.1系統(tǒng)架構(gòu)設(shè)計(jì)

  多云平臺(tái)監(jiān)控系統(tǒng)提供云平臺(tái),、服務(wù)器和虛擬機(jī)監(jiān)控?cái)?shù)據(jù)的獲取、處理和展現(xiàn)功能,,其系統(tǒng)架構(gòu)如圖1所示,。

  資源層:依托分布式服務(wù)器設(shè)備,基于OpenStack開源軟件,,搭建異構(gòu)云計(jì)算平臺(tái),,可為用戶按需提供物理資源和虛擬資源,是監(jiān)控系統(tǒng)監(jiān)控主體,。

  監(jiān)控層:基于Ganglia軟件實(shí)現(xiàn)服務(wù)器資源狀態(tài)監(jiān)控,,基于Ceilometer組件實(shí)現(xiàn)虛擬機(jī)資源狀態(tài)監(jiān)控,通過對(duì)服務(wù)器和虛擬機(jī)監(jiān)控信息的獲取和融合處理,,為展示層提供所需狀態(tài)數(shù)據(jù),,同時(shí)根據(jù)資源監(jiān)控策略,實(shí)現(xiàn)資源狀態(tài)告警和利用率告警信息生成。

  展示層:以Web頁面方式進(jìn)行信息展示,,提供異構(gòu)云監(jiān)控和異構(gòu)云管理兩類功能,,實(shí)現(xiàn)異構(gòu)云平臺(tái)資源信息和狀態(tài)的統(tǒng)一監(jiān)視和控制。其中:

  多云平臺(tái)監(jiān)控主要展現(xiàn)云平臺(tái)總體狀態(tài),、云平臺(tái)監(jiān)控,、服務(wù)器監(jiān)控、虛擬機(jī)監(jiān)控等相關(guān)信息,。

  (1)云平臺(tái)總體狀態(tài):實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)中心所包含的服務(wù)器,、虛擬機(jī)的數(shù)量和相關(guān)信息;

  (2)云平臺(tái)監(jiān)控:對(duì)數(shù)據(jù)中心進(jìn)行監(jiān)控,,提供數(shù)據(jù)中心列表,、地理位置、概述,、運(yùn)行狀態(tài)等信息的展示;

  (3)服務(wù)器監(jiān)控:對(duì)服務(wù)器進(jìn)行監(jiān)控,,提供服務(wù)器實(shí)時(shí)監(jiān)控信息,,并展示服務(wù)器所包含的虛擬機(jī)信息;

  (4)虛擬機(jī)監(jiān)控:對(duì)虛擬機(jī)進(jìn)行監(jiān)控,,提供虛擬機(jī)實(shí)時(shí)監(jiān)控信息,,并展示虛擬機(jī)配置。

  多云平臺(tái)管理主要提供物理資源管理,、監(jiān)控策略管理,、日志查詢和用戶管理等功能。

  (1)物理資源管理:提供數(shù)據(jù)中心,、服務(wù)器等物理區(qū)域和物理設(shè)備信息添加修改功能,;

  (2)監(jiān)控策略管理:對(duì)服務(wù)器和虛擬機(jī)等計(jì)算資源需要監(jiān)控的指標(biāo)和閾值進(jìn)行查看和設(shè)置;

  (3)日志查看:記錄計(jì)算資源監(jiān)控軟件產(chǎn)生的用戶操作日志和告警日志,,提供分時(shí)段查看功能,;

  (4)用戶管理:提供監(jiān)控系統(tǒng)用戶的增加、刪除,、修改和查詢功能,。

  2.2系統(tǒng)類圖與接口設(shè)計(jì)

  使用基于開放源碼的Web應(yīng)用框架Django開發(fā)異構(gòu)云平臺(tái)監(jiān)控系統(tǒng),構(gòu)建支持監(jiān)控信息處理和顯示的MTV架構(gòu),,即Model,、Template、View,,多云平臺(tái)監(jiān)控系統(tǒng)類圖如圖2所示,。

  

Image 002.jpg

  其中,Model(Cloud,、Server,、VM,、Log)定義資源信息和監(jiān)控?cái)?shù)據(jù)的存儲(chǔ)格式,并且提供了數(shù)據(jù)庫訪問的API,;View(IndexView,、CloudView、ServerView,、VmView,、ManagerView)定義應(yīng)該顯示哪些數(shù)據(jù),是業(yè)務(wù)邏輯處理模塊,;Template定義View的數(shù)據(jù)應(yīng)該如何被顯示,。MonitorVM、GraphForServer,、UpdateStatus三個(gè)類分別提供虛擬機(jī)狀態(tài)監(jiān)控,、服務(wù)器狀態(tài)繪圖和狀態(tài)信息更新功能。

  按照系統(tǒng)類設(shè)計(jì),,異構(gòu)云平臺(tái)監(jiān)控系統(tǒng)內(nèi)部接口示意圖如圖3所示,,接口標(biāo)識(shí)見表1。

 

Image 003.jpg

  Image 004.jpg

  監(jiān)控狀態(tài)獲取VMStatus監(jiān)控虛擬機(jī)資源使用情況

3系統(tǒng)實(shí)現(xiàn)與部署

  基于OpenStack搭建多個(gè)云計(jì)算平臺(tái)[7],,用來模擬四個(gè)數(shù)據(jù)中心,,每個(gè)云平臺(tái)由1個(gè)控制節(jié)點(diǎn)和網(wǎng)絡(luò)節(jié)點(diǎn)及若干個(gè)計(jì)算節(jié)點(diǎn)組成,基于KVM的虛擬化技術(shù)實(shí)現(xiàn)計(jì)算資源的虛擬化,,構(gòu)建彈性計(jì)算環(huán)境,。其中環(huán)境配置及功能如表2所示。

Image 005.jpg

  所有節(jié)點(diǎn)通過2臺(tái)48口交換機(jī)相連,,一臺(tái)負(fù)責(zé)控制流信息的交互,,另一臺(tái)用于數(shù)據(jù)流信息的交互。環(huán)境中計(jì)算資源與外部網(wǎng)絡(luò)是隔離的,,網(wǎng)絡(luò)節(jié)點(diǎn)單獨(dú)有一個(gè)網(wǎng)卡與外部網(wǎng)絡(luò)相連,,通過GRE隧道協(xié)議,使得外部網(wǎng)絡(luò)環(huán)境中的用戶能夠登錄訪問虛擬機(jī),。

  通過安裝OpenStack的Ceilometer模塊和Ganglia軟件(Python版),,多云平臺(tái)監(jiān)控系統(tǒng)可對(duì)多個(gè)云平臺(tái)節(jié)點(diǎn)進(jìn)行監(jiān)控,并能夠動(dòng)態(tài)適應(yīng)集群規(guī)模調(diào)整,,以適應(yīng)混合云伸縮的需要,,其安裝示意圖如圖4所示。

  多云平臺(tái)監(jiān)控服務(wù)器端:運(yùn)行基于Django Web框架的多云平臺(tái)監(jiān)控軟件,,通過獲取并處理Ceilometer和Ganglia的監(jiān)控?cái)?shù)據(jù),,實(shí)現(xiàn)對(duì)云平臺(tái)中虛擬資源和物理資源的監(jiān)控,為用戶提供基于瀏覽器的可視化交互界面,系統(tǒng)后臺(tái)數(shù)據(jù)存儲(chǔ)在MySQL數(shù)據(jù)庫中,。

  Ceilometer:云平臺(tái)各節(jié)點(diǎn)安裝compute agent收集節(jié)點(diǎn)的狀態(tài)信息,,實(shí)現(xiàn)虛擬機(jī)的監(jiān)控,Ceilometer監(jiān)控信息可存儲(chǔ)于MangoDB,、MySQL,、PostgreSQL和HBase等數(shù)據(jù)庫中,其中對(duì)MongoDB是支持最好的,,本文系統(tǒng)使用MangoDB存儲(chǔ)虛擬機(jī)監(jiān)控信息,。

  Ganglia:云平臺(tái)控制節(jié)點(diǎn)安裝gmetad和gmond,網(wǎng)絡(luò)節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)安裝gmond,,通過修改源代碼,,選取并配置所需監(jiān)控指標(biāo),實(shí)現(xiàn)集群整體和各物理節(jié)點(diǎn)CPU,、內(nèi)存,、硬盤和網(wǎng)絡(luò)負(fù)載等運(yùn)行狀態(tài)監(jiān)控,Ganglia監(jiān)控?cái)?shù)據(jù)默認(rèn)存儲(chǔ)在RRD數(shù)據(jù)庫中,。

  多云平臺(tái)監(jiān)控系統(tǒng)可實(shí)現(xiàn)對(duì)各個(gè)云平臺(tái),、服務(wù)器、虛擬機(jī)相關(guān)配置信息和運(yùn)行狀態(tài)的監(jiān)控與管理,。

4結(jié)論

  本文提出了基于Ganglia與Ceilometer的多云平臺(tái)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,實(shí)現(xiàn)了多個(gè)云平臺(tái)服務(wù)器和虛擬機(jī)的一體化監(jiān)控,,為云平臺(tái)資源運(yùn)行情況提供統(tǒng)一的可視化監(jiān)控管理能力,,提升平臺(tái)管理水平。在此基礎(chǔ)上,,監(jiān)控系統(tǒng)的實(shí)現(xiàn)可為云平臺(tái)資源的組織,、調(diào)度和分配提供決策依據(jù),提高資源使用的合理性,。

Image 006.jpg

  參考文獻(xiàn)

 ?。?] 張建勛,古志民,,鄭超. 云計(jì)算研究進(jìn)展綜述[J]. 計(jì)算機(jī)應(yīng)用研究, 2010,27(2):429-433.

 ?。?] 劉智超. 基于OpenStack的虛擬機(jī)集群監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2014.

 ?。?] 尤海鵬. 基于Ganglia的數(shù)據(jù)中心監(jiān)控平臺(tái)設(shè)計(jì)[D]. 濟(jì)南:山東大學(xué), 2014.

 ?。?] 李志軍,孔朋朋,,雷振伍. 基于OpenStack的私有云平臺(tái)設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用, 2016,35(9):24-26.

 ?。?] 吳怡鳳,歸強(qiáng),羅明宇,,等. 集群計(jì)算機(jī)監(jiān)控技術(shù)研究[J].計(jì)算機(jī)與現(xiàn)代化, 2013(11):218-222.

 ?。?] MASSIE M, LI B, NICHOLES B, et al.Monitoring with Ganglia[M].O’Reilly Media,2012.

 ?。?] 王霄飛. 基于OpenStack構(gòu)建私有云計(jì)算平臺(tái)[D]. 廣州:華南理工大學(xué), 2013.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。