在 Azure 中管理 Windows 虛擬機的可用性

了解如何設置和管理多個虛擬機,以確保 Azure 中 Windows 應用程序的高可用性。 也可以管理 Linux 虛擬機的可用性。

Note

Azure 具有用于創建和處理資源的兩個不同的部署模型:Resource Manager 和經典。 這篇文章介紹了如何使用這兩種模型,但 Azure 建議大多數最新部署使用 Resource Manager 模型。

有關在使用經典部署模型時創建和使用可用性集的說明,請參閱如何配置可用性集。

了解 VM 重啟 - 維護和停機

有三種情況可能會導致 Azure 中的虛擬機受影響:計劃外硬件維護、意外停機、計劃內維護。

當 Azure 平臺預測硬件或者與物理計算機關聯的任何平臺組件即將發生故障時,就會發生計劃外硬件維護事件。 當預測到故障時,平臺會發出計劃外硬件維護事件,以便減少對托管在該硬件上的虛擬機的影響。 Azure 使用實時遷移技術將虛擬機從故障硬件遷移到健康的物理計算機。 實時遷移是一項 VM 保留操作,只能短時間暫停虛擬機。 將會保留內存、打開的文件以及網絡連接,但事件前后的性能可能會降低。 在無法使用實時遷移的情況下,VM 會出現意外停機,如下所述。

意外停機很少發生在虛擬機所在硬件或物理基礎結構出現某類故障的情況。 此類故障可能包括:本地網絡故障、本地磁盤故障,或者其他機架級別的故障。 檢測到此類故障時,Azure 平臺會自動將虛擬機遷移到正常的物理計算機(進行修復)。 在修復過程中,虛擬機會經歷停機(重啟),在某些情況下會丟失臨時驅動器。 始終會保留附加的 OS 和數據磁盤。

計劃內維護事件是指由 21Vianet 對底層 Azure平臺進行定期更新,以改進虛擬機運行時所在的平臺基礎結構的總體可靠性、性能和安全性。 大多數此類更新在執行時不會影響虛擬機或云服務(請參閱VM 保留維護)。 雖然 Azure 平臺會嘗試在所有可能的情況下都使用 VM 保留維護,但在罕見情況下,這些更新需要重啟虛擬機,否則無法將所需更新應用到底層基礎結構。 在這種情況下,可以在合適的時間窗口為 VM 啟動維護,通過“維護-重新部署”操作來執行 Azure 計劃內維護。 有關詳細信息,請參閱虛擬機的計劃內維護。

要減輕一個或多個此類事件引發的停機所造成的影響,我們建議遵循以下最佳做法以提高虛擬機的可用性:

在可用性集中配置多個虛擬機以確保冗余

在可用性集中對 VM 使用托管磁盤

使用計劃事件對影響事件的 VM 進行主動響應

將每個應用程序層配置到不同的可用性集中

將負載均衡器與可用性集組合在一起

在可用性集中配置多個虛擬機以確保冗余

要為應用程序提供冗余,建議你將兩個或更多虛擬機組合到一個可用性集中。 這種配置可以確保在發生計劃內或計劃外維護事件時,至少有一個虛擬機可用,并滿足 99.95% 的 Azure SLA 要求。 有關詳細信息,請參閱虛擬機的 SLA。

Important

避免將單實例虛擬機單獨地置于可用性集中。 此配置中的 VM 并不符合 SLA 保證,在出現 Azure 計劃內維護事件時會停機,除非某個 VM 正在使用Azure 高級存儲。 對于使用高級存儲的單一 VM,Azure SLA 適用。

基礎 Azure 平臺為可用性集中的每個虛擬機分配一個更新域和一個容錯域。 對于給定的可用性集,默認情況下會分配五個非用戶可配置的更新域(可以增加 Resource Manager 部署以最多提供 20 個更新域),以指示可同時重新啟動的虛擬機和底層物理硬件組。 如果單個可用性集中配置了超過 5 個虛擬機,第 6 個虛擬機放置在第 1 個虛擬機所在的更新域中,第 7 個虛擬機放置在第 2 個虛擬機所在的更新域中,依此類推。 在計劃內維護期間,更新域的重啟順序可能不會按序進行,但一次只重啟一個更新域。 重啟的更新域有 30 分鐘的時間進行恢復,此時間過后,就會在另一更新域上啟動維護操作。

