亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種數(shù)據(jù)備份的方法及裝置與流程

文檔序號:11677405閱讀:767來源:國知局
一種數(shù)據(jù)備份的方法及裝置與流程

本發(fā)明涉及計算機(jī)系統(tǒng)及存儲領(lǐng)域,具體涉及一種數(shù)據(jù)備份的方法及裝置。



背景技術(shù):

為了保證數(shù)據(jù)存取的持續(xù)性、可恢復(fù)性和高可用性,可用遠(yuǎn)程數(shù)據(jù)同步在遠(yuǎn)程維護(hù)一套或多套數(shù)據(jù)副本,一旦災(zāi)難發(fā)生,分布在異地存儲系統(tǒng)上的備份數(shù)據(jù)并不會受到波及,從而實現(xiàn)容災(zāi)備份功能。遠(yuǎn)程鏡像技術(shù)則是遠(yuǎn)程容災(zāi)方案中的關(guān)鍵技術(shù)之一,遠(yuǎn)程鏡像按請求是否需要遠(yuǎn)程鏡像站點的確認(rèn)信息,又可分為同步遠(yuǎn)程鏡像和異步遠(yuǎn)程鏡像。

同步遠(yuǎn)程鏡像是指通過遠(yuǎn)程鏡像軟件,將本地數(shù)據(jù)以完全同步的方式復(fù)制到異地,本地的每一個io均需等待遠(yuǎn)程復(fù)制的完成確認(rèn)信息才能釋放。異步遠(yuǎn)程鏡像是先完成向本地存儲系統(tǒng)的io操作,本地存儲系統(tǒng)給主機(jī)返回寫入完成響應(yīng)信息,大多采用延遲復(fù)制的技術(shù),即在確保本地數(shù)據(jù)完好無損后進(jìn)行遠(yuǎn)程數(shù)據(jù)更新。

現(xiàn)有存儲系統(tǒng)的異步鏡像數(shù)據(jù)流程圖如圖1所示,當(dāng)主站點的主卷和遠(yuǎn)端復(fù)制站點的從卷建立同步遠(yuǎn)程鏡像關(guān)系以后,會啟動一個初始同步,也就是將主卷數(shù)據(jù)全量拷貝到從卷;如果在初始同步時主卷收到生產(chǎn)主機(jī)寫請求,若要寫入位置的數(shù)據(jù)塊已經(jīng)拷貝,需要分別寫入主卷和從卷。

同步鏡像與異步鏡像中分別寫入主卷和從卷的流程相同如圖1所示,步驟11、數(shù)據(jù)寫入主機(jī)fifo(先進(jìn)先出);步驟12、主機(jī)寫io先寫入板上內(nèi)存memory,不寫入高速緩沖存儲器cache;步驟13、開始寫到遠(yuǎn)端時,先將板上內(nèi)存的數(shù)據(jù)拷貝至鏡像專用緩沖器buffer;步驟14、鏡像模塊構(gòu)造bio并發(fā)送到遠(yuǎn)端;步驟15,接口芯片將數(shù)據(jù)發(fā)送到數(shù)據(jù)鏈路并由遠(yuǎn)端fifo接收;步驟16,遠(yuǎn)端dma(directmemoryaccess,存儲器直接訪問)寫入板上內(nèi)存空間。

上述方法有影響鏡像效率和系統(tǒng)性能的地方①是步驟13將數(shù)據(jù)從板上內(nèi)存空間讀取出來拷貝至鏡像buffer空間,由于bio中的每一項必須要的structpage結(jié)構(gòu)頭,有一次主機(jī)scatterlist到bio頁面的拷貝影響性能。②向?qū)Χ税l(fā)送數(shù)據(jù)之前必須先發(fā)消息到對端去申請寫緩存空間,多了一次消息交互。③是在鏈路上發(fā)送數(shù)據(jù)時如果共享cache數(shù)據(jù),要等對端全部接收完成后才能通知本端cache釋放頁面,持有cache頁面時間較長,影響本地cache頁面的使用效率。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種數(shù)據(jù)備份的方法及裝置,以降低數(shù)據(jù)鏡像備份過程的時延。

