郭 平,馮婷瑩
(重慶大學計算機學院軟件理論與技術重慶市重點實驗室 重慶400044)
云計算是一種新興的商業計算模型,它將計算任務分布在資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和各種軟件服務[1~3]。
為有效管理云計算系統中的資源并發揮其效率,資源監測是必不可少的。資源監測不僅可以及時發現云計算系統中節點或者節點上運行的虛擬機出現的故障,為解決故障贏得時間從而及時恢復系統的性能;而且能夠及時發現資源使用的變化,為任務調度和負載均衡等提供可靠數據保障;同時為資源的使用計費提供準確的數據支持。因此,研究云計算環境下的資源監測,對云計算的發展有著舉足輕重的作用。
對計算系統中資源監測的研究起始于20世紀60年代。隨著分布式計算和網格計算的發展,資源監測的技術與方法取得了很大的發展。例如,PAPI[4]是一種硬件性能計數器,當產生特定信號或相關狀態時對事件進行計數,對這些事件進行檢測可以獲取代碼和體系結構映射效率的相關性,以便在性能上進行分析和調整;Ganglia[5]通過對集群進行監測獲取包括內存、操作系統、處理器負載等基本主機數據;Autopilot[6]是一個分布式性能測量和資源控制系統,提供在分布式系統中捕獲的網絡和操作系統數據;Virtue[7]從 Autopilot接收實時數據并允許用戶改變軟件行為和資源策略;MDS[8]是一種基于網格計算環境的信息服務框架,包括資源的發現、描述、監視以及更新,可以幫助網格應用程序進行自我調整和配置,也可以幫助用戶了解所搭建網格系統。這些研究對于分布式系統與網格系統中的資源監測有重要的作用,但如果直接用于云計算環境下,則會有一些不足。一方面,云計算環境下的資源是高度虛擬化和彈性化的,同時云計算向外提供如IaaS、PaaS、SaaS等不同層次的服務,除了對物理服務器的資源需要進行監測外,對運行在其上的虛擬機也需要進行監測。另一方面,云計算資源主要分為計算資源和存儲資源,對不同類型的資源所需監測的信息也是不同的。例如,對計算資源主要監測CPU、內存,而對存儲資源則主要監測硬盤、內存。因此,在云計算系統中,不僅監測對象發生了變化,而且監測環境也發生了變化。
目前,針對云計算環境中的資源監測,主要集中在數據傳輸安全性以及用戶信息服務上[9]。如使用SLA(service level agreement,服務等級協議)加強用戶交互時間和安全性[10]以及使用面向方面編程的方法來監測云服務數據[11]。本文提出的云計算中資源監測系統模型是對云計算環境中資源使用情況進行監測。
云計算一般分為3層:硬件層、虛擬化層和服務提供層。硬件層就是傳統意義上的硬件資源,再加上云計算資源池的控制軟件、操作系統和中間件等。虛擬化層主要是由虛擬化資源、虛擬化映像管理、網絡和資源存儲等模塊組成,在該層可利用虛擬化技術擴展每一個服務器的能力,將各自的資源通過云計算平臺結合起來,提供超級計算和存儲能力。服務提供層是云計算和用戶的交互界面,用戶能夠通過該界面使用后臺強大的資源,該層提供的服務方式包括 SaaS、PaaS和IaaS等。
對云計算中的資源監測主要集中在硬件層和虛擬化層。此外,需要監測的云計算資源可以分為計算節點、存儲節點以及管理節點。由于各個節點的特性不同,所以要監測的對象也不同。計算節點主要處理計算服務,存儲節點主要處理用戶數據資源的存取工作以及應用的存放與處理,管理節點則是對其他服務器進行任務分配以及管理的節點。
對云計算資源的監控,能夠掌握系統實時情況以便對系統進行管理。對云計算資源監控為負載均衡提供了可靠的數據基礎。對云計算資源數據進行分析有助于掌握云計算系統的薄弱環節以便進行分析。
云計算系統中的監測對象,從功能角度分為存儲服務器、計算服務器和管理服務器;從虛擬化角度分為物理服務器和虛擬服務器;而更細的方面,監測對象就是操作系統、CPU、內存、硬盤、I/O 等。
因為服務器的功能不同,所以各服務器所需要監測的對象也就不同。表1給出了針對不同的監測對象需要監測的主要參數。
計算機系統資源監測的方法主要分為周期監測和事件驅動監測兩種。
周期監測是指監測服務器按照一定的規律周期地發出監測請求,如每隔5 s發送一次請求,采集器采集各被監測對象的資源使用相關數據后向監測服務器反饋監測數據。監測服務器負責監控本地服務器上各虛擬機對于CPU、內存和網絡帶寬的使用情況,并通過綜合獲得當前服務器的整個資源使用情況。周期監測是為了能夠更加及時地獲取經常變化的對象數據,如內存的使用情況。
周期監測又分為固定周期監測和動態周期監測。固定周期是指監測的間隔完全相同,動態周期則是指根據一定的規律來調整周期。固定周期監測方便監測的統一管理,但沒有根據所要監測資源的實時情況進行監測;動態周期監測能夠根據監測情況實時調整周期的變化,但如果周期變化規律過于復雜又會給服務器過重的負擔。因此,服務器需要能夠根據監測對象情況合理調整周期。
事件驅動監測是指當被監測對象產生特定事件時,對其進行監測并將監測結果反饋給監測系統。事件驅動監測的發生時間具有不確定性,沒有特定的規律,通常與系統中運行的應用以及系統的狀態相關。

表1 監測對象和監測參數

