讓Windows作業系統變身為雲端作業系統的關鍵是Fabric Controller(簡稱FC)技術。這是微軟為Azure量身打造的新式管理機制,用標準化的虛擬機器(Virtual Machine ,VM),仿照叢集(Cluster)架構方式,創造出分散運算的效果。
Fabric Controller的主要任務是負責將Azure平臺中的可用資源分配給提供服務的應用程式。管理的範圍,涵蓋了1個服務從產生到結束的整個生命周期,同時還要監控Azure作業系統的健康,以確保應用程式執行環境的穩定性和擴充性。
用標準化規格增加彈性與效率
為了管理所有伺服器的運算資源,FC就如同郵局的便利箱服務一樣,透過標準化的作法來提高自動化的效率。
郵局提供了制式紙箱供民眾郵寄物品,這些紙箱就是便利箱。每個便利箱的大小容量都相同,不論寄件人要寄任何物品,只要放的進去,郵局就會運送。
因為便利箱的規格統一,而且可以事先製作,郵局就可以在紙箱上印了所有必備的郵寄欄位和作業資訊,讓郵差能夠透過標準作業流程來處理。不用像過去那樣麻煩,郵差必須在大小不一,書寫方式各異的箱子中,尋找要遞送的地址資訊。
因為統一規格,所以知道了箱子數量就可以精確地安排運送車輛。大卡車能載100箱、小貨車載20箱,而騎摩托車的茂伯,每次則可以載得動1個箱子。
當載具和包裹都標準化了以後,郵局運輸調度人員對於包裹運送的規畫,就可以更有彈性,也更有效率,即使有輛卡車臨時拋錨,也知道立刻要派多少小貨車來支援,不用多,也不會少。
FC是Azure中的主要調度員
標準化的虛擬機器,就像是這些制式便利箱。而效能不同的伺服器則是各式車輛。FC是Azure平臺中的調度人員,它不需要知道虛擬機器中執行什麼樣的應用程式,只要負責讓所有便利箱(虛擬機器)能夠順利搭上貨車(伺服器)送達目的地。
只要備用資源夠多,遇到紙箱破損(虛擬機器當機)或車輛拋錨(伺服器故障)時 ,FC只需將應用程式複製到另外一個新的虛擬機器中,就能夠繼續執行,服務不會中斷。
目前,微軟在Azure系統中,用了5~7臺伺服器來建立叢集,其中1臺伺服器擔任Fabric Controller的角色(Host),負責管理其他伺服器(Guest)。在每臺Guest伺服器上,都安裝了微軟虛擬化技術,用來建立虛擬機器。
這些虛擬機器都是相同規格,包括運算能力、記憶體、作業系統、儲存空間等,就像是一個標準規格的箱子,可以放入依據標準規格開發的應用程式。
大型伺服器,可以提供10個虛擬機器,中型伺服器可能只有5個。更甚者,也許1臺小型伺服器只能提供1個標準規格的虛擬機器,那就不用安裝虛擬化技術,直接利用原本的硬體環境來建立符合規格的作業環境。
每一個虛擬機器都視為叢集中的1個節點(Node),所有節點都統一由FC管理,FC會自動指派每個虛擬機器要負責執行的應用程式。
在每一個虛擬機器中,都有1個FC代理程式,用來監控虛擬機器的健康狀態。遇到虛擬機器發生故障當機,FC代理程式會發出警告,通知FC將應用程式轉換到另一個有效的虛擬機器中。
只要增加FC所管理的實體伺服器,就能夠增加應用程式可使用的虛擬機器,應用程式不需要知道實體伺服器,彼此沒有直接的關連。
所以,即使發現有臺實體伺服器發生故障,或者想要增加新伺服器數量,都不需要將關閉正常的實體伺服器,透過FC的安排,應用程式都能在健康的虛擬機器中執行,服務不會中斷。
這個透過FC來管理標準化虛擬機器的作法,同時讓Azure具備了高可用性以及擴充性。
FC也統管所有儲存資源
除了管理標準化的虛擬機器以外,FC也統一分配所有伺服器中的儲存資源,FC會將每臺伺服器上的可用儲存空間,統整為1個共享的儲存資源(Sharing Pool),再提供給虛擬機器上的應用程式使用。虛擬機器上的應用程式不會知道資料的實體位置,只能透過FC提供的網址來存取。
其他如應用程式所需的網路設定,頻寬負載平衡等,也都是由FC負責調度。IT人員不須像過去自行建置伺服器叢集時,必須自行設計專用的網路架構,管理負責的網域分配,才能讓伺服器叢集進行分散運算。FC等於是Azure平臺中的完美管家,在背後調度所有資源,默默服侍著應用程式,不用IT人員費心。
打包服務加快部署
為了進一步確保雲端服務的持續,微軟還採用了新的應用程式部署方式,來加快應用程式在虛擬機器之間的轉移速度。這個部署方式稱為服務映象檔(Service image)。
所謂的服務映象檔,就是將Azure應用的所有檔案,以及執行環境所需的組態設定等,都打包成1個映象檔。因為Azure的虛擬機器都有相同的規格,所以,應用程式的執行環境也相同。
在Azure的虛擬機器上,提供了2種不同的執行環境,包括可提供HTTP協定服務的WebRole環境,以及沒有提供HTTP協定服務的WorkerRole環境。FC會分別依據這兩種不同的執行環境,將應用程式分別打包成2種不同的服務映象檔。
只要FC將服務映象檔複製到任何虛擬機器中,就能夠立刻在新的虛擬機器中啟動這個應用程式,不需要進行複雜的安裝過程。應用程式的部署過程簡化為檔案複製的動作。
開發人員只需事先在應用程式的組態檔中,設定好虛擬機器的數量, FC就按照這個數量自動指派足夠的虛擬機器,將服務映象檔複製到這些虛擬機器上執行。
若遇到虛擬機器當機,FC只需要將服務映象檔複製到其他健康的虛擬機器上,就可以維持應用程式的執行效能,連部署程式需要的等待時間都可以節省下來。
整體而言,FC是微軟雲端運算中最關鍵的技術,透過虛擬化技術建立標準化的虛擬機器,同時運用服務映象檔的部署方式,讓應用程式具備了擴充彈性以及高度的可用性。
Fabric Controller技術統整運算和儲存資源,隔離雲端應用程式
在Azure環境中,由Fabric Controller(簡稱FC)統整所有的運算資源和儲存資源,來將雲端應用程式和實體伺服器隔離,FC會自動管理虛擬機器的伺服器和實體伺服器,遇伺服器故障,FC自動將虛擬機器切換到其他伺服器。
FC會依據組態檔分配足夠的虛擬機器,提供給WebRole和WorkerRole環境,而應用程式只能看見有2種執行環境,包括WebRole和WorkerRole,不會接觸到虛擬機器。共享儲存資源提供Blobs、Tables和Quesues三種資料型態,由FC負責共享儲存資源和實體儲存機制的對應和備援。
資料來源:微軟,iThome整理,2009 年3 月
【相關報導請參考「撥開微軟Azure雲端運算的迷霧」】
熱門新聞
2024-12-27
2024-12-24
2024-11-29
2024-12-22
2024-12-20