本頁是否能提供幫助?
您對此內容的意見反應十分重要。 請告訴我們您的想法。
其他意見反應?
剩餘 1500 個字元
匯出 (0) 列印
全部展開

為 Windows Azure 中的 VM 角色建立伺服器映像

更新日期: 2011年3月

[Windows Azure 的 VM 角色功能即將在 2013 年 5 月 15 日淘汰。在淘汰日期過後,VM 角色部署將遭到刪除。 若要繼續推展您現有的應用程式,請使用 Windows Azure 虛擬機器。 如需將虛擬機器用於應用程式的詳細資訊,請參閱 Moving from VM Role to Windows Azure Virtual Machines (從 VM 角色移到 Windows Azure 虛擬機器)

Windows Azure 的 VM 角色與其他角色類似,因為在 Windows Azure 中執行的所有角色執行個體,都是執行 Windows Server 作業系統版本的虛擬機器。與 VM 角色的差異在於您要建立和管理伺服器的映像。為了執行此作業,您要建立基底 VHD、安裝 Windows Azure 整合元件、安裝應用程式並加以自訂、將映像一般化,然後將它上傳至 Windows Azure。

您可以使用標準 Windows 映像建立技術來建立自訂的 Windows Server 2008 R2 映像。例如,您可以使用 Hyper-V 管理員來建立要上傳至 Windows Azure 的基底 VHD。

基底 VHD 內含作業系統、任何作業系統自訂內容以及您的應用程式。您可以使用 Hyper-V 管理員來建立基底 VHD。在您建立並備妥伺服器映像之後,VHD 會上傳至 Windows Azure 管理入口網站。

下列資訊可協助您深入了解 VHD 和伺服器映像:

建議您盡可能放置在基底 VHD 中。您可以使用差異 VHD 來套用有限的更新和修補程式。您要在基底 VHD 和差異 VHD 上放什麼完全由您決定。因為基底 VHD 和差異 VHD 必須視為定義伺服器映像的集合,所以您應在安全的位置保存基底 VHD 的本機副本。

您必須先在伺服器映像上安裝 Windows Azure 整合元件,才能將基底 VHD 上傳至 Windows Azure。Windows Azure 整合元件會在每一個從伺服器映像建立的 VM 角色執行個體上執行,並且處理 VM 角色執行個體與 Windows Azure 環境之間的整合。

整合元件會執行必要的工作,以整合 VM 角色執行個體的作業系統與 Windows Azure。這些元件將與負載平衡器搭配運作,傳達執行個體狀態的相關資訊。元件也會根據服務定義中的設定,安裝憑證並建立本機資源目錄以初始化虛擬機器。

透過 Windows Azure Connect,您可以使用簡單的使用者介面,在本機網路中的電腦或虛擬機器,與 Windows Azure 中執行的角色執行個體之間,設定受 IPsec 保護的連線。IPsec 會利用密碼編譯安全性服務來保護網際網路通訊協定 (IP) 網路中的通訊。如需使用 Windows Azure Connect 的詳細資訊,請參閱<將本機電腦連接至 Windows Azure 角色>。

您可以撰寫配接器,以在作業系統安裝或啟動的過程中執行。下圖示範配接器開發模型:

VMRoleDevelopmentModel

您有兩個選項可用來撰寫配接器:

  • 您可以撰寫在特製化階段執行的配接器。此特製化階段會在作業系統安裝期間進行,可能是在伺服器映像第一次上傳至 Windows Azure 之後,或是在執行個體上重新安裝映像之後。這種配接器樣式不用程式碼即可撰寫,可使用下列兩種方式之一:從回應檔案執行的指令碼,或是為系統準備工具 (sysprep) 撰寫的提供者。如需詳細資訊,請參閱<撰寫在安裝作業系統期間執行的配接器>。

  • 您可以撰寫配接器來做為 Windows 服務,在作業系統每次啟動時自動啟動。這種配接器樣式可以用 Managed 程式碼或機器碼來撰寫。它會使用 Windows Azure 服務執行階段 API,從 Windows Azure 環境收集動態資料。如需詳細資訊,請參閱<撰寫在作業系統啟動時執行的配接器>。

將 Windows 應用程式部署在內部部署和將其部署至 Windows Azure 的主要差異,在於當您將伺服器映像上傳至 Windows Azure 時,從其建立的 VM 角色執行個體會在動態環境中執行。在開發階段,您無法知道某些重要資訊,例如 VM 角色執行個體的 IP 位址,或是有多少執行個體在執行,以及如何將其定址。開發 VM 角色的程序,包括設定 VM 角色執行個體和安裝至那些執行個體的軟體,以在動態環境執行和通訊。

您上傳至 Windows Azure 的伺服器映像會與服務模型一起套用,以建立 VM 角色執行個體。當 VM 角色執行個體首次上線時,必須執行所有必要步驟,以準備在 Windows Azure 中執行。在大部分情況下,這表示它必須以環境的動態資訊來設定任何已安裝的軟體應用程式,並啟動這些程式。例如,它可能需要將從動態環境收集的資料寫入軟體應用程式的組態檔。

如果應用程式將資料寫入本機儲存體目錄,VM 角色執行個體也必須設定目錄,以供應用程式存取。第一次上傳伺服器映像來建立 VM 角色執行個體時,服務模型中定義的任何本機儲存體資源都會建立成本機目錄。與所命名之儲存體資源相關的本機目錄預設是安全的,亦即其設定為僅供管理員帳戶存取。如果您的應用程式需要寫入目錄,則 VM 角色執行個體必須變更目錄的權限,讓較低權限的帳戶可以使用。

當伺服器映像部署至 Windows Azure 時,該映像處於一般化狀態,這是執行系統準備工具 (sysprep) 來準備映像內部部署的結果。為了讓作業系統在 Windows Azure 的 VM 角色執行個體上執行,它必須在其安裝程序中執行特製化階段。用來將此特製化階段自動化的資訊,儲存在 Windows Azure 整合元件安裝至伺服器映像 (c:\unattend.xml) 根目錄的回應檔案中。

在建立映像時自訂回應檔案,可讓您在映像上傳至 Windows Azure 之後,執行在特製化階段呼叫的指令碼。如需自訂回應檔案的詳細資訊,請參閱<Windows 自動化安裝套件 (Windows AIK)>。

或者,您可以撰寫內附於伺服器映像的 sysprep 提供者。sysprep 提供者會延伸 sysprep 工具,以包含您定義的其他功能。Windows Azure 整合元件支援 sysprep 工具,可用來執行特製化階段,以在 VM 角色執行個體第一次啟動時完成 Windows 安裝。如需撰寫 sysprep 提供者的詳細資訊,請參閱<Windows 7 系統準備 (Sysprep) 提供者開發人員指南>。

這種類型的配接器只會在執行個體的第一次開機順序期間執行,當執行個體重新開機時並不會執行。這種配接器樣式的限制在於,它無法自動回應服務組態設定的變更。如果必須由配接器將組態設定的變更套用至執行個體,則操作員必須手動重新安裝執行個體的映像,以執行配接器及套用新設定。如果您的應用程式所依賴的組態設定可能需要在伺服器映像存留期間進行變更,請考慮將您的配接器撰寫成 Windows 服務。

您可以將配接器撰寫成 Windows 服務,以在 Windows 啟動時自動啟動,並使用 Windows Azure 服務執行階段 API 來收集 Windows Azure 的動態資料。如果您需要目前 VM 角色執行個體或服務中執行之其他角色執行個體的網路位址資訊、如果您需要寫入本機儲存體資源,或者如果您需要在執行階段讀取服務組態設定或是在其變更時回應,就需要撰寫 Windows 服務。

您的 Windows 服務必須是 64 位元 Windows 處理序,才能使用服務執行階段 API。Windows 服務可以用 Managed 程式碼或機器碼撰寫。如需 API 資訊,請參閱<Windows Azure Managed Library Reference>和<Windows Azure Native Library Reference>。

您只能從系統管理員或 LocalSystem 帳戶執行的處理序中,呼叫服務執行階段 API。此限制可以確保您的服務預設是安全的,因為它會使用服務執行階段 API 來讀取服務組態設定,以排除低權限程序的風險。

您的 Windows 服務必須設定為在 Windows 啟動時自動啟動。其應實作 ServiceBase 類別的存留週期方法,包括 OnStart,以及 (如果需要關機順序) OnStopOnShutdown。您的啟動程式碼應該在 OnStart 方法傳回之前完成。Windows 服務所需的任何關機順序應在 OnStopOnShutdown 傳回之前完成。如需撰寫 Windows 服務的詳細資訊,請參閱<Windows 服務應用程式>。

在所有自動啟動服務都啟動之後 (包括您的配接器),Windows Azure 會辨識執行個體已準備好從負載平衡器接收流量。因此,請務必確定您的配接器已執行所有必要工作,以在 OnStart 方法完成之前,準備好 VM 角色執行個體及其執行的任何軟體。從啟動順序完成,一直到關機順序開始之前,VM 角色執行個體應該都是處於就緒狀態,除非您將其狀態設為 Busy,明確地將執行個體從循環中退出。若要這麼做,您可以將事件處理常式加入 StatusCheck 事件。當該事件引發時,可在事件引數物件上呼叫 SetBusy 方法。您也可以使用 Set-RoleInstanceStatus PowerShell 指令程式來變更 VM 角色執行個體的狀態。

安裝 Windows Azure 整合元件之後,您要安裝應用程式,並進行所需的任何作業系統組態變更,選擇性地安裝 Windows Azure Connect 代理程式,選擇性地建立及安裝配接器,然後您必須準備需上傳的映像。

若要讓 VHD 正確上傳到 Windows Azure,必須先使用 Sysprep 命令將伺服器映像一般化。如需有關使用 Sysprep 的詳細資訊,請參閱<如何使用 Sysprep:簡介>。如需上傳 VHD 的詳細資訊,請參閱<為 Windows Azure 中的 VM 角色上傳 VHD>。

另請參閱

社群新增項目

顯示:
© 2015 Microsoft