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

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

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

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

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