該問題的答案可以在宏觀層面上找到。你需有計(jì)劃應(yīng)對(duì)可能影響區(qū)域服務(wù)的災(zāi)難一一地震、限風(fēng),等等。因此你需要把服務(wù)布署在分開的地理區(qū)域中。至關(guān)重要的是:當(dāng)下次大地震毀掉硅谷的數(shù)據(jù)中心時(shí),必須有自動(dòng)的方式將你的流量切換到東部海岸。一旦你解決了這個(gè)問題,所有的小事情都變得不重要了。如果一個(gè)數(shù)據(jù)中心的配電裝置、路由器或交換機(jī)失效,你的流量將自動(dòng)地轉(zhuǎn)移到其他的大都市。很明顯,為了防止流量在不同的地方來回折騰,某種程度的本地冗余是需要的,但你不需要將之進(jìn)行到收益減少或者負(fù)收益的程度。
與人們的普遍看法相反,數(shù)據(jù)中心的確會(huì)有故障,有時(shí)原因很古怪。有一天我在參加一個(gè)會(huì)議時(shí),接到運(yùn)維中心的電話,通知我說:一個(gè)主要的數(shù)據(jù)中心運(yùn)行中斷。擔(dān)心在我們處理問題時(shí),這個(gè)事事件會(huì)段掉我的會(huì)議,我立即打電話給我的同事了解影響的程度。使我放心的是:她告知,所有網(wǎng)站都已轉(zhuǎn)出那個(gè)地點(diǎn),流量已轉(zhuǎn)移到另外的數(shù)據(jù)中心,她正期待著“烤松鼠”的晚餐,原因是一個(gè)壞蛋爬進(jìn)了配電箱,咬穿了主要的配電電纜。松鼠沒能活過那天,不過我們安然無恙地度過了那一天。
正如前面提到的,BCP對(duì)于不同的人有許多不同的含義。讓我們看一下這些術(shù)語以及它們對(duì)你的站點(diǎn)而言意味著什么。開始時(shí),我先去掉該術(shù)語的一大部分一一人員和地點(diǎn)。管理員工是一個(gè)完整BCP計(jì)劃的重要組成部分。如果你的辦公大樓燒毀了,所有的人到哪里工作?我是一個(gè)工程師,那不是我的領(lǐng)域,所以我將集中于BCP計(jì)劃的高可用性部分:保證站點(diǎn)正常工作。即使在高可用性領(lǐng)域,也有各種各樣的技術(shù),從熱/熱(Hot/Hot)、熱暖(Hot/Warn)、熱冷(Hot/Cold)到災(zāi)難恢復(fù)。
熱/熱(Hot/Hot)是高可用性的最高級(jí)別。用戶可以從任意的數(shù)據(jù)中心使用全部的應(yīng)用程序。讀和寫可以發(fā)生在任何地方。這讓自動(dòng)的故障轉(zhuǎn)移變得非常簡單,但它不是萬能的。
你必須認(rèn)真思考如何處理數(shù)據(jù)一致性的問題。如果一個(gè)數(shù)據(jù)同時(shí)寫入兩個(gè)地點(diǎn),在復(fù)制過程中將出現(xiàn)沖突。哪個(gè)寫入是正確的?互聯(lián)網(wǎng)是非常動(dòng)態(tài)的媒介,在很多情況下這并不要緊,不過應(yīng)確保你有所計(jì)劃。
熱/暖(Hot/Warm)是一種很好的方式,如果你不能容忍數(shù)據(jù)的不一致性的話。很多應(yīng)用有大量的讀操作,僅偶爾(但很重要)寫一下。在這種情況下,區(qū)別處理這兩種操作是有意義的。讀操作使用熱熱的方式,可由任何數(shù)據(jù)中心提供,具有快速自動(dòng)的故障轉(zhuǎn)移,這使大部分應(yīng)用具有很高的可靠性。但一次只寫入一個(gè)數(shù)據(jù)中心,這保證了數(shù)據(jù)的一致性,代價(jià)是一小部分應(yīng)用的故障轉(zhuǎn)移會(huì)慢一些。假設(shè)可以降低網(wǎng)站性能的話,就不用同步數(shù)據(jù)復(fù)制。在2寫操作發(fā)生時(shí),盡最大努力將數(shù)據(jù)盡快傳到其他地點(diǎn),但沒有擔(dān)保。復(fù)制延遲可能是幾秒、幾分鐘到幾小時(shí)不等。因此,當(dāng)在一個(gè)地點(diǎn)進(jìn)行寫操作而緊跟著在另一地點(diǎn)進(jìn)行讀取時(shí),會(huì)發(fā)生什么呢?更新可能還沒到達(dá),你會(huì)得到過期的數(shù)據(jù)。我們稱之為臨界讀(critical reads)。你需要識(shí)別,以及通過錯(cuò)誤處理或?qū)⒆x操作引至源站點(diǎn),來減少臨界讀。
熱/冷(1 Hot/Cold)讓我害怕。這種架構(gòu)將讀寫流量送到單一地點(diǎn),而讓另一個(gè)相同的部署在遙遠(yuǎn)的地平線上閑置。它容易建立,但價(jià)值很低。當(dāng)災(zāi)難襲來時(shí),你就會(huì)質(zhì)疑計(jì)劃是否明智。它真的行得通嗎?軟件版本是最新的嗎?最后一次登錄到這個(gè)冷站點(diǎn)是什么時(shí)候?情況往往是,這個(gè)冷站點(diǎn)會(huì)被閑置不用一年或更長的時(shí)間。當(dāng)你需要時(shí),它可能已遺憾地過時(shí)了。擔(dān)心、不確定和懷疑都不可避免地會(huì)延長宕機(jī)時(shí)間。我見過無數(shù)次的事故,其冷情況下你不能使用冷站點(diǎn),其意義何在?
站點(diǎn)是如此不可信,以至于我們寧愿有幾小時(shí)的宕機(jī)時(shí)間,也不用故障轉(zhuǎn)移。如果在緊急災(zāi)難恢復(fù)是最差的技術(shù),本質(zhì)上是霧件(vaporware)。它的本意不是在平常的時(shí)候保護(hù)你,而是在大的災(zāi)難發(fā)生時(shí)給你提供重建的選項(xiàng)。我們收購的一家公司有災(zāi)難恢復(fù)計(jì)劃,它每月需要向第三方公司付“保險(xiǎn)”費(fèi),該第三方公司維護(hù)了一個(gè)大型的數(shù)據(jù)中心,里面充滿了閑置的服務(wù)器和存儲(chǔ)設(shè)備。如果我們們的數(shù)據(jù)中心發(fā)生故障,我們可以用他們的。當(dāng)然,如果有大的災(zāi)難,我們就會(huì)和他們的其他所有客戶競爭資源。并沒有實(shí)際的計(jì)劃,也沒有做過任何測(cè)試。在開始探索實(shí)際的故障轉(zhuǎn)移會(huì)怎么樣的時(shí)候,我們發(fā)現(xiàn)了一些令人驚駭?shù)膯栴}。結(jié)果是服務(wù)器和存儲(chǔ)有各自不同部門,網(wǎng)站建設(shè)服務(wù)器群在一棟樓,而存儲(chǔ)在另一棟。兩棟樓之間有一根千兆以太線路連接,這明顯不能工作。在我們決定自己干時(shí),他們?cè)手Z再建第二條千兆的以太線路。
本文地址:http://islandpacificappraisals.com//article/3358.html