隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展和信息化整合力度的不斷加強,企業(yè)信息化建設(shè)已從單點應(yīng)用逐步邁向綜合化、集成化、協(xié)同化,各類業(yè)務(wù)數(shù)據(jù)也趨于集中。在此背景下,用戶對關(guān)鍵系統(tǒng)不間斷穩(wěn)定運行的要求越來越高。雖然可通過硬件冗余、系統(tǒng)集群等傳統(tǒng)技術(shù)手段提升本地高可用性,但仍無法抵御地震、水災(zāi)等自然災(zāi)難以及斷電、病毒爆發(fā)、網(wǎng)絡(luò)癱瘓和誤操作等人為災(zāi)難。災(zāi)難性事件一旦發(fā)生,不僅將導(dǎo)致應(yīng)用系統(tǒng)服務(wù)中斷,甚至危及企業(yè)核心數(shù)據(jù),造成不可挽回的后果。為有效應(yīng)對可能的風(fēng)險,大型企業(yè)往往選擇開展容災(zāi)系統(tǒng)建設(shè),利用資源冗余和地理分散等因素充分確保業(yè)務(wù)系統(tǒng)和企業(yè)數(shù)據(jù)對災(zāi)難性事件的抵御能力。
容災(zāi)按距離劃分可分為同城容災(zāi)與異地容災(zāi)。同城容災(zāi)可防范除地震之外的常見災(zāi)難,雙中心距離不超過100公里,通過光纖直連實現(xiàn)數(shù)據(jù)完全同步。而異地容災(zāi)受距離過長及跨省限制,一般沒有條件鋪設(shè)裸光纖,通常租用電信運營商IP線路進(jìn)行數(shù)據(jù)傳輸,每月線路租賃費用與其帶寬直接掛鉤,縮減帶寬能顯著降低運維費用。依據(jù)國家《信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范》(GB/T 20988-2007) ,參照災(zāi)難恢復(fù)第五級(實時數(shù)據(jù)傳輸及完整設(shè)備支持)與第六級(數(shù)據(jù)零丟失和遠(yuǎn)程集群支持)要求建設(shè)的異地容災(zāi)系統(tǒng)必須具備將本地業(yè)務(wù)數(shù)據(jù)實時傳輸至異地備份系統(tǒng)的能力,提高數(shù)據(jù)復(fù)制鏈路帶寬能減少潛在的數(shù)據(jù)丟失。
因此,在異地容災(zāi)系統(tǒng)建設(shè)過程中把握好數(shù)據(jù)復(fù)制鏈路帶寬設(shè)計平衡就顯得尤為重要,既要滿足現(xiàn)有需求并適當(dāng)留有余量,又不盲目擴容,確保投資經(jīng)濟性。
選擇恰當(dāng)
數(shù)據(jù)復(fù)制方式
業(yè)務(wù)數(shù)據(jù)的遠(yuǎn)程實時復(fù)制是實現(xiàn)容災(zāi)的前提,數(shù)據(jù)復(fù)制將生產(chǎn)端數(shù)據(jù)變化(包括新增、修改、刪除)不斷傳輸至容災(zāi)端,從而實現(xiàn)數(shù)據(jù)實時冗余。確保災(zāi)難發(fā)生和生產(chǎn)端系統(tǒng)數(shù)據(jù)被毀壞時,容災(zāi)端數(shù)據(jù)立即可用,且數(shù)據(jù)丟失量符合設(shè)計值。在異地容災(zāi)建設(shè)過程中,備選的數(shù)據(jù)復(fù)制方案有基于智能存儲、基于數(shù)據(jù)交換設(shè)備、基于邏輯磁盤卷、基于數(shù)據(jù)庫的數(shù)據(jù)復(fù)制。不同的技術(shù)方案對容災(zāi)鏈路帶寬要求存在一定差異。
1. 基于智能存儲的數(shù)據(jù)復(fù)制
由存儲設(shè)備內(nèi)嵌功能實現(xiàn)數(shù)據(jù)的遠(yuǎn)程復(fù)制和同步,即生產(chǎn)端存儲設(shè)備將記錄了本地寫入操作的日志實時復(fù)制到容災(zāi)端存儲系統(tǒng)并執(zhí)行,可以保證數(shù)據(jù)的一致性。目前主流存儲廠商都提供了相應(yīng)的解決方案,如EMC SRDF、IBM PPRC 、HP BusinessCopy、HDS TrueCopy等。
該方式通過智能存儲上的處理器實現(xiàn)數(shù)據(jù)復(fù)制和一致性控制,不占用生產(chǎn)端主機資源,對生產(chǎn)系統(tǒng)主機性能無影響;支持所有數(shù)據(jù)類型的容災(zāi),無論是數(shù)據(jù)庫數(shù)據(jù)還是文件數(shù)據(jù);可以不修改應(yīng)用直接實現(xiàn)容災(zāi)功能,部署實施較簡便;實現(xiàn)底層數(shù)據(jù)的透明傳輸,生產(chǎn)端的運維操作全部透明地傳輸?shù)饺轂?zāi)中心,容災(zāi)端無需過多干預(yù),系統(tǒng)整體可靠性和可維護(hù)性較高,運維成本較低;可以通過在容災(zāi)中心存儲陣列上劃分多個磁盤區(qū)域的方法,靈活實現(xiàn)多點、多個不同應(yīng)用系統(tǒng)的復(fù)制或鏡像。
該方式不足之處在于最底層的數(shù)據(jù)透明傳輸對網(wǎng)絡(luò)帶寬和穩(wěn)定性的要求非常高;要求兩端的存儲必須為同一廠家同一檔次的產(chǎn)品,在產(chǎn)品選型時有很大限制;對生產(chǎn)端和容災(zāi)端存儲容量要求較高,需要增加額外存儲空間來滿足容災(zāi)需求;還有就是容災(zāi)端數(shù)據(jù)不能直接讀寫。
2. 基于數(shù)據(jù)交換設(shè)備的數(shù)據(jù)復(fù)制
利用高端SAN交換機特殊功能,將生產(chǎn)端寫入請求分離出來發(fā)送給本地專用設(shè)備,并由該設(shè)備負(fù)責(zé)記錄數(shù)據(jù)變化日志并將日志發(fā)送至容災(zāi)端,容災(zāi)端部署相應(yīng)的設(shè)備負(fù)責(zé)接收日志并將數(shù)據(jù)修改同步到指定的存儲系統(tǒng)。基于該方案的產(chǎn)品有EMC Recover Point等。
該方式與基于智能存儲的數(shù)據(jù)復(fù)制相比有類似之處,只是將原本由存儲負(fù)責(zé)的遠(yuǎn)程復(fù)制功能轉(zhuǎn)移到了SAN交換機與專用設(shè)備之上,從而實現(xiàn)了良好的開放性,支持在異構(gòu)存儲設(shè)備之間進(jìn)行數(shù)據(jù)復(fù)制,便于產(chǎn)品選型;也保留了基于智能存儲的數(shù)據(jù)復(fù)制的優(yōu)點,能夠在不占用主機資源的情況下實現(xiàn)高效的數(shù)據(jù)復(fù)制,其部署與運維成本也較低,但對網(wǎng)絡(luò)帶寬的要求仍較高。
3. 基于邏輯磁盤卷的數(shù)據(jù)復(fù)制
通過每臺主機上安裝獨立的卷(LVM)復(fù)制軟件,同時打開生產(chǎn)卷和容災(zāi)端對應(yīng)的備份卷,并通過網(wǎng)絡(luò)建立數(shù)據(jù)傳輸通道,生產(chǎn)端主機將每個數(shù)據(jù)塊寫到生產(chǎn)卷的同時,記錄額外的數(shù)據(jù)修改日志并將其傳輸?shù)饺轂?zāi)端,容災(zāi)端卷管理軟件負(fù)責(zé)接收日志并將其同步至備份卷,從而實現(xiàn)兩地業(yè)務(wù)數(shù)據(jù)的實時復(fù)制。基于該方案的產(chǎn)品有Veritas Volume Replicator等。
該方式通過操作系統(tǒng)邏輯卷管理軟件來實現(xiàn)復(fù)制,對存儲進(jìn)行邏輯虛擬化,支持異構(gòu)存儲,同時支持所有數(shù)據(jù)類型的容災(zāi)。
該方式不足之處在于對帶寬要求較高,容災(zāi)端邏輯卷的響應(yīng)速度必須有高速可靠的網(wǎng)絡(luò)加以保證;生產(chǎn)端主機承載了額外的數(shù)據(jù)復(fù)制任務(wù),對生產(chǎn)端性能影響較大;要求特殊格式的文件系統(tǒng);無法對根卷進(jìn)行容災(zāi)。
4. 基于數(shù)據(jù)庫的數(shù)據(jù)復(fù)制
由數(shù)據(jù)庫系統(tǒng)軟件本身提供的容災(zāi)功能來實現(xiàn)遠(yuǎn)程復(fù)制和同步,生產(chǎn)端數(shù)據(jù)庫將重做日志或歸檔日志發(fā)送至遠(yuǎn)端,容災(zāi)端數(shù)據(jù)庫接收日志后進(jìn)行前滾操作實現(xiàn)數(shù)據(jù)同步。相關(guān)產(chǎn)品有Oracle DataGuard、IBM DB2 HADR等,第三方軟件廠商也提供了GoldenGate、SharePlex等類似的解決方案。在生產(chǎn)端解析日志,通過網(wǎng)絡(luò)把解析出的SQL語句傳輸?shù)饺轂?zāi)端回放。
這種方式最大的特點是數(shù)據(jù)復(fù)制鏈路僅傳輸重做日志或SQL語句,網(wǎng)絡(luò)資源占用最小;高版本數(shù)據(jù)庫軟件甚至允許在容災(zāi)端以只讀方式打開數(shù)據(jù)庫,方便了報表統(tǒng)計等商業(yè)智能應(yīng)用,有利于容災(zāi)端硬件資源復(fù)用,提升投資經(jīng)濟性;對存儲容量要求較低且支持異構(gòu)存儲設(shè)備;容災(zāi)端數(shù)據(jù)庫時刻處于激活狀態(tài),容災(zāi)切換時間相對較短。不足之處是生產(chǎn)端主機需要啟動額外進(jìn)程捕獲、傳輸重做日志,一定程度上影響了生產(chǎn)端數(shù)據(jù)庫主機性能;只支持?jǐn)?shù)據(jù)庫容災(zāi),不支持文件系統(tǒng)容災(zāi);容災(zāi)系統(tǒng)的實施部署、管理相對程序復(fù)雜。
上述四種數(shù)據(jù)復(fù)制方案在容災(zāi)應(yīng)用中具有各自的優(yōu)勢,也存在各自的不足,在實際應(yīng)用中完全可根據(jù)實際需求擇優(yōu)使用。基于數(shù)據(jù)庫的數(shù)據(jù)復(fù)制方案對網(wǎng)絡(luò)資源占用最小,以O(shè)racle數(shù)據(jù)庫DataGuard容災(zāi)方案為例,當(dāng)一筆業(yè)務(wù)交易處理完畢時,只需傳輸該交易涉及的重做日志條目即可確保容災(zāi)功能實現(xiàn)。而使用另三種方案都需將重做日志,數(shù)據(jù)表、索引、歸檔日志、控制文件、臨時表、回滾段中所有與該交易相關(guān)的數(shù)據(jù)修改以塊的形式發(fā)送至容災(zāi)端,網(wǎng)絡(luò)帶寬占用成倍增長。據(jù)統(tǒng)計,在不考慮網(wǎng)絡(luò)加速設(shè)備的前提下,基于智能存儲、數(shù)據(jù)交換設(shè)備、邏輯磁盤卷的數(shù)據(jù)復(fù)制對帶寬要求大致相當(dāng),都約為基于數(shù)據(jù)庫的數(shù)據(jù)復(fù)制方案的7倍。
考慮到針對智能存儲、光纖交換機、操作系統(tǒng)邏輯卷的寫入長期歷史統(tǒng)計存在較大技術(shù)障礙,而數(shù)據(jù)庫重做日志增量統(tǒng)計手段多樣,簡單易行。在明確各方案帶寬需求換算關(guān)系后,可將各類I/O統(tǒng)計需求轉(zhuǎn)化為各業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫重做日志增量,為準(zhǔn)確估算鏈路帶寬奠定基礎(chǔ)。
業(yè)務(wù)現(xiàn)狀統(tǒng)計
生產(chǎn)端業(yè)務(wù)數(shù)據(jù)修改量統(tǒng)計一直是異地容災(zāi)系統(tǒng)設(shè)計的難點問題。統(tǒng)計時缺乏有效的技術(shù)工具支撐,難以精確的回顧數(shù)周前、數(shù)月前甚至數(shù)年前曾出現(xiàn)的寫入峰值及持續(xù)時間,往往只能選擇粗略估算。依據(jù)失真的現(xiàn)狀指標(biāo)建設(shè)的異地容災(zāi)數(shù)據(jù)復(fù)制鏈路要么鏈路帶寬過小無法滿足傳輸需求反復(fù)出現(xiàn)數(shù)據(jù)堵塞,要么安全余量預(yù)留過多造成資源閑置。
如常用的以表空間增長量代替數(shù)據(jù)修改量的方法就缺乏科學(xué)依據(jù)。插入操作可能帶來表空間的擴張,也可能因留有空閑的數(shù)據(jù)塊而無需立即分配空間。修改與刪除操作一般不會造成表空間增長,但數(shù)據(jù)變化仍需同步至容災(zāi)端。
應(yīng)將業(yè)務(wù)現(xiàn)狀統(tǒng)計的重點放在調(diào)研現(xiàn)有各數(shù)據(jù)庫日志增長情況之上,然后不同數(shù)據(jù)復(fù)制方案之間帶寬需求換算關(guān)系推導(dǎo)出數(shù)周前、數(shù)月前甚至數(shù)年前生產(chǎn)端寫入操作的峰值及持續(xù)時間、均值等關(guān)鍵指標(biāo)。
1.數(shù)據(jù)變化實時統(tǒng)計
容災(zāi)需求調(diào)研時往往可借助專業(yè)的數(shù)據(jù)庫監(jiān)控軟件獲得短時期內(nèi)單個數(shù)據(jù)庫實時的重做日志增長分布。從實際工作調(diào)查可發(fā)現(xiàn),異地容災(zāi)系統(tǒng)建設(shè)重點關(guān)注的業(yè)務(wù)實時數(shù)據(jù)修改量通常呈不均勻分布,波峰波谷交替出現(xiàn)。實際工作中,某DB2數(shù)據(jù)庫一周內(nèi)日志更新高峰值為每分鐘450MB,持續(xù)時間為數(shù)分鐘,一般發(fā)生在凌晨,其余時間重做日志增長均值為每分鐘30MB。
2.數(shù)據(jù)變化歷史統(tǒng)計
依據(jù)實時統(tǒng)計得出的結(jié)論僅建立在較少的樣本之上,是否能夠完全反映真實情況,是否在此之前還出現(xiàn)過更大的數(shù)據(jù)日志增長高峰,要解答這些疑問必須依靠更長的采樣周期和更多的采集樣本。此時監(jiān)控工具已無法發(fā)揮作用,只能在數(shù)據(jù)庫歷史備份中尋找線索。以O(shè)racle為例,RMAN目錄的RC_LOG_HISTORY視圖就詳細(xì)記錄了每個重做日志的開始時間,可按其切換頻率及日志文件大小間接推導(dǎo)出日志增長分布。DB2也提供了類似命令。
3. 多系統(tǒng)疊加統(tǒng)計
準(zhǔn)確掌握單個應(yīng)用數(shù)據(jù)庫日志增長情況特別是數(shù)據(jù)變化峰值、出現(xiàn)頻次(概率)、高峰時段、高峰持續(xù)時間可以為容災(zāi)鏈路網(wǎng)絡(luò)帶寬估算提供了基礎(chǔ)數(shù)據(jù),之后應(yīng)將生產(chǎn)端所有應(yīng)用系統(tǒng)后臺數(shù)據(jù)庫寫負(fù)荷疊加起來綜合統(tǒng)計。
數(shù)據(jù)變化高峰作為大量試驗樣本中的稀有事件,近似滿足泊松分布。如生產(chǎn)端應(yīng)用較少或高峰時段相互錯開,可認(rèn)為各系統(tǒng)同時發(fā)生數(shù)據(jù)修改高峰的機率很小,最終需求為樣本最大值;如生產(chǎn)端應(yīng)用較多,但各系統(tǒng)應(yīng)用負(fù)荷不平衡,某項應(yīng)用經(jīng)常出現(xiàn)特大峰值,可將該值作為最終需求;如生產(chǎn)端應(yīng)用較多、出現(xiàn)時段不固定,且峰值大致相當(dāng),應(yīng)充分考慮數(shù)據(jù)修改高峰重合的可能,依據(jù)概率擬合最終需求。
鏈路帶寬估算
鏈路帶寬估算需要數(shù)據(jù)支持,一是容災(zāi)技術(shù)指標(biāo),可通過風(fēng)險分析及業(yè)務(wù)影響分析科學(xué)制定;二是業(yè)務(wù)數(shù)據(jù)變化現(xiàn)狀,可通過數(shù)據(jù)庫日志增量調(diào)研及換算獲得。
當(dāng)RPO設(shè)計值較高時(N分鐘級),通信鏈路必須確保在N分鐘內(nèi)將波峰量數(shù)據(jù)傳輸至容災(zāi)端的能力,允許的數(shù)據(jù)堆積量很小,帶寬大小取決于波峰時寫入負(fù)荷。當(dāng)RPO設(shè)計值適中(N小時級),可充分利用負(fù)荷波谷時鏈路的空閑能力延時傳輸負(fù)荷波峰時來不及發(fā)送的數(shù)據(jù),達(dá)到“削峰填谷”的效果,此時帶寬大小可取波峰波谷間的寫入負(fù)荷的平均值。
異地容災(zāi)系統(tǒng)建設(shè)是一個復(fù)雜的系統(tǒng)工程,技術(shù)方案的選擇涉及很多因素,數(shù)據(jù)復(fù)制鏈路帶寬設(shè)計作為其中的難點和關(guān)鍵環(huán)節(jié),需要開展深入調(diào)研與合理匡算,不能簡單盲目的就高或就低配置。