匯出 (0) 列印
全部展開

更新 Azure 服務

更新日期: 2014年5月

Azure 會將您的角色執行個體組織為稱為升級網域的邏輯群組。升級網域的預設數目是 5。您可以在服務的定義檔 (.csdef) 中包含 upgradeDomainCount 屬性,以指定不同數目的升級網域。如需有關 upgradeDomainCount 屬性的詳細資訊,請參閱 WebRole 結構描述WorkerRole 結構描述

當您在服務中執行一個或多個角色的就地更新時,Azure 會根據角色執行個體所屬的升級網域更新角色執行個體集合。Azure 會更新給定升級網域中的所有執行個體 – 加以停止、更新、帶回線上,然後移到下一個網域。當只停止在目前升級網域中執行的執行個體時,Azure 可確保進行更新時,盡可能不要影響執行中的服務。如需詳細資訊,請參閱本文稍後的<How the update proceeds>。

note附註
雖然更新升級在 Azure 內容中有稍微不同的意義,但是兩者可以針對本文中的程序和功能描述交換使用。

您的服務至少必須定義兩個角色執行個體,該角色才能就地更新,而不需要停機。如果此服務僅包含一個角色的一個執行個體,您的服務在完成就地更新之前將無法使用。

本主題涵蓋下列有關 Azure 更新的資訊:

下表顯示在更新期間,允許對服務進行的變更:

 

允許對裝載、服務和角色進行的變更 就地更新 暫存 (VIP 交換) 刪除和重新部署

作業系統版本

.NET 信任層級

虛擬機器大小

Warning警告
變更虛擬機器大小將會損毀本機資料。

note附註
需要 Azure SDK 1.5 或更新版本。

本機儲存體設定

僅限增加。

note附註
需要 Azure SDK 1.5 或更新版本。

加入或移除服務中的角色

特定角色的執行個體數目

服務的端點數目或類型

note附註
需要 Azure SDK 1.5 或更新版本。

Important重要事項
在更新端點時,可能會暫時失去可用性。

組態設定的名稱和值

組態設定的值 (而不是名稱)

加入新的憑證

變更現有的憑證

部署新的程式碼

更新期間不支援下列項目:

  • 變更角色的名稱。移除角色,然後以新的名稱加入角色。

  • 變更升級網域計數。

  • 減少本機資源的大小。

如果您正針對服務的定義進行其他更新,例如減少本機資源的大小,您必須改為執行 VIP 交換更新。如需詳細資訊,請參閱管理 Azure 客體作業系統的升級

Azure 在更新期間提供管理服務的彈性,方法是在 Azure 網狀架構控制器接受起始更新要求之後,讓您針對服務起始其他作業。只有當更新 (組態變更) 或升級在部署中處於進行中狀態時,才可執行回復。只要服務至少有一個執行個體尚未更新為新的版本,更新或升級就會被視為進行中。若要測試是否允許回復,請檢查取得部署取得雲端服務屬性作業傳回之 RollbackAllowed 旗標的值是否設定為 true

note附註
只有針對就地更新或升級呼叫 Rollback 才合理,因為 VIP 交換升級牽涉到以另一個執行個體取代您的服務的一整個執行中的執行個體。

回復進行中的更新對於部署會產生以下的影響:

  • 尚未更新或升級為新版本的任何角色執行個體都不會更新或升級,因為這些執行個體已經在執行此服務的目標版本。

  • 已經更新或升級為新版服務封裝 (*.cspkg) 檔案或服務組態 (*.cscfg) 檔案 (或兩者皆是) 的任何角色執行個體都會還原成這些檔案的升級前版本。

這個功能是由以下功能所提供:

  • 回復更新或升級作業,可以針對組態更新 (藉由呼叫變更部署組態來觸發) 或升級 (藉由呼叫升級部署來觸發) 來執行,前提是服務中至少有一個執行個體尚未更新為新的版本。

  • Locked 元素和 RollbackAllowed 元素,兩者是當做取得部署取得雲端服務屬性作業之回應主體的一部分傳回:

    1. Locked 元素可讓您偵測何時可針對給定的部署叫用變更作業。

    2. RollbackAllowed 元素可讓您偵測何時可針對給定的部署呼叫回復更新或升級作業。

    為了執行回復,您不需要同時檢查 LockedRollbackAllowed 元素。這樣便已足夠確認 RollbackAllowed 設定為 True。只有在下列情況下,才會傳回這些元素:使用設定為 “x-ms-version:2011-10-01” 或更新版本的要求標頭來叫用這些方法。如需版本設定標頭的詳細資訊,請參閱服務管理版本設定

也有一些情況不支援回復更新或升級,這些情況如下所示:

  • 減少本機資源 - 如果更新會增加角色的本機資源,則 Azure 平台不允許回復。如需有關如何設定角色之本機資源的詳細資訊,請參閱<設定本機儲存體資源>。

  • 配額限制 - 如果更新是向下調整的作業,您可能不再有足夠的計算配額可完成回復作業。每個 Windows Azure 訂閱都有一個相關聯的配額,該配額會指定屬於該訂閱之所有託管服務可以使用的核心數目上限。如果執行給定更新的回復會讓您的訂用帳戶超出配額,將不會啟用回復。

  • 競爭情形 - 如果已完成初始更新,將無法進行回復。