為解決上述技術(shù)問題,本發(fā)明提供一種數(shù)據(jù)備份的方法,應(yīng)用于本端控制器,所述方法包括:

所述本端控制器在遠(yuǎn)端控制器申請預(yù)留內(nèi)存;

當(dāng)本端控制器將待寫入數(shù)據(jù)寫入主機(jī)的緩存時,并行的將所述待寫入數(shù)據(jù)寫入遠(yuǎn)端控制器的所述預(yù)留內(nèi)存;

其中,所述遠(yuǎn)端控制器的個數(shù)為一個或多個。

可選地,所述方法還包括:

當(dāng)接收到所述遠(yuǎn)端控制器返回的寫完成響應(yīng)時,所述本端控制器將其緩存中的待寫入數(shù)據(jù)寫入本端高速緩沖存儲器cache。

可選地,所述方法還包括:

所述本端控制器和所述遠(yuǎn)端控制器相互注冊并且映射內(nèi)存。

可選地,

所述將所述待寫入數(shù)據(jù)寫入遠(yuǎn)端控制器的預(yù)留內(nèi)存包括:

所述本端控制器將所述待寫入數(shù)據(jù)以存儲器直接訪問dma方式寫入所述預(yù)留頁面。

本發(fā)明還提供一種數(shù)據(jù)備份的方法,應(yīng)用于遠(yuǎn)端控制器,所述方法包括:

所述遠(yuǎn)端控制器為本端控制器分配預(yù)留內(nèi)存;

通過所述預(yù)留內(nèi)存接收所述本端控制器寫入主機(jī)的所述待寫入數(shù)據(jù)。

可選地,

所述通過所述預(yù)留內(nèi)存接收所述本端控制器寫入主機(jī)的所述待寫入數(shù)據(jù)后還包括:

所述遠(yuǎn)端控制器將存儲所述數(shù)據(jù)的頁面置換到遠(yuǎn)端高速緩沖存儲器cache后將所述待寫入數(shù)據(jù)寫入所述遠(yuǎn)端cache。

可選地,

所述遠(yuǎn)端控制器寫入遠(yuǎn)端cache完成后,所述本端控制器將其緩存中的數(shù)據(jù)寫入本端cache前,所述方法還包括:

所述遠(yuǎn)端控制器向所述本端控制器返回寫完成響應(yīng),并更新其預(yù)留內(nèi)存的映射狀態(tài)。

可選地,所述方法還包括:

當(dāng)所述遠(yuǎn)端控制器在預(yù)先設(shè)定的時間范圍內(nèi)未接收到所述本端控制器發(fā)送的待寫入數(shù)據(jù)時,則所述遠(yuǎn)端控制器與所述本端控制器重新建立連接。

可選地,所述方法還包括:

當(dāng)所述預(yù)留內(nèi)存被使用后,在所述遠(yuǎn)端控制器的后臺補充相應(yīng)的預(yù)留內(nèi)存。

本發(fā)明還提供一種數(shù)據(jù)備份的裝置,設(shè)置于本端控制器,所述裝置包括:

配置模塊,用于在遠(yuǎn)端控制器申請預(yù)留內(nèi)存;

第一處理模塊,用于將待寫入數(shù)據(jù)寫入主機(jī)的緩存時,并行的將所述待寫入數(shù)據(jù)寫入遠(yuǎn)端控制器的所述預(yù)留內(nèi)存;

其中,所述遠(yuǎn)端控制器的個數(shù)為一個或多個。

可選地,所述裝置還包括:

第二處理模塊,用于當(dāng)接收到所述遠(yuǎn)端控制器返回的寫完成響應(yīng)時,將其緩存中的待寫入數(shù)據(jù)寫入本端高速緩沖存儲器cache。

