在介紹完雲端運算的三種服務模型後,我們再將目標轉回到主幹Windows Azure Platform,深入Windows Azure Platform的核心部份一探究竟。
我們在Cloud Infrastructure中提到了資料中心內會有一套軟體來支援資料中心內硬體與網路資源的調配工作,Windows Azure Platform中負責這件事情的軟體稱為Fabric Controller,就如同作業系統的Kernel核心一樣,它會總管資料中心內所有伺服器(含實體與虛擬)的運作,以及各式資源的調配,其中亦包含使用者的虛擬機器管理監控、狀態回報、自動化管理以及部署等工作。
在微軟的資料中心內會以機架來區分伺服器集,每個機架稱為節點(node),機架上有一定數量的機架型伺服器、網路集線器、電源供應單元(Power Distribution Unit)與對外連線的頂層交換器(Switch)。
Fabric Controller(FC)本身也是一個多層次的部署架構,在每個節點中都會有一個安裝有Fabric Controller的電腦,負責管理該節點內的所有伺服器的活動,而每次資料中心內有新的伺服器進駐時,管理人員會使用一個叫做Utility Fabric Controller(UFC)的系統自動在新伺服器上安裝與啟用Fabric Controller,以及負責所有線上Fabric Controller的軟體更新工作。
Fabric Controller主要負責的工作有:
1. 配置使用者要求的虛擬機器資源。
2. 自動監控虛擬機器的執行狀態,若發現虛擬機器當機時,自動找尋不同的伺服器並重新啟動該虛擬機器。
3. 使用者要求Scale-Out時,動態配置使用者要求的伺服器數量的虛擬機器。
4. 當使用者要求更新雲端軟體時,依更新的劃分順序來更新。
5. 回報伺服器狀態給控制中心。
6. 回收不使用或已刪除的虛擬機器資源。
在資料中心內均有已預載好,不同客座作業系統(Guest OS)版本的虛擬機器基礎影像(base image),當使用者要求虛擬機器時,它會啟動部署流程,由虛擬機器的基礎影像複製一份副本至指定的伺服器中,伺服器內的掛載環境作業系統(Windows Azure Host OS)內的Fabric Agent接收到訊息時,即會對Hypervisor下令以差異磁碟(Difference Disk)方式啟動虛擬機器,並載入應用程式環境以及安裝套件到指定的路徑。我們在Windows Azure Management Portal所看到的部署狀態的訊息,就是由Host OS中的Fabric Agent回報的。
每台成員伺服器上都已安裝了Windows Azure Host OS以作為掛載作業環境,透過Hypervisor,伺服器上可以安裝多台虛擬機器,Windows Azure所使用的Hypervisor是Hyper-V的特製版本,所以具有Hyper-V技術的特性,由中控的Fabric Controller在部署時決定使用的伺服器,並下達配置指令與參數給Host OS進行處理,每個Guest OS都安裝有正規版本的Windows Server 2008(1.0)或Windows Server 2008 R2(2.0),同時內含了一個Fabric Agent,讓Guest OS可以存取Fabric Controller的訊息,並回報資訊給Fabric Controller。
使用Windows Azure Platform的應用程式,都會封裝成*.cspkg(Cloud Service Package)以及*.cscfg(Cloud Service Configuration),而*.cspkg中又會包含*.csdef(Cloud Service Definition),其功用為:
.cspkg:封裝雲端應用程式所有的必要檔案,包含執行檔以及DLLs,如果有Web.config或app.config時也會一併加入。
.csdef:定義雲端應用程式的標準環境,包含要使用的Role(虛擬機器角色)、網路服務、虛擬機器等級以及憑證資訊等。
.cscfg:定義雲端應用程式的組態設定,包含要用的storage account、遠端桌面參數、要使用的虛擬機器數量等。
應用程式部署時,Windows Azure Platform會由.cspkg中取出.csdef定義檔,以設定要部署的虛擬機器等級參數及.cscfg的數量參數,在虛擬機器啟動後,會依.cscfg的設定修改虛擬機器的參數,而.cscfg也允許線上修改,管理人員可以透過管理介面或服務APIs來修改.cscfg的內容,同時會在短時間內生效。
本文運筆至此,明天會再深入介紹應用程式處理更新與容錯的部份。
Reference:
http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-853T