雲計算平臺技術架構
雲計算技術架構從上往下主要分為以下四個層次:
雲控制器-cloud controller
雲控制器負責接收用戶請求,校驗請求的合法性,根據請求類型,要麼由雲控制器處理,要麼按策略將其調度到合適的集群控制器處理。並將處理結果返回給用戶。同時一個雲控制器可以管理多個集群控制器。 雲控制器相當於系統的中樞神經,它是用戶的可見入口點和做出全域決定的元件。它負責處理進入的由使用者發起的請求或系統管理員發出 的管理請求,做出高層的虛擬機器實例調度決定。並且處理服務等級協定和維護系統和使用者相關的中繼資料。
雲控制器由一組服務組成,這些服務用於處理使用者請求、驗證和維護系統、使用者中繼資料(虛擬機器映射和SSH金鑰對等),並可管理和監視虛擬機實例的運行。它負責管理,調度和分配雲計算平臺上所有的資源。它管理的資源就是保存在鏡像存儲伺服器上的多個虛擬桌面鏡像檔(調度和分配雲計算平臺資源)。這些服務由企業服務匯流排來配置和管理,通過企業服務匯流排可以進行服務發佈等操作。
集群控制器-cluster controller
集群控制器接收到雲控制器的請求後,按策略將其調度給合適的節點控制器處理。一個集群控制器可以管理多個節點控制器。此外,它通過調用網路子系統的網路控制器搭建集群的受控網路環境,包括虛擬子網,網路路由,防火牆策略等。其中的防火牆設置為計算環境加了一道安全保障:當要訪問虛擬伺服器的指定埠時,除了需要虛擬伺服器打開指定埠,還要求其虛擬網路進行相應的網路授權。
集群控制器是對雲計算基礎計算節點進行資源分群的手段,根據業務需求可以配置成不同業務集群,如“試用”集群、“商用”集群、“高CPU使用”集群等,從而實現商業上不同服務承諾級別(SLA)。每個集群控制器都可以設置不同的調度、能耗、管理策略,從而實現對計算節點的生產資源優化管理。
典型的集群控制器運行在集群的頭結點或伺服器上,它們都可以訪問私有或公共網路。一個集群控制器可以管理多個節點控制器。集群控制器負責從其所屬的節點控制器收集節點的狀態資訊,根據這些節點的資源狀態資訊調度進入的虛擬機器實例執行請求到各個節點控制器上,並負責管理公共和私有實例網路的配置。
存儲控制器-storage controller
集群控制器和節點控制器會將屬於存儲的請求部分轉給對應的存儲控制器。存儲控制器使用存儲子系統提供的能力創建、更新和刪除存儲,如磁片的創建,將其掛接到虛擬伺服器,創建磁片的備份等。主要用於異構存儲系統的整合和統一資料管理。它的優勢是:第一,與主機無關, 不佔用主機資源;第二,能夠支援異構主機、異構存放裝置;第三,能使不同存放裝置的資料管理功能統一;第四,可以構建統一管理平臺,可擴展性好。
節點控制器-node controller
節點控制器負責處理從集群控制器發出的請求,並控制、管理和監控運行在其上的虛擬伺服器的計算環境和存儲環境。在這裡,虛擬伺服器可以是使用KVM或Xen的虛擬化技術,也可以使用Linux容器LXC的技術,支援不同的虛擬技術為上層提供了不同的業務場景,虛擬化技術讓上層應用可以運行在更多的作業系統,而LXC則擁有更好的性能,特別是滿足上層彈性MapReduce的高計算量要求。另外,這裡節點控制器對虛擬伺服器的監控是一種非入侵式的監控,它不需要對目標虛擬伺服器植入監控程式,這也是運營公有雲的客戶需求。
節點控制器負責管理一個物理節點。節點控制器是運行在虛擬機器寄宿的物理資源上的一個元件,它負責啟動、檢查、關閉和 清除虛擬機器實例等工作。