可選地,

所述配置模塊還用于和所述遠(yuǎn)端控制器相互注冊并且映射內(nèi)存。

可選地,

所述處理模塊用于將所述待寫入數(shù)據(jù)寫入遠(yuǎn)端控制器的預(yù)留內(nèi)存具體是指:

將所述待寫入數(shù)據(jù)以存儲器直接訪問dma方式寫入所述預(yù)留頁面。

本發(fā)明還提供一種數(shù)據(jù)備份的裝置,設(shè)置于遠(yuǎn)端控制器,所述裝置包括:

配置模塊,用于為本端控制器分配預(yù)留內(nèi)存;

第一處理模塊,用于通過所述預(yù)留內(nèi)存接收所述本端控制器寫入主機(jī)的所述待寫入數(shù)據(jù)。

可選地,所述裝置還包括:

第二處理模塊,用于將存儲所述數(shù)據(jù)的頁面置換到遠(yuǎn)端高速緩沖存儲器cache后將所述待寫入數(shù)據(jù)寫入所述遠(yuǎn)端cache。

可選地,所述裝置還包括:

第三處理模塊,用于所述遠(yuǎn)端控制器向所述本端控制器返回寫完成響應(yīng),并更新其預(yù)留內(nèi)存的映射狀態(tài)。

可選地,所述裝置還包括:

連接模塊,用于在預(yù)先設(shè)定的時間范圍內(nèi)未接收到所述本端控制器發(fā)送的待寫入數(shù)據(jù)時,則與所述本端控制器重新建立連接。

可選地,

所述配置模塊還用于當(dāng)所述預(yù)留內(nèi)存被使用后,在后臺補充相應(yīng)的預(yù)留內(nèi)存。

上述方案在將數(shù)據(jù)寫入本端緩存的同時,將該數(shù)據(jù)發(fā)送到另外一個或多個遠(yuǎn)端控制器的緩存中,此過程中不需進(jìn)行數(shù)據(jù)拷貝,也不需要在寫向遠(yuǎn)端之前串行申請緩存,降低了數(shù)據(jù)鏡像備份過程的時延。

附圖說明

圖1為實施例一中的現(xiàn)有存儲系統(tǒng)的異步鏡像數(shù)據(jù)流程圖;

圖2為實施例一中的數(shù)據(jù)備份的流程圖;

圖3為實施例一中的數(shù)據(jù)備份的另一流程圖;

圖4為實施例一中的數(shù)據(jù)備份的另一流程圖;

圖5為實施例二中的數(shù)據(jù)備份的示意圖;

圖6為實施例二中的內(nèi)存分配的示意圖;

圖7為實施例二中的數(shù)據(jù)備份另一示意圖;

圖8為實施例二中的cache頁面置換的示意圖;

圖9為實施例三中的數(shù)據(jù)備份的裝置的結(jié)構(gòu)示意圖;

圖10為實施例三中的數(shù)據(jù)備份的裝置的另一結(jié)構(gòu)示意圖。

具體實施方式

為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本申請的實施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。

實施例一

如圖2所示,本實施例提供一種數(shù)據(jù)備份的方法,應(yīng)用于本端控制器,所述方法包括:

步驟s11:本端控制器在遠(yuǎn)端控制器申請預(yù)留內(nèi)存;

在本實施例中,遠(yuǎn)端控制器的個數(shù)可以為一個或多個。

步驟s12:當(dāng)本端控制器將待寫入數(shù)據(jù)寫入主機(jī)的緩存時,并行的將所述待寫入數(shù)據(jù)寫入遠(yuǎn)端控制器的預(yù)留內(nèi)存;

具體的,在本實施例中,本端控制器將待寫入數(shù)據(jù)以存儲器直接訪問dma方式寫入所述預(yù)留頁面。

