陳燕
摘 要: 傳統(tǒng)的集群監(jiān)控軟件無法識(shí)別虛擬機(jī)虛擬化層的存在,同時(shí),環(huán)境的伸縮、虛擬機(jī)的頻繁增減也對(duì)監(jiān)控系統(tǒng)提出新的需求。針對(duì)上述問題設(shè)計(jì)并實(shí)現(xiàn)了CloudMonitor,即一種面向云計(jì)算環(huán)境的監(jiān)控系統(tǒng),提出了一種多級(jí)監(jiān)控服務(wù)器結(jié)構(gòu),解決主機(jī)之間不能相互訪問的問題;另外,每個(gè)機(jī)群都有一個(gè)機(jī)群監(jiān)控服務(wù)器,機(jī)群監(jiān)控服務(wù)器負(fù)責(zé)處理機(jī)群中節(jié)點(diǎn)的監(jiān)控信息,減輕了中心服務(wù)器的負(fù)擔(dān),有效增加了整個(gè)監(jiān)控系統(tǒng)的監(jiān)控規(guī)模。系統(tǒng)在開源監(jiān)控系統(tǒng)Nagios的基礎(chǔ)上結(jié)合傳統(tǒng)機(jī)群監(jiān)控軟件的優(yōu)點(diǎn)和虛擬化技術(shù)的特點(diǎn),可以監(jiān)控云計(jì)算環(huán)境下的各類資源。CloudMonitor已在實(shí)驗(yàn)性云基礎(chǔ)平臺(tái)上集成運(yùn)行,并驗(yàn)證了其設(shè)計(jì)目標(biāo)。
關(guān)鍵詞: 云計(jì)算; 資源監(jiān)控; 機(jī)群管理; 虛擬機(jī)群
中圖分類號(hào): TN911?34; TM417 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)09?0057?04
Abstract: The traditional cluster monitoring system can′t identify the virtualization level of the virtual machine, so the new requirement for monitoring system is put forward due to the change of environment and virtual machine quantity. For the above problems, CloudMonitor, a monitoring system based on cloud computing environment was designed and implemented. A multistage monitoring server structure is proposed to solve the mutual access problem among host computers. Each machine cluster has a cluster monitoring server to deal with the node monitoring information in the cluster, which can alleviate the burden of the center server, and effectively enlarge the monitoring scale of the whole monitoring system. On the basis of the open?source monitoring system Nagios, the advantages of the traditional cluster monitoring software and virtualization technology are integrated in the system to monitor various sources in cloud computing environment. The CloudMonitor was operated on the cloud computing platform, and its design target was verified.
Keywords: cloud computing; resource monitoring; cluster management; virtual cluster
0 引 言
云計(jì)算作為全新的計(jì)算模式,是下一代信息技術(shù)的焦點(diǎn),具有不言而喻的重要性,將給整個(gè)產(chǎn)業(yè)乃至全社會(huì)帶來重大變革。在國(guó)內(nèi)產(chǎn)業(yè)界,中興在實(shí)踐中開發(fā)了一種海量數(shù)據(jù)云存儲(chǔ)技術(shù),以較低的成本 解決了高速、海量的數(shù)字內(nèi)容存儲(chǔ)以及后續(xù)運(yùn)算的問題[1]。目前在中興內(nèi)部,培訓(xùn)系統(tǒng)、 人員檔案甚至MTV存儲(chǔ)都使用這樣的技術(shù)。云計(jì)算對(duì)網(wǎng)絡(luò)架構(gòu)提出了新的要求,其中虛擬化交換、統(tǒng)一交換、透明化交換、超高速交換將是未來網(wǎng)絡(luò)架構(gòu)發(fā)展的四個(gè)方面[2]。
成為“合格”的云應(yīng)用,服務(wù)架構(gòu)自身的體質(zhì)是最重要的,可擴(kuò)展性,或者說彈性、可伸縮性,追求的是當(dāng)服務(wù)節(jié)點(diǎn)規(guī)模增加時(shí),服務(wù)能力也可以線性或近似線性地提升[3]。這就需要服務(wù)請(qǐng)求可以被良好地、互不干擾地分配到多個(gè)節(jié)點(diǎn)上執(zhí)行[4]。結(jié)合虛擬機(jī)的特點(diǎn),基于Nagios監(jiān)控框架,構(gòu)建一套云計(jì)算環(huán)境下物理機(jī)群和虛擬機(jī)群監(jiān)控系統(tǒng)CloudMonitor。系統(tǒng)不同于傳統(tǒng)監(jiān)控系統(tǒng)之處在于可以監(jiān)控部署物理機(jī)上的虛擬機(jī)以及虛擬機(jī)群,并給出物理機(jī)虛擬機(jī)性能數(shù)據(jù)的對(duì)應(yīng)關(guān)系[5]。
1 系統(tǒng)需求分析
1.1 問題概述
云計(jì)算平臺(tái)中虛擬網(wǎng)絡(luò)保證了虛擬機(jī)群網(wǎng)絡(luò)的高效構(gòu)建,給用戶帶來了極大的便利。但是對(duì)監(jiān)控系統(tǒng)提出了新的問題[6]:
(1) 網(wǎng)絡(luò)無法互通問題。不同的虛擬網(wǎng)之間由于網(wǎng)絡(luò)隔離等需要常常是無法通信的,如果無法通信,就無法獲取被監(jiān)控節(jié)點(diǎn)的監(jiān)控信息,這對(duì)監(jiān)控系統(tǒng)的監(jiān)控信息傳輸提出了新的要求。
(2) 被監(jiān)控機(jī)器頻繁變動(dòng)問題。這造成了在一個(gè)虛擬網(wǎng)絡(luò)內(nèi)部節(jié)點(diǎn)的數(shù)目可能會(huì)經(jīng)常變動(dòng)。用戶常常是一次性創(chuàng)建或銷毀一個(gè)虛擬網(wǎng)絡(luò)以及網(wǎng)絡(luò)內(nèi)的全部機(jī)器。
1.2 物理機(jī)監(jiān)控需求
云計(jì)算平臺(tái)的監(jiān)控系統(tǒng)需求可以從兩個(gè)方面闡述:物理機(jī)監(jiān)控需求和虛擬機(jī)監(jiān)控需求。其中物理機(jī)監(jiān)控與傳統(tǒng)機(jī)群監(jiān)控類似,虛擬機(jī)監(jiān)控需求則有一些新特性[7]。
從監(jiān)控的角度看,云計(jì)算平臺(tái)的物理機(jī)基礎(chǔ)設(shè)施與傳統(tǒng)的機(jī)群系統(tǒng)沒有太大差別?;A(chǔ)設(shè)施都是物理機(jī),相對(duì)于虛擬機(jī)來說,數(shù)目不會(huì)過于頻繁的改變。僅需要將物理機(jī)所屬的區(qū)標(biāo)記出來即可。云計(jì)算平臺(tái)的基礎(chǔ)設(shè)施圖就可以簡(jiǎn)化成如圖1所示。圖1中表示了所有的被監(jiān)控物理機(jī),其數(shù)量、配置及IP設(shè)置等都基本不變[8]。
因此,對(duì)于基礎(chǔ)設(shè)施的監(jiān)控需求就是監(jiān)控物理機(jī)的各個(gè)物理資源指標(biāo)及機(jī)器上運(yùn)行的服務(wù)和系統(tǒng)的運(yùn)行情況,并對(duì)異常情況進(jìn)行預(yù)警。
1.3 虛擬機(jī)監(jiān)控需求
虛擬化技術(shù)主要是一種隔離與監(jiān)視技術(shù),讓不同的虛擬機(jī)分享同一套物理機(jī)(主要指CPU/內(nèi)存子系統(tǒng))而彼此隔離、互不干擾,同時(shí),為虛擬機(jī)代理訪問網(wǎng)絡(luò)、磁盤I/O等共享的外部資源。由于虛擬化技術(shù)對(duì)CPU/內(nèi)存子系統(tǒng)工作的干擾很少,因此,計(jì)算能力方面很少有開銷,相比之下,I/O性能受到的影響會(huì)略大一些,但也可以接受。虛擬機(jī)和虛擬機(jī)群的出現(xiàn)對(duì)監(jiān)控系統(tǒng)也提出了新的問題:虛擬機(jī)隨用戶的操作經(jīng)常性的建立和銷毀;不同應(yīng)用類型的虛擬機(jī)有不同的服務(wù);用戶定制的虛擬機(jī)個(gè)性化強(qiáng),并不限于一種操作系統(tǒng)。
結(jié)合上述特點(diǎn)得出監(jiān)控系統(tǒng)需求:計(jì)算環(huán)境中各個(gè)分節(jié)點(diǎn)部署獨(dú)立的監(jiān)控系統(tǒng)。
1.4 系統(tǒng)功能需求
數(shù)據(jù)采集模塊運(yùn)行在所有的被監(jiān)控節(jié)點(diǎn)上,包括物理機(jī)和虛擬機(jī)。在創(chuàng)建出新的虛擬機(jī)時(shí),自動(dòng)將采集模塊安裝到新建的虛擬機(jī)中,采集模塊支持Windows和Linux操作系統(tǒng)。本模塊需要解決數(shù)據(jù)跨域傳輸?shù)膯栴}和數(shù)據(jù)安全性和及時(shí)性的問題。
監(jiān)控?cái)?shù)據(jù)存儲(chǔ)模塊接收監(jiān)控?cái)?shù)據(jù)并進(jìn)行結(jié)構(gòu)化存儲(chǔ)。監(jiān)控系統(tǒng)一方面向用戶提供監(jiān)控視圖,另一方面提供監(jiān)控?cái)?shù)據(jù)API,供其他應(yīng)用模塊使用。系統(tǒng)還應(yīng)提供預(yù)警功能,系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),通知用戶。同時(shí),監(jiān)控模塊應(yīng)具有較強(qiáng)的穩(wěn)定性,長(zhǎng)時(shí)間(兩個(gè)月)運(yùn)行不崩潰。可以在Linux常見版本和Windows系統(tǒng)上運(yùn)行。可以靈活地添加和刪除監(jiān)控項(xiàng)。如果要添加另外的特殊監(jiān)控項(xiàng),也可以通過更改系統(tǒng)配置實(shí)現(xiàn)。在所有節(jié)點(diǎn)上的監(jiān)控代理,平均每5 min讀一次系統(tǒng)性能數(shù)據(jù),對(duì)系統(tǒng)性能及網(wǎng)絡(luò)帶寬的影響不能超過5%。
2 系統(tǒng)總體設(shè)計(jì)
2.1 功能模塊設(shè)計(jì)
系統(tǒng)從功能上可以分為5個(gè)功能模塊:監(jiān)控?cái)?shù)據(jù)獲取模塊、監(jiān)控?cái)?shù)據(jù)傳輸模塊、監(jiān)控?cái)?shù)據(jù)管理模塊、預(yù)警模塊、系統(tǒng)管理模塊,如圖2所示。
2.2 系統(tǒng)架構(gòu)設(shè)計(jì)
系統(tǒng)為分布式架構(gòu),分為監(jiān)控服務(wù)器和監(jiān)控代理。監(jiān)控代理用于收集本地信息,與監(jiān)控服務(wù)器通信。監(jiān)控服務(wù)器用于接收監(jiān)控代理發(fā)來的數(shù)據(jù),存儲(chǔ)管理數(shù)據(jù),執(zhí)行預(yù)警策略,提供監(jiān)控?cái)?shù)據(jù)訪問接口。監(jiān)控代理部署在每一個(gè)被監(jiān)控物理機(jī)和虛擬機(jī)上,每個(gè)被監(jiān)控域中指定一臺(tái)作為監(jiān)控服務(wù)器,在上面部署監(jiān)控服務(wù)器程序。在被監(jiān)控系統(tǒng)中的計(jì)算設(shè)備層和公共計(jì)算資源層中的所有服務(wù)節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)等設(shè)備上部署監(jiān)控代理。具體的,在設(shè)備上收集虛擬機(jī)監(jiān)控信息、主機(jī)監(jiān)控信息、虛擬網(wǎng)絡(luò)監(jiān)控信息、虛擬存儲(chǔ)監(jiān)控信息、公共服務(wù)監(jiān)控信息等。在服務(wù)器端收集監(jiān)控代理傳來的信息,最后呈現(xiàn)給管理員。
2.3 系統(tǒng)層次設(shè)計(jì)
系統(tǒng)分為四層,自下而上分別是數(shù)據(jù)采集層,數(shù)據(jù)處理層,數(shù)據(jù)匯集層和監(jiān)控應(yīng)用層。圖3為云計(jì)算平臺(tái)的系統(tǒng)層次結(jié)構(gòu)圖。
在數(shù)據(jù)采集層系統(tǒng)的所有節(jié)點(diǎn)上,包括物理機(jī)虛擬機(jī)和系統(tǒng)的各個(gè)應(yīng)用服務(wù)器上部署監(jiān)控代理,監(jiān)控代理用于在本地收集機(jī)器的監(jiān)控信息。在監(jiān)控?cái)?shù)據(jù)處理層,由于網(wǎng)絡(luò)防火墻等原因可能出現(xiàn)主機(jī)之間不能直接訪問的情況,因此監(jiān)控模塊中加入了本層,同一機(jī)群的機(jī)器監(jiān)控?cái)?shù)據(jù)先在機(jī)群頭節(jié)點(diǎn)上收集,最后再傳遞到總監(jiān)控服務(wù)器上。
監(jiān)控應(yīng)用層包括監(jiān)控展示界面和監(jiān)控?cái)?shù)據(jù)API。監(jiān)控展示界面提供區(qū)視圖、物理機(jī)視圖、虛擬機(jī)視圖三個(gè)視圖的監(jiān)控界面。向用戶展示實(shí)時(shí)監(jiān)控信息和歷史監(jiān)控信息。
3 系統(tǒng)詳細(xì)設(shè)計(jì)
3.1 監(jiān)控?cái)?shù)據(jù)采集模塊
Windows環(huán)境下,系統(tǒng)使用GetSystemTimes通過APT獲取CPU占用率,使用GlobalMemoryStatusEx和GetPerformanceInfo獲取內(nèi)存使用情況,使用 GetProcessMemoryInfo獲取某一個(gè)程序的內(nèi)存占用情況。使用 Win32_PerfFormattedData_PerfDisk_LogicalDisk獲取磁盤監(jiān)控?cái)?shù)據(jù)。在Linux環(huán)境下,在/proc/對(duì)應(yīng)的文件中獲取數(shù)據(jù),在/proc/meminfo中獲取內(nèi)存使用情況,cat/proc/meminfo;從/proc文件系統(tǒng)獲取CPU使用情況,cat/proc/stat;從/proc文件系統(tǒng)獲取網(wǎng)絡(luò)使用情況,cat/proc/net/dev。另外,還使用一些系統(tǒng)工具獲取資源使用情況,如用iostat獲取磁盤I/O情況。
對(duì)于公共服務(wù),使用netstat監(jiān)控其端口號(hào),看該端口號(hào)是否處于監(jiān)聽狀態(tài),通過調(diào)用工具進(jìn)行模擬訪問,查看返回結(jié)果。對(duì)于用戶私有服務(wù),監(jiān)控其進(jìn)程狀態(tài)。將/proc下的所有文件遍歷一變,判斷當(dāng)中 的哪個(gè)進(jìn)程名與用戶私有服務(wù)的進(jìn)程名相同,然后可以取得對(duì)應(yīng)的進(jìn)程pid,然后查看該進(jìn)程的狀態(tài)。
3.2 監(jiān)控?cái)?shù)據(jù)傳輸模塊
監(jiān)控?cái)?shù)據(jù)傳輸使用拉模式,原因是在云計(jì)算環(huán)境下被監(jiān)控機(jī)的規(guī)模無法估計(jì),伸縮性較強(qiáng),系統(tǒng)設(shè)計(jì)了彈性監(jiān)控?cái)?shù)據(jù)拉取策略。當(dāng)虛擬機(jī)數(shù)量正常時(shí),則監(jiān)控服務(wù)器在閾值周期內(nèi)拉數(shù)據(jù);當(dāng)虛擬機(jī)數(shù)量很大時(shí),監(jiān)控服務(wù)器根據(jù)自己的處理能力,在規(guī)定閾值范圍內(nèi),自動(dòng)增長(zhǎng)拉數(shù)據(jù)的周期。這樣設(shè)計(jì)是為了防止監(jiān)控?cái)?shù)據(jù)的傳輸占用太多帶寬。監(jiān)控服務(wù)器周期性的向各個(gè)監(jiān)控代理發(fā)送數(shù)據(jù)請(qǐng)求,監(jiān)控代理收到請(qǐng)求后執(zhí)行本機(jī)上的監(jiān)控腳本并將監(jiān)控腳本的返回內(nèi)容傳回給監(jiān)控服務(wù)器。使用推模式來推送新添加的被監(jiān)控節(jié)點(diǎn)自動(dòng)注冊(cè)的信息和注銷信息。
3.3 監(jiān)控?cái)?shù)據(jù)管理模塊
實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)在本系統(tǒng)中被定義為最近48 h所產(chǎn)生的監(jiān)控?cái)?shù)據(jù)。系統(tǒng)使用RRDTool數(shù)據(jù)庫(kù)(RoundRobinDatabase)存放近期的監(jiān)控?cái)?shù)據(jù)。監(jiān)控服務(wù)器接收到監(jiān)控?cái)?shù)據(jù)后,將數(shù)據(jù)解析出來,格式化的存儲(chǔ)到數(shù)據(jù)庫(kù)中。監(jiān)控系統(tǒng)的存儲(chǔ)方式是:為每個(gè)被監(jiān)控節(jié)點(diǎn)建一個(gè)目錄,在目錄中有多個(gè).rrd文件,每個(gè).rrd文件中存儲(chǔ)一個(gè)監(jiān)控項(xiàng)的數(shù)據(jù)。監(jiān)控系統(tǒng)對(duì)外提供監(jiān)控?cái)?shù)據(jù)接口,外部應(yīng)用程序可以通過API讀取監(jiān)控?cái)?shù)據(jù)。監(jiān)控?cái)?shù)據(jù)以兩種方式存在:數(shù)據(jù)庫(kù)中存儲(chǔ)的int型或String型的監(jiān)控?cái)?shù)據(jù)值;某一段時(shí)間的監(jiān)控?cái)?shù)據(jù)繪制的曲線。
3.4 預(yù)警模塊
監(jiān)控服務(wù)器中有一個(gè)郵件發(fā)送模塊,可以使用郵件服務(wù)器向指定郵箱發(fā)送郵件,機(jī)群靜態(tài)信息中存有機(jī)群管理員的郵件地址。當(dāng)某個(gè)被監(jiān)控節(jié)點(diǎn)的監(jiān)控項(xiàng)數(shù)據(jù)超過閾值范圍,調(diào)用郵件發(fā)送模塊,給管理員發(fā)送郵件。預(yù)警事件處理模塊,在當(dāng)某被監(jiān)控機(jī)器出現(xiàn)問題時(shí),服務(wù)器可以在被監(jiān)控機(jī)器上運(yùn)行指定的腳本來恢復(fù)預(yù)警情況,或者通過重啟被監(jiān)控機(jī)器解決。預(yù)警恢復(fù)部分預(yù)先在被監(jiān)控機(jī)器上寫好事件處理腳本,當(dāng)監(jiān)控服務(wù)器發(fā)現(xiàn)被監(jiān)控機(jī)器出現(xiàn)問題時(shí),通過調(diào)用事件處理腳本來恢復(fù)預(yù)警情況。預(yù)警通知子模塊提供郵件通知、短信通知兩種通知方式。
3.5 系統(tǒng)管理模塊
本模塊包括配置文件管理子模塊設(shè)計(jì),監(jiān)控機(jī)器自動(dòng)注冊(cè)子模塊設(shè)計(jì),監(jiān)控機(jī)器自動(dòng)注銷子模塊設(shè)計(jì)。從用戶創(chuàng)建虛擬機(jī)群開始,機(jī)群中的機(jī)器可能會(huì)頻繁添加或者減少,這給集群監(jiān)控服務(wù)器的管理提出了新問題。在虛擬機(jī)群創(chuàng)建的時(shí)候,用戶指定頭節(jié)點(diǎn),頭節(jié)點(diǎn)虛擬機(jī)在創(chuàng)建的時(shí)候自動(dòng)安裝有監(jiān)控服務(wù)器程序,其他節(jié)點(diǎn)安裝有監(jiān)控代理程序。當(dāng)某個(gè)虛擬機(jī)被銷毀時(shí),執(zhí)行被銷毀虛擬機(jī)中的destroy腳本,在集群監(jiān)控服務(wù)器的配置文件中注銷本機(jī)。當(dāng)添加某個(gè)虛擬機(jī)時(shí),向本機(jī)群監(jiān)控服務(wù)器注冊(cè)本機(jī)及本機(jī)監(jiān)控項(xiàng)。
3.6 監(jiān)控代理和監(jiān)控服務(wù)器
本模塊包括兩部分:第一部分是客戶端程序,運(yùn)行于機(jī)群監(jiān)控服務(wù)器,負(fù)責(zé)將本機(jī)群的監(jiān)控?cái)?shù)據(jù)送到全局服務(wù)器上去;另一部分是守護(hù)進(jìn)程,它既可以獨(dú)立地運(yùn)行于守護(hù)服務(wù)也可以注冊(cè)到inetd里作為一個(gè)inetd客戶程序提供監(jiān)聽聯(lián)接。從機(jī)群服務(wù)器收到監(jiān)控信息后,守護(hù)進(jìn)程將結(jié)果提交給全局監(jiān)控服務(wù)器,實(shí)際上是模擬了從一臺(tái)被監(jiān)控機(jī)器上傳輸監(jiān)控信息的一個(gè)過程,從全局監(jiān)控服務(wù)器的視角看,從機(jī)群監(jiān)控服務(wù)器傳來的數(shù)據(jù)和直接從被監(jiān)控節(jié)點(diǎn)上傳來的數(shù)據(jù)沒有差別。
4 實(shí)驗(yàn)測(cè)試與結(jié)果分析
4.1 監(jiān)控服務(wù)器響應(yīng)測(cè)試
監(jiān)控服務(wù)器: CPU@2.0 GHz/2GMemory/160GHD,被監(jiān)控機(jī)器: CPU@2.0 GHz/2GMemory/160GHD。
在LoadRunner中,設(shè)定25個(gè)User,每個(gè)User重復(fù)訪問服務(wù)器讀取監(jiān)控?cái)?shù)據(jù),并進(jìn)行5次點(diǎn)擊查看操作。運(yùn)行9 min的過程中,重復(fù)了2 031 844次操作,共有2 031 844次成功返回結(jié)果。圖4為響應(yīng)時(shí)間曲線,在并發(fā)數(shù)為20的情況下,最大響應(yīng)時(shí)間為0.004 s。
最后報(bào)告成功了21 901 245次,平均19 004.8 /s,失敗1次,系統(tǒng)工作良好。在頻繁查詢的情況下可以正常的返回結(jié)果。
4.2 應(yīng)用規(guī)模及系統(tǒng)占用資源測(cè)試
測(cè)試目的:總監(jiān)控服務(wù)器共可以支持的下級(jí)服務(wù)器數(shù)目,每個(gè)下級(jí)服務(wù)器可以支持監(jiān)控節(jié)點(diǎn)的數(shù)目;監(jiān)控系統(tǒng)對(duì)機(jī)器性能的影響。監(jiān)控服務(wù)器端性能影響,監(jiān)控代理對(duì)被監(jiān)控節(jié)點(diǎn)的性能影響,此處的性能影響主要是指對(duì)節(jié)點(diǎn)的CPU負(fù)載,內(nèi)存占用的情況。
測(cè)試環(huán)境同上,在監(jiān)控服務(wù)器上添加100個(gè)被監(jiān)控主機(jī),每個(gè)監(jiān)控主機(jī)有五個(gè)監(jiān)控項(xiàng),監(jiān)控項(xiàng)總數(shù)是502項(xiàng),如圖5所示。
CPU占用率不超過3%,內(nèi)存使用率不超過0.5%,實(shí)際間隔為2 min。在監(jiān)控服務(wù)器上添加300個(gè)被監(jiān)控主機(jī),每個(gè)監(jiān)控主機(jī)有五個(gè)監(jiān)控項(xiàng)。CPU占用率為3%,峰值不超過7%。內(nèi)存占用率不超過0.5%。CPU負(fù)載較100個(gè)節(jié)點(diǎn)的時(shí)候有所上升:0.9vs.0.5。進(jìn)程數(shù)目增多:160vs.70,實(shí)際間隔為5 min。連續(xù)工作6天,從其自身的監(jiān)控?cái)?shù)據(jù)來看,一切工作正常,監(jiān)控服務(wù)器性能狀況如圖6所示。
在監(jiān)控服務(wù)器上添加500個(gè)被監(jiān)控主機(jī),每個(gè)監(jiān)控主機(jī)有5個(gè)監(jiān)控項(xiàng),監(jiān)控項(xiàng)總數(shù)是2 468項(xiàng)。在此情況下,機(jī)器負(fù)載有所上升。CPU占用率為3%,峰值不超過10%。內(nèi)存占用率不超過0.5%。CPU負(fù)載較100個(gè)節(jié)點(diǎn)的時(shí)候有所上升:1.45vs.0.5。進(jìn)程數(shù)目增多:240vs.70。定義的監(jiān)控檢查時(shí)間間隔為1 min,但是實(shí)際間隔為10 min。
測(cè)試結(jié)論:CPU占用率在10%以內(nèi),內(nèi)存使用在1%以內(nèi),實(shí)時(shí)性要求較高,則監(jiān)控規(guī)模應(yīng)控制在100以內(nèi)。從性能角度來考慮,監(jiān)控規(guī)模應(yīng)控制在300以內(nèi)。
5 結(jié) 論
基于虛擬機(jī)群、基礎(chǔ)設(shè)施共享的云計(jì)算環(huán)境與傳統(tǒng)機(jī)群有著不同的特點(diǎn),現(xiàn)有的機(jī)群監(jiān)控系統(tǒng)不能滿足規(guī)模擴(kuò)展與云互聯(lián)的需求。為此,提出了CloudMonitor,一種面向云計(jì)算環(huán)境的監(jiān)控系統(tǒng)。系統(tǒng)基于開源監(jiān)控框架Nagios結(jié)合傳統(tǒng)監(jiān)控系統(tǒng)和云計(jì)算環(huán)境的新特點(diǎn),既能準(zhǔn)確獲取監(jiān)控信息又能適應(yīng)虛擬網(wǎng)絡(luò)、虛擬機(jī)群的特點(diǎn)。
分析了云計(jì)算環(huán)境下監(jiān)控的問題,同時(shí)給出了云計(jì)算平臺(tái)下資源監(jiān)控系統(tǒng)的總體設(shè)計(jì)和詳細(xì)設(shè)計(jì),對(duì)監(jiān)控?cái)?shù)據(jù)的采集、傳輸、存儲(chǔ)、讀取接口、監(jiān)控服務(wù)器的結(jié)構(gòu)及管理等方面都進(jìn)行了詳細(xì)說明,給出了系統(tǒng)的測(cè)試過程和測(cè)試結(jié)果,證明了系統(tǒng)在功能上的完備性,并通過測(cè)試得到了總監(jiān)控服務(wù)器共可以支持的下級(jí)服務(wù)器數(shù)目,每個(gè)下級(jí)服務(wù)器可以支持監(jiān)控節(jié)點(diǎn)的數(shù)目以及監(jiān)控系統(tǒng)對(duì)機(jī)器性能的影響。本文提出了一種多級(jí)監(jiān)控服務(wù)器結(jié)構(gòu),解決了主機(jī)之間不能相互訪問的問題。
參考文獻(xiàn)
[1] 陳康,鄭緯民.云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J].軟件學(xué)報(bào),2009,20(5):1337?1348.
[2] 許丞,劉洪,譚良,等.Hadoop云平臺(tái)的一種新的任務(wù)調(diào)度和監(jiān)控機(jī)制[J].計(jì)算機(jī)科學(xué),2013,40(1):112?117.
[3] 方薇,崔超遠(yuǎn),王儒敬,等.Eucalyptus開源框架下云平臺(tái)的構(gòu)建與性能分析[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(6):1?5.
[4] 成靜靜.基于Hadoop的分布式云計(jì)算/云存儲(chǔ)方案的研究與設(shè)計(jì)[J].數(shù)據(jù)通信,2012(5):14?18.
[5] 張堯?qū)W,周悅芝.一種云計(jì)算操作系統(tǒng)TransOS:基于透明計(jì)算的設(shè)計(jì)與實(shí)現(xiàn)[J].電子學(xué)報(bào),2011,39(5):985?990.
[6] 馮登國(guó),張敏,張妍,等.云計(jì)算安全研究[J].軟件學(xué)報(bào),2011,22(1):71?83.
[7] 羅軍舟,金嘉暉,宋愛波,等.云計(jì)算:體系架構(gòu)與關(guān)鍵技術(shù)[J].通信學(xué)報(bào),2011,32(7):3?21.
[8] 穆俊.基于云平臺(tái)的并行關(guān)聯(lián)規(guī)則挖掘算法分析[J].現(xiàn)代電子技術(shù),2015,38(11):123?125.