容錯域定義一組共用一個通用電源和網絡交換機的虛擬機。 默認情況下,在可用性集中配置的虛擬機隔離在 Resource Manager 部署的最多三個容錯域(經典部署的兩個容錯域)中。 雖然將虛擬機置于可用性集中并不能讓應用程序免受特定于操作系統或應用程序的故障的影響,但可以限制潛在物理硬件故障、網絡中斷或電源中斷的影響。

在可用性集中對 VM 使用托管磁盤

如果當前使用的 VM 沒有托管磁盤,則強烈建議在可用性集中轉換 VM,以便使用托管磁盤。

通過確??捎眯约械?VM 的磁盤彼此之間完全隔離以避免單點故障,托管磁盤為可用性集提供了更佳的可靠性。 它通過自動將磁盤放置在不同的存儲群集中來實現這一點。 如果某個存儲群集因硬件或軟件故障而失敗,則只有其磁盤在該模塊上的 VM 實例會失敗。

Important

托管可用性集的容錯域的數目因區域而異 - 每個區域兩到三個。 下表顯示了每個區域的數目

每個區域的容錯域數

區域最大容錯域數

中國東部3

中國北部3

如果計劃使用包含非托管磁盤的 VM,請按下述針對存儲帳戶的最佳做法進行操作。在這些存儲帳戶中,VM 的虛擬硬盤 (VHD) 以頁 Blob形式存儲。

將與同一 VM 關聯的所有磁盤(OS 和數據)放置在同一存儲帳戶中

在向存儲帳戶添加更多 VHD 之前,請查看存儲帳戶中非托管磁盤的數量限制

為可用性集中的每個 VM 使用單獨的存儲帳戶。同一可用性集中的多個 VM 不能共享存儲帳戶。 不同可用性集中的 VM 共享存儲帳戶是可以接受的,只要遵循上述最佳做法即可

將每個應用程序層配置到不同的可用性集中

如果虛擬機幾乎都是相同的,并且對應用程序的用途是一樣的,我們建議針對每個應用程序層配置可用性集。 如果將兩個不同的層置于同一可用性集中,則同一應用程序層中的所有虛擬機可以同時重啟。 通過在可用性集中為每個層配置至少兩個虛擬機,可以確保每個層中至少有一個虛擬機可用。

例如,可以將運行 IIS、Apache、Nginx 的應用程序前端的所有虛擬機置于單個可用性集中。 請確保僅將前端虛擬機置于同一可用性集中。 同樣,請確保僅將數據層虛擬機置于其自身的可用性集中,例如已復制的 SQL Server 虛擬機或 MySQL 虛擬機。

將負載均衡器與可用性集組合在一起

Azure 負載均衡器與可用性集組合在一起,以獲取最大的應用程序復原能力。 Azure 負載均衡器將流量分布到多個虛擬機中。 對于標準層虛擬機來說,Azure 負載均衡器已包括在內。 并非所有虛擬機層都包括 Azure 負載均衡器。 有關對虛擬機進行負載均衡的更多信息,請閱讀對虛擬機進行負載均衡。

如果沒有將負載均衡器配置為對多個虛擬機上的流量進行平衡,則任何計劃內維護事件都會影響唯一的那個處理流量的虛擬機,導致應用程序層中斷。 將同一層的多個虛擬機置于相同的負載均衡器和可用性集下可以確保至少有一個虛擬機實例能夠持續處理流量。

后續步驟 ? ? ? ?立即訪問http://market.azure.cn

若要了解對虛擬機進行負載均衡的詳細信息,請參閱對虛擬機進行負載均衡

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容