天有不測風(fēng)云,自然世界,如火災(zāi)、地震等災(zāi)難事件時有發(fā)生。對IT人來說,當(dāng)某處應(yīng)用系統(tǒng)因為災(zāi)難停機,往往需要7*24小時緊急待機處理,期間還得對數(shù)據(jù)安全提心吊膽。
面對風(fēng)險和難題,企業(yè)應(yīng)該做好萬全之策,例如更新容災(zāi)系統(tǒng),守住最后一道保障關(guān)卡。本文就為你詳解容災(zāi)系統(tǒng)中的重要“招式”——異步遠程復(fù)制。
作為容災(zāi)系統(tǒng)的核心技術(shù)之一,存儲系統(tǒng)的數(shù)據(jù)復(fù)制是一種可保持兩地間數(shù)據(jù)一致性和實現(xiàn)災(zāi)難恢復(fù)的關(guān)鍵技術(shù),當(dāng)生產(chǎn)中心故障時,用戶可利用災(zāi)備中心的數(shù)據(jù)備份恢復(fù)生產(chǎn)數(shù)據(jù),此外也可以通過災(zāi)備中心直接提供運營支撐環(huán)境快速恢復(fù)業(yè)務(wù),滿足企業(yè)對RPO和RTO的要求。
數(shù)據(jù)復(fù)制實現(xiàn)原理和問題分析
同步復(fù)制or異步復(fù)制
當(dāng)前,存儲系統(tǒng)的復(fù)制技術(shù)通常分為同步復(fù)制和異步復(fù)制。同步復(fù)制可以做到主/備集群的數(shù)據(jù)同步更新,要求每一個寫入操作在執(zhí)行下一個操作處理之前,在源端和目標端都能完成;而異步復(fù)制因為采用周期性同步的方式,在處理下一個操作前,無需等待數(shù)據(jù)復(fù)制到目標系統(tǒng)中。
同步復(fù)制有著能最大限度地減少數(shù)據(jù)丟失量的優(yōu)勢,擁有更強的數(shù)據(jù)一致性,但也因此會影響生產(chǎn)系統(tǒng)的性能。而異步復(fù)制能在保證主從數(shù)據(jù)的最終一致性的同時,最大限度減少由于數(shù)據(jù)遠程傳輸?shù)臅r延而造成的業(yè)務(wù)性能下降。在建設(shè)容災(zāi)系統(tǒng)時,企業(yè)可以結(jié)合不同的業(yè)務(wù)場景,選擇不同的數(shù)據(jù)復(fù)制方式。因此,如果不是業(yè)務(wù)上對此有非??量痰囊螅趯I(yè)務(wù)性能要求高,但是RPO要求不高的場景,通常采用異步復(fù)制的方式進行容災(zāi)備份。
異步遠程復(fù)制,快照機制成主流
目前,業(yè)界實現(xiàn)異步復(fù)制技術(shù)主要分為基于日志機制和基于快照機制兩類。
1.基于日志機制
對于基于日志的數(shù)據(jù)復(fù)制,客戶端的數(shù)據(jù)更新請求,首先要寫入日志中,當(dāng)日志寫入成功,然后再把數(shù)據(jù)寫入對應(yīng)的存儲空間。日志中會給每一個數(shù)據(jù)更新操作分配一個唯一遞增的序列號,從而保障數(shù)據(jù)恢復(fù)時能夠按照正確的順序執(zhí)行,保障數(shù)據(jù)一致性和完整性。備份集群從主集群遠程讀取到日志操作后,基于日志序列號在本地進行數(shù)據(jù)回放,從而完成數(shù)據(jù)復(fù)制工作。
該機制由于需要先把數(shù)據(jù)寫入日志,然后再更新本地集群,因此至少有一次以上的寫入數(shù)據(jù)放大,進而導(dǎo)致業(yè)務(wù)寫性能存在一倍以上的性能下降,在異步數(shù)據(jù)復(fù)制場景比較少見。
2.基于快照機制
基于快照的數(shù)據(jù)復(fù)制,就是定時在主集群對數(shù)據(jù)進行一次“照相”,生成一個描述當(dāng)前數(shù)據(jù)狀態(tài)的快照。備份集群通過比較主集群兩個快照差異,來確認快照間隔時間內(nèi)所發(fā)生的數(shù)據(jù)變化,并通過同步快照時間的差異數(shù)據(jù)來完成數(shù)據(jù)復(fù)制工作。
圖1 基于快照機制實現(xiàn)異步遠程復(fù)制-初始全量同步
圖2 基于快照機制實現(xiàn)異步遠程復(fù)制-增量同步
基于快照的數(shù)據(jù)復(fù)制由于數(shù)據(jù)同步效率高,因此使用場景廣泛。但是,由于需要通過頻繁的更新快照來記錄數(shù)據(jù)狀態(tài),并且通過比較兩個快照之間的數(shù)據(jù)差異來實現(xiàn)增量數(shù)據(jù)同步,因此快照的的實現(xiàn)機制以及獲取快照之間差異數(shù)據(jù)的效率決定了基于快照的數(shù)據(jù)復(fù)制機制的效率。
為了方便記錄不同存儲卷的數(shù)據(jù)狀態(tài),常用的方法是使用一個額外的索引位圖。當(dāng)存在數(shù)據(jù)更新時,先更新對應(yīng)位圖中的狀態(tài)信息,再寫入數(shù)據(jù)。但這種方式引入了兩個問題:
1. 索引位圖的更新需要通過互斥鎖來保證一致性,在常用的塊存儲多路徑場景,不同的存儲網(wǎng)關(guān)更新索引位圖時會存在鎖競爭,導(dǎo)致出現(xiàn)頻繁搶鎖,極大地影響存儲的寫入性能。
2. 由于索引位圖存儲較為集中并且需要頻繁更新,很容易成為寫熱點,進而影響存儲集群的讀寫性能。
針對上述問題,杉巖USP統(tǒng)一存儲平臺通過基于快照機制的異步遠程復(fù)制方案和深度優(yōu)化,實現(xiàn)后臺異步遠程復(fù)制高效增量同步和用戶前臺業(yè)務(wù)高性能平穩(wěn)運行兩不誤。
杉巖USP異步遠程復(fù)制,打造高性能方案
杉巖數(shù)據(jù)采用基于自有專利的ALUA卷級負載均衡、自適應(yīng)索引IO聚合和高性能RoW快照技術(shù),提供一個高性能、高可靠的數(shù)據(jù)復(fù)制方案。
ALUA機制
杉巖USP在業(yè)內(nèi)率先支持ALUA機制(點擊查看:杉巖USP統(tǒng)一存儲平臺業(yè)內(nèi)率先支持ALUA機制),避免了多路徑場景的鎖競爭問題,提升了不同卷的索引位圖訪問聚合度,大大減少下盤訪問的平均開銷,提升前臺業(yè)務(wù)IO的整體性能;并且利用ALUA的動態(tài)負載均衡功能,可有效降低后臺異步遠程復(fù)制任務(wù)對前臺業(yè)務(wù)IO的影響,而ALUA的秒級故障快速切換功能則可有效保障前臺業(yè)務(wù)IO的平穩(wěn)連續(xù)運行。
細粒度數(shù)據(jù)塊狀態(tài)位圖和IO聚合
杉巖USP異步復(fù)制特性,可將卷或快照的索引位圖拆分為更精細粒度的子塊,并結(jié)合層次的內(nèi)存元數(shù)據(jù)索引,既可加速獲取快照之間的差異數(shù)據(jù),又可減少對索引數(shù)據(jù)的頻繁訪問;并且索引位圖數(shù)據(jù)打散存放,可避免頻繁訪問索引位圖數(shù)據(jù)所帶來的訪問熱點問題。同時,針對索引位圖的更新還進行了自適應(yīng)的IO聚合處理,進一步降低了更新索引位圖對業(yè)務(wù)IO性能的影響。
RoW機制
杉巖USP異步遠程復(fù)制的快照采用RoW(寫時重定向)機制,可有效避免快照對業(yè)務(wù)寫IO的影響,同時基于獨有專利技術(shù)解決傳統(tǒng)RoW快照造成空間離散影響讀性能的問題,可最大程度降低異步復(fù)制快照對業(yè)務(wù)IO的性能影響。
價值總結(jié)
杉巖USP統(tǒng)一存儲平臺的異步遠程復(fù)制功能既充分保證了高效的后臺增量同步,實現(xiàn)系統(tǒng)容災(zāi)備份,又有效保障了前臺業(yè)務(wù)的高效平穩(wěn)和連續(xù)運行,使用戶擁有了高可靠、高穩(wěn)定、高可用和高性能的極致體驗。主要價值如下:
遠端備份和恢復(fù):業(yè)務(wù)數(shù)據(jù)失效后,可通過遠端的備份數(shù)據(jù)進行恢復(fù),避免主端存儲集群數(shù)據(jù)失效后,由于數(shù)據(jù)丟失造成的損失。
持續(xù)的業(yè)務(wù)支撐:災(zāi)難發(fā)生時可以通過從端存儲集群快速接管主端存儲集群的業(yè)務(wù)數(shù)據(jù),以保證業(yè)務(wù)的可靠性,避免主端存儲集群故障后,由于業(yè)務(wù)中斷造成的損失。
容災(zāi)恢復(fù):災(zāi)難發(fā)生后可以通過從端存儲集群的數(shù)據(jù)實現(xiàn)主端存儲集群數(shù)據(jù)的恢復(fù),避免災(zāi)難發(fā)生后,由于業(yè)務(wù)數(shù)據(jù)丟失或恢復(fù)時間過長造成的損失。