国产6699视频在线观看_女人爽到喷水的视频大全_亚洲欧美日韩国产视频亚洲欧美综合日韩久久_中文字幕无码久久东京热_av电影中文一区

 
首頁(yè) > 綜合 >
 
 

高可用:這個(gè)保險(xiǎn)值得買(mǎi)

2023-03-17 08:50:21  來(lái)源:飛總聊IT

本文首發(fā)微信公眾號(hào):飛總聊IT


(資料圖片僅供參考)

2023年1月11日美國(guó)東部時(shí)間上午6點(diǎn)29分,美國(guó)航空監(jiān)管機(jī)構(gòu)FAA發(fā)布了一條通告,隨后不久,很快就宣布美國(guó)國(guó)內(nèi)所有航班都停飛了。通告的內(nèi)容是,F(xiàn)AA正在對(duì)NOTAM(Notice to Air Mission)系統(tǒng)進(jìn)行驗(yàn)證和回復(fù)。

這是美國(guó)自2001年911襲擊以來(lái)首次出現(xiàn)如此大規(guī)模的停飛。當(dāng)天晚上18點(diǎn)31分鐘,F(xiàn)AA宣布這次停飛是因?yàn)镹OTAM系統(tǒng)數(shù)據(jù)庫(kù)文件受損導(dǎo)致的。

這件事情引起的直接和間接經(jīng)濟(jì)損失難以估量。然而該系統(tǒng)實(shí)際出問(wèn)題的原因卻令人啼笑皆非。該系統(tǒng)沒(méi)有高可用的架構(gòu),在一次計(jì)劃的維護(hù)過(guò)程中,一位工程師的操作導(dǎo)致了數(shù)據(jù)庫(kù)文件被破壞,最終導(dǎo)致了這次全美國(guó)飛機(jī)停飛的事故。

這故事聽(tīng)起來(lái)非常的熟悉,MOTAM是一個(gè)古老的系統(tǒng),有一個(gè)古老的數(shù)據(jù)庫(kù)系統(tǒng)。這個(gè)數(shù)據(jù)庫(kù)系統(tǒng),沒(méi)有任何高可用的實(shí)現(xiàn)。在IT技術(shù)發(fā)達(dá)的美國(guó),這不得不說(shuō)是個(gè)笑話。

現(xiàn)實(shí)中,大部分的商業(yè)數(shù)據(jù),不是這樣的。比如說(shuō)我們常見(jiàn)的金融系統(tǒng),都需要兩地三中心的高可用架構(gòu)的部署。什么是高可用呢?簡(jiǎn)單來(lái)說(shuō),就是通過(guò)系統(tǒng)內(nèi)部的冗余設(shè)計(jì),當(dāng)一部分東西因?yàn)槟撤N原因無(wú)法工作的時(shí)候,系統(tǒng)內(nèi)冗余的部分可以接管系統(tǒng),繼續(xù)正常運(yùn)行。

這種高可用的系統(tǒng),帶來(lái)的便利性是顯而易見(jiàn)的。以上面的NOTAM系統(tǒng)為例,如果系統(tǒng)采用了高可用的設(shè)計(jì)和部署的話,那么當(dāng)一個(gè)數(shù)據(jù)庫(kù)無(wú)法服務(wù)的時(shí)候,備份數(shù)據(jù)庫(kù)可以立刻接管系統(tǒng),所以就不會(huì)出現(xiàn)全美國(guó)的飛機(jī)都停飛12個(gè)小時(shí)這樣重大的事故。

高可用是怎么樣提高系統(tǒng)的可用性的呢?我們?yōu)榱双@得高可用,又需要付出什么樣的代價(jià)呢?我們簡(jiǎn)單分析一下。

在數(shù)據(jù)庫(kù)里面最簡(jiǎn)單的高可用實(shí)現(xiàn)可以通過(guò)主備機(jī)來(lái)實(shí)現(xiàn),系統(tǒng)由一臺(tái)主機(jī)和若干臺(tái)備機(jī),主機(jī)服務(wù)業(yè)務(wù),支持讀寫(xiě),備機(jī)從主機(jī)這里獲得數(shù)據(jù)同步,可以不參與業(yè)務(wù),或者只讀。當(dāng)主機(jī)出問(wèn)題的時(shí)候,其中的一臺(tái)備機(jī)就升級(jí)成為主機(jī),接替出問(wèn)題的主機(jī)繼續(xù)提供服務(wù)。

