一體化容災(zāi)需要同時解決的兩個
問題是“數(shù)據(jù)不丟失,應(yīng)用不間斷”。其中“數(shù)據(jù)不丟失”是基礎(chǔ),那么,“應(yīng)用不間斷”的目標(biāo)如何實現(xiàn)呢?
基于 CDP 技術(shù)的應(yīng)用容災(zāi)
首先,我們來認(rèn)識一下愛數(shù)備份容災(zāi)家族的應(yīng)用容災(zāi)方案。簡單地說,整個容災(zāi)方案分為三個部分:生產(chǎn)服務(wù)器、容災(zāi)服務(wù)器和基于愛數(shù)容災(zāi)家族產(chǎn)品成員的容災(zāi)管理控制臺。這三個部分被“實時復(fù)制”和“持續(xù)恢復(fù)”兩項關(guān)鍵技術(shù)緊密地銜接在一起。其中,“實時復(fù)制”監(jiān)控生產(chǎn)服務(wù)器上用戶所選擇的數(shù)據(jù)源,并源源不斷地將數(shù)據(jù)變化傳輸?shù)綈蹟?shù)第三代引擎所特有的 OFS 介質(zhì)(下文簡稱 OFS)上,并可追溯到任意時間點。為了使容災(zāi)服務(wù)器上的數(shù)據(jù)與生產(chǎn)服務(wù)器保持一致,“持續(xù)恢復(fù)”O(jiān)FS 上的數(shù)據(jù)變化實時地恢復(fù)到容災(zāi)服務(wù)器上。那么如果災(zāi)難發(fā)生,需要進(jìn)行應(yīng)用切換,容災(zāi)服務(wù)器所能恢復(fù)的時間點就是應(yīng)用中斷的那個時刻。如此一來,實現(xiàn)了容災(zāi)的恢復(fù)點目標(biāo)(RPO)接近于零。
如果真的發(fā)生了應(yīng)用故障,容災(zāi)系統(tǒng)的故障檢測模塊就會首先發(fā)揮作用,它會先嘗試排除各種異常情況并嘗試修復(fù)應(yīng)用。如果應(yīng)用無法修復(fù),容災(zāi)服務(wù)器就會自動接管生產(chǎn)服務(wù)器的應(yīng)用(用戶也可配置成手工接管,愛數(shù)的管理控制臺會在應(yīng)用故障時發(fā)出通知)。這時,應(yīng)用中斷時間為接管所需的時間,可以通過以下方式計算出:
接管時間 =IP 漂移時間 +應(yīng)用切換時間
(一般情況下 IP 漂移是十分迅速的,應(yīng)用切換時間根據(jù)應(yīng)用和數(shù)據(jù)量的大小而有所不同,但總得來說是不會超過分鐘數(shù)量級)
現(xiàn)在,容災(zāi)系統(tǒng)順利地完成了接管,但這并不意味著容災(zāi)的結(jié)束。接管應(yīng)用后的容災(zāi)服務(wù)器還在對外提供服務(wù),所產(chǎn)生的數(shù)據(jù)依然需要保護(hù)。這時,愛數(shù)應(yīng)用容災(zāi)的對象隨著應(yīng)用切換變成了容災(zāi)服務(wù)器。災(zāi)難過后,為了讓原生產(chǎn)系統(tǒng)繼續(xù)工作,用戶往往需要修復(fù)生產(chǎn)系統(tǒng),應(yīng)用修復(fù)后,愛數(shù)特有的“反向復(fù)制”技術(shù),會實時地將容災(zāi)服務(wù)器產(chǎn)生的數(shù)據(jù)通過 OFS 復(fù)制回生產(chǎn)服務(wù)器上。只要復(fù)制完成,再進(jìn)行一次反向接管即可將應(yīng)用重新切換到生產(chǎn)服務(wù)器上。這時,應(yīng)用中斷的時間也只相當(dāng)于一次應(yīng)用接管的時間??v觀整個容災(zāi)和應(yīng)用恢復(fù)的過程,應(yīng)用中斷時間(RTO)僅為兩次接管的時間??梢岳斫鉃橄旅娴谋磉_(dá)式:
應(yīng)用中斷時間 = 接管時間 × 2
反觀傳統(tǒng)的容災(zāi)方案,在進(jìn)行接管后恢復(fù)生產(chǎn)應(yīng)用的一系列操作過程中,一般都會為了保證數(shù)據(jù)一致性而要求在數(shù)據(jù)恢復(fù)時停止應(yīng)用。這時,應(yīng)用中斷時間(RTO)可以表示為:
應(yīng)用中斷時間 = 數(shù)據(jù)恢復(fù)時間 +接管時間 × 2
(一般情況下,數(shù)據(jù)量越大、網(wǎng)絡(luò)條件越差則恢復(fù)時間越長,恢復(fù)時間與數(shù)據(jù)量成正比關(guān)系)
由于傳統(tǒng)方案中的數(shù)據(jù)恢復(fù)時間會非常大限度地受制于數(shù)據(jù)量的大小和網(wǎng)絡(luò)鏈路狀況,所以愛數(shù)應(yīng)用容災(zāi)方案大幅降低了應(yīng)用間斷的時間。
基于級聯(lián)復(fù)制的遠(yuǎn)程應(yīng)用容災(zāi)
除了上述容災(zāi)方案之外,愛數(shù)備份容災(zāi)家族還提供了更加安全可靠的遠(yuǎn)程級聯(lián)復(fù)制容災(zāi)方案。所謂級聯(lián),就是在不同的地點都部署容災(zāi)系統(tǒng),利用 OFS 的同步功能,將遠(yuǎn)程容災(zāi)中心和本地數(shù)據(jù)中心的 OFS 數(shù)據(jù)同步起來,這種同步也是實時的,遠(yuǎn)程的 OFS 同樣可以恢復(fù)到任意時間點。由于異地容災(zāi)往往是在低速網(wǎng)絡(luò)中進(jìn)行,網(wǎng)絡(luò)的抖動會影響容災(zāi)的效果,為此愛數(shù)還專門提供了支持?jǐn)嚅_重連、斷點續(xù)傳等網(wǎng)絡(luò)傳輸技術(shù),令遠(yuǎn)程的數(shù)據(jù)一致性得到了保證。
用戶也可以在遠(yuǎn)程容災(zāi)中心部署容災(zāi)服務(wù)器,那么就會至少有四份數(shù)據(jù)同時被保存下來。發(fā)生應(yīng)用故障時,用戶可以選擇使用本地或者異地的容災(zāi)服務(wù)器進(jìn)行接管。如果本地容災(zāi)系統(tǒng)癱瘓,可用遠(yuǎn)程的 OFS 數(shù)據(jù)進(jìn)行修復(fù)。即使本地數(shù)據(jù)中心發(fā)生極端的災(zāi)難性事故,出現(xiàn)數(shù)據(jù)中心全部損毀的情況,遠(yuǎn)程容災(zāi)服務(wù)器依然可以接管應(yīng)用、遠(yuǎn)程 OFS 依然可以提供任意時間點的數(shù)據(jù)恢復(fù)。災(zāi)難過后,如果需要修復(fù)本地數(shù)據(jù)中心的生產(chǎn)系統(tǒng)和容災(zāi)系統(tǒng),同樣也可以通過遠(yuǎn)程 OFS 到本地 OFS、本地 OFS 到本地生產(chǎn)服務(wù)器之間的反向復(fù)制來進(jìn)行數(shù)據(jù)恢復(fù),解決了數(shù)據(jù)恢復(fù)時間長、遠(yuǎn)程數(shù)據(jù)可能不一致的問題,使得應(yīng)用中斷的時間(RTO)降到最低。
愛數(shù)備份容災(zāi)家族采用了“實時復(fù)制”、“持續(xù)恢復(fù)”、“反向復(fù)制”、“級聯(lián)復(fù)制”等一系列獨特的技術(shù)手段來保證關(guān)鍵應(yīng)用的持續(xù)運行,力求將應(yīng)用中斷的時間最小化,為用戶提供了更加安全可靠的應(yīng)用容災(zāi)方案。愛數(shù)應(yīng)用容災(zāi)方案和數(shù)據(jù)容災(zāi)方案一樣,是一體化容災(zāi)不可或缺的組成部分,為容災(zāi)普及鋪平了道路。
(作者單位:上海愛數(shù)軟件有限公司)