Azure管理虛擬機的高可用性
可用性可確保在Azure上部署的VM能夠跨多個隔離的硬件群集分布。這樣,就可以確保當(dāng)Azure中發(fā)生硬件或軟件故障時,只有一部分VM受到影響,整體解決方案仍可使用和操作。
最佳實踐是同時使用可用性集和負(fù)載均衡,以幫助確保您的應(yīng)用程序始終可用并高效運行。
影響VM高可用的因素很多,本文將統(tǒng)一進(jìn)行梳理,詳細(xì)如下:
1、VM維護和停機
有三種情況可能會導(dǎo)致Azure中的虛擬機受影響:計劃外硬件維護、意外停機、計劃內(nèi)維護。
當(dāng)Azure平臺預(yù)測硬件或者與物理計算機關(guān)聯(lián)的任何平臺組件即將發(fā)生故障時,就會發(fā)生計劃外硬件維護事件。
意外停機指虛擬機的硬件或物理基礎(chǔ)設(shè)施意外出現(xiàn)故障。此類故障可能包括:本地網(wǎng)絡(luò)故障、本地磁盤故障,或者其他機架級別的故障。
計劃內(nèi)維護事件是指由Microsoft對底層Azure平臺進(jìn)行定期更新,以改進(jìn)虛擬機運行時所在的平臺基礎(chǔ)結(jié)構(gòu)的總體可靠性、性能和安全性。
2、使用可用性區(qū)域防范數(shù)據(jù)中心級故障
可用性區(qū)域是Azure區(qū)域中獨特的物理位置。每個區(qū)域由一個或多個數(shù)據(jù)中心組成,這些數(shù)據(jù)中心配置了獨立電源、冷卻和網(wǎng)絡(luò)。
Azure區(qū)域中的可用性區(qū)域是容錯域和更新域的組合。例如,如果在Azure區(qū)域的三個區(qū)域中創(chuàng)建三個或更多VM,則VM將有效分布在三個容錯域和三個更新域中。Azure平臺會識別更新域上的此分布,以確保不同區(qū)域中的VM不會同時更新。
3、配置多個虛擬機以確保冗余
Azure平臺為可用性集中的每個虛擬機分配一個更新域和一個容錯域。
更新域是可以同時維護或重新啟動的基礎(chǔ)硬件邏輯組。在計劃內(nèi)維護期間,更新域的重啟順序可能不會按序進(jìn)行,但一次只重啟一個更新域。
容錯域定義一組共用一個通用電源和網(wǎng)絡(luò)交換機的虛擬機。
4、VM使用托管磁盤
托管磁盤為可用性集提供了更佳的可靠性。為此,會自動將磁盤放置在不同的存儲容錯域(存儲群集)中,并使它們與VM容錯域一致。如果某個存儲容錯域因硬件或軟件故障而失敗,則只有其磁盤在該存儲容錯域上的VM實例會失敗。
5、主動響應(yīng)影響事件的VM
如果訂閱計劃事件,則將通知VM即將發(fā)生會對VM造成影響的維護事件。啟用計劃事件后,可在執(zhí)行維護活動之前為虛擬機提供最少的時間。
6、配置單獨的可用性區(qū)域或可用性集
如果虛擬機幾乎完全相同,并且為應(yīng)用程序提供相同的目的,我們建議為每個應(yīng)用程序?qū)优渲每捎眯詤^(qū)域或可用性集。如果將兩個不同的層置于同一可用性區(qū)域或集中,則同一應(yīng)用程序?qū)又械乃刑摂M機都可以同時重啟。通過在可用性區(qū)域中配置至少兩個虛擬機或為每個層設(shè)置,可確保每個層中至少有一個虛擬機可用。
7、結(jié)合使用負(fù)載均衡器和可用性區(qū)域
將Azure負(fù)載均衡器與可用性區(qū)域相結(jié)合,或?qū)⑵湓O(shè)置為最大程度地提高應(yīng)用程序復(fù)原能力。Azure負(fù)載均衡器將流量分布到多個虛擬機中。對于標(biāo)準(zhǔn)層虛擬機來說,Azure負(fù)載均衡器已包括在內(nèi)。并非所有虛擬機層都包括Azure負(fù)載均衡器。
如果沒有將負(fù)載均衡器配置為對多個虛擬機上的流量進(jìn)行平衡,則任何計劃內(nèi)維護事件都會影響唯一的那個處理流量的虛擬機,導(dǎo)致應(yīng)用程序?qū)又袛唷⑼粚拥亩鄠€虛擬機置于相同的負(fù)載均衡器和可用性集下可以確保至少有一個虛擬機實例能夠持續(xù)處理流量。