當(dāng)組織的計(jì)算機(jī)系統(tǒng)和應(yīng)用程序由于計(jì)劃外停機(jī)而無(wú)法訪問時(shí),聲譽(yù)損害可能與財(cái)務(wù)損失一樣嚴(yán)重。如果受影響的系統(tǒng)需要數(shù)小時(shí)才能重新上線,則尤其如此。為防止停機(jī)時(shí)間延長(zhǎng),您應(yīng)該為您的 IT 基礎(chǔ)架構(gòu)實(shí)施高可用性 (HA) 架構(gòu),使您能夠?qū)崿F(xiàn)高達(dá) 99.999% 的正常運(yùn)行時(shí)間并將服務(wù)中斷降至最低。本文更詳細(xì)地解釋了 HA 架構(gòu)。
HA架構(gòu)的定義
有些組織要求他們的系統(tǒng) 24/7 全天候運(yùn)行。對(duì)于這些組織,HA 架構(gòu)是必不可少的。雖然 HA 不保證系統(tǒng)不會(huì)受到計(jì)劃外中斷的影響,但它可以最大限度地減少此類中斷對(duì)您的操作的影響。響應(yīng)速度更快的系統(tǒng)是 HA 的另一個(gè)好處。
HA 架構(gòu)可確保您的系統(tǒng)啟動(dòng)并運(yùn)行,并且在面對(duì)不可預(yù)見的情況(如硬件和軟件故障)時(shí)可供用戶訪問。有了它,您可以使用多個(gè)組件來(lái)確保持續(xù)且響應(yīng)迅速的服務(wù)。您必須確保這些組件相互補(bǔ)充,否則您只會(huì)為您的應(yīng)用程序添加潛在的故障點(diǎn),從而增加停機(jī)的可能性。
以下是 HA 架構(gòu)必須具備的四個(gè)特征:
- 冗余硬件:缺乏冗余硬件意味著在服務(wù)器崩潰后重新啟動(dòng)之前無(wú)法處理任何請(qǐng)求。發(fā)生這種情況時(shí),停機(jī)是不可避免的。因此,您的 HA 架構(gòu)必須包括備份硬件,例如在生產(chǎn)硬件崩潰時(shí)自動(dòng)接管的服務(wù)器或服務(wù)器集群。
- 冗余軟件和應(yīng)用程序:為防止在生產(chǎn)環(huán)境中使用的軟件和應(yīng)用程序出現(xiàn)故障時(shí)出現(xiàn)潛在的停機(jī)時(shí)間,您的 HA 架構(gòu)必須包含備份軟件和應(yīng)用程序。
- 冗余數(shù)據(jù):由于某種原因而離線的數(shù)據(jù)庫(kù)服務(wù)器可能會(huì)對(duì)您的生產(chǎn)環(huán)境造成嚴(yán)重破壞。您的 HA 架構(gòu)應(yīng)該包括備份數(shù)據(jù)庫(kù)服務(wù)器的規(guī)定,只要生產(chǎn)數(shù)據(jù)庫(kù)服務(wù)器脫機(jī),就可以將處理轉(zhuǎn)移到這些服務(wù)器上。
- 無(wú)單點(diǎn)故障:?jiǎn)蝹€(gè)組件的故障不應(yīng)使整個(gè)基礎(chǔ)架構(gòu)崩潰。通過硬件、軟件和數(shù)據(jù)的冗余,消除了單點(diǎn)故障。
對(duì)于不需要持續(xù)運(yùn)行的組織,HA 可能不是必需的,尤其是因?yàn)樗枰顿Y新的硬件和軟件,并且會(huì)增加您的維護(hù)和其他相關(guān)成本。在決定 HA 架構(gòu)之前,請(qǐng)確保將與向基礎(chǔ)架構(gòu)添加更多組件相關(guān)的成本考慮在內(nèi)。如果您決定將 HA 集成到您的基礎(chǔ)架構(gòu)中,那么選擇云而不是本地基礎(chǔ)架構(gòu)可以幫助您的組織節(jié)省成本。確?;貓?bào)值得您投入額外組件的投資。
如何獲得高可用性
理想的 HA 架構(gòu)應(yīng)包括確保冗余、數(shù)據(jù)備份和恢復(fù)、自動(dòng)故障轉(zhuǎn)移和負(fù)載平衡的元素。
冗余
如上所述,冗余是 HA 的一個(gè)關(guān)鍵特征,盡管它會(huì)增加實(shí)現(xiàn) HA 的成本。采用冗余時(shí),您可以從五種模型中進(jìn)行選擇,隨著需要更多組件,每種模型的成本都會(huì)逐漸增加。
- N+1 模型:這需要對(duì)基礎(chǔ)架構(gòu)中的每個(gè)組件進(jìn)行獨(dú)立備份。它可以是主動(dòng)/被動(dòng)的,這意味著備用組件處于待機(jī)狀態(tài)并準(zhǔn)備好在主要組件出現(xiàn)故障時(shí)接管,也可以是主動(dòng)/主動(dòng),這意味著備用組件與主要組件同時(shí)運(yùn)行。盡管這是成本最低的模型,但它并非完全多余。因此,它可能并不完全適合大型系統(tǒng)。
- N+2 模型:這類似于 N+1 模型,但每個(gè)主要組件需要兩個(gè)備用組件。如果一個(gè)備份組件也發(fā)生故障,則另一個(gè)備份組件將接管。
- 2N 模型:這使運(yùn)行系統(tǒng)所需的資源數(shù)量增加了一倍。例如,如果一個(gè)系統(tǒng)需要四臺(tái)服務(wù)器來(lái)運(yùn)行,那么 2N 模型會(huì)向系統(tǒng)添加另外四臺(tái)服務(wù)器,從而使服務(wù)器總數(shù)為八臺(tái)。因此,即使多個(gè)組件出現(xiàn)故障,系統(tǒng)也始終具有運(yùn)行能力。
- 2N+1 模型:這類似于 2N 模型,只是它添加了另一個(gè)備份組件,當(dāng)額外容量出現(xiàn)停機(jī)問題時(shí)可以接管。
- 地理冗余:這是最昂貴的模型,因?yàn)樗鼘⑾到y(tǒng)分布在多個(gè)位置的服務(wù)器中。當(dāng)一個(gè)位置出現(xiàn)故障時(shí),另一個(gè)站點(diǎn)會(huì)接管,從而保持您的運(yùn)營(yíng)正常運(yùn)行。鑒于其成本,如果您決定采用這種模式,那么與在全球擁有數(shù)據(jù)中心的云服務(wù)提供商簽約是您的最佳選擇。
數(shù)據(jù)備份與恢復(fù)
需要定期進(jìn)行完整的數(shù)據(jù)備份以確保 HA,并且應(yīng)該包含在您的災(zāi)難恢復(fù)計(jì)劃中。確保定期測(cè)試您的數(shù)據(jù)備份,并確保它們可以立即恢復(fù)。此外,您應(yīng)該通過將數(shù)據(jù)存儲(chǔ)在多個(gè)位置的輔助服務(wù)器或備用實(shí)例中來(lái)復(fù)制數(shù)據(jù)。這些位置中的數(shù)據(jù)應(yīng)始終與您的主要位置中的數(shù)據(jù)同步。當(dāng)災(zāi)難襲擊您的主要位置時(shí),其他位置應(yīng)該準(zhǔn)備好接管。
帶故障檢測(cè)的自動(dòng)故障轉(zhuǎn)移
在發(fā)生故障的情況下,備份系統(tǒng)應(yīng)準(zhǔn)備好在稱為自動(dòng)故障轉(zhuǎn)移的過程中立即接管。及時(shí)的故障檢測(cè)對(duì)于該系統(tǒng)的工作至關(guān)重要。
具有自動(dòng)故障轉(zhuǎn)移的 HA 架構(gòu)如下所示:
- 有一個(gè)主系統(tǒng)和一個(gè)稱為熱備用的備份系統(tǒng)。
- 在主系統(tǒng)和備用系統(tǒng)之間進(jìn)行持續(xù)監(jiān)控。
- 當(dāng)主系統(tǒng)出現(xiàn)故障時(shí),備用系統(tǒng)或熱備用系統(tǒng)會(huì)自動(dòng)接管。新請(qǐng)求現(xiàn)在由備份系統(tǒng)處理,它現(xiàn)在就像主系統(tǒng)一樣。
- 當(dāng)主系統(tǒng)中的問題得到解決后,它會(huì)重新上線并恢復(fù)其原來(lái)的角色。熱備用恢復(fù)為備份。
用戶在上述過程中不知道有任何變化。如果處理得當(dāng),故障轉(zhuǎn)移對(duì)他們來(lái)說(shuō)是透明的。
負(fù)載均衡
HA 架構(gòu)使用負(fù)載平衡確保更好和更可靠的應(yīng)用程序性能,該過程涉及使用基于硬件或軟件的解決方案在多個(gè)服務(wù)器之間分配網(wǎng)絡(luò)流量。您應(yīng)該配置負(fù)載均衡器以使用適合您要求的算法。常見的負(fù)載均衡算法包括:
- 循環(huán):負(fù)載平衡器將傳入請(qǐng)求定向到第一臺(tái)服務(wù)器,然后是第二臺(tái)服務(wù)器,依此類推。
- 最少連接:負(fù)載均衡器找到連接數(shù)量最少的服務(wù)器,并將傳入流量定向到該服務(wù)器。
- 源 Internet 協(xié)議 (IP) 哈希:負(fù)載均衡器始終根據(jù)源的 IP 地址定向請(qǐng)求。這涉及尋找最接近傳入請(qǐng)求的服務(wù)器。
負(fù)載平衡本身并不能保證 HA,因?yàn)樗匀豢赡苁菃吸c(diǎn)故障。要解決此潛在問題,您應(yīng)該為負(fù)載平衡解決方案實(shí)施冗余。
如何衡量高可用性
雖然經(jīng)常互換使用,但可用性和正常運(yùn)行時(shí)間彼此不同。雖然系統(tǒng)可以啟動(dòng)并運(yùn)行,但由于網(wǎng)絡(luò)問題等因素,用戶不一定可以使用它。此外,正常運(yùn)行時(shí)間只是可用性的一個(gè)方面,而停機(jī)時(shí)間是另一個(gè)方面。
可用性是指系統(tǒng)在特定時(shí)期內(nèi)工作的概率。以百分比表示,它是評(píng)估與托管解決方案的潛在供應(yīng)商的服務(wù)水平協(xié)議 (SLA) 時(shí)要考慮的重要指標(biāo)。
要計(jì)算可用性,請(qǐng)考慮以下因素:
- 年?duì)I業(yè)時(shí)間
- 待機(jī)時(shí)間
- 用于年度預(yù)防性維護(hù)的總時(shí)間
- 用于年度糾正性維護(hù)的總時(shí)間
- 等待行政和后勤延誤所花費(fèi)的時(shí)間
可用性的理想度量被稱為五個(gè) 9或給定時(shí)間段內(nèi)的 99.999% 可用性。這意味著一年中的停機(jī)時(shí)間略高于五分鐘。如果 24/7 運(yùn)營(yíng)對(duì)您的組織至關(guān)重要,那么您應(yīng)該爭(zhēng)取 99.999% 的可用性。
高可用性集群的類型
服務(wù)器集群是支持 HA 架構(gòu)的服務(wù)器組。使用專用網(wǎng)絡(luò)連接持續(xù)監(jiān)控集群中每個(gè)節(jié)點(diǎn)的運(yùn)行狀況。當(dāng)一個(gè)節(jié)點(diǎn)宕機(jī)時(shí),另一個(gè)節(jié)點(diǎn)接管它的操作。
在設(shè)計(jì) HA 架構(gòu)時(shí),您可以從不同的集群類型中進(jìn)行選擇,包括:
- 主動(dòng)/被動(dòng)集群:在這種集群類型中,有一個(gè)始終處于活動(dòng)狀態(tài)的主節(jié)點(diǎn),這意味著它處理來(lái)自用戶的所有請(qǐng)求。備份節(jié)點(diǎn)是被動(dòng)的或非活動(dòng)的,這意味著它無(wú)法處理傳入的請(qǐng)求。但是,當(dāng)主節(jié)點(diǎn)出現(xiàn)故障時(shí),被動(dòng)節(jié)點(diǎn)會(huì)接管。當(dāng)主節(jié)點(diǎn)的問題得到解決后,它會(huì)繼續(xù)處理所有請(qǐng)求,而備份節(jié)點(diǎn)會(huì)再次回到被動(dòng)狀態(tài)。
- 主動(dòng)/主動(dòng)集群:在這種集群類型中,節(jié)點(diǎn)都是活動(dòng)的,可以處理傳入的請(qǐng)求。當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),其他活動(dòng)節(jié)點(diǎn)之一將接管。當(dāng)另一個(gè)節(jié)點(diǎn)的問題得到解決時(shí),請(qǐng)求會(huì)再次分發(fā)到集群內(nèi)的所有節(jié)點(diǎn)。
- 無(wú)共享與共享磁盤集群:對(duì)于無(wú)共享集群,每個(gè)節(jié)點(diǎn)都有自己的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)與其他節(jié)點(diǎn)中的數(shù)據(jù)庫(kù)同步。因此,當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),其他節(jié)點(diǎn)仍然可以運(yùn)行。因此,無(wú)共享集群對(duì)于實(shí)現(xiàn) HA 至關(guān)重要。相比之下,共享磁盤集群的特點(diǎn)是所有節(jié)點(diǎn)共享一個(gè)數(shù)據(jù)庫(kù),這意味著當(dāng)數(shù)據(jù)庫(kù)宕機(jī)時(shí),所有節(jié)點(diǎn)也會(huì)宕機(jī)。