我們來(lái)分析一下加入備機(jī)是怎么樣提高系統(tǒng)的可用性的。假設(shè)1臺(tái)機(jī)器99%的時(shí)間正常工作,1%的時(shí)間能因?yàn)閿嚯?,地震,硬件故障,病毒感染,軟件故障,系統(tǒng)維護(hù)等等原因不工作。

如果我們只有主機(jī)的話,正常服務(wù)的時(shí)間是99%。

現(xiàn)在我們加入一臺(tái)備機(jī),總共兩臺(tái)機(jī)器。在最理想的情況下,我們假設(shè)網(wǎng)絡(luò)等其他外圍設(shè)備100%工作正常,我們同時(shí)假設(shè)兩臺(tái)幾千相互獨(dú)立,一臺(tái)機(jī)器的好壞和另外一臺(tái)機(jī)器無(wú)關(guān)。那么只有當(dāng)兩臺(tái)機(jī)器都不工作的時(shí)候,系統(tǒng)才不工作。

而兩臺(tái)機(jī)器都不工作的概率是1%x1%=0.01%,所以系統(tǒng)工作的時(shí)間是1-0.01%=99.99%。增加一臺(tái)備機(jī)讓系統(tǒng)的工作時(shí)間從99%提升到了99.99%。

當(dāng)然這只是理想情況,現(xiàn)實(shí)中沒(méi)有那么美好,比如說(shuō)網(wǎng)絡(luò)可能不工作。又比如說(shuō)兩臺(tái)機(jī)器的好壞是相關(guān)的。

有人可能不理解,為什么兩臺(tái)機(jī)器的好壞相關(guān)呢。我舉幾個(gè)例子。比如說(shuō)兩臺(tái)機(jī)器在同一個(gè)機(jī)房,正好機(jī)房著火了。比如說(shuō)兩臺(tái)機(jī)器在同一個(gè)機(jī)柜,機(jī)柜的電源燒了。比如說(shuō),兩臺(tái)機(jī)器同一批次買(mǎi)的,結(jié)果這個(gè)批次的機(jī)器內(nèi)存有缺陷。

我們也可以算出來(lái)最壞的情況下,增加一臺(tái)備機(jī)讓系統(tǒng)時(shí)間到底提高多少,最壞的情況下,就是兩臺(tái)機(jī)器的好壞100%相關(guān),一臺(tái)機(jī)器不工作的時(shí)候另外一臺(tái)機(jī)器必定不工作,反之亦然。這個(gè)時(shí)候,系統(tǒng)壞的概率就等于主機(jī)壞的概率,就是1%,整個(gè)系統(tǒng)99%的時(shí)間工作正常。

所以現(xiàn)實(shí)中,增加一臺(tái)機(jī)器,系統(tǒng)的實(shí)際提升在99%到99.99%之間。

如果我們想進(jìn)一步提升系統(tǒng)的可用性,也是可以的,只要再增加一點(diǎn)冗余就可以了,在這種主備機(jī)的冗余設(shè)計(jì)下, 再增加一臺(tái)備機(jī)可以更多的增加系統(tǒng)的服務(wù)時(shí)間。

上述分析說(shuō)明了幾個(gè)關(guān)于高可用的事實(shí)。我總結(jié)一下。

第一,高可用是以增加系統(tǒng)的冗余來(lái)實(shí)現(xiàn)的,冗余就需要額外的成本。但是如果系統(tǒng)不可用的代價(jià)很大,比如說(shuō),美國(guó)全國(guó)飛機(jī)停飛12個(gè)小時(shí),而增加的成本對(duì)比系統(tǒng)不可用的代價(jià)很小,那么,這樣做就是值得的。從這個(gè)角度看,高可用像是買(mǎi)保險(xiǎn)。

第二,增加系統(tǒng)的冗余,可以讓系統(tǒng)的可用性變得更高,但是,代價(jià)是成本也更高,如果成本的付出超過(guò)了系統(tǒng)不可用的代價(jià)的話,這種高可用是不是必須實(shí)現(xiàn),是值得商榷的。

第三,任何的高可用實(shí)現(xiàn),都只能提高整個(gè)系統(tǒng)的可用性,但是沒(méi)有任何一種高可用的實(shí)現(xiàn),能夠保證系統(tǒng)100%可用。這說(shuō)明,我們不要有部署了高可用的實(shí)現(xiàn)就可以讓系統(tǒng)永遠(yuǎn)不崩潰這樣的不切實(shí)際的幻想。從某種程度上來(lái)說(shuō),高可用更像買(mǎi)保險(xiǎn),以比較小的代價(jià)確保大概率不至于付出很大的代價(jià)。

