干貨:五種常見數(shù)據(jù)復(fù)制技術(shù)詳解
根據(jù)IDC的相關(guān)數(shù)據(jù)統(tǒng)計,2018年全球的數(shù)據(jù)復(fù)制存儲市場規(guī)模就已經(jīng)超過了500億美金,而其中而作為數(shù)據(jù)復(fù)制技術(shù)重要應(yīng)用場景的數(shù)據(jù)備份和恢復(fù)軟件市場的規(guī)模也同樣蔚為可觀。今天,我們就來聊聊5種常見的數(shù)據(jù)復(fù)制技術(shù)。
復(fù)制(Replication)是將一組數(shù)據(jù)從一個數(shù)據(jù)源拷貝到一個或多個數(shù)據(jù)源的技術(shù)。方式主要分為同步復(fù)制和異步復(fù)制:
1、同步復(fù)制:要求每一個寫入操作在執(zhí)行下一個操作處理之前,在源端和目標(biāo)端都能完成。特點是數(shù)據(jù)丟失少,會影響生產(chǎn)系統(tǒng)性能,除非目標(biāo)系統(tǒng)物理上離生產(chǎn)系統(tǒng)比較近。
2、異步復(fù)制:在處理下一個操作前,不等待數(shù)據(jù)復(fù)制到目標(biāo)系統(tǒng)中。特點是復(fù)制的數(shù)據(jù)與源數(shù)據(jù)有時間差,但這種復(fù)制對生產(chǎn)系統(tǒng)性能影響較小。
在災(zāi)備方案的設(shè)計中,數(shù)據(jù)復(fù)制技術(shù)的選擇關(guān)系到最終災(zāi)備效果,即RTO與RPO值的大小。根據(jù)數(shù)據(jù)復(fù)制技術(shù)在不同系統(tǒng)層的應(yīng)用,可以分為如下五種:
1、基于主機的數(shù)據(jù)復(fù)制技術(shù)
基于主機的數(shù)據(jù)復(fù)制是通過磁盤卷的鏡像或復(fù)制進行的,業(yè)務(wù)進行在主機的卷管理器層,對硬件設(shè)備尤其是存儲設(shè)備的限制小,利用生產(chǎn)中心和備份中心的主機系統(tǒng)通過IP網(wǎng)絡(luò)建立數(shù)據(jù)傳輸通道,數(shù)據(jù)傳輸可靠,效率相對較高;通過主機數(shù)據(jù)管理軟件實現(xiàn)數(shù)據(jù)的遠程復(fù)制,當(dāng)主數(shù)據(jù)中心的數(shù)據(jù)遭到破壞時,可以隨時從備份中心恢復(fù)應(yīng)用或從備份中心恢復(fù)數(shù)據(jù)。
基于主機的數(shù)據(jù)復(fù)制不需要兩邊采用同樣的存儲設(shè)備,具有較大的靈活性,缺點是復(fù)制功能會占用一些主機的CPU資源,對軟件要求較高(很多軟件無法提供基于時間點的快照功能),對主機的性能有一定的影響。
英方獨有的基于操作系統(tǒng)層面的字節(jié)級數(shù)據(jù)捕獲與復(fù)制技術(shù)在實施過程中,首先會做初始化的數(shù)據(jù)鏡像,然后通過核心的復(fù)制引擎,開始旁路監(jiān)聽所有文件系統(tǒng)的寫操作,例如Rename、SetAttr等,都能準(zhǔn)確的捕獲,并通過數(shù)據(jù)序列化傳輸技術(shù)(Data - Order Transfer,簡稱“DOT”)異步傳輸?shù)綖?zāi)備端,完成整個數(shù)據(jù)的捕獲和復(fù)制過程。
△字節(jié)級復(fù)制技術(shù)原理圖
首先,字節(jié)級復(fù)制的核心引擎工作時,并沒有復(fù)雜的數(shù)學(xué)運算,對生產(chǎn)機計算資源占用可以忽略,僅僅是旁路捕獲數(shù)據(jù)。
其次,所有的數(shù)據(jù)都是從內(nèi)存中捕獲,并不涉及生產(chǎn)主機存儲的讀取操作,因此數(shù)據(jù)復(fù)制過程不占用主機的存儲IO資源。
最后,基于字節(jié)級的數(shù)據(jù)復(fù)制粒度最小到字節(jié),因此對于帶寬資源的要求極低,是適應(yīng)于異地遠距離、及面向未來的混合IT環(huán)境和云化架構(gòu)的一種復(fù)制方式。
2、基于應(yīng)用和中間層的數(shù)據(jù)復(fù)制技術(shù)
應(yīng)用層面的數(shù)據(jù)復(fù)制通過應(yīng)用程序與主備中心的數(shù)據(jù)庫進行同步或異步的寫操作,以保證主備中心數(shù)據(jù)的一致性,災(zāi)備中心可以和生產(chǎn)中心同時正常運行,既能容災(zāi),還可實現(xiàn)部分功能分擔(dān),但是該技術(shù)的實現(xiàn)方式復(fù)雜,與應(yīng)用軟件業(yè)務(wù)邏輯直接關(guān)聯(lián),實現(xiàn)和維護難度較高,并且使用應(yīng)用層面的數(shù)據(jù)復(fù)制會提高系統(tǒng)的風(fēng)險與數(shù)據(jù)丟失的風(fēng)險。
獨立于底層的操作系統(tǒng)、數(shù)據(jù)庫、存儲,應(yīng)用可以根據(jù)需求實現(xiàn)雙寫或者多寫,從而實現(xiàn)主本和多個數(shù)據(jù)副本之間的數(shù)據(jù)復(fù)制功能。這種由應(yīng)用實現(xiàn)的技術(shù),可以在中間件或者應(yīng)用平臺層面進行封裝和實現(xiàn),對上面的應(yīng)用透明,也可以在應(yīng)用層面實現(xiàn)。
其主要優(yōu)勢是可根據(jù)需求定制、可實現(xiàn)應(yīng)用和數(shù)據(jù)庫層面的復(fù)制;主要不足是目前市場上沒有成熟、適合傳統(tǒng)IT企業(yè)大規(guī)模推廣使用的中間件產(chǎn)品。如果完全由應(yīng)用封裝平臺或者應(yīng)用來實現(xiàn),代碼的復(fù)雜程度提高,增加了應(yīng)用的維護成本。
3、基于數(shù)據(jù)庫的數(shù)據(jù)復(fù)制技術(shù)
基于數(shù)據(jù)庫軟件的復(fù)制技術(shù)包括物理復(fù)制和邏輯復(fù)制兩種方式。
邏輯復(fù)制是利用數(shù)據(jù)庫的重做日志、歸檔日志,將主本所在站點的日志傳輸?shù)礁北舅谡军c,通過重做SQL的方式實現(xiàn)數(shù)據(jù)復(fù)制。邏輯復(fù)制只提供異步復(fù)制,主副本數(shù)據(jù)的最終一致性,無法保證實時一致性;
物理復(fù)制不是基于SQL Apply操作來完成復(fù)制,而是通過redo log日志或者歸檔日志在副本站點的同步或者異步持久化寫來實現(xiàn)復(fù)制功能,同時副本站點的數(shù)據(jù)可以提供只讀功能。
開放平臺數(shù)據(jù)庫復(fù)制技術(shù)則是一種基于數(shù)據(jù)庫log(日志)的結(jié)構(gòu)化數(shù)據(jù)復(fù)制技術(shù),它通過解析源數(shù)據(jù)庫在線log或歸檔log獲得數(shù)據(jù)的增、刪、改變化,再將這些變化應(yīng)用到目標(biāo)數(shù)據(jù)庫,使源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫同步,以達到多站點間數(shù)據(jù)庫可雙活甚至多活,實現(xiàn)業(yè)務(wù)連續(xù)可用和容災(zāi)的目的。
△數(shù)據(jù)庫日志分析技術(shù)
基于數(shù)據(jù)庫的數(shù)據(jù)復(fù)制是對數(shù)據(jù)庫記錄級別、表級別容災(zāi)高可用的基礎(chǔ)技術(shù),英方數(shù)據(jù)庫容災(zāi)技術(shù)結(jié)合了主機復(fù)制和數(shù)據(jù)庫日志分析的優(yōu)點,提高了系統(tǒng)應(yīng)用的靈活性,可實現(xiàn)數(shù)據(jù)庫應(yīng)用多活,同時也極大減少了數(shù)據(jù)庫應(yīng)用的增量數(shù)據(jù)傳輸。在細粒度數(shù)據(jù)容災(zāi)、廣域云化容災(zāi)領(lǐng)域仍然具有廣闊的應(yīng)用前景。
數(shù)據(jù)庫語義級的實時數(shù)據(jù)同步,在數(shù)據(jù)庫正常使用時,自動完成源端到備端數(shù)據(jù)的初始化全量復(fù)制,并實時監(jiān)控及同步復(fù)制增量數(shù)據(jù),其正常流程的狀態(tài)轉(zhuǎn)換及條件如下:
英方i2Active便是基于redo log日志分析技術(shù)的Oracle數(shù)據(jù)實時復(fù)制工具,具有簡單靈活、高性能、非侵入、低影響、低于秒級延遲,低成本的特點,部署和使用也非常簡便。能夠幫助用戶在復(fù)雜的應(yīng)用環(huán)境下完成Oracle容災(zāi)備份、數(shù)據(jù)遷移、業(yè)務(wù)數(shù)據(jù)分發(fā)、構(gòu)建大型數(shù)據(jù)倉庫等技術(shù)數(shù)據(jù)整合等工作。
△Active數(shù)據(jù)庫語義級復(fù)制
4、基于存儲系統(tǒng)網(wǎng)關(guān)的數(shù)據(jù)復(fù)制技術(shù)
存儲網(wǎng)關(guān)位于服務(wù)器與存儲之間,是構(gòu)架在SAN網(wǎng)絡(luò)上的專用存儲服務(wù)技術(shù)。這項技術(shù)基于存儲虛擬化技術(shù)。
存儲虛擬化的直接定義:在存儲設(shè)備中形成的存儲資源透明抽象層,即存儲虛擬化是服務(wù)器與存儲間的一個抽象層,它是物理存儲的邏輯表示方法。其主要目的就是要把物理存儲介質(zhì)抽象為邏輯存儲空間,將分散繁雜的異構(gòu)存儲管理整合為統(tǒng)一簡單的集中存儲管理,將人們所面對的眾多存儲問題,由繁化簡(其中包括存儲的讀寫方式、連接方式、存儲的規(guī)格或結(jié)構(gòu)等),由散化整(存儲管理)的過程就是存儲虛擬化。
存儲網(wǎng)關(guān)通過對于進入的IO數(shù)據(jù)流提供各類數(shù)據(jù)存儲服務(wù),大幅提升了在服務(wù)器或者存儲層面難以達到的靈活性、多樣性、異構(gòu)化等多種存儲服務(wù)能力。利用存儲網(wǎng)關(guān),對于后端的存儲數(shù)據(jù)可以提供遠程數(shù)據(jù)復(fù)制、異構(gòu)化存儲融合、存儲設(shè)備高可用鏡像、快照服務(wù)、數(shù)據(jù)遷移服務(wù)甚至于部分存儲網(wǎng)關(guān)可以提供精準(zhǔn)的持續(xù)數(shù)據(jù)保護連續(xù)數(shù)據(jù)恢復(fù)服務(wù)。
由于存儲網(wǎng)關(guān)卸載了服務(wù)器和陣列的復(fù)制工作負載,它可以跨越大量的服務(wù)器平臺和存儲陣列運行,因而使它成為高度異構(gòu)的環(huán)境下的容災(zāi)技術(shù)的理想選擇。另外,由于帶寬優(yōu)化、數(shù)據(jù)恢復(fù)精細化等方面獨有的優(yōu)勢,這項技術(shù)也成為比較主流的一種災(zāi)備技術(shù)。
這項技術(shù)主要爭論點在于性能保障能力的發(fā)展程度。近年來,隨著SAN應(yīng)用的不斷普及,SAN網(wǎng)絡(luò)中由異構(gòu)存儲設(shè)備和爆炸式增長的數(shù)據(jù)量所帶來的管理復(fù)雜性、資源利用率低、存儲設(shè)備自身數(shù)據(jù)服務(wù)能力低等問題促進了存儲網(wǎng)關(guān)的發(fā)展和應(yīng)用。
5、基于存儲介質(zhì)的數(shù)據(jù)復(fù)制
通過存儲系統(tǒng)內(nèi)建的固件或操作系統(tǒng)、IP網(wǎng)絡(luò)或光纖通道等傳輸介質(zhì)連結(jié),將數(shù)據(jù)以同步或異步的方式復(fù)制到遠端,從而實現(xiàn)生產(chǎn)數(shù)據(jù)的災(zāi)難保護。
采用基于存儲介質(zhì)的數(shù)據(jù)復(fù)制技術(shù)建設(shè)容災(zāi)方案的特點主要是對網(wǎng)絡(luò)連接及硬件的要求較高?;诖鎯Φ膹?fù)制可以是“一對一”復(fù)制方式,也可以是“一對多或多對一”的復(fù)制方式,即一個存儲的數(shù)據(jù)復(fù)制到多個遠程存儲或多個存儲的數(shù)據(jù)復(fù)制到同一遠程存儲,而且復(fù)制可以是雙向的。
存儲復(fù)制技術(shù)使基于實現(xiàn)存儲磁盤陣列之間的直接鏡像,通過存儲系統(tǒng)內(nèi)建的固件(Firmware)或操作系統(tǒng),利用IP網(wǎng)絡(luò)或光纖通道等傳輸界面連結(jié),將數(shù)據(jù)以同步或異步的方式復(fù)制到遠端。當(dāng)然,一般情況下這種模式,必須同等存儲品牌并且同等型號的存儲系統(tǒng)控制器之間才能實現(xiàn),配備低延遲大帶寬也是必要條件之一。
在基于存儲陣列的復(fù)制中,復(fù)制軟件運行在一個或多個存儲控制器上,非常適合擁有大量服務(wù)器的環(huán)境,原因如下:
獨立于操作系統(tǒng);能夠支持Windows和基于Unix的操作系統(tǒng)以及大型機(高端陣列);許可費一般基于存儲容量而不是連接的服務(wù)器數(shù)量;不需要連接服務(wù)器上的任何管理工作。
由于復(fù)制工作被交給存儲控制器來完成,在異步傳輸本地緩存較大的時候可以很好的避免服務(wù)器的性能開銷過大的問題,從而使基于存儲陣列的復(fù)制非常適合關(guān)鍵任務(wù)和高端交易應(yīng)用。
綜述
在實際工作中,并不能說哪類技術(shù)就一定優(yōu)于另一類技術(shù),優(yōu)勢永遠是一個相對的概念,在實際應(yīng)用中,企業(yè)需要選擇更加適合自身業(yè)務(wù)場景的技術(shù)路線,畢竟只有適合的,才是最好的。
注:部分內(nèi)容整理于網(wǎng)絡(luò)
來源:英方云