程智謀
(廣東寶繹通信科技有限公司,廣東 廣州 510665)
IT容災(zāi)技術(shù)經(jīng)過幾十年的發(fā)展,從最初純數(shù)據(jù)保護(hù)角度的數(shù)據(jù)備份,存儲級容災(zāi),到針對大型核心數(shù)據(jù)庫的數(shù)據(jù)實時復(fù)制,再到針對大型業(yè)務(wù)應(yīng)用的同城雙活容災(zāi),經(jīng)歷了一個漫長的發(fā)展過程。IT容災(zāi)技術(shù)在金融、制造以及能源等關(guān)系國計民生的大中型企業(yè)客戶中廣泛落地應(yīng)用,發(fā)揮了巨大作用。傳統(tǒng)的IT容災(zāi)技術(shù)主要包括基于存儲復(fù)制的容災(zāi)方案和基于數(shù)據(jù)庫復(fù)制的容災(zāi)方案。
基于存儲設(shè)備層的遠(yuǎn)程數(shù)據(jù)復(fù)制技術(shù)非常成熟,在企業(yè)級市場廣泛應(yīng)用。其技術(shù)核心原理是通過存儲陣列本身強(qiáng)大的硬件ASIC化多控制器,將本地生產(chǎn)系統(tǒng)磁盤數(shù)據(jù)塊壓縮加密后遠(yuǎn)程復(fù)制到災(zāi)備端,實現(xiàn)對生產(chǎn)數(shù)據(jù)的遠(yuǎn)程拷貝,達(dá)到保護(hù)生產(chǎn)數(shù)據(jù)、應(yīng)對計劃外停機(jī)和災(zāi)難的效果。當(dāng)數(shù)據(jù)中心生產(chǎn)環(huán)境發(fā)生災(zāi)難時,為確保業(yè)務(wù)連續(xù)性,通過災(zāi)備數(shù)據(jù)中心數(shù)據(jù)快速恢復(fù)業(yè)務(wù)運(yùn)營,確保核心業(yè)務(wù)和應(yīng)用數(shù)據(jù)持續(xù)可用。同時,在主中心恢復(fù)正常后,通過增量數(shù)據(jù)回切,將災(zāi)備中心獨(dú)立運(yùn)行時段產(chǎn)生的新增數(shù)據(jù)及時回傳、同步恢復(fù)到主數(shù)據(jù)中心,幫助企業(yè)快速恢復(fù)到生產(chǎn)系統(tǒng)正常運(yùn)營冗余狀態(tài)。基于型號XP1024存儲設(shè)備的數(shù)據(jù)復(fù)制技術(shù)實現(xiàn)如圖1所示。

圖1 基于存儲復(fù)制技術(shù)的數(shù)據(jù)保護(hù)
基于數(shù)據(jù)庫的數(shù)據(jù)復(fù)制技術(shù)更接近業(yè)務(wù)應(yīng)用容災(zāi),更加靈活,但技術(shù)實現(xiàn)復(fù)雜度高。大體上可分為兩類,一類是數(shù)據(jù)庫自己提供的數(shù)據(jù)容災(zāi)模塊,另一類是第三方廠商提供的數(shù)據(jù)庫復(fù)制技術(shù)。基于數(shù)據(jù)庫復(fù)制技術(shù)的數(shù)據(jù)保護(hù)模式如圖2所示。以最常見的Oracle數(shù)據(jù)庫為例,Oracle原廠提供的有Data Guard/Active Data Guard和Oracle Golden Gate等數(shù)據(jù)復(fù)制解決方案,第三方廠商的數(shù)據(jù)復(fù)制技術(shù)常見的有Quest公司的Share Plex和DSG的RealSync等。