回復更新何時可能很有用的一個範例如下:當您在手動模式中使用升級部署作業來控制升級為您的 Azure 託管服務的主要就地升級作業開展的速率。

在升級開展期間,您會在手動模式中呼叫升級部署,並且開始逐步升級網域。如果當您監視升級作業時,您在某個時間點注意到您所檢查之第一個升級網域中的某些角色執行個體變得無法回應,您可以針對部署呼叫回復更新或升級作業,這樣會將尚未升級的執行個體保留不動,然後回復已經升級為之前的服務封裝和組態的執行個體。

在某些情況下,您可能會想要針對持續進行的部署起始多個同時變更作業。例如,您可以執行服務更新,而且在您的整個服務中發行該更新時,您會想要進行某些變更,例如回復更新、套用不同的更新,或甚至刪除部署。如果服務升級包含的錯誤程式碼會造成已升級的角色執行個體重複當機,就可能必須採取這項處理。在此情況下,Azure 網狀架構控制器在套用該升級時不會有任何進度,因為已升級的網域中處於狀況良好的執行個體數目不足。這個狀態稱為「停滯部署」。您可以透過回復更新或針對失敗的更新重新套用新的更新,以解除部署停滯狀態。

一旦 Azure 網狀架構控制器收到了更新或升級服務的初始要求後,您就可以開始後續變更作業。也就是說,您不必等候初始作業完成,也可以開始另一個變更作業。

在第一個更新作業進行時,起始第二個更新作業將會執行類似於回復的作業。如果第二個更新作業處於自動模式,第一個升級網域將會立即升級,這樣可能會導致多個升級網域中的執行個體在同一個時間點離線。

變更作業如下:變更部署組態升級部署更新部署狀態刪除部署回復更新或升級

取得部署取得雲端服務屬性這兩個作業會傳回可加以檢查的 Locked 旗標,以判斷是否可針對給定部署叫用變更作業。

為了呼叫這些方法的版本以傳回 Locked 旗標,您必須將要求標頭設定為 “x-ms-version: 2011-10-01” 或更新的版本2011-10-01” 或更新的版本。如需版本設定標頭的詳細資訊,請參閱服務管理版本設定

Azure 會在固定數目的升級網域之間平均散發角色執行個體,這些可以設定為服務定義 (.csdef) 檔案的一部分。升級網域的最大數目為 20,預設值為 5。如需有關如何修改服務定義檔的詳細資訊,請參閱<Azure 服務定義結構描述 (.csdef 檔)>。

例如,如果您的角色有十個執行個體,則每個升級網域預設都會包含兩個執行個體。如果您的角色有 14 個執行個體,則升級網域中的第四個會包含三個執行個體,第五個網域則包含兩個。

升級網域會使用以零為基底的索引加以識別:第一個升級網域的識別碼為 0,第二個升級網域的識別碼為 1,依此類推。

下圖說明當服務定義兩個升級網域時,將如何散發包含兩個角色的服務。此服務執行 Web 角色的八個執行個體及背景工作角色的九個執行個體。

升級網域的散發

note附註
請注意,Azure 會控制如何在升級網域之間配置執行個體。但是,無法指定哪些執行個體會配置給哪一個網域。

您可以決定是否要更新服務中的所有角色還是服務中的單一角色。不論是哪一種情況,正在升級而且屬於第一個升級網域的第一個角色的所有執行個體都會停止、升級並帶回線上。一旦這些執行個體回到線上之後,第二個升級網域中的執行個體都會停止、升級,然後回到線上。

下圖說明當您正在升級服務中的所有角色時,升級作業會如何進行:

升級服務

下圖說明當您只升級單一角色時,更新作業會如何進行:

升級角色
note附註
從單一執行個體將服務升級到多個執行個體時,您的服務在升級執行期間將會關閉,這是由於 Windows Azure 升級服務的方式所造成。保證服務可用性的服務等級協定只適用於使用一個以上的執行個體部署的服務。下列清單描述每個 Windows Azure 服務升級案例如何影響每個磁碟機的資料:

VM 重新啟動:

  • C:已保留

  • D:已保留

  • E:已保留

入口網站重新啟動:

  • C:已保留

  • D:已保留

  • E:已損毀

入口網站重新安裝映像:

  • C:已保留

  • D:已損毀

  • E:已損毀

就地升級:

  • C:已保留

  • D:已保留

  • E:已損毀

節點移轉:

  • C:已損毀

  • D:已損毀

  • E:已損毀

請注意,在上述清單中,E:磁碟機代表角色的根磁碟機,不應該採用硬式編碼。請改用 %RoleRoot% 環境變數來代表此磁碟機。

為了在升級單一執行個體服務時讓停機時間減至最少,請將新的多個執行個體服務部署至預備伺服器,並執行 VIP 交換。

顯示:
© 2014 Microsoft