可選地,還包括:

步驟s13:當(dāng)接收到遠(yuǎn)端控制器返回的寫完成響應(yīng)時,本端控制器將其緩存中的待寫入數(shù)據(jù)寫入本端高速緩沖存儲器cache。

可選地,還包括:

步驟s10:本端控制器和遠(yuǎn)端控制器相互注冊并且映射內(nèi)存。

如圖3所示,本實施例還提供一種數(shù)據(jù)備份的方法,應(yīng)用于遠(yuǎn)端控制器,所述方法包括:

步驟s21:遠(yuǎn)端控制器為本端控制器分配預(yù)留內(nèi)存;

步驟s22:通過預(yù)留內(nèi)存接收本端控制器寫入主機(jī)的待寫入數(shù)據(jù)。

可選地,還包括:

步驟s23:遠(yuǎn)端控制器將存儲數(shù)據(jù)的頁面置換到遠(yuǎn)端高速緩沖存儲器cache后將待寫入數(shù)據(jù)寫入所述遠(yuǎn)端cache。

可選地,遠(yuǎn)端控制器寫入遠(yuǎn)端cache完成后,本端控制器將其緩存中的數(shù)據(jù)寫入本端cache前,還包括:

步驟s24:所述遠(yuǎn)端控制器向所述本端控制器返回寫完成響應(yīng),并更新其預(yù)留內(nèi)存的映射狀態(tài)。

還包括:

步驟s25:當(dāng)遠(yuǎn)端控制器在預(yù)先設(shè)定的時間范圍內(nèi)未接收到本端控制器發(fā)送的待寫入數(shù)據(jù)時,則所述遠(yuǎn)端控制器與所述本端控制器重新建立連接。

步驟s26:當(dāng)預(yù)留內(nèi)存被使用后,在遠(yuǎn)端控制器的后臺補充相應(yīng)的預(yù)留內(nèi)存。

需要說明的是,步驟s25和s26的執(zhí)行順序不做具體限定,可以因具體情況不需要執(zhí)行,也可以根據(jù)實際情況的執(zhí)行順序而定。

如圖4所示,本端控制器與遠(yuǎn)端控制器可以按照以下方式進(jìn)行進(jìn)行數(shù)據(jù)備份:

步驟s30:本端控制器和遠(yuǎn)端控制器相互注冊并且映射內(nèi)存;

步驟s31:本端控制器在遠(yuǎn)端控制器申請預(yù)留內(nèi)存;

步驟s32:當(dāng)本端控制器將待寫入數(shù)據(jù)寫入主機(jī)的緩存時,并行的將所述待寫入數(shù)據(jù)寫入遠(yuǎn)端控制器的預(yù)留內(nèi)存;

步驟s33:當(dāng)預(yù)留內(nèi)存被使用后,在遠(yuǎn)端控制器的后臺補充相應(yīng)的預(yù)留內(nèi) 存;

步驟s34:遠(yuǎn)端控制器將存儲數(shù)據(jù)的頁面置換到遠(yuǎn)端高速緩沖存儲器cache后將待寫入數(shù)據(jù)寫入所述遠(yuǎn)端cache;

步驟s35:遠(yuǎn)端控制器向本端控制器返回寫完成響應(yīng),并更新其預(yù)留內(nèi)存的映射狀態(tài);

步驟s36:當(dāng)接收到遠(yuǎn)端控制器返回的寫完成響應(yīng)后,本端控制器將其緩存中的待寫入數(shù)據(jù)寫入本端高速緩沖存儲器cache。

實施例二

下面結(jié)合附圖進(jìn)一步說明對本發(fā)明的技術(shù)方案:

如圖5所示,同時寫入主卷和從卷流程如下:

兩端控制器交互,分配到對端的緩存。

步驟41:本端和遠(yuǎn)端相互注冊并且映射內(nèi)存。

