1. 程式人生 > >淺談四種主流的容災複製技術的原理及其優缺點

淺談四種主流的容災複製技術的原理及其優缺點

資料複製是構建資料容災的基石,利用複製軟體實時地將資料從一個主機(或磁碟)複製到另一個主機(磁碟),生成一個數據副本,從而達到容災目的。

資料複製有多種方法,依據複製啟動點的不同,可分為同步複製、非同步複製。同步複製,資料複製是在向主機返回寫請求確認訊號之前實時進行的;對於非同步複製,資料複製是在向主機返回寫請求確認訊號之後實時進行的。

下面將介紹當前主流的容災複製技術的原理及其優缺點,從而幫助你選用最符合你應用場景需要的容災方案。

一、四種容災複製技術原理:

根據作業系統的I/O(讀寫操作)路徑以及複製物件劃分為四大種類:基於應用層事務複製、基於檔案層複製、基於邏輯卷層複製、基於磁碟陣列複製。當然,目前也出現了基於SAN交換機的複製,但是相對技術不太成熟,應用很少。

按照資料複製軟體或硬體安裝的位置又可劃分為主機型複製和非主機型複製。應用層、檔案層、邏輯卷層的都屬於主機型複製,主機型複製軟體需安裝在主機上,需要消耗一定的主機資源。儲存層屬於非主機型複製,複製直接由磁碟陣列的內部元件完成,理論上無需消耗應用所在主機的資源。

一般而言,容災要保護的資料是結構化資料,即儲存在資料庫的資料。以下都用複製資料庫來說明。

1.基於應用層事務複製
基於應用層事務的複製,一般採用採用非同步複製機制,複製物件為應用事務,其過程為:捕獲應用系統的事務,例如SQLServer或Oracle資料庫的事務,經由傳輸元件傳輸到目標伺服器,然後目標裝載程序按照資料庫的關係原理排序事務,將事務儲存到目標資料庫。

這層的複製完全能保障資料庫的一致性,且目標資料庫處於線上執行狀態。當生產資料庫發生故障時,直接使用目標資料庫即可恢復業務,容災的RTO指標趨於零。但是支援的應用有限,一般為SQLServer、 Oracle、Sybase、DB2、MySQL等等資料庫。另外複製速度較慢,因為資料要通過資料庫的裝載接口才能寫入資料庫。

應用層代表廠商:浪擎、DSG、Goldengate、Quest、Oracle、微軟等。

2.基於磁碟陣列複製
基於磁碟陣列層的複製,磁碟陣列廠商的複製技術,其原理與邏輯卷層的相似,屬於非主機型的複製。但與硬體繫結,成本高昂,實施複雜。

基於磁碟陣列層的複製不能完全保障資料庫一致性,目標資料庫處於離線狀態。當生產資料庫發生故障時,需要啟動資料庫才能恢復業務,正是由於不能保障資料庫一致性,很可能資料庫不能正常啟動。儘管存在這樣的缺陷,但這一層的複製對主機的影響極其輕微,所以還是可應用在一些非常大型、繁忙的資料庫容災,作為一種補充保護手段。

磁碟陣列層代表廠商:IBM、HP、EMC、HDS等。

3.基於邏輯卷層複製
基於邏輯卷層的複製,一般採用採用同步複製機制,複製物件為邏輯卷層的變化Block,其過程為:捕獲變化塊,同步寫入目標儲存,等於在一個主機上將同一資料寫入兩個不同的邏輯磁碟。這種複製方式對I/O效能影響很大。另外,在實施時可能需要改造生產環境,例如VVR需要自身的卷管理格式才能支援複製,所以如果用於非新部署的業務系統其實施非常複雜。

基於邏輯卷層的複製不能完全保障資料庫一致性,目標資料庫處於離線狀態。當生產資料庫發生故障時,需要啟動資料庫才能恢復業務,正是由於不能保障資料庫一致性,很可能資料庫不能正常啟動。因此,這層複製技術很少用於大型資料庫的容災。

邏輯卷層:賽門鐵克、飛康等等。

4.檔案層複製
基於檔案層的複製,一般採用採用非同步複製機制,複製物件為檔案I/O,其過程為:複製上層應用傳遞下來的I/O,然後快取起來,再經由傳輸元件傳輸到目標伺服器,再由目標伺服器寫入目標儲存,完成一次複製。

基於檔案層的複製不能保障資料庫一致性,目標資料庫處於離線狀態。當生產資料庫發生故障時,需要啟動資料庫才能恢復業務,正是由於不能保障資料庫一致性,很可能資料庫不能正常啟動。所以檔案複製一般用於事務很少、資料量很小的資料庫。

檔案層:賽門鐵克的低端檔案複製、國內一些小廠商。

四種複製技術各有優缺點。一般而言,檔案層複製技術主要採用非同步複製原理,不能保障資料庫的一致性,不能確保資料庫是好的,很少用於大型資料庫的容災。國內很多廠商都採用檔案層複製,主要用於中小企業,適用於資料量不大、投入很小的場合。

二、複製技術的發展趨勢
四層技術,各有優缺點。就綜合複製技術原理與優缺點、投入成本、資源消耗、實施工作量、維護工作量等等方面來說,應用層的複製和磁碟陣列的複製會成為主要的容災技術,佔據很大的容災市場份額,且應用於關鍵的、重要的應用系統;檔案複製主要用於一些非常低端的應用。

未來的複製技術發展不是依靠單一技術來解決自身的缺陷問題,應融合其他層的技術來發展。

應用層要解決複製速度較慢的問題,就是要解決在目標資料庫上的資料裝載效率或裝載方式的問題。解決了這一問題,應用層的複製還會得到更加廣泛的應用。圍繞應用層這個核心,結合檔案層的快速複製,採用直接的原始資料裝載技術,克服了應用層複製速度慢的問題,是目前應用層裡面做得最好的一種技術路線。

儲存層要克服資料不一致的問題,不能單純依靠儲存的複製,要結合應用層與資料庫進行一定的互動才能解決。

三、總結
從技術原理、實施、維護、資源消耗、適應場合等等總結四層技術。

比較項 應用層複製 磁碟陣列層複製 邏輯卷層複製 檔案層複製
同步/非同步 非同步 同步/非同步 同步/非同步 非同步
複製物件 應用事務 資料塊 資料塊 檔案I/O
主機型複製 不是
資料庫一致性保障 完全確保 僅同步可以 僅同步可以 無保障
容災端資料庫狀態 線上 離線 離線 離線
容災過程 直接切換至容災資料庫 需啟動容災資料庫,才能切換 需啟動容災資料庫,才能切換 需啟動容災資料庫,才能切換
能否校驗容災資料庫 直接校驗 需分離或通過快照來校驗一個過去狀態的資料庫 不能 需分離或通過快照來校驗一個過去狀態的資料庫
實施需停機 無需,自動化全量複製;全量和實時複製自動銜接 需要,直到拷貝全量結束 需要,直到全量拷貝結束 需要,直到拷貝全量結束
是否改變生產環境 無需 無需 需要 無需
是否整合容錯 支援CDP 通過快照,但很少 支援CDP
網路頻寬要求 少,IP網路 高,需光纖直連或波分裝置 高,IP網路 高,IP網路
支援應用 僅主流資料庫 不限 不限 不限
維護工作量
適應場合 關鍵的、重要的業務系統 關鍵的、重要的業務系統 關鍵的、重要的業務系統 不重要的業務系統
投入成本 極高 很少