雲計算體系架構研究

摘  要: 本文將雲計算體系架構劃分成核心服務、服務管理和用戶訪問接口三大體系所組成,然後深入的介紹了雲計算的核心服務:IaaS(基礎設施即服務)、PaaS(平臺即服務)和SaaS(軟件即服務)。也對服務管理中的QoS保證機制進行了分析與研究。

關鍵詞:雲計算;虛擬化;數據中心;服務質量

1  引言
雲計算是繼分佈式計算、網格計算、對等計算之後的一種新型計算模式。它是在集羣計算、效用計算、網格計算以及服務計算的基礎上發展而來,同時又是分佈式計算、互聯網技術、大規模資源管理等技術的融合和發展。其研究和應用是一個巨大的系統工程,涵蓋了數據中心管理、資源虛擬化、海量數據處理、計算機安全等重要問題。其主要爲用戶提供資源租用、應用託管和服務外包等服務。
其服務特點主要有:
1) 彈性服務。其服務規模可以自動調整,以適應業務負載的需求。
2) 資源池化。資源以共享資源池的方式統一管理。
3) 按需服務。以服務的形式爲用戶提供應用程序、數據存儲、基礎設施等資源。
4) 服務計費。自動監控用戶的資源使用量,並根據資源的使用量收取服務費用。
5) 泛在接入。用戶可以利用各種終端設備(如PC、智能手機、筆記本等)隨時隨地通過互聯網訪問雲計算服務。
雲計算體系架構可分成核心服務、服務管理和用戶接口這三層,如圖1.1所示。其中核心服務層將硬件基礎設施、軟件運行環境和應用程序抽象成服務。服務管理層爲核心層服務提供支持,進一步確保核心服務的可靠性、可用性和安全性。用戶訪問接口層實現端到雲的訪問。
 
圖1.1 雲計算體系架構

2  雲計算核心服務
雲計算核心服務通常可以分爲三個子層:基礎設施即服務(IaaS, Infrastructure as a service)、平臺即服務(PaaS, Platform as a service)和軟件即服務(SaaS, Software as a service)。下面對這三個子層分別進行詳細的討論。
2.1 IaaS
IaaS層是雲計算的基礎,而數據中心是IaaS層的基礎。通過建立大規模數據中心,IaaS層可以爲上層提供海量硬件資源。同時,在虛擬化技術的支持下,IaaS層可以實現硬件資源的按需配置,並提供個性化的基礎設施服務。基於此,IaaS層主要研究2個問題:首先是如何建設低成本、高效能的數據中心;其次是如何實現虛擬化技術,實現資源的按需分配。
1)數據中心。
數據中心是雲計算的核心,其資源規模與可靠性對上層的雲計算服務有着重要的影響。其主要特點有:首先是自治性,即數據中心在發生異常時能自動重新配置,並從異常中恢復,而不影響服務的正常使用。其次是可擴展性,隨着數據規模的不斷增大,系統能夠方便增加新的計算節點。
由於數據中心大規模計算節點的出現,設計一種好的網絡拓補結構變得異常的重要。在此我們主要介紹兩種網絡拓補結構:傳統樹形結構的網絡拓補和PortLand網絡拓補結構。
樹形結構的網絡拓補如圖2.1所示。其主要由核心層、匯聚層和邊緣層組成。此拓補主要有以下缺陷:首先是可靠性低,若核心層或匯聚層的網絡設備發生異常,網絡的性能會大幅下降。其次是可擴展性差,由於核心層端口有限,難以支持大規模網絡。再次,網絡寬帶有限,匯聚交換機連接邊緣層的寬帶遠大於其連接核心層的寬帶。
 
圖2.1 傳統的樹型網絡拓補
PortLand網絡拓補結構如圖2.2所示。同樣也是由核心層、匯聚層和邊緣層組成。其中邊緣層和匯聚層可分解爲若干Pod,每個Pod含有K臺交換機,分屬邊界層和匯聚層,每層K/2臺交換機。Pod內部以完全二分圖的結構相連。邊緣層交換機連接計算節點,每個邊緣層交換機可連接K/2個計算節點,故每個Pod可連接K2/4個計算節點。匯聚層交換機連接核心層交換機,同樣每個Pod連接K2/4個核心層交換機。基於PortLand,可以保證任意兩點之間有多條通路,計算節點在任何時刻兩兩之間可無通信阻塞,從而滿足雲計算數據中心的高可靠性和高寬帶的需求。
 