圖2 基于數(shù)據(jù)庫復(fù)制技術(shù)的數(shù)據(jù)保護(hù)
近年來,隨著云計算、大數(shù)據(jù)以及容器技術(shù)的發(fā)展和廣泛應(yīng)用,IT系統(tǒng)上云成為大勢所趨。從公有云、私有云到混合云,越來越多的企業(yè)客戶IT基礎(chǔ)架構(gòu)乃至應(yīng)用架構(gòu)都發(fā)生了巨大的變化。傳統(tǒng)IT基于單體大型計算UNIX服務(wù)器,大型存儲、大型數(shù)據(jù)庫的大型數(shù)據(jù)中心架構(gòu),而云時代的IT逐步過渡到了基于虛擬化技術(shù)和云計算技術(shù)的分布式化、容器化的云化數(shù)據(jù)中心架構(gòu)。IT基礎(chǔ)架構(gòu)的不斷變革幫助企業(yè)更好地適應(yīng)越來越快的業(yè)務(wù)變革,滿足移動互聯(lián)網(wǎng)、電子商務(wù)等應(yīng)用快速迭代和資源動態(tài)變化的要求,靈活應(yīng)對市場的變化。此外,隨著IT架構(gòu)和技術(shù)的快速發(fā)展與變化,整個容災(zāi)技術(shù)也需要與時俱進(jìn),不斷推陳出新。
云架構(gòu)先天的靈活機(jī)制、保護(hù)機(jī)制優(yōu)勢有助于用戶集中更多資源專心推動業(yè)務(wù)發(fā)展。這些新業(yè)務(wù)相關(guān)應(yīng)用呈現(xiàn)出輕量化、多樣化以及移動互聯(lián)網(wǎng)化的特點。
基于這樣的業(yè)務(wù)特點,結(jié)合云基礎(chǔ)架構(gòu)的發(fā)展趨勢,一方面要求降低普通用戶使用容災(zāi)技術(shù)的門檻,讓更多普通云租戶和業(yè)務(wù)應(yīng)用得到容災(zāi)軟件保護(hù);另一方面也對容災(zāi)軟件、容災(zāi)保護(hù)機(jī)制提出了更高的RPO/RTO要求。基于操作系統(tǒng)的整體工作負(fù)載一體化實時容災(zāi)保護(hù)機(jī)制應(yīng)運(yùn)而生,且RPO趨近于0,RTO達(dá)到秒級、分鐘級,完全滿足了新型業(yè)務(wù)架構(gòu)和IT架構(gòu)的技術(shù)發(fā)展要求。
采用基于I/O追蹤回放塊復(fù)制技術(shù)的數(shù)據(jù)復(fù)制技術(shù),主要面向越來越多的中小型化、多樣化、敏態(tài)化應(yīng)用,特別適合企事業(yè)單位在新型私有云、公有云、混合云環(huán)境下眾多業(yè)務(wù)應(yīng)用的統(tǒng)一災(zāi)備和災(zāi)難接管,它不依賴于IT基礎(chǔ)對象,和服務(wù)器、存儲、數(shù)據(jù)庫、中間件、業(yè)務(wù)應(yīng)用無強(qiáng)相關(guān),可以同時實現(xiàn)操作系數(shù)據(jù)、文件系統(tǒng)數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)的一體化保護(hù),既可以起到數(shù)據(jù)災(zāi)備的作用,又可以實現(xiàn)業(yè)務(wù)應(yīng)用的應(yīng)急接管。實現(xiàn)遠(yuǎn)距離災(zāi)備模式,采用TCP/IP網(wǎng)絡(luò)連接,理論上沒有距離限制,特別適合在I/O吞吐規(guī)模不大的業(yè)務(wù)場景情況下應(yīng)用,實現(xiàn)現(xiàn)有IT資產(chǎn)的最大保護(hù)。
基于I/O追蹤回放塊復(fù)制容災(zāi)技術(shù),通過追蹤操作系統(tǒng)內(nèi)核級的磁盤寫I/O變化和磁盤區(qū)塊的實時變化并旁路復(fù)制到災(zāi)備服務(wù)端。既脫離了底層存儲,也脫離了具體數(shù)據(jù)庫的技術(shù)限制,進(jìn)一步實現(xiàn)了工作負(fù)載的整體保護(hù)以及客戶業(yè)務(wù)應(yīng)用的快速接管。
如圖3所示,基于I/O追蹤回放塊復(fù)制追蹤技術(shù)可以同時兼容裸磁盤、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的全面數(shù)據(jù)保護(hù),無需額外容災(zāi)復(fù)制產(chǎn)品輔助。數(shù)據(jù)的傳輸采用通用的TCP/IP網(wǎng)絡(luò),無需專有網(wǎng)絡(luò),源端和服務(wù)端的網(wǎng)絡(luò)帶寬越高,網(wǎng)絡(luò)延時越小,越能趨近實現(xiàn)RPO為0的數(shù)據(jù)保護(hù),成本可控。