本端和遠(yuǎn)端相互注冊并且映射內(nèi)存后,可以使得本端訪問對端內(nèi)存如同普通內(nèi)存一樣。

如圖6所示,本端與遠(yuǎn)端交互,分配對端的緩存,本端為對端設(shè)置頁面緩存池,緩存池根據(jù)使用情況會自動補充頁面進(jìn)來,當(dāng)本端給對端發(fā)送數(shù)據(jù)時,直接在遠(yuǎn)端預(yù)留緩存池中申請頁面用于芯片將數(shù)據(jù)從fifo中dma到數(shù)據(jù)頁面中。

步驟42:主機(jī)開始寫數(shù)據(jù)。

步驟43:在本實施例中,本端控制器和遠(yuǎn)端控制配置過芯片dma,該芯片本身支持dma功能,例如fibrechannel芯片,該芯片可以直接將數(shù)據(jù)dma寫入本地緩存,這是一種高速的數(shù)據(jù)傳輸操作,允許在外部設(shè)備和存儲器之間直接讀寫數(shù)據(jù),既不通過cpu,也不需要cpu干預(yù)。

步驟44:將數(shù)據(jù)dma寫入遠(yuǎn)端緩存,由遠(yuǎn)端接收并寫入預(yù)留緩存。

步驟45:遠(yuǎn)端將預(yù)留緩存中的頁面置換到cache。

步驟46:遠(yuǎn)端鏡像給本端返回寫完成響應(yīng)。

步驟47:本端收到響應(yīng)之后將本端緩存中的數(shù)據(jù)寫入cache。本端寫完之后,向主機(jī)返回響應(yīng)。

步驟48:本端和遠(yuǎn)端還可以監(jiān)控整個鏡像網(wǎng)絡(luò)的數(shù)據(jù)時延,有效的管理整個鏡像網(wǎng)絡(luò)。其中,與遠(yuǎn)端的操作交互都通過端口1,要求磁陣端口1同時支持啟動器和目標(biāo)器模式。

需要說明的是,在本實施例中,主機(jī)下發(fā)寫請求,本端分配到寫緩存之后響應(yīng)主機(jī),主機(jī)開始寫入數(shù)據(jù),芯片接收到fifo中之后dma到已經(jīng)分配好的寫緩存之中,然后通過芯片隊列中的條目來控制,條目中的每一項都指向一個待接收數(shù)據(jù)緩存,組織好條目數(shù)據(jù)后,通知芯片更新隊列發(fā)送xfer_rdy,芯片會自動按照協(xié)議要求接收數(shù)據(jù)。改造驅(qū)動軟件的實現(xiàn),給芯片配置二個或多個目的地址,讓芯片將數(shù)據(jù)同時寫入配置好的地址中。

如圖7所示,圖7(a)是現(xiàn)有技術(shù)的實現(xiàn)方式:比如主機(jī)要寫數(shù)據(jù)abcd到本地并且鏡像到遠(yuǎn)端,本端先申請好緩存之后響應(yīng)主機(jī),主機(jī)寫a,b,c,d數(shù)據(jù)下來步驟11,12。數(shù)據(jù)全部寫入本地之后過程1完成,開始過程2,從本地緩存中讀出a,b,c,d數(shù)據(jù)寫入遠(yuǎn)端步驟21,22;過程1和過程2是串行的過程,主機(jī)請求完成的時延如時間軸所示。

而圖7(b)中,通過本發(fā)明的技術(shù)方案改造后,本端先申請好緩存之后響應(yīng)主機(jī),主機(jī)寫a,b,c,d數(shù)據(jù)同時寫遠(yuǎn)端步驟11,21,12,22,這樣整個過程是并行的,有效縮短整個請求的時延。

此外,如圖8所示,遠(yuǎn)端將預(yù)留緩存中的頁面置換到cache,即將預(yù)留緩存中的數(shù)據(jù)寫入cache時,不需要進(jìn)行頁面拷貝,而是進(jìn)行頁面置換。