圖2.2 PortLand網絡拓補
2)虛擬化技術。
爲了實現基礎設施服務的按需分配,需要對虛擬化技術有深入的研究。虛擬化技術主要有以下特點:首先是資源分享,通過虛擬機封裝用戶各自運行的環境,有效實現多用戶分享數據中心資源。其次是資源定製,指用戶利用虛擬化技術,配置私有的服務器,指定所需的CPU數目、內存容量、磁盤空間等,實現資源的按需分配。再次,可以實現資源的細粒度管理。虛擬化技術是實現雲計算資源池化和按需服務的基礎,爲滿足雲計算彈性服務和數據中心自治性要求,需要研究虛擬機的快速部署和在線遷移技術。
傳統的虛擬機部署分爲四個階段:創建虛擬機;安裝操作系統和應用程序;配置主機屬性;啓動虛擬機。由於該方案部署時間長,無法滿足雲計算彈性服務的要求。爲簡化虛擬機的部署過程,於是有學者提出了虛擬機模板技術。虛擬機模板預裝了操作系統與應用程序,並對虛擬機設備進行了預配置,這樣可以有效減少虛擬機的部署時間。將模板轉換成虛擬機需要複製模板文件,當模板文件較大時,需要很大的時間開銷。爲此,又有學者提出了基於fork思想的虛擬機部署方式。基於虛擬機級的fork,子虛擬機可以繼承父虛擬機的內存狀態信息,並在創建後即可使用。當部署大規模虛擬機時,子虛擬機可以並行創建,並維護其獨立的內存空間,而不依賴於父虛擬機。爲了減少文件的複製開銷,虛擬機fork採用了“寫時複製”技術:子虛擬機在執行“寫操作”時,將更新後的文件寫入本地磁盤;在執行“讀操作”時,通過判斷該文件是否已被更新,確定本機磁盤或父虛擬機的磁盤讀取文件。虛擬機fork是一種即時部署技術,雖然提高了部署效率,但是通過該技術部署的子虛擬機不能持久保存。
虛擬機在線遷移技術是指虛擬機在運行狀態下從一臺物理機移動到另一臺物理機。它對雲計算平臺有效管理具有重要意義。首先,它可以提高系統的可靠性,如支持物理機維護和虛擬機運行時備份等操作。其次 有利於負載均衡,當物理機負載過重時,可以通過虛擬機遷移技術達到負載均衡,優化數據中心性能。最後,有利於設計節能方案,通過集中零散的虛擬機,可使部分物理機完全關閉,以達到節能目的。
2.2 PaaS
PaaS層爲核心服務層的中間層,它爲上層應用提供簡單、可靠的分佈式編程框架,又需要基於底層的資源信息調度作業、管理數據、屏蔽底層系統的複雜性。隨着數據密集型應用的普及和數據規模的日益龐大,PaaS層需要具備存儲和處理海量數據的能力,同時也需要資源管理與調度技術以及任務容錯機制。
1)海量數據存儲技術。雲計算的海量數據存儲既要考慮存儲系統的I/O性能,又要保證文件系統的可靠性與可用性。在此以google的GFS(google file system)爲例進行分析。首先,GFS對應用環境做出瞭如下假設:①系統架構在容易失敗的硬件平臺上;②需要存儲大量GB甚至TB級別的大文件;③文件讀操作以大規模的流式讀和小規模隨機讀構成;文件具有一次寫多次讀的特點;④系統需要有效處理併發的追加操作;⑤高持續I/O寬帶比低傳輸延遲重要。
在GFS中,一個大文件被劃分成若干固定大小的數據塊並分佈在計算節點的本地硬盤,爲保證數據的可靠性,每個數據塊都保存有多個副本,所有的文件和數據塊副本的元數據有元數據管理節點管理。GFS 的優勢在於:①由於文件的分塊粒度大,GFS 可以存取PB 級的超大文件;②通過文件的分佈式存儲,GFS 可並行讀取文件,提供高I/O 吞吐率;③鑑於上述假設4,GFS 可以簡化數據塊副本間的數據同步問題;④文件塊副本策略保證了文件可靠性。
2)數據處理技術與編程模型。由於PaaS平臺部署在大規模硬件資源上,所以海量數據的分析處理需要抽象處理過程,並要求其編程模型支持規模擴展,屏蔽底層細節並簡單有效。在此以google的MapReduce爲例進行說明。MapReduce是google提出的並行程序編程模型,運行於GFS之上,如圖2.3所示。一個MapReduce作業由大量Map和Reduce任務組成,根據兩類任務的特點,可以把數據處理過程劃分成Map和Reduce兩個階段。在Map階段,Map任務讀取輸入文件塊,並行處理,然後將處理結果保存到Map任務執行節點上。在Reduce階段,Reduce任務讀取併合並多個Map任務的中間結果。
MapReduce可以簡化大規模數據處理的難度:首先,MapReduce中的數據同步發生在Reduce讀取Map中間結果的階段,這個過程由編程框架自動控制,從而簡化數據同步問題;其次,由於MapReduce 會監測任務執行狀態,重新執行異常狀態任務,所以程序員不需考慮任務失敗問題;再次,Map 任務和Reduce任務都可以併發執行,通過增加計算節點數量便可加快處理速度;最後,在處理大規模數據時,Map/Reduce 任務的數目遠多於計算節點的數目,有助於計算節點負載均衡。但它也存在諸多的缺點:首先是靈活性低,很多問題難以抽象成Map和Reduce操作;其次是MapReduce在實現迭代算法時,效率較低;再次就是在執行多數據集的交運算時效率不高。
 