高可用的部署,還有一個(gè)問(wèn)題,就是我們希望這些冗余的東西的相關(guān)性盡可能的低。比如說(shuō),當(dāng)你把主機(jī)和備機(jī)放在同一個(gè)機(jī)柜的時(shí)候,就不太好,放在同一個(gè)機(jī)房的不同機(jī)柜就好一點(diǎn)。放在不同的機(jī)房就更好。放在不同城市的不同機(jī)房就更好了。

又比如說(shuō),你希望主機(jī)和備機(jī)最好不是同一批機(jī)器,不然的話,它們?nèi)菀子龅酵瑯拥膯?wèn)題。容易用了同樣的時(shí)間一起硬件壞??傊覀兛梢粤谐龊芏嘈枰龅氖虑?。

這么多的要求,對(duì)于一個(gè)大企業(yè)來(lái)說(shuō)還好,對(duì)小企業(yè)來(lái)說(shuō),要想做到盡善盡美是很難的。如果偷懶只是在一個(gè)機(jī)房的同一個(gè)機(jī)柜里面上兩臺(tái)同一批次的機(jī)器做主備的話,那這個(gè)高可用的實(shí)現(xiàn),效果可能就不會(huì)太理想了。

但是云計(jì)算時(shí)代就不一樣了。在云上,一方面,云廠商的機(jī)器的選擇空間很大,可以在不同的機(jī)房不同的城市。另外一方面,云廠商也服務(wù)了大量的客戶,有成熟完備的高可用實(shí)現(xiàn)。所以進(jìn)入到云計(jì)算時(shí)代,高可用的實(shí)現(xiàn),對(duì)客戶來(lái)說(shuō)也就變得接地氣起來(lái)。

可以這樣說(shuō),正是因?yàn)橛辛嗽朴?jì)算,有了公有云廠商,現(xiàn)在高可用對(duì)小客戶來(lái)說(shuō)才有了比較靠譜的實(shí)現(xiàn)。

很多客戶對(duì)上云還是有比較錯(cuò)誤的理解,有些人覺(jué)得,只要我的應(yīng)用上云了,我的數(shù)據(jù)庫(kù)上云了,那么云廠商就自動(dòng)的保證我的應(yīng)用,我的數(shù)據(jù)庫(kù)一直持續(xù)穩(wěn)定運(yùn)行下去了。

這并不是云計(jì)算的真實(shí)情況。舉個(gè)例子,如果客戶在公有云平臺(tái)租用了一臺(tái)虛擬機(jī),那么這和用戶自己買(mǎi)了一臺(tái)物理機(jī)放在本地機(jī)房并沒(méi)有什么區(qū)別。部署在虛擬機(jī)上的數(shù)據(jù)庫(kù)和應(yīng)用,也會(huì)因?yàn)楦鞣N各樣的原因而無(wú)法運(yùn)行。

有的用戶因此就覺(jué)得是云廠商的責(zé)任,乃至去打官司。但是這種官司往往并不能勝訴。因?yàn)樵谠茝S商上的應(yīng)用,也需要和物理機(jī)一樣,選擇了高可用架構(gòu)以后才能獲得高可用的保證。單純的使用云,并不能保證該應(yīng)用或者數(shù)據(jù)庫(kù)就可以一直無(wú)障礙地運(yùn)行下去。

對(duì)于云上的數(shù)據(jù)庫(kù),如何設(shè)計(jì)高可用架構(gòu)。一般來(lái)說(shuō),很多時(shí)候我們需要考慮如下三步走。

首先,我們需要建立基于Master-Slave的HA架構(gòu),簡(jiǎn)單的應(yīng)用,我們需要一個(gè)主機(jī),一個(gè)備機(jī)。如果需要更高的可靠性的時(shí)候,可以通過(guò)一主機(jī)多備機(jī)的做法來(lái)實(shí)現(xiàn)。

我們不但需要有主機(jī)和備機(jī),也需要在這個(gè)架構(gòu)上保證主機(jī)不再提供服務(wù)以后,切換到備機(jī)的速度很快,這樣前臺(tái)的應(yīng)用就不至于受到影響。以餓了么為例,根據(jù)餓了么發(fā)布的技術(shù)文檔顯示,這種切換需要在30秒內(nèi)完成。