步驟①本端在預(yù)留緩存1,2,3塊寫入數(shù)據(jù)之后給對端發(fā)送數(shù)據(jù),遠(yuǎn)端收到之后開始與cache頁面池置換;

步驟②將cache頁面池中的11,12,13裝入預(yù)分配內(nèi)存池,將數(shù)據(jù)塊1,2,3寫入cache區(qū);

步驟③遠(yuǎn)端在給本端的響應(yīng)時更新預(yù)留緩存的映射情況。

對于像iscsi這種有拷貝不支持芯片dma的接口類型,在不加裝硬件模塊的情況下,向?qū)Χ税l(fā)送數(shù)據(jù)之前不需要先發(fā)消息到對端去申請寫緩存空間,少了一次消息交互;如果增加提升性能的硬件裝置,本裝置可以為fpga芯片或者asic芯片,在將數(shù)據(jù)寫入本端控制器的緩存中的同時,也可以通過鏈路數(shù)據(jù)通道將該數(shù)據(jù)鏡像到另外一個或多個控制器的緩存中與上面描述相同。

實施例三

如圖9所示,本實施例還提供一種數(shù)據(jù)備份的裝置,設(shè)置于本端控制器,裝置包括:

配置模塊11,用于在遠(yuǎn)端控制器申請預(yù)留內(nèi)存;

第一處理模塊12,用于將待寫入數(shù)據(jù)寫入主機(jī)的緩存時,并行的將所述待寫入數(shù)據(jù)寫入遠(yuǎn)端控制器的所述預(yù)留內(nèi)存;

其中,所述遠(yuǎn)端控制器的個數(shù)為一個或多個。

可選地,所述裝置還包括:

第二處理模塊13,用于當(dāng)接收到所述遠(yuǎn)端控制器返回的寫完成響應(yīng)時,將其緩存中的待寫入數(shù)據(jù)寫入本端高速緩沖存儲器cache。

所述配置模塊還用于和所述遠(yuǎn)端控制器相互注冊并且映射內(nèi)存。

可選地,所述第一處理模塊12用于將所述待寫入數(shù)據(jù)寫入遠(yuǎn)端控制器的預(yù)留內(nèi)存具體是指:

將所述待寫入數(shù)據(jù)以存儲器直接訪問dma方式寫入所述預(yù)留頁面。

如圖10所示,本實施例還提供一種數(shù)據(jù)備份的裝置,設(shè)置于遠(yuǎn)端控制器,所述裝置包括:

配置模塊21,用于為本端控制器分配預(yù)留內(nèi)存;

第一處理模塊22,用于通過所述預(yù)留內(nèi)存接收所述本端控制器寫入主機(jī)的所述待寫入數(shù)據(jù)。

可選地,所述裝置還包括:

第二處理模塊23,用于將存儲所述數(shù)據(jù)的頁面置換到遠(yuǎn)端高速緩沖存儲器cache后將所述待寫入數(shù)據(jù)寫入所述遠(yuǎn)端cache。

可選地,所述裝置還包括:

第三處理模塊24,用于所述遠(yuǎn)端控制器向所述本端控制器返回寫完成響應(yīng),并更新其預(yù)留內(nèi)存的映射狀態(tài)。

可選地,所述裝置還包括:

連接模塊25,用于在預(yù)先設(shè)定的時間范圍內(nèi)未接收到所述本端控制器發(fā)送的待寫入數(shù)據(jù)時,則與所述本端控制器重新建立連接。

可選地,

所述配置模塊21還用于當(dāng)所述預(yù)留內(nèi)存被使用后,在后臺補充相應(yīng)的預(yù)留內(nèi)存。

以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計算機(jī)可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn),相應(yīng)地,上述實施例中的各模塊/模塊可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本申請不限制于任何特定形式的硬件和軟件的結(jié)合。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1