圖2.3 MapReduce的執行過程
3)副本管理技術。副本機制是PaaS層保證數據可靠性的基礎,有效的副本管理策略不但可以降低數據丟失的風險,而且能優化作業完成的時間。如Hadoop採用了機架敏感的副本放置策略,該策略默認文件系統部署在傳統網絡拓補的數據中心。若放置三個副本,由於同一機架的計算節點間網絡寬帶高,所以機架敏感的副本放置策略將兩個文件放置於同一個機架,剩下的一個副本放置與不用的機架中。這樣的策略既考慮了計算節點和機架失效的情況,也減少了維護數據一致性帶來的網絡開銷。
4)任務調度算法與容錯機制。由於PaaS層的海量數據處理以數據密集型作業爲主,其執行性能受到I/O寬帶的影響。爲了減少任務執行過程中的網絡傳輸開銷,可以將任務調度到輸入數據所在的計算節點。因而需要研究面向數據本地性的任務調度。Hadoop以“盡力而爲”的策略保證數據本地性,Jin等人設計了BAR調度算法,基於“先均勻分配再均勻負載”的思想,BAR算法在快速求解大規模HTA問題是獲得了較好的效果。除了保證數據的本地性之外還需要考慮作業之間的公平調度。研究作業公平調度算法可以及時爲即時作業分配資源,使其快速響應。
爲了使PaaS平臺可以在任務發生異常時自動從異常狀態恢復,因而需要任務容錯機制。MapReduce的容錯機制在檢測異常任務時,會啓動任務的備份任務。備份任務好原任務同時執行,當其中一個任務順利完成時,調度器立即結束另一個任務。
2.3 SaaS
SaaS層面向的是雲計算的終端用戶,提供基於互聯網的軟件應用服務。典型的SaaS應用如:Google Apps。Google Apps包括Google Docs、Gmail等一系列的SaaS應用,通過將傳統的桌面應用程序遷移到互聯網,並託管這些應用程序,用戶通過web瀏覽器即可隨時隨地訪問這些應用,而無需下載、安裝或維護任何硬件和軟件。
3  雲計算服務管理
爲了使雲計算核心服務高效、安全的運行,需要服務管理技術加以支持。服務管理技術包括QoS保證機制、安全與隱私保護技術、資源監控技術、服務計費模型等。其中,QoS 保證機制和安全與隱私保護技術是保證雲計算可靠性、可用性、安全性的基礎。
3.1 QoS保證機制
雲計算不僅要爲用戶提供滿足功能需求的資源和服務,同時還需要提供優質的QoS,以保證應用順利高效地執行。這是雲計算得以被廣泛採納的基礎。首先,用戶從自身應用的業務邏輯層面提出相應的QoS需求;爲了能夠在使用相應服務的過程中始終滿足用戶的需求,雲計算服務提供商需要對QoS水平進行匹配並且與用戶協商制定服務水平協議;最後,根據SLA 內容進行資源分配以達到QoS保證的目的。針對以上3 個步驟,本節依次介紹IaaS、PaaS和SaaS 中的QoS 保證機制。
 
圖3.1 QoS保證機制
1)IaaS層的QoS保證機制。IaaS 層可看作是一個資源池,其中包括可定製的計算、網絡、存儲等資源,並根據用戶需求按需提供相應的服務能力。IaaS 層所關心QoS 參數主要可分爲兩類:一類是雲計算服務提供者所提供的系統最小服務質量,如服務器可用性及網絡性能等;另一類服務提供者承諾的服務響應時間。
2)PaaS/SaaS層的QoS保證機制。在雲計算環境中,PaaS 層主要負責提供雲計算應用程序(服務)的運行環境及資源管理。SaaS提供以服務爲形式的應用程序。與IaaS 層的QoS 保證機制相似,PaaS 層和SaaS 層的QoS 保證也需要經歷3個階段。PaaS層和SaaS 層QoS 保證的難點在第3 階段(資源分配階段)。由於在雲計算環境中,應用服務提供商同底層硬件服務提供商之間可以是鬆耦合的,所以PaaS 層和SaaS 層在第3 階段需要綜合考慮IaaS 層的費用、IaaS 層承諾的QoS、PaaS/SaaS 層服務對用戶承諾的QoS 等。

 

參考文獻:

羅軍舟,金嘉暉等. 雲計算:體系架構與技術. 通信學報,2011.

 

發佈了33 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章