其次,如果數(shù)據(jù)量很大的話,就需要對(duì)數(shù)據(jù)進(jìn)行分片處理。分片處理的好處是,如果其中一個(gè)片發(fā)生了問(wèn)題,并不會(huì)影響到其他部分的數(shù)據(jù)。假如我們對(duì)數(shù)據(jù)進(jìn)行了十個(gè)分片,那么一個(gè)機(jī)器出現(xiàn)故障時(shí),對(duì)業(yè)務(wù)的影響只有十分之一。

理論上來(lái)說(shuō),分片足夠小,配合主機(jī)和備機(jī)的架構(gòu),業(yè)務(wù)的影響就會(huì)更小,架構(gòu)對(duì)應(yīng)用來(lái)說(shuō)也就更高可用。但是從另外一個(gè)角度來(lái)說(shuō),過(guò)小的分片,也會(huì)影響訪問(wèn)速度,而且,過(guò)多的分片也會(huì)帶來(lái)成本的考慮,畢竟增加分片意味著需要更多的虛擬機(jī),也就增加了運(yùn)行成本。

最后,通常對(duì)數(shù)據(jù)庫(kù)的可靠性要求高的應(yīng)用,需要做異地多活。比如說(shuō)銀行的數(shù)據(jù)庫(kù)系統(tǒng),通常采用兩地三中心的部署方案。這是什么意思呢?簡(jiǎn)單來(lái)說(shuō),我們的數(shù)據(jù)放三份拷貝,一個(gè)主機(jī)和兩個(gè)備機(jī),其中有一個(gè)備機(jī)確保在和主機(jī)異地的機(jī)房里,另外一個(gè)備機(jī)在和主機(jī)同一個(gè)城市的機(jī)房里。

這樣做的好處有兩個(gè)方面,一方面,如果主機(jī)的數(shù)據(jù)壞了,切換過(guò)去的時(shí)候先切換本地的備份,速度比較快。同時(shí)又保留了一個(gè)異地的備份,如果因?yàn)榈卣穑瑪嚯姷壬婕耙粋€(gè)城市但通常不會(huì)波及到另外一個(gè)城市的災(zāi)難,這種方式也可以保證應(yīng)用還有一個(gè)數(shù)據(jù)拷貝支撐,繼續(xù)運(yùn)行。這樣可以提供更高的高可用性。

當(dāng)然,理論上來(lái)說(shuō),異地多活,可以在多個(gè)異地做多活,而一旦做了多個(gè)異地的多活,我們的高可用的可用性就更高了,除非這幾個(gè)異地的機(jī)房全部都不工作了,否則應(yīng)用總是可以繼續(xù)運(yùn)行下去的。

那么現(xiàn)實(shí)中,我們?yōu)槭裁床蛔鲞@種選擇呢?其實(shí)現(xiàn)實(shí)中,我們也不會(huì)對(duì)數(shù)據(jù)做很細(xì)的切片。這兩者的出發(fā)點(diǎn)都是一樣的,為了獲得更好的高可用,我們就需要投入更多的資源。

比如說(shuō),兩地三中心的一主兩備投入的資源,和五地八中心投入的資源,顯然是沒(méi)辦法比的。把數(shù)據(jù)切成100份和切成10份需要花費(fèi)的代價(jià)也不一樣。

而且高可用的投入還有這樣一個(gè)特點(diǎn),為了獲得更好的高可用,投入的資源并不是線性增長(zhǎng)的。舉例來(lái)說(shuō),假設(shè)現(xiàn)在的高可用是99.99%,投入的資源增加一倍,可以變成99.999%,再投入三倍的資源啊可以達(dá)到99.9999%。那么是不是值得投入更多的資源來(lái)獲得更好的高可用呢?

這個(gè)問(wèn)題通常來(lái)說(shuō),是不值得的。當(dāng)我們的高可用達(dá)到足夠高的時(shí)候,投入的資源和獲得的收益會(huì)是很好的一個(gè)投入產(chǎn)出比的問(wèn)題。而實(shí)踐中,云廠商的很多解決方案,往往已經(jīng)都是經(jīng)過(guò)實(shí)際檢驗(yàn)的,有比較好的投入產(chǎn)出比。

當(dāng)然這也再次回答了我們文章前面提到的,高可用更像是一個(gè)保險(xiǎn),用比較小的投入,大概率的避免較大的損失。但是,即使使用了高可用的設(shè)計(jì),也不代表這個(gè)系統(tǒng)100%不會(huì)罷工。所以,高可用這個(gè)保險(xiǎn),你覺(jué)得是不是值得買(mǎi)呢?

關(guān)鍵詞:

  
相關(guān)新聞
每日推薦
  • 滾動(dòng)
  • 綜合
  • 房產(chǎn)