有人斗膽下了個戰(zhàn)書:如果多個機(jī)房的光纜同時被挖斷,40%的服務(wù)器突然無法工作,結(jié)果會怎樣?
結(jié)果,居然還真的有人敢來應(yīng)戰(zhàn)。此人便是螞蟻金服副CTO胡喜。
據(jù)報道,在9月20日的云棲ATEC主論壇上,螞蟻金服副CTO胡喜在現(xiàn)場特別模擬了剪斷支付寶位于一個城市中兩個模擬機(jī)房的光纜。
一旦機(jī)房發(fā)生故障,會怎么辦?
首先,設(shè)想一下服務(wù)器機(jī)房如果發(fā)生了故障,我們的生活會出現(xiàn)什么樣的變化?
斷網(wǎng)了,或許打不通網(wǎng)頁,或許撥不出電話,或許各種失聯(lián)……
有人說如果服務(wù)器機(jī)房發(fā)生變化,在支付寶領(lǐng)域,遇到的最大困擾就是轉(zhuǎn)賬失敗。
轉(zhuǎn)賬失敗?付不了帳?買不了東東,這可腫么辦?
螞蟻金服正是這樣做了這樣一次嘗試性實(shí)驗(yàn),此次實(shí)驗(yàn)被差評君(ID:Chaping321)全程記錄。
現(xiàn)場在模擬支付寶轉(zhuǎn)賬的同時,程序員剪斷了位于杭州一個模擬機(jī)房的光纖,當(dāng)光纖被剪斷后,這個模擬機(jī)房所負(fù)責(zé)區(qū)域的任何業(yè)務(wù)都不能處理。這就是轉(zhuǎn)賬失敗的原因。
螞蟻金服副CTO胡喜現(xiàn)場解釋,這是演習(xí)。
然而,在真實(shí)環(huán)境下,如果支付寶部署在兩個城市的兩個機(jī)房同時出問題,據(jù)官方宣稱,跑在這兩個機(jī)房上的支付寶賬戶,恢復(fù)正常的速度是分鐘級。精確地說,只需要26秒,模擬環(huán)境中的支付寶就能完全恢復(fù)正常。
分分鐘就能完全恢復(fù),這完全顛覆了宕機(jī)停服幾個小時的傳統(tǒng)印象。
為什么能在這么短的時間,能讓故障排除,迅速恢復(fù)到正常工作的情況?
據(jù)悉,這是因?yàn)檫@一機(jī)房架構(gòu)叫“三地五中心”,即在三座城市部署五個機(jī)房,一旦其中一個或兩個機(jī)房發(fā)生故障,其底層技術(shù)系統(tǒng)會將故障城市的流量全部切換到運(yùn)行正常的機(jī)房,并且能做到數(shù)據(jù)保持一致且零丟失。
目前,互聯(lián)網(wǎng)和金融科技行業(yè)普遍采用的是“兩地三中心”部署架構(gòu),即在一個城市設(shè)兩個機(jī)房,在另一個城市設(shè)一個冷備機(jī)房。
而在這個實(shí)驗(yàn)中,城市A的兩個機(jī)房是服務(wù)大眾的,不管是轉(zhuǎn)賬、繳費(fèi)還是查賬全部都由這兩個機(jī)房提供服務(wù),而且兩個機(jī)房是同步在處理數(shù)據(jù)且數(shù)據(jù)一致的。但在城市B的備份機(jī)房只是做備份而已,并不參與服務(wù)大眾這一活動。
一旦城市A的兩個機(jī)房被自然災(zāi)害等毀壞就不能繼續(xù)對外服務(wù),那只能讓程序員熬夜去切換另一個城市的備份數(shù)據(jù)。但是由于B城市的機(jī)房常年沒有工作(提供服務(wù)),整個機(jī)器都處于“冷凍人”的狀態(tài),所以切換前還需要校驗(yàn)數(shù)據(jù),再預(yù)熱等等復(fù)雜的操作后才能讓服務(wù)再次暢通。
這就是為什么很多App服務(wù)器掛掉的時候,要花很久時間才能恢復(fù)的原因。
據(jù)悉,上圖是支付寶的城市級故障自動容災(zāi)系統(tǒng),是它支撐了26秒的災(zāi)后恢復(fù)。
災(zāi)備方案有備無患
目前來看,主要的數(shù)據(jù)備份方式如下:
定期磁帶備份:包括遠(yuǎn)程磁帶庫、光盤庫備份和遠(yuǎn)程關(guān)鍵數(shù)據(jù)+磁帶備份。
數(shù)據(jù)庫備份:就是在與主數(shù)據(jù)庫所在生產(chǎn)機(jī)相分離的備份機(jī)上建立主數(shù)據(jù)庫的一個拷貝。
網(wǎng)絡(luò)數(shù)據(jù):這種方式是對生產(chǎn)系統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)和所需跟蹤的重要目標(biāo)文件的更新進(jìn)行監(jiān)控與跟蹤,并將更新日志實(shí)時通過網(wǎng)絡(luò)傳送到備份系統(tǒng),備份系統(tǒng)則根據(jù)日志對磁盤進(jìn)行更新。
遠(yuǎn)程鏡像:通過高速光纖通道線路和磁盤控制技術(shù)將鏡像磁盤延伸到遠(yuǎn)離生產(chǎn)機(jī)的地方,鏡像磁盤數(shù)據(jù)與主磁盤數(shù)據(jù)完全一致,更新方式為同步或異步。
這些措施能夠在系統(tǒng)發(fā)生故障后進(jìn)行系統(tǒng)恢復(fù),但是這些措施一般只能處理計算機(jī)單點(diǎn)故障,對區(qū)域性、毀滅性災(zāi)難比如地震、火災(zāi)等則束手無策,也不具備災(zāi)難恢復(fù)能力。
災(zāi)備場景涵蓋面廣,方案復(fù)雜,傳統(tǒng)數(shù)據(jù)中心容災(zāi)方案存在CAPEX、OPEX高昂、數(shù)據(jù)同步策略復(fù)雜、災(zāi)難恢復(fù)效果有限等問題。企業(yè)有必要采用多云災(zāi)備策略,以保證業(yè)務(wù)連續(xù)性及關(guān)鍵數(shù)據(jù)可靠性。我們就需要建立異地容災(zāi)中心,做數(shù)據(jù)的遠(yuǎn)程備份,在災(zāi)難發(fā)生之后要確保原有的數(shù)據(jù)不會丟失或者遭到破壞。建立的異地容災(zāi)中心可以簡單地把它理解成一個遠(yuǎn)程的數(shù)據(jù)備份中心。
如今,數(shù)據(jù)中心相關(guān)行業(yè)越發(fā)重視災(zāi)備方案,業(yè)界已有許多優(yōu)秀的災(zāi)備方案問世。7月,華為云Multi cloud混合云災(zāi)備解決方案;8月,浪潮推出并展示了基于Openstack的“同城雙活、多云數(shù)據(jù)中心災(zāi)備解決方案”….期待,未來越來越多的災(zāi)備方案,能讓數(shù)據(jù)更安全,用戶更安心