專利名稱:一種cdp中的塊級數(shù)據(jù)捕獲方法
技術領域:
本發(fā)明涉及一種計算機應用技術領域,尤其涉及一種CDP中的塊級數(shù)據(jù)捕獲方法。通過將數(shù)據(jù)捕獲和數(shù)據(jù)傳輸相互分離的方法以及采用內(nèi)核態(tài)緩存和用戶態(tài)緩存的兩級緩存的傳輸策略,可以提高用戶的讀寫性能,降低存儲設備的開銷,保證數(shù)據(jù)的可靠性以及降低內(nèi)存資源的使用,為CDP數(shù)據(jù)保護技術提供了一種很好的捕獲數(shù)據(jù)的方法。
背景技術:
在現(xiàn)階段的容災備份領域,⑶P技術是數(shù)據(jù)保護的一個重要方法,⑶P可以通過增量的方式實現(xiàn)數(shù)據(jù)保護,它的實現(xiàn)主要是通過捕獲或跟蹤數(shù)據(jù)的變化,同時將這些變化的數(shù)據(jù)放在獨立于生產(chǎn)數(shù)據(jù)之外的地方,這樣可以確保用戶的數(shù)據(jù)恢復到過去的任意時間點。本發(fā)明針對CDP保護中塊級數(shù)據(jù)的捕獲問題存在的問題進行分析研究,如何提高數(shù)據(jù)捕獲的效率成為本發(fā)明的切入點和實現(xiàn)點。
在現(xiàn)階段,針對CDP塊級數(shù)據(jù)保護的數(shù)據(jù)捕獲策略的實現(xiàn)過程中主要存在如下缺點。
1、傳統(tǒng)CDP實現(xiàn)數(shù)據(jù)的遠程容災方案需要通過iSCSI協(xié)議來實現(xiàn),這種方式的缺點是需要在客戶節(jié)點實現(xiàn)對遠程CDP備份空間的管理,有一定復雜性;同時,他們采用的遠程數(shù)據(jù)傳輸和數(shù)據(jù)捕獲是同步執(zhí)行的,這就牽扯到數(shù)據(jù)的傳輸效率和性能問題,這種方式中的塊級數(shù)據(jù)遠程傳輸過程會影響存儲系統(tǒng)的性能; 2、傳統(tǒng)的CDP數(shù)據(jù)捕獲和傳輸都在內(nèi)核緩存空間內(nèi)完成,由于用戶的網(wǎng)絡和存儲設備的情況都千變?nèi)f化的,這就會導致數(shù)據(jù)遠程傳輸會極大地影響內(nèi)核的性能,同時內(nèi)核緩存空間中有限的地址空間是會限制緩存的大小,所以在高負荷I / O時會出現(xiàn)緩存不夠,導致系統(tǒng)內(nèi)核崩潰的情況。發(fā)明內(nèi)容
本發(fā)明的目的是提供一種⑶P中的塊級數(shù)據(jù)捕獲方法。
本發(fā)明的目的是按以下方式實現(xiàn)的,在內(nèi)核緩存空間和用戶緩存空間分別采用內(nèi)核空間緩存模塊和用戶空間緩存模塊,在用戶空間緩存模塊中又設置了靜態(tài)緩存和動態(tài)緩存兩種級別的緩存機制,以及使用不同的緩存模塊進行數(shù)據(jù)處理的兩級緩存的結構,在用戶空間緩存模塊采用動態(tài)緩存,在保證數(shù)據(jù)可靠性的前提下減少內(nèi)存資源的使用,提高了數(shù)據(jù)捕獲的性能和效率,提高了緩存的利用率,通過將數(shù)據(jù)捕獲和數(shù)據(jù)傳輸相互分離以及采用內(nèi)核空間緩存模塊和用戶空間緩存模塊的兩級緩存方法,提高用戶的讀寫性能,降低存儲設備的開銷,保證容災方案的高效能和穩(wěn)定性。數(shù)據(jù)捕獲步驟如下: (1)用戶觸發(fā)寫操作,由通用塊層傳送給本專利中虛擬出來的I/ O捕獲標記模塊,這個I / O捕獲標記模塊通過修改這個數(shù)據(jù)塊的成員屬性,將這個模塊的處理請求重定向給能處理該請求的設備; (2)重定向?qū)懖僮鳎贗/ O捕獲標記模塊定義了一個回調(diào)函數(shù),它對上層傳下來的寫操作修改處理的設備的屬性后,將請求重定向到真實的物理設備,重新提交給通用塊設備層來處理; (3)重定向?qū)懖僮?,寫操作被通用塊設備層重定向給修改處理設備屬性值的的物理設備所對應的驅(qū)動程序進行處理; (4)重定向后的磁盤驅(qū)動程序完成寫磁盤操作; (5)重定向后的磁盤驅(qū)動程序向上層返回I/ O成功與否的標志信息; (6)如果步驟(5)報告成功,則將寫操作的數(shù)據(jù)塊進行捕獲,并加上元數(shù)據(jù)進行數(shù)據(jù)塊的組合; (7)將組合后的數(shù)據(jù)塊傳輸?shù)竭h程服務器進行保存,用于以后數(shù)據(jù)的恢復,失敗則跳過。
在緩存系統(tǒng)中,靜態(tài)緩存是在任務創(chuàng)建時分配的存儲空間,靜態(tài)緩存采用SSD硬盤作為緩存介質(zhì),緩存是保證任務正常運行的必選緩存,大小由用戶根據(jù)自己的業(yè)務情況進行選定和設置大小,動態(tài)緩存是在大量數(shù)據(jù)突發(fā)寫或者網(wǎng)絡速度降低導致靜態(tài)緩存不夠用時由系統(tǒng)動態(tài)分配的,而當系統(tǒng)空閑時,系統(tǒng)的管理模塊會自動回收未使用的動態(tài)緩存,在滿足系統(tǒng)需要的前提下節(jié)省內(nèi)存資源。內(nèi)核空間緩存模塊類似于寄存器,用以暫存捕獲模塊捕獲的數(shù)據(jù),等待轉(zhuǎn)發(fā)到用戶緩存中,轉(zhuǎn)發(fā)后才會釋放這部分緩存空間,再接受新的捕獲的數(shù)據(jù)。
通過系統(tǒng)內(nèi)核管理模塊在通用塊設備層之下進行數(shù)據(jù)的捕獲,對每一個系統(tǒng)的寫操作請求進行處理,這個模塊是一個虛擬設備,能夠?qū)/O請求做捕獲處理,處理包括對捕獲的數(shù)據(jù)打下時間戳標記,記錄下那些操作的地址和寫操作的大小等元數(shù)據(jù)信息,然后將這些信息進行保存更新,然后再重定向到實際存儲設備完成實際的I/O操作,這個模塊相當于對所有的數(shù)據(jù)塊進行一個處理設備的指定,以此降低了通用塊設備層的處理繁忙性,即在通用塊設備層和物理設備的驅(qū)動程序中添加了一個虛擬設備的中間件。
內(nèi)核緩存空間與用戶緩存空間之間數(shù)據(jù)交互分成兩部分,一部分是控制信息,對于這部分的信息使用netlink進行雙向傳輸,達到兩個空間內(nèi)管理模塊的快速交互;另一部分是數(shù)據(jù)信息,這部分信息是內(nèi)核空緩存間到用戶緩存空間的數(shù)據(jù)拷貝.對于這部分信息采用_ap內(nèi)存映射機制結合memcpy數(shù)據(jù)拷貝方式來實現(xiàn)內(nèi)核緩存空間和用戶緩存空間緩存之間的數(shù)據(jù)拷貝以提高用戶數(shù)據(jù)傳輸速度和提高交互的可靠性。
本發(fā)明的有益效果是:通過高效的塊級數(shù)據(jù)捕獲和數(shù)據(jù)傳輸方法,將數(shù)據(jù)捕獲和數(shù)據(jù)傳輸相互分離以及采用內(nèi)核態(tài)緩存和用戶態(tài)緩存的兩級緩存策略,可以提高用戶的讀寫性能,降低存儲設備的開銷,保證容災方案的高效能和穩(wěn)定性。
圖1是本發(fā)明的軟件架構實現(xiàn)結構圖; 圖2是本發(fā)明的數(shù)據(jù)捕獲、存儲、傳輸?shù)牧鞒虉D; 圖3是本發(fā)明中緩存機制的實現(xiàn)流程圖。
具體實施方式
參照附圖,下面將對本發(fā)明實施方案做進一步詳細描述。
本發(fā)明的關于CDP中塊級數(shù)據(jù)的捕獲設計了一種高效的方法,是通過系統(tǒng)內(nèi)核管理模塊在通用塊設備層之下進行數(shù)據(jù)的捕獲,對每一個系統(tǒng)的寫操作請求進行處理,這個模塊是一個虛擬設備,能夠?qū)/o請求做捕獲處理,處理包括對捕獲的數(shù)據(jù)打下時間戳標記,記錄下那些操作的地址和寫操作的大小等元數(shù)據(jù)信息,然后將這些信息進行保存更新,然后再重定向到實際存儲設備完成實際的I/o操作,這個模塊相當于對所有的數(shù)據(jù)塊進行一個處理設備的指定,這就降低了通用塊設備層的處理,降低了其繁忙性。這種方法也就是在通用塊設備層和物理設備的驅(qū)動程序中添加了一個虛擬設備的中間件。
在本系統(tǒng)的緩存系統(tǒng)中,主要是用到了內(nèi)核空間緩存模塊和用戶空間緩存模塊。在用戶空間緩存模塊中又設置了靜態(tài)緩存和動態(tài)緩存兩種級別的緩存機制,靜態(tài)緩存是在任務創(chuàng)建時分配的存儲空間,這個靜態(tài)緩存我們采用SSD硬盤作為緩存介質(zhì),這個緩存是保證任務正常運行的,是一個基本必選緩存,大小有用戶根據(jù)自己的業(yè)務情況進行選定和設置大小。動態(tài)緩存是在大量數(shù)據(jù)突發(fā)寫或者網(wǎng)絡速度降低導致靜態(tài)緩存不夠用時由系統(tǒng)動態(tài)分配的,而當系統(tǒng)空閑時,系統(tǒng)的管理模塊會自動回收未使用的動態(tài)緩存,在滿足系統(tǒng)需要的前提下節(jié)省內(nèi)存資源。內(nèi)核空間緩存模塊類似于寄存器,我們用它來暫存捕獲模塊捕獲的數(shù)據(jù),等待轉(zhuǎn)發(fā)到用戶緩存中,才會釋放這部分緩存空間。接受新的捕獲的數(shù)據(jù)。
主要的數(shù)據(jù)捕獲步驟如下: (1)用戶觸發(fā)寫操作,由通用塊層傳送給本專利中虛擬出來的I/ O捕獲標記模塊,這個I / O捕獲標記模塊通過修改這個數(shù)據(jù)塊的成員屬性,將這個模塊的處理請求重定向給能處理該請求的設備; (2)重定向?qū)懖僮?,在I/ O捕獲標記模塊定義了一個回調(diào)函數(shù),它對上層傳下來的寫操作修改處理的設備的屬性后,將請求重定向到真實的物理設備,重新提交給通用塊設備層來處理; (3)重定向?qū)懖僮鳎瑢懖僮鞅煌ㄓ脡K設備層重定向給修改處理設備屬性值的的物理設備所對應的驅(qū)動程序進行處理; (4)重定向后的磁盤驅(qū)動程序完成寫磁盤操作; (5)重定向后的磁盤驅(qū)動程序向上層返回I/ O成功與否的標志信息; (6)如果步驟5報告成功,則將寫操作的數(shù)據(jù)塊進行捕獲,并加上元數(shù)據(jù)進行數(shù)據(jù)塊的組合; (7)將組合后的數(shù)據(jù)塊傳輸?shù)竭h程服務器進行保存,用于以后數(shù)據(jù)的恢復,失敗則跳過。
在本系統(tǒng)的緩存系統(tǒng)中,主要是用到了內(nèi)核空間緩存模塊和用戶空間緩存模塊。在用戶空間緩存模塊中又設置了靜態(tài)緩存和動態(tài)緩存兩種級別的緩存機制,靜態(tài)緩存是在任務創(chuàng)建時分配的存儲空間,這個靜態(tài)緩存采用SSD硬盤作為緩存介質(zhì),這個緩存是保證任務正常運行的,是一個基本必選緩存,大小有用戶根據(jù)自己的業(yè)務情況進行選定和設置大小。動態(tài)緩存是在大量數(shù)據(jù)突發(fā)寫或者網(wǎng)絡速度降低導致靜態(tài)緩存不夠用時由系統(tǒng)動態(tài)分配的,而當系統(tǒng)空閑時,系統(tǒng)的管理模塊會自動回收未使用的動態(tài)緩存,在滿足系統(tǒng)需要的前提下節(jié)省內(nèi)存資源。內(nèi)核空間緩存模塊類似于寄存器,用它來暫存捕獲模塊捕獲的數(shù)據(jù),等待轉(zhuǎn)發(fā)到用戶緩存中,才會釋放這部分緩存空間。接受新的捕獲的數(shù)據(jù)。
在本系統(tǒng)中,內(nèi)核緩存空間與用戶緩存空間之間數(shù)據(jù)交互分成兩部分,一部分是控制信息,對于這部分的信息本發(fā)明使用netlink進行雙向傳輸,達到兩個空間內(nèi)管理模塊的快速交互;另一部分是數(shù)據(jù)信息,這部分在主要是內(nèi)核緩存空間到用戶緩存空間的數(shù)據(jù)拷貝.對于這部分信息本發(fā)明中采用mmap內(nèi)存映射機制結合memcpy數(shù)據(jù)拷貝方式來實現(xiàn)內(nèi)核緩存空間和用戶緩存空間緩存之間的數(shù)據(jù)拷貝。
除說明書所述的技術特征外,均為本專業(yè)技術人員的已知技術。
權利要求
1.一種CDP中的塊級數(shù)據(jù)捕獲方法,其特征在于在內(nèi)核緩存空間和用戶緩存空間分別采用內(nèi)核空間緩存模塊和用戶空間緩存模塊,在用戶空間緩存模塊中又設置了靜態(tài)緩存和動態(tài)緩存兩種級別的緩存機制,以及使用不同的緩存模塊進行數(shù)據(jù)處理的兩級緩存的結構,在用戶空間緩存模塊采用動態(tài)緩存,在保證數(shù)據(jù)可靠性的前提下減少內(nèi)存資源的使用,提高了數(shù)據(jù)捕獲的性能和效率,提高了緩存的利用率,通過將數(shù)據(jù)捕獲和數(shù)據(jù)傳輸相互分離以及采用內(nèi)核空間緩存模塊和用戶空間緩存模塊的兩級緩存方法,提高用戶的讀寫性能,降低存儲設備的開銷,保證容災方案的高效能和穩(wěn)定性,數(shù)據(jù)捕獲步驟如下: (1)用戶觸發(fā)寫操作,由通用塊層傳送給本專利中虛擬出來的I/ O捕獲標記模塊,這個I / O捕獲標記模塊通過修改這個數(shù)據(jù)塊的成員屬性,將這個模塊的處理請求重定向給能處理該請求的設備; (2)重定向?qū)懖僮?,在I/ O捕獲標記模塊定義了一個回調(diào)函數(shù),它對上層傳下來的寫操作修改處理的設備的屬性后,將請求重定向到真實的物理設備,重新提交給通用塊設備層來處理; (3)重定向?qū)懖僮?,寫操作被通用塊設備層重定向給修改處理設備屬性值的的物理設備所對應的驅(qū)動程序進行處理; (4)重定向后的磁盤驅(qū)動程序完成寫磁盤操作; (5)重定向后的磁盤驅(qū)動程序向上層返回I/ O成功與否的標志信息; (6)如果步驟(5)報告成功,則將寫操作的數(shù)據(jù)塊進行捕獲,并加上元數(shù)據(jù)進行數(shù)據(jù)塊的組合; (7)將組合后的數(shù)據(jù)塊傳輸?shù)竭h程服務器進行保存,用于以后數(shù)據(jù)的恢復,失敗則跳過。
2.根據(jù)權利要求1所述的方法,其特征在于在緩存系統(tǒng)中,靜態(tài)緩存是在任務創(chuàng)建時分配的存儲空間,靜態(tài)緩存采用SSD硬盤作為緩存介質(zhì),緩存是保證任務正常運行的必選緩存,大小由用戶根據(jù)自己的業(yè)務情況進行選定和設置大小,動態(tài)緩存是在大量數(shù)據(jù)突發(fā)寫或者網(wǎng)絡速度降低導致靜態(tài)緩存不夠用時由系統(tǒng)動態(tài)分配的,而當系統(tǒng)空閑時,系統(tǒng)的管理模塊會自動回收未使用的動態(tài)緩存,在滿足系統(tǒng)需要的前提下節(jié)省內(nèi)存資源,內(nèi)核空間緩存模塊類似于寄存器,用以暫存捕獲模塊捕獲的數(shù)據(jù),等待轉(zhuǎn)發(fā)到用戶緩存中,轉(zhuǎn)發(fā)后才會釋放這部分緩存空間,再接受新的捕獲的數(shù)據(jù)。
3.根據(jù)權利要求1所述的方法,其特征在于通過系統(tǒng)內(nèi)核管理模塊在通用塊設備層之下進行數(shù)據(jù)的捕獲,對每 一個系統(tǒng)的寫操作請求進行處理,這個模塊是一個虛擬設備,能夠?qū)/o請求做捕獲處理,處理包括對捕獲的數(shù)據(jù)打下時間戳標記,記錄下那些操作的地址和寫操作的大小等元數(shù)據(jù)信息,然后將這些信息進行保存更新,然后再重定向到實際存儲設備完成實際的I/o操作,這個模塊相當于對所有的數(shù)據(jù)塊進行一個處理設備的指定,以此降低了通用塊設備層的處理繁忙性,即在通用塊設備層和物理設備的驅(qū)動程序中添加了一個虛擬設備的中間件。
4.根據(jù)權利要求1所述的方法,其特征在于:內(nèi)核緩存空間與用戶緩存空間之間數(shù)據(jù)交互分成兩部分,一部分是控制信息,對于這部分的信息使用netlink進行雙向傳輸,達到兩個空間內(nèi)管理模塊的快速交互;另一部分是數(shù)據(jù)信息,這部分信息是內(nèi)核空緩存間到用戶緩存空間的數(shù)據(jù)拷貝.對于這部分信息采用mmap內(nèi)存映射機制結合memcpy數(shù)據(jù)拷貝方式來實現(xiàn)內(nèi)核緩存空間和用戶緩存空間緩存之間的數(shù)據(jù)拷貝以提高用戶數(shù)據(jù)傳輸速度和 提高交互的可靠性。
全文摘要
本發(fā)明提供一種CDP中的塊級數(shù)據(jù)捕獲方法,在內(nèi)核緩存空間和用戶緩存空間分別采用內(nèi)核空間緩存模塊和用戶空間緩存模塊,在用戶空間緩存模塊中又設置了靜態(tài)緩存和動態(tài)緩存兩種級別的緩存機制,以及使用不同的緩存模塊進行數(shù)據(jù)處理的兩級緩存的結構,在用戶空間緩存模塊采用動態(tài)緩存,在保證數(shù)據(jù)可靠性的前提下減少內(nèi)存資源的使用,提高了數(shù)據(jù)捕獲的性能和效率,提高了緩存的利用率,通過將數(shù)據(jù)捕獲和數(shù)據(jù)傳輸相互分離以及采用內(nèi)核空間緩存模塊和用戶空間緩存模塊的兩級緩存方法,提高用戶的讀寫性能,降低存儲設備的開銷,保證容災方案的高效能和穩(wěn)定性。
文檔編號G06F12/08GK103150268SQ20131006676
公開日2013年6月12日 申請日期2013年3月4日 優(yōu)先權日2013年3月4日
發(fā)明者張硯波, 王東風 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司