圖3 基于I/O追蹤回放塊復(fù)制技術(shù)的數(shù)據(jù)保護(hù)
基于I/O追蹤回放的塊復(fù)制追蹤技術(shù)利用I/O和磁盤塊追蹤進(jìn)行全盤數(shù)據(jù)掃描,將源端的全量數(shù)據(jù),即初始有效數(shù)據(jù)全部復(fù)制到災(zāi)備服務(wù)端,作為后續(xù)數(shù)據(jù)保護(hù)的的基準(zhǔn)。接下來通過對磁盤I/O的捕獲和磁盤區(qū)塊的追蹤分析,完成對源端產(chǎn)生的增量數(shù)據(jù),即變化量數(shù)據(jù)的捕捉和旁路復(fù)制、緩存,并源源不斷地通過加密傳輸管道傳輸?shù)綖?zāi)備服務(wù)端遠(yuǎn)端。
災(zāi)備服務(wù)端按用戶設(shè)定的策略持續(xù)保存源端的連續(xù)時間備份數(shù)據(jù),包括全備數(shù)據(jù)和增量數(shù)據(jù)。當(dāng)進(jìn)行災(zāi)備恢復(fù)演練,或源端發(fā)生勒索病毒等災(zāi)難時,利用備份的快照數(shù)據(jù),按客戶要求的時間點,數(shù)分鐘內(nèi)在災(zāi)備服務(wù)端快速拉起虛擬機(jī),一次完成應(yīng)用、操作系統(tǒng)和數(shù)據(jù)的恢復(fù),并即刻接替源端的業(yè)務(wù)應(yīng)用,繼續(xù)保持業(yè)務(wù)應(yīng)用對內(nèi)外部客戶服務(wù)支持能力。
數(shù)據(jù)復(fù)制災(zāi)備場景中,需要根據(jù)工作負(fù)載考慮所有源主機(jī)到目標(biāo)主機(jī)的系統(tǒng)整機(jī)一體化數(shù)據(jù)保護(hù),即包括上層應(yīng)用到中間件、操作系統(tǒng)到底層數(shù)據(jù)的全面保護(hù)。主要典型的復(fù)雜應(yīng)用場景為傳統(tǒng)物理服務(wù)器操作系統(tǒng)和混合云云平臺進(jìn)行數(shù)據(jù)同步,這其中又涉及到網(wǎng)絡(luò)帶寬不夠、數(shù)據(jù)流量成本過高的問題。
在公有云、混合云環(huán)境,如果是全量數(shù)據(jù)保護(hù)而非有效數(shù)據(jù)傳輸,將可能導(dǎo)致數(shù)據(jù)流量數(shù)倍乃至數(shù)十倍的增長,一方面帶來高昂的數(shù)據(jù)傳輸成本,另一方面也造成數(shù)據(jù)復(fù)制時間異常漫長的負(fù)面影響。在絕大部分場景中,有效數(shù)據(jù)同步均占據(jù)明顯技術(shù)優(yōu)勢,實現(xiàn)有效數(shù)據(jù)復(fù)制,主要有兩種方法。
一是文件級復(fù)制。文件級復(fù)制技術(shù)通過適配主流操作系統(tǒng)的FAT32、NTFS、EXT4和XFS等文件系統(tǒng),在文件系統(tǒng)層面實現(xiàn)海量文件同步,這個方法的明顯優(yōu)勢在于多數(shù)用戶容易理解和維護(hù),普通用戶并不需要關(guān)心不同文件系統(tǒng)底層技術(shù)的具體實現(xiàn),市場上常見的主流文件系統(tǒng)都可以完美兼容。該技術(shù)實現(xiàn)唯一較為明顯的問題是對于海量、小文件的客戶場景,數(shù)據(jù)復(fù)制傳輸效率較低,數(shù)據(jù)校驗開銷過大。
二是塊設(shè)備級復(fù)制。通過在內(nèi)核加載特殊驅(qū)動,在系統(tǒng)底層的塊設(shè)備層完成各個磁盤塊數(shù)據(jù)變化的追蹤和同步復(fù)制。這項技術(shù)最大的優(yōu)勢是技術(shù)位于底層,通用型強(qiáng),同時針對大塊數(shù)據(jù)同步優(yōu)化性能優(yōu)秀,在全盤掃描階段可以充分利用普通磁盤順序讀取的高性能優(yōu)勢進(jìn)行高并發(fā)傳輸,數(shù)據(jù)同步效率高。同時配合數(shù)據(jù)精簡復(fù)制技術(shù),通過在塊設(shè)備層維護(hù)和提取有效數(shù)據(jù)塊,比對分析不同類型文件系統(tǒng)元數(shù)據(jù)獨(dú)特的讀寫和數(shù)據(jù)儲存方式,統(tǒng)一計算、轉(zhuǎn)換為通用有效數(shù)據(jù)多重位圖Bitmap,每個有效位Bit可高效標(biāo)識一個有效數(shù)據(jù)塊,即該位置所對應(yīng)數(shù)據(jù)塊是真實有效的客戶數(shù)據(jù),需要同步復(fù)制。塊設(shè)備遷移相對文件級遷移效率更高,塊設(shè)備有效數(shù)據(jù)復(fù)制方式是目前的主流選擇。
數(shù)據(jù)復(fù)制災(zāi)備場景中,通過對大容量磁盤中有效數(shù)據(jù)進(jìn)行復(fù)制和保護(hù),可以高效提升數(shù)據(jù)復(fù)制效率和數(shù)據(jù)保護(hù)的效果。有效數(shù)據(jù)多重位圖Bitmap技術(shù)只需要耗費(fèi)極少的、一段連續(xù)的系統(tǒng)內(nèi)存空間資源,即可記錄卷設(shè)備的大量有效數(shù)據(jù)狀況。
本質(zhì)上有效數(shù)據(jù)位圖Bitmap記錄了某一瞬間磁盤塊設(shè)備的文件系統(tǒng)分布情況。傳統(tǒng)的實現(xiàn)方法需要先對系統(tǒng)打快照,然后掃描分析相應(yīng)設(shè)備的有效數(shù)據(jù),目前更加先進(jìn)的技術(shù)可以采用無快照的實現(xiàn)方式,通過加載操作系統(tǒng)內(nèi)核級磁盤塊過濾驅(qū)動,確保每一個寫數(shù)據(jù)I/O變化均可被完整追蹤和記錄,并生成有效數(shù)據(jù)位圖Bitmap,確保數(shù)據(jù)一致性。對于不同的操作系統(tǒng)或文件系統(tǒng),Bitmap獲取方式各不相同。
Windows 2008到最新的Windows 2019,平臺主流的文件系統(tǒng)格式是NTFS和FAT32。NTFS文件系通過向更底層的LVM卷設(shè)備發(fā)送設(shè)備控制命令,就可以直接獲取到初始Bitmap記錄,然后通過系統(tǒng)計算、分析、梳理轉(zhuǎn)換為統(tǒng)一的全局通用Bitmap。傳統(tǒng)的FAT32文件系統(tǒng)相對復(fù)雜,需要讀取文件系統(tǒng)Metadata元數(shù)據(jù),然后再進(jìn)行推算。
Linux平臺不同的發(fā)行版各不相同,文件系統(tǒng)眾多,主流的包括EXT3、EXT4、XFS、BTRFS等,每個類型的文件系統(tǒng)還有不同版本,目前并沒有廣泛適用的通用方法獲取Bitmap,只能選取主流的文件系統(tǒng)進(jìn)行逐一適配。比如EXT4文件系統(tǒng)可以通過遍歷文件系統(tǒng)所有塊組,讀取每個塊組生成位圖信息Bitmap,合并生成為覆蓋整個文件系統(tǒng)的全局Bitmap。XFS文件系統(tǒng)采用B+樹來管理磁盤空閑塊,通過遍歷XFS文件系統(tǒng)所有AG結(jié)構(gòu)的B+樹包含的空閑塊列表,從而分析計算出文件系統(tǒng)的全局Bitmap。
不同版本的文件系統(tǒng)默認(rèn)可獲取的初始位圖Bitmap略有差異,為了提升兼容性,通過程序統(tǒng)一轉(zhuǎn)換,形成全局統(tǒng)一位圖Bitmap格式,最終形成通用的標(biāo)準(zhǔn)Bitmap類,以便后續(xù)流程屏蔽初始Bitmap差異,便于統(tǒng)一處理。
3.4.1 數(shù)據(jù)一致性定義
磁盤級的數(shù)據(jù)一致性主要指寫入磁盤的每一塊數(shù)據(jù)都是嚴(yán)格按照上層應(yīng)用的寫入時間順序落盤,任意時刻都不會存在寫入數(shù)據(jù)包丟失或亂序的狀況。更上層的應(yīng)用一致性涉及面更廣,比磁盤級一致要求更高,要求應(yīng)用數(shù)據(jù)全部落盤,完全沒有數(shù)據(jù)丟失。
3.4.2 數(shù)據(jù)一致性的重要性
數(shù)據(jù)復(fù)制保護(hù)的基本要求是數(shù)據(jù)一致性。數(shù)據(jù)不一致的后果輕則丟失部分文件或數(shù)據(jù),嚴(yán)重情況下則上層應(yīng)用完全無法啟動,甚至可能導(dǎo)致數(shù)據(jù)復(fù)制保護(hù)后的目標(biāo)操作系統(tǒng)無法啟動。
3.4.3 明確數(shù)據(jù)一致性時間點
數(shù)據(jù)復(fù)制在啟動階段進(jìn)行初始時,首先完成全盤掃描,沒有快照,一遍完成初始數(shù)據(jù)全量同步,一邊做增量數(shù)據(jù)同步,也就是說數(shù)據(jù)復(fù)制的目標(biāo)磁盤一邊寫入初始同步數(shù)據(jù),一邊寫入增量數(shù)據(jù)。
數(shù)據(jù)一致性復(fù)制目標(biāo)主機(jī)在可切換狀態(tài)時,磁盤級數(shù)據(jù)必須處于同一時間點,也就是磁盤級數(shù)據(jù)一致,這樣才能確保目標(biāo)主機(jī)數(shù)據(jù)完整可靠,操作系統(tǒng)和應(yīng)用可以正常啟動。
通常的技術(shù)實現(xiàn)可以在數(shù)據(jù)復(fù)制初始階段先打一系列快照,確保初始同步的數(shù)據(jù)處于一致的時間點,后續(xù)增量數(shù)據(jù)復(fù)制時則嚴(yán)格按照寫入時間戳順序進(jìn)行IO重放,確保數(shù)據(jù)一致性。
對于Windows平臺,可以考慮采用微軟官方VSS快照API。Linux平臺方面則沒有成熟的整機(jī)快照方案可選。基于以上原因,一般推薦自行實現(xiàn)Windows、Linux的整機(jī)快照,或者不使用快照,通過其他技術(shù)手段通過內(nèi)核驅(qū)動持續(xù)監(jiān)控數(shù)據(jù)變化,結(jié)合內(nèi)核數(shù)據(jù)變化監(jiān)控模塊和初始化同步模塊,實現(xiàn)一種無快照的數(shù)據(jù)一致性保障方法。
基于I/O追蹤的塊復(fù)制技術(shù)通過掛載專有磁盤驅(qū)動,深入操作系統(tǒng)內(nèi)核,對每個磁盤I/O進(jìn)行分析,通過數(shù)據(jù)位圖技術(shù)(Bitmap)快速記錄塊設(shè)備(Block Device)的扇區(qū)變化,保證了每次I/O數(shù)據(jù)記錄皆完整記錄,并確保系統(tǒng)損耗資源極少。
通過數(shù)據(jù)位圖哈希碼確保數(shù)據(jù)復(fù)制源、目兩端的Bitmap保持一致,對每次傳輸數(shù)據(jù)計算哈希碼,以此保證數(shù)據(jù)傳輸?shù)囊恢滦浴W詈筮M(jìn)行目的端數(shù)據(jù)位圖哈希碼和源端數(shù)據(jù)位圖哈希碼的比對,確保目標(biāo)端每次數(shù)據(jù)復(fù)制后的數(shù)據(jù)位圖與源端一致,如圖4所示。