一般情況下,通過周期監測來監測服務器就足夠了。但當監測對象發生特定事件時,如更換操作系統,監測對象就需要給監測系統發送其所在服務器的最新信息,以便監測服務器能夠得到最新的監測數據。
本文基于對云計算下資源監測的分析,并結合云計算自身的特點,建立如圖1所示的監測模型。
監測服務器是用來管理監測事務的,其主要功能包括發送監測請求、接收監測數據、存儲監測數據、動態調節監測周期和更新資源狀態表等。監測服務器的數據庫存儲發送的監測請求數據、接收的監測數據以及服務器的一些處理數據。監測周期模型模塊是對服務器的檢測周期進行處理的模塊,能夠根據監測數據實時調整監測周期。狀態表包括周期狀態表、監測請求狀態表等。
被監測對象包括物理的或虛擬的計算、存儲和管理服務器,其主要功能有接收監測請求、獲取監測數據、發送監測數據以及當特定事件發生時主動進行監測等。其中,監測請求是由周期監測發送的;監測數據既包括周期監測的數據也包括事件驅動監測的數據。對象監測數據包括系統數據、網絡數據、應用數據等。
數據的使用者是指將監測數據作為原始數據以進行后續工作的功能模塊或人員,如負載均衡模塊、服務器管理人員等。
假設以監測服務器的時鐘為標準,監測服務器的最小周期單位為t0。監測周期狀態表中保存的數據包括服務器標識、服務器類型、資源情況、時間差、服務器狀態、監測時間、監測周期等。監測周期存放著還需要過多少個t0就需要對服務器發送監測請求。
在調整周期之前,先將監測資源分為3組,分別為計算、存儲和管理3類。每一類又分成若干個隊列,隊列的數量取決于具體的云環境。假設分為3個隊列,分別為qA、qB和qC。qA為資源使用情況超過某一指標v1的服務器所組成的隊列,qB為低于v1但高于另一指標v2的服務器所組成的隊列,其他小于v2的則組成qC。
在這3個隊列中,qC是三者中運行情況最穩定也是負載最低的,通常情況下這種狀態的服務器也是最多的,因此整個qC可以采用共同的監測周期進行監測,這樣發送監測請求也可以減輕監測服務器的負擔。
qA則是三者之中最危險的,因此需要對其進行嚴格的監測。對于這一隊列的節點需要進行負載均衡使其擺脫危險狀態。每隔t0就對這個隊列的監測狀態表進行如圖2所示的更新。
qB是介于qA和qC二者之間,可以采取類似qC的方法,即整個隊列使用共同周期,但這個周期又比qA的周期要小。如果qA為空,可以將qB中個別長時間在qB中且資源使用率比較高的移至qA中進行負載均衡調節。

不同的監測對象類型所需要的監測周期不同。數據波動大的資源需要較高的采樣頻率,如CPU;數據波動小的使用較低的采樣頻率就可以滿足,如磁盤。由此可得,管理服務器、存儲服務器以及計算服務器3個組的周期的變化規律是不同的。將它們分為不同的組,在各個組里使用若干個隊列進行動態周期的調節由此來實時獲取資源信息以及減輕監測服務器負擔。
周期監測能夠滿足大部分監測要求,但仍然有一些資源使用情況會發生突然的變化,這時如果仍采用監測周期方法將影響資源監測的實時性。產生資源使用突然變化的事件就是事件驅動監測要關注的事件。
云計算環境中,事件驅動監測的事件主要包括新建虛擬機、刪除虛擬機、啟動新應用、結束應用、改變操作系統、服務器啟動等。
在資源監測中,監測服務器的時鐘與監測對象的時鐘往往是不同的,這種差異使監測服務器不能確定被監測對象的實時狀況。為此,通過定期在監測服務器與被監測對象之間傳送時間戳來計算它們的時鐘差。
基于監測服務器的時鐘,假設監測服務器向被監測對象發送時鐘同步請求的時間戳為t1,被監測對象接收請求的時間戳為t2,被監測對象回傳同步請求的時間戳為t3,監測服務器接收請求的時間戳為t4。另外,由于在監測服務器與被監測對象之間傳輸的僅時鐘同步請求和時間戳(數據量小),可假設數據的雙向傳輸的時延是相同的,即:

假設被監測對象的時鐘比監測服務器的時鐘慢δ,那么就有:

其中,t2′是被監測對象接收同步請求的實際時間戳,t3′是被監測對象向監測服務器回傳同步請求的實際時間戳。結合式(1)和式(2),有:

即:

由式(2)可知,當δ>0時,被監測對象的時鐘比監測服務器的時鐘慢δ;當δ=0時,被監測對象的時鐘與監測服務器的時鐘是一致的;當δ<0時,被監測對象的時鐘比監測服務器的時鐘快|δ|。通過δ就可以實現監測服務器與被監測對象間的時鐘同步,它為云系統內部網絡的優化提供了基礎。
資源監測是云計算環境中必不可少的組成部分。根據云計算資源的特性,本文提出了基于動態周期和事件驅動的資源監測模型。周期監測對于大多數常規監測是足夠的,但在某些特殊情況下事件驅動監測對于獲取實時數據可以發揮重要作用。本文提出的資源監測模型結合了動態周期和事件驅動監測,具有良好的時效性;接收的數據都以最原始的狀態保存至數據庫,具有良好的魯棒性;監測者與被監測者不需要相互了解其內在結構,具有松耦合性;同時本模型具有可擴展性。
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 楊剛,隨玉磊.面向云計算平臺自適應資源監測方法.計算機工程與應用,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