云計(jì)算服務(wù)提供商(CSP)排除某些失敗原因是合理的,但系統(tǒng)管理員將這些作為借口是不負(fù)責(zé)任的。這使得有必要通過其他方式確保應(yīng)用程序的更高可用性。
高可用性限制
這個(gè)三節(jié)點(diǎn)SANless故障轉(zhuǎn)移集群能夠以最小的停機(jī)時(shí)間和無數(shù)據(jù)丟失處理兩個(gè)并發(fā)故障。
第三種選擇是采用第三方故障轉(zhuǎn)移集群軟件,這是專門用于為公共云、私有云和混合云上的Windows操作系統(tǒng)或Linux操作系統(tǒng)上運(yùn)行的應(yīng)用程序提供完整的高可用性和災(zāi)難恢復(fù)解決方案。
第二個(gè)選項(xiàng)涉及使用集成到操作系統(tǒng)中的高可用性(HA)功能。Windows Server具有故障轉(zhuǎn)移集群的本機(jī)功能,但其缺乏數(shù)據(jù)復(fù)制功能。私有云中的復(fù)制通常通過某種形式的共享存儲(chǔ)提供,例如存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)。但是,在公共云中,共享存儲(chǔ)不可用,因此需要單獨(dú)的數(shù)據(jù)復(fù)制解決方案。
雖然這些解決方案可以在私有云中與SAN配合使用,但大多數(shù)管理員更喜歡部署無共享SANless故障轉(zhuǎn)移群集。其原因包括:消除潛在的單點(diǎn)故障、獲得在公共云中工作的能力、并最小化恢復(fù)點(diǎn)對(duì)象(RPO)、恢復(fù)時(shí)間對(duì)象(RTO)和最短恢復(fù)時(shí)間(MTTR)。
大多數(shù)云計(jì)算服務(wù)提供商都提供具有99.99%正常運(yùn)行時(shí)間保證的服務(wù)等級(jí)協(xié)議(SLA),而跨越云計(jì)算服務(wù)提供商(CSP)區(qū)域和/或區(qū)域的冗余配置增加了企業(yè)獲得滿意可用性的信心。但是這種安排存在一些嚴(yán)重問題,因?yàn)榉?wù)等級(jí)協(xié)議(SLA)中“停機(jī)時(shí)間”和“不可用”是導(dǎo)致應(yīng)用程序失敗的原因。
通常,有三種基本選項(xiàng)可用于提高云計(jì)算的可用性:應(yīng)用程序軟件中的規(guī)定,操作系統(tǒng)中內(nèi)置的功能,以及專用的故障轉(zhuǎn)移集群。
在這個(gè)示例中,SQL1最初是主要活動(dòng)實(shí)例,它將數(shù)據(jù)連續(xù)復(fù)制到SQL2和SQL3。如果SQL1失敗,應(yīng)用程序將自動(dòng)將故障轉(zhuǎn)移到SQL2,然后SQL2將成為SQL3的主要復(fù)制數(shù)據(jù)。
這些解決方案至少結(jié)合了數(shù)據(jù)復(fù)制、連續(xù)應(yīng)用程序級(jí)監(jiān)控、可配置的故障轉(zhuǎn)移/故障恢復(fù)恢復(fù)策略。這種集成使軟件能夠檢測(cè)應(yīng)用程序級(jí)別的任何和所有停機(jī)時(shí)間,無論其原因如何,美國(guó)服務(wù)器租用,其中包括各種云計(jì)算服務(wù)等級(jí)協(xié)議(SLA)未涵蓋的原因。許多解決方案還提供高級(jí)功能,例如支持WAN優(yōu)化以提高性能,以及人工切換主服務(wù)器和輔助服務(wù)器分配以促進(jìn)計(jì)劃維護(hù)。
不計(jì)入停機(jī)的潛在原因包括客戶的軟件,任何第三方軟件或技術(shù),directadmin漢化 虛擬主機(jī),計(jì)劃的硬件和軟件維護(hù),以及個(gè)別實(shí)例或卷的某些問題,這些問題不能歸因于某些不可用的情況。還排除了錯(cuò)誤的輸入或指令,或在需要時(shí)缺乏行動(dòng),這似乎涵蓋了“人為錯(cuò)誤”可能的原因。
一旦問題得到解決,SQL1可以恢復(fù)成主要節(jié)點(diǎn),或者SQL2可以繼續(xù)在該容量中將數(shù)據(jù)復(fù)制到SQL1和SQL3。如果SQL2在SQL1返回操作之前失敗,SQL3將成為主要的節(jié)點(diǎn)。此外建議使用人工故障轉(zhuǎn)移,以防止由于到公共云的WAN鏈路中固有的較高延遲而導(dǎo)致數(shù)據(jù)丟失。
在Linux操作系統(tǒng)上,由于缺少像故障轉(zhuǎn)移集群這樣的本機(jī)功能,因此需要單獨(dú)的高可用性(HA)規(guī)定。因此,實(shí)施高可用性(HA)需要使用像Pacemaker和Corosync這樣的開源軟件為每個(gè)應(yīng)用程序創(chuàng)建(然后維護(hù))自定義腳本,并且只有規(guī)模非常大的組織才有能力承擔(dān)所涉及的巨大而持續(xù)努力。
5個(gè)9的故障轉(zhuǎn)移集群配置
許多應(yīng)用程序提供自己的高可用性(HA)規(guī)定。一個(gè)很好的例子是Microsoft SQL Server企業(yè)版中的運(yùn)營(yíng)商級(jí)在可用性組上始終使用的功能。這種方法的問題在于需要針對(duì)不同的應(yīng)用程序提供不同的高可用性(HA)規(guī)定,這使得持續(xù)管理成為一項(xiàng)持續(xù)且成本高昂的工作。
而采用正確的方法,在Amazon Web Services、谷歌云平臺(tái)和微軟Azure公共云和混合云環(huán)境中可以實(shí)現(xiàn)5個(gè)9的高可用性(HA)。這需要了解服務(wù)等級(jí)協(xié)議(SLA)中的限制,以及創(chuàng)建高可用配置的選項(xiàng)。
上圖顯示了一個(gè)三節(jié)點(diǎn)SANless故障轉(zhuǎn)移集群,可在混合云中提供5個(gè)9的高可用性以及強(qiáng)大的災(zāi)難恢復(fù)保護(hù)。該應(yīng)用程序是一個(gè)使用SQL Server標(biāo)準(zhǔn)版中的故障轉(zhuǎn)移集群實(shí)例(FCI)的數(shù)據(jù)庫。SQL1和SQL2位于公共云中具有SQL3的企業(yè)數(shù)據(jù)中心。在數(shù)據(jù)中心內(nèi),跨LAN的數(shù)據(jù)復(fù)制是同步的,以最大限度地縮短完成故障轉(zhuǎn)移所需的時(shí)間,從而最大限度地提高可用性。