1.一種優(yōu)化的基于LVM的遠(yuǎn)程復(fù)制方法,其特征在于:基于LVM遠(yuǎn)程復(fù)制架構(gòu)包括LVM I/O Analysis模塊,LVM I/O Process模塊和LVM Remote Replication模塊三部分;所述LVM I/O Analysis模塊對上層應(yīng)用的I/O請求解析進(jìn)行優(yōu)化,對于讀請求直接訪問本地?cái)?shù)據(jù),對于寫請求則發(fā)送到本地及遠(yuǎn)程設(shè)備處理模塊;所述LVM I/O Process模塊對LVM中的Mirror接口進(jìn)行優(yōu)化,更改寫請求的I/O處理流程,通過先記錄日志再更新數(shù)據(jù)的方法,將數(shù)據(jù)分別發(fā)送到本地及遠(yuǎn)程設(shè)備;所述LVM Remote Replication模塊對NBD模塊進(jìn)行更改,使之與LVM的內(nèi)核結(jié)構(gòu)對接,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程發(fā)送;同時,由于NBD報文是經(jīng)由TCP/IP傳輸?shù)?,所述LVM Remote Replication模塊對TCP/IP網(wǎng)絡(luò)的參數(shù)也進(jìn)行了優(yōu)化,調(diào)整TCP/IP網(wǎng)絡(luò)中的tcp_sack,tcp_timestamps,tcp_low_latency,tcp_westwood和tcp_bic參數(shù),使之更有效到適用于遠(yuǎn)程復(fù)制場景。
2.根據(jù)權(quán)利要求1所述的優(yōu)化的基于LVM的遠(yuǎn)程復(fù)制方法,其特征在于:所述LVM I/O Analysis模塊負(fù)責(zé)對上層應(yīng)用發(fā)起的I/O請求過濾,通過改變lvm_make_request_fn()函數(shù)對I/O請求進(jìn)行分類,讀請求或與復(fù)制無關(guān)的請求直接交由LVM自身機(jī)制從盤中讀取,寫請求則調(diào)用LVM I/O Process模塊的接口進(jìn)行處理;所述LVM I/O Process模塊負(fù)責(zé)構(gòu)建I/O的流程,同時與Remote Replication模塊對接;所述LVM Remote Replication模塊負(fù)責(zé)遠(yuǎn)程復(fù)制的數(shù)據(jù)一致性定義及數(shù)據(jù)的遠(yuǎn)程傳輸;將I/O請求在主端經(jīng)由LVM Remote Replication模塊處理后,發(fā)送到遠(yuǎn)程設(shè)備端并成功提交日志寫到數(shù)據(jù)盤后,更新本地的日志信息并提交給LVM I/O Process模塊;當(dāng)LVM I/O Process模塊中的mirror收到本地及遠(yuǎn)程的返回消息后,向應(yīng)用層返回寫成功。
3.根據(jù)權(quán)利要求1或2所述的優(yōu)化的基于LVM的遠(yuǎn)程復(fù)制方法,其特征在于:所述LVM I/O Process模塊對寫請求的I/O處理流程,首先將I/O請求記錄到日志信息中,然后將BIOS復(fù)制兩份,一份發(fā)送到本地的數(shù)據(jù)盤,另一份發(fā)送到請求隊(duì)列中,最后調(diào)用Remote Replication模塊接口,利用多線程處理將數(shù)據(jù)發(fā)送到對端;當(dāng)接收到本地及遠(yuǎn)程設(shè)備兩個請求完成后,向上層應(yīng)用返回請求處理成功。
4.根據(jù)權(quán)利要求2所述的優(yōu)化的基于LVM的遠(yuǎn)程復(fù)制方法,其特征在于:所述LVM Remote Replication模塊對遠(yuǎn)程復(fù)制的數(shù)據(jù)一致性定義是指采用實(shí)時同步的方式,即上層應(yīng)用發(fā)出的多個寫請求必須等待主端和備端的數(shù)據(jù)同時寫入方可繼續(xù)執(zhí)行;當(dāng)請求到來時,先按照請求順序提交日志,寫日志成功后再寫數(shù)據(jù)盤,寫數(shù)據(jù)盤時,按照順序依次寫盤,只有寫日志及寫數(shù)據(jù)盤同時成功提交后,才按照請求提交順序更新日志信息,最后通知上層請求完成;
所述LVM Remote Replication模塊對數(shù)據(jù)的遠(yuǎn)程傳輸是基于NBD模塊完成的,首先對主端和備端通過nbd_init函數(shù)初始化并連接,然后利用do_nbd_request函數(shù)從請求隊(duì)列中讀取相應(yīng)的請求,使用報文結(jié)構(gòu)中的handle域裝載發(fā)送到備端;調(diào)用nbd_do_it循環(huán)等待并調(diào)用nbd_read_stat讀取備端的寫盤狀態(tài);當(dāng)讀寫請求完成后,則從請求隊(duì)列中刪除請求并向上層返回成功。
5.根據(jù)權(quán)利要求1所述的優(yōu)化的基于LVM的遠(yuǎn)程復(fù)制方法,其特征在于:所述LVM Remote Replication模塊對TCP/IP網(wǎng)絡(luò)的參數(shù)的優(yōu)化包括利用tcp_sack參數(shù)啟用有選擇應(yīng)答模式,提升亂序報文的回復(fù),只發(fā)送丟失的報文;利用tcp_timestamps參數(shù)啟用TCP時間戳,更精確控制報文重發(fā);關(guān)閉tcp_low_latency參數(shù)和選用tcp_westwood參數(shù)通過吞吐量評估對帶寬的整體利用情況進(jìn)行優(yōu)化;為了快速長距離的傳輸啟用tcp_bic參數(shù)的Binary Increase Congestion,更好利用傳輸網(wǎng)絡(luò)的GB級速度。