Azure 目前有兩種部署模型:經典部署模型 (ASM) 和資源管理器 (ARM)。如果您之前使用過 ASM 模式下的可用性集,那么很可能在使用 ARM 模式下的可用性集時,會遇到一些問題或者疑惑。這里就 ARM 中可用性集使用的一些常見問題做個簡單回答。
ARM 中,虛擬機的整個生命周期都不能更改其可用性集設置。
在經典模式中,只需要經過停止分配再啟動虛擬機,就可以將虛擬機加入,移除或者更換可用性集。 而在 ARM 模式中,在查看虛擬機可用性集是,您會注意到如下提示:
什么意思呢?就是說:
如果在創建虛擬機的時候,如果沒有指定可用性集,那么虛擬機完成部署后,是不能將該虛擬機加入到可用性集中的。
如果虛擬機已經在可用性集中,您需要給它換個可用性集,或者將其移除可用性集,這也是不能的。
如果您的確需要更改該虛擬機的可用性集設置,唯一的方法,就是通過刪除虛擬機保留磁盤,并重建虛擬機的方式,指定可用性集。
可用性集的設置也是只能在創建的時候指定。
創建可用性集時,您可以自定義容錯域和更新域的數量。但在創建完成后,這些設置就不能再更改了。
容錯域:范圍 1-3,默認值是 3。在物理上,一個域中的所有虛擬機和物理機,會共享同樣的電源和網絡資源。
更新域:范圍 1-20, 默認值是 5。這是一個邏輯的概念,后臺在執行計劃內維護時,所有更新域中一次只會有一個域在進行維護。
可用性集中虛擬機操作常見錯誤 1 :
由于后臺部署失敗,造成虛擬機創建失敗。這些失敗的虛擬機因放在可用性集中,刪除也遇到問題。刪除單個虛擬機,報錯虛擬機分配失敗;通過刪除整個可用性集,報錯須首先刪除虛擬機。
解決方法 :
將可用性集下的所有虛擬機,都執行一遍刪除操作,無論成功與否。然后再刪除該可用性集。
原因:通過對每臺虛擬機都執行刪除操作,即使未能成功刪除,也會將虛擬機的狀態標記為 “ToBeDelete”。此時再刪除可用性集,可用性集在驗證虛擬機狀態時,發現所有虛擬機都是可以被刪除的,則會將虛擬機連同可用性集一起刪除。
可用性集中虛擬機操作常見錯誤 2 :
在對可用性集中的虛擬機進行一些管理平面的操作時,你可能會遇到如下錯誤。
如更改診斷設置存儲賬號/刪除虛擬機:
或者向該可用性集中創建新虛擬機 :
而實際上,您操作的虛擬機可能并沒有使用這些存儲賬號。
這是由于在對可用性集中的虛擬機進行管理操作時,可用性集會驗證其所有虛擬機的 OS Profile,保證信息的一致性。如果任何一臺虛擬機引用的診斷存儲賬號不存在了,該驗證過程失敗,則操作無法繼續進行,該虛擬機狀態會被同步標記為失敗。
解決方法 :
找到被刪除的存儲賬號是被哪個虛擬機在使用。
通過Get-AzureRmVM -ResourceGroupName -Name 查看 BootDiagnostics 和 Diagnostic Extensions 的存儲賬號設置。
禁用該虛擬機的診斷存儲賬號即可。
如果該可用性集中同時有多個診斷存儲賬號被誤刪,則方法 1 因一個虛擬機設置等待另一個虛擬機設置先修正而造成死鎖。在這種情況下,需要找到所有被誤刪的診斷存儲賬號,重建之。
Note
前端顯示存儲賬號重建成功后,后臺各資源提供程序間的同步需要一段時間,可能發生因同步延遲造成的存儲賬號還是找不到的問題。請在重建好所有存儲賬號,大約一至一個半小時后,再次嘗試管理操作。
同時,建議客戶在使用可用性集時,提前進行規劃,比如使用有意義的虛擬機和存儲賬號命名,將診斷設置放在同一個單獨的存儲賬號中等,避免存儲賬號被誤刪的情況發生。
立即訪問http://market.azure.cn