圖4 數(shù)據(jù)位圖一致性保護(hù)
在高負(fù)載系統(tǒng)、網(wǎng)絡(luò)數(shù)據(jù)有限的生產(chǎn)環(huán)境下,變化數(shù)據(jù)緩存問題成為數(shù)據(jù)復(fù)制災(zāi)備任務(wù)成敗的關(guān)鍵,緩存空間不足成為任務(wù)失敗的首要因素。設(shè)計并實現(xiàn)一種低緩存、高效率兩者兼顧的增量數(shù)據(jù)同步方法,可以大幅度降低緩存因素導(dǎo)致任務(wù)失敗的概率,擴(kuò)展數(shù)據(jù)復(fù)制災(zāi)備適配場景。數(shù)據(jù)同步有3種方式:(1)源端本地緩存,初始同步完成后再發(fā)送增量數(shù)據(jù),緩存數(shù)據(jù)量大,源端緩存空間不足時容易導(dǎo)致任務(wù)失敗;(2)源端本地緩存,同步發(fā)送,但是影響初始同步性能,導(dǎo)致初始同步時間延長;(3)源端優(yōu)先發(fā)送增量數(shù)據(jù),目標(biāo)端緩存,緩存空間不足時,任務(wù)失敗。
在生產(chǎn)環(huán)境中,網(wǎng)絡(luò)帶寬資源非常寶貴,用戶可以對災(zāi)備占用的網(wǎng)絡(luò)帶寬作有計劃的限制,一方面防止帶寬費(fèi)用超標(biāo),另一方面防止因數(shù)據(jù)備份占用的帶寬對正常的業(yè)務(wù)應(yīng)用訪問產(chǎn)生影響。當(dāng)網(wǎng)絡(luò)處于非繁忙時段,可以全速傳輸備份數(shù)據(jù)到指定服務(wù)器。
基于I/O追蹤回放的塊復(fù)制技術(shù)為企業(yè)服務(wù)器、虛擬機(jī)提供持續(xù)數(shù)據(jù)保護(hù),幫助企業(yè)的某業(yè)務(wù)系統(tǒng)遭遇數(shù)據(jù)災(zāi)難或業(yè)務(wù)故障時,在數(shù)分鐘內(nèi)完成相關(guān)數(shù)據(jù)恢復(fù)以及業(yè)務(wù)接管,從而降低勒索病毒、人為誤操作等各類IT風(fēng)險對企業(yè)經(jīng)營活動帶來的風(fēng)險挑戰(zhàn),適配企事業(yè)單位業(yè)務(wù)應(yīng)用整體上云一體化災(zāi)備的合法合規(guī)需求,有效保障業(yè)務(wù)連續(xù)性。