郭 平,馮婷瑩
(重慶大學計算機學院軟件理論與技術(shù)重慶市重點實驗室 重慶400044)
云計算是一種新興的商業(yè)計算模型,它將計算任務(wù)分布在資源池上,使各種應用系統(tǒng)能夠根據(jù)需要獲取計算力、存儲空間和各種軟件服務(wù)[1~3]。
為有效管理云計算系統(tǒng)中的資源并發(fā)揮其效率,資源監(jiān)測是必不可少的。資源監(jiān)測不僅可以及時發(fā)現(xiàn)云計算系統(tǒng)中節(jié)點或者節(jié)點上運行的虛擬機出現(xiàn)的故障,為解決故障贏得時間從而及時恢復系統(tǒng)的性能;而且能夠及時發(fā)現(xiàn)資源使用的變化,為任務(wù)調(diào)度和負載均衡等提供可靠數(shù)據(jù)保障;同時為資源的使用計費提供準確的數(shù)據(jù)支持。因此,研究云計算環(huán)境下的資源監(jiān)測,對云計算的發(fā)展有著舉足輕重的作用。
對計算系統(tǒng)中資源監(jiān)測的研究起始于20世紀60年代。隨著分布式計算和網(wǎng)格計算的發(fā)展,資源監(jiān)測的技術(shù)與方法取得了很大的發(fā)展。例如,PAPI[4]是一種硬件性能計數(shù)器,當產(chǎn)生特定信號或相關(guān)狀態(tài)時對事件進行計數(shù),對這些事件進行檢測可以獲取代碼和體系結(jié)構(gòu)映射效率的相關(guān)性,以便在性能上進行分析和調(diào)整;Ganglia[5]通過對集群進行監(jiān)測獲取包括內(nèi)存、操作系統(tǒng)、處理器負載等基本主機數(shù)據(jù);Autopilot[6]是一個分布式性能測量和資源控制系統(tǒng),提供在分布式系統(tǒng)中捕獲的網(wǎng)絡(luò)和操作系統(tǒng)數(shù)據(jù);Virtue[7]從 Autopilot接收實時數(shù)據(jù)并允許用戶改變軟件行為和資源策略;MDS[8]是一種基于網(wǎng)格計算環(huán)境的信息服務(wù)框架,包括資源的發(fā)現(xiàn)、描述、監(jiān)視以及更新,可以幫助網(wǎng)格應用程序進行自我調(diào)整和配置,也可以幫助用戶了解所搭建網(wǎng)格系統(tǒng)。這些研究對于分布式系統(tǒng)與網(wǎng)格系統(tǒng)中的資源監(jiān)測有重要的作用,但如果直接用于云計算環(huán)境下,則會有一些不足。一方面,云計算環(huán)境下的資源是高度虛擬化和彈性化的,同時云計算向外提供如IaaS、PaaS、SaaS等不同層次的服務(wù),除了對物理服務(wù)器的資源需要進行監(jiān)測外,對運行在其上的虛擬機也需要進行監(jiān)測。另一方面,云計算資源主要分為計算資源和存儲資源,對不同類型的資源所需監(jiān)測的信息也是不同的。例如,對計算資源主要監(jiān)測CPU、內(nèi)存,而對存儲資源則主要監(jiān)測硬盤、內(nèi)存。因此,在云計算系統(tǒng)中,不僅監(jiān)測對象發(fā)生了變化,而且監(jiān)測環(huán)境也發(fā)生了變化。
目前,針對云計算環(huán)境中的資源監(jiān)測,主要集中在數(shù)據(jù)傳輸安全性以及用戶信息服務(wù)上[9]。如使用SLA(service level agreement,服務(wù)等級協(xié)議)加強用戶交互時間和安全性[10]以及使用面向方面編程的方法來監(jiān)測云服務(wù)數(shù)據(jù)[11]。本文提出的云計算中資源監(jiān)測系統(tǒng)模型是對云計算環(huán)境中資源使用情況進行監(jiān)測。
云計算一般分為3層:硬件層、虛擬化層和服務(wù)提供層。硬件層就是傳統(tǒng)意義上的硬件資源,再加上云計算資源池的控制軟件、操作系統(tǒng)和中間件等。虛擬化層主要是由虛擬化資源、虛擬化映像管理、網(wǎng)絡(luò)和資源存儲等模塊組成,在該層可利用虛擬化技術(shù)擴展每一個服務(wù)器的能力,將各自的資源通過云計算平臺結(jié)合起來,提供超級計算和存儲能力。服務(wù)提供層是云計算和用戶的交互界面,用戶能夠通過該界面使用后臺強大的資源,該層提供的服務(wù)方式包括 SaaS、PaaS和IaaS等。
對云計算中的資源監(jiān)測主要集中在硬件層和虛擬化層。此外,需要監(jiān)測的云計算資源可以分為計算節(jié)點、存儲節(jié)點以及管理節(jié)點。由于各個節(jié)點的特性不同,所以要監(jiān)測的對象也不同。計算節(jié)點主要處理計算服務(wù),存儲節(jié)點主要處理用戶數(shù)據(jù)資源的存取工作以及應用的存放與處理,管理節(jié)點則是對其他服務(wù)器進行任務(wù)分配以及管理的節(jié)點。
對云計算資源的監(jiān)控,能夠掌握系統(tǒng)實時情況以便對系統(tǒng)進行管理。對云計算資源監(jiān)控為負載均衡提供了可靠的數(shù)據(jù)基礎(chǔ)。對云計算資源數(shù)據(jù)進行分析有助于掌握云計算系統(tǒng)的薄弱環(huán)節(jié)以便進行分析。
云計算系統(tǒng)中的監(jiān)測對象,從功能角度分為存儲服務(wù)器、計算服務(wù)器和管理服務(wù)器;從虛擬化角度分為物理服務(wù)器和虛擬服務(wù)器;而更細的方面,監(jiān)測對象就是操作系統(tǒng)、CPU、內(nèi)存、硬盤、I/O 等。
因為服務(wù)器的功能不同,所以各服務(wù)器所需要監(jiān)測的對象也就不同。表1給出了針對不同的監(jiān)測對象需要監(jiān)測的主要參數(shù)。
計算機系統(tǒng)資源監(jiān)測的方法主要分為周期監(jiān)測和事件驅(qū)動監(jiān)測兩種。
周期監(jiān)測是指監(jiān)測服務(wù)器按照一定的規(guī)律周期地發(fā)出監(jiān)測請求,如每隔5 s發(fā)送一次請求,采集器采集各被監(jiān)測對象的資源使用相關(guān)數(shù)據(jù)后向監(jiān)測服務(wù)器反饋監(jiān)測數(shù)據(jù)。監(jiān)測服務(wù)器負責監(jiān)控本地服務(wù)器上各虛擬機對于CPU、內(nèi)存和網(wǎng)絡(luò)帶寬的使用情況,并通過綜合獲得當前服務(wù)器的整個資源使用情況。周期監(jiān)測是為了能夠更加及時地獲取經(jīng)常變化的對象數(shù)據(jù),如內(nèi)存的使用情況。
周期監(jiān)測又分為固定周期監(jiān)測和動態(tài)周期監(jiān)測。固定周期是指監(jiān)測的間隔完全相同,動態(tài)周期則是指根據(jù)一定的規(guī)律來調(diào)整周期。固定周期監(jiān)測方便監(jiān)測的統(tǒng)一管理,但沒有根據(jù)所要監(jiān)測資源的實時情況進行監(jiān)測;動態(tài)周期監(jiān)測能夠根據(jù)監(jiān)測情況實時調(diào)整周期的變化,但如果周期變化規(guī)律過于復雜又會給服務(wù)器過重的負擔。因此,服務(wù)器需要能夠根據(jù)監(jiān)測對象情況合理調(diào)整周期。
事件驅(qū)動監(jiān)測是指當被監(jiān)測對象產(chǎn)生特定事件時,對其進行監(jiān)測并將監(jiān)測結(jié)果反饋給監(jiān)測系統(tǒng)。事件驅(qū)動監(jiān)測的發(fā)生時間具有不確定性,沒有特定的規(guī)律,通常與系統(tǒng)中運行的應用以及系統(tǒng)的狀態(tài)相關(guān)。
表1 監(jiān)測對象和監(jiān)測參數(shù)
一般情況下,通過周期監(jiān)測來監(jiān)測服務(wù)器就足夠了。但當監(jiān)測對象發(fā)生特定事件時,如更換操作系統(tǒng),監(jiān)測對象就需要給監(jiān)測系統(tǒng)發(fā)送其所在服務(wù)器的最新信息,以便監(jiān)測服務(wù)器能夠得到最新的監(jiān)測數(shù)據(jù)。
本文基于對云計算下資源監(jiān)測的分析,并結(jié)合云計算自身的特點,建立如圖1所示的監(jiān)測模型。
監(jiān)測服務(wù)器是用來管理監(jiān)測事務(wù)的,其主要功能包括發(fā)送監(jiān)測請求、接收監(jiān)測數(shù)據(jù)、存儲監(jiān)測數(shù)據(jù)、動態(tài)調(diào)節(jié)監(jiān)測周期和更新資源狀態(tài)表等。監(jiān)測服務(wù)器的數(shù)據(jù)庫存儲發(fā)送的監(jiān)測請求數(shù)據(jù)、接收的監(jiān)測數(shù)據(jù)以及服務(wù)器的一些處理數(shù)據(jù)。監(jiān)測周期模型模塊是對服務(wù)器的檢測周期進行處理的模塊,能夠根據(jù)監(jiān)測數(shù)據(jù)實時調(diào)整監(jiān)測周期。狀態(tài)表包括周期狀態(tài)表、監(jiān)測請求狀態(tài)表等。
被監(jiān)測對象包括物理的或虛擬的計算、存儲和管理服務(wù)器,其主要功能有接收監(jiān)測請求、獲取監(jiān)測數(shù)據(jù)、發(fā)送監(jiān)測數(shù)據(jù)以及當特定事件發(fā)生時主動進行監(jiān)測等。其中,監(jiān)測請求是由周期監(jiān)測發(fā)送的;監(jiān)測數(shù)據(jù)既包括周期監(jiān)測的數(shù)據(jù)也包括事件驅(qū)動監(jiān)測的數(shù)據(jù)。對象監(jiān)測數(shù)據(jù)包括系統(tǒng)數(shù)據(jù)、網(wǎng)絡(luò)數(shù)據(jù)、應用數(shù)據(jù)等。
數(shù)據(jù)的使用者是指將監(jiān)測數(shù)據(jù)作為原始數(shù)據(jù)以進行后續(xù)工作的功能模塊或人員,如負載均衡模塊、服務(wù)器管理人員等。
假設(shè)以監(jiān)測服務(wù)器的時鐘為標準,監(jiān)測服務(wù)器的最小周期單位為t0。監(jiān)測周期狀態(tài)表中保存的數(shù)據(jù)包括服務(wù)器標識、服務(wù)器類型、資源情況、時間差、服務(wù)器狀態(tài)、監(jiān)測時間、監(jiān)測周期等。監(jiān)測周期存放著還需要過多少個t0就需要對服務(wù)器發(fā)送監(jiān)測請求。
在調(diào)整周期之前,先將監(jiān)測資源分為3組,分別為計算、存儲和管理3類。每一類又分成若干個隊列,隊列的數(shù)量取決于具體的云環(huán)境。假設(shè)分為3個隊列,分別為qA、qB和qC。qA為資源使用情況超過某一指標v1的服務(wù)器所組成的隊列,qB為低于v1但高于另一指標v2的服務(wù)器所組成的隊列,其他小于v2的則組成qC。
在這3個隊列中,qC是三者中運行情況最穩(wěn)定也是負載最低的,通常情況下這種狀態(tài)的服務(wù)器也是最多的,因此整個qC可以采用共同的監(jiān)測周期進行監(jiān)測,這樣發(fā)送監(jiān)測請求也可以減輕監(jiān)測服務(wù)器的負擔。
qA則是三者之中最危險的,因此需要對其進行嚴格的監(jiān)測。對于這一隊列的節(jié)點需要進行負載均衡使其擺脫危險狀態(tài)。每隔t0就對這個隊列的監(jiān)測狀態(tài)表進行如圖2所示的更新。
qB是介于qA和qC二者之間,可以采取類似qC的方法,即整個隊列使用共同周期,但這個周期又比qA的周期要小。如果qA為空,可以將qB中個別長時間在qB中且資源使用率比較高的移至qA中進行負載均衡調(diào)節(jié)。
不同的監(jiān)測對象類型所需要的監(jiān)測周期不同。數(shù)據(jù)波動大的資源需要較高的采樣頻率,如CPU;數(shù)據(jù)波動小的使用較低的采樣頻率就可以滿足,如磁盤。由此可得,管理服務(wù)器、存儲服務(wù)器以及計算服務(wù)器3個組的周期的變化規(guī)律是不同的。將它們分為不同的組,在各個組里使用若干個隊列進行動態(tài)周期的調(diào)節(jié)由此來實時獲取資源信息以及減輕監(jiān)測服務(wù)器負擔。
周期監(jiān)測能夠滿足大部分監(jiān)測要求,但仍然有一些資源使用情況會發(fā)生突然的變化,這時如果仍采用監(jiān)測周期方法將影響資源監(jiān)測的實時性。產(chǎn)生資源使用突然變化的事件就是事件驅(qū)動監(jiān)測要關(guān)注的事件。
云計算環(huán)境中,事件驅(qū)動監(jiān)測的事件主要包括新建虛擬機、刪除虛擬機、啟動新應用、結(jié)束應用、改變操作系統(tǒng)、服務(wù)器啟動等。
在資源監(jiān)測中,監(jiān)測服務(wù)器的時鐘與監(jiān)測對象的時鐘往往是不同的,這種差異使監(jiān)測服務(wù)器不能確定被監(jiān)測對象的實時狀況。為此,通過定期在監(jiān)測服務(wù)器與被監(jiān)測對象之間傳送時間戳來計算它們的時鐘差。
基于監(jiān)測服務(wù)器的時鐘,假設(shè)監(jiān)測服務(wù)器向被監(jiān)測對象發(fā)送時鐘同步請求的時間戳為t1,被監(jiān)測對象接收請求的時間戳為t2,被監(jiān)測對象回傳同步請求的時間戳為t3,監(jiān)測服務(wù)器接收請求的時間戳為t4。另外,由于在監(jiān)測服務(wù)器與被監(jiān)測對象之間傳輸?shù)膬H時鐘同步請求和時間戳(數(shù)據(jù)量小),可假設(shè)數(shù)據(jù)的雙向傳輸?shù)臅r延是相同的,即:
假設(shè)被監(jiān)測對象的時鐘比監(jiān)測服務(wù)器的時鐘慢δ,那么就有:
其中,t2′是被監(jiān)測對象接收同步請求的實際時間戳,t3′是被監(jiān)測對象向監(jiān)測服務(wù)器回傳同步請求的實際時間戳。結(jié)合式(1)和式(2),有:
即:
由式(2)可知,當δ>0時,被監(jiān)測對象的時鐘比監(jiān)測服務(wù)器的時鐘慢δ;當δ=0時,被監(jiān)測對象的時鐘與監(jiān)測服務(wù)器的時鐘是一致的;當δ<0時,被監(jiān)測對象的時鐘比監(jiān)測服務(wù)器的時鐘快|δ|。通過δ就可以實現(xiàn)監(jiān)測服務(wù)器與被監(jiān)測對象間的時鐘同步,它為云系統(tǒng)內(nèi)部網(wǎng)絡(luò)的優(yōu)化提供了基礎(chǔ)。
資源監(jiān)測是云計算環(huán)境中必不可少的組成部分。根據(jù)云計算資源的特性,本文提出了基于動態(tài)周期和事件驅(qū)動的資源監(jiān)測模型。周期監(jiān)測對于大多數(shù)常規(guī)監(jiān)測是足夠的,但在某些特殊情況下事件驅(qū)動監(jiān)測對于獲取實時數(shù)據(jù)可以發(fā)揮重要作用。本文提出的資源監(jiān)測模型結(jié)合了動態(tài)周期和事件驅(qū)動監(jiān)測,具有良好的時效性;接收的數(shù)據(jù)都以最原始的狀態(tài)保存至數(shù)據(jù)庫,具有良好的魯棒性;監(jiān)測者與被監(jiān)測者不需要相互了解其內(nèi)在結(jié)構(gòu),具有松耦合性;同時本模型具有可擴展性。
1 Hayes B.Cloud computing.Commun ACM,2008,51(7):9~11
2 Milojicic D.Cloud computing:interview with RUSS daniels and franco travostino.IEEE Internet Computing,2008,12(5):7~9
3 Armbrust M,Fox A,Griffith R,et al.Above the clouds:a berkeley view of cloud computing.Communications of the ACM,2010,53(4):50~58
4 Wolf F,Mohr B.Hardware-counter based automatic performance analysis of parallel programs.Proceedings of the Conference on Parallel Computing,Dresden,Germany,2003:753~760
5 Massie M L,Chun B N,Culler D E.The ganglia distributed monitoring system:design,implementation,and experience.Parallel Computing,2004,30(7):817~840
6 Vetter J S,Reed D A.Real-time performance monitoring,adaptive control,and interactive steering of computational grids.The InternationalJournalofHigh Performance Computing Applications,2000,14(4):357~366
7 Shaffer E,Reed D A,Whitmore S,et al.Virtue:performance visualization ofparalleland distributed applications.IEEE Computer,1999,32(12):44~51
8 Diaz I,Fernandez G,Martinm M J,et al.Integrating the Common Information Model with MDS4.Proceedings of 2008 9th IEEE/ACM International Conference on Grid Computing,Tsukuba,Japan,2008:298~303
9 楊剛,隨玉磊.面向云計算平臺自適應資源監(jiān)測方法.計算機工程與應用,2009,45(29):14~17
10 Daniel D,Lovesum S P J.A novel approach for scheduling service request in cloud with trust monitor.Proceedings of 2011 International Conference on Signal Processing,Communication,Computing and Networking Technologies (ICSCCN 2011),Thuckalay,India,2011:509~513
11 Mdhaffar A,Ben Halima R,Juhnke E,et al.AOP4CSM:an aspect-oriented programming approach for cloud service monitoring.Proceedings of2011 11th IEEE International Conference on Computer and Information Technology,Pafos,Cyprus,2011:363~370
12 Mei Yiduo,Liu Ling,Pu Xing,et al.Performance measurements and analysis of network I/O applications in virtualized cloud.Proceedings of 2010 IEEE 3rd International Conference on Cloud Computing(CLOUD),Miami,FL,USA,2010:59~66
13 Fang Haifeng,Zhao Yiqiang,Zang Hongyong,et al.VMGuard:an integrity monitoring system for management virtual machines.Proceedings of 2010 IEEE 16th International Conference on Parallel and Distributed Systems (ICPADS),Shanghai,China,2010:67~74
14 Samba A.Logical data models for cloud computing architectures.IT Professional,2012,14(1):19~26
15 Wei Yi,Blake M B.Service-oriented computing and cloud computing: challenges and opportunities. IEEE Internet Computing,2010,14(6):72~75
16 De Chaves S A,Uriarte R B,Westphall C B.Toward an architecture for monitoring private clouds.IEEE Communications Magazine,2011,49(12):130~137
17 Meng Shicong,Liu Ling,Wang Ting.State monitoring in cloud datacenters.IEEE Transactions on Knowledge and Data Engineering,2011,23(9):1328~1344
18 Goscinski A,Brock M.Toward dynamic and attribute based publication,discovery and selection for cloud computing.Future Generation Computer Systems,2010,26(7):947~970
19 Marston S,Li Zhi,Bandyopadhyay S,et al.Cloud computing-the business perspective.Decision Support Systems,2011,51(1):176~189
20 Taylor M,Haggerty J,Gresty D,et al.Digital evidence in cloud computing systems.Computer Law&Security Review,2010,26(3):304~308
21 Morrell R,Chandrashekar A.Cloud computing:new challenges and opportunities.Network Security,2011(10):18~19