• / 30
  • 下載費用:30 金幣  

數據恢復方法及設備.pdf

關 鍵 詞:
數據 恢復 方法 設備
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310655743.8

申請日:

2013.12.05

公開號:

CN103678039A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 11/14申請日:20131205|||公開
IPC分類號: G06F11/14 主分類號: G06F11/14
申請人: 華為技術有限公司
發明人: 李大權; 歐陽戟
地址: 518129 廣東省深圳市龍崗區坂田華為總部辦公樓
優先權:
專利代理機構: 北京三高永信知識產權代理有限責任公司 11138 代理人: 黃厚剛
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310655743.8

授權公告號:

||||||

法律狀態公告日:

2016.11.30|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明公開了一種數據恢復方法及設備,屬于數據存儲領域。所述方法包括:第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據;獲得所述歷史數據;將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備。本發明通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據,并將該歷史數據和該邏輯地址發送給第二存儲設備,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。

權利要求書

權利要求書
1.  一種數據恢復方法,其特征在于,所述方法應用于存儲系統中,所述存儲系統至少包括第一存儲設備和第二存儲設備,其中,所述第一存儲設備周期性生成所述第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,所述方法包括:
所述第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據,所述操作標記用于指示所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息;
判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
若判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。

2.  根據權利要求1所述的方法,其特征在于,所述方法還包括:
若判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在所述第二存儲設備中存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。

3.  根據權利要求1所述的方法,其特征在于,所述獲得所述歷史數據,包括:
獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
根據所述物理地址獲得所述歷史數據。

4.  根據權利要求1至3任一所述的方法,其特征在于,所述方法還包括:
在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息生成所述操作標記;
保存所述邏輯地址與所述操作標記之間的對應關系。

5.  第一存儲設備,其特征在于,所述第一存儲設備應用于存儲系統中,所述存儲系統至少包括所述第一存儲設備和第二存儲設備,其中,所述第一存儲設備周期性生成所述第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,所述第一存儲設備包括:
指令接收模塊,用于接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
確定模塊,用于根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據,所述操作標記用于指示所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息;
判斷模塊,用于判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
獲得模塊,用于若所述判斷模塊的判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
第一發送模塊,用于將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。

6.  根據權利要求5所述的第一存儲設備,其特征在于,所述第一存儲設備還包括:
第二發送模塊,用于若所述判斷模塊的判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在所述第二存儲設備中存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第 二存儲設備中存儲的與所述邏輯地址對應的數據刪除。

7.  根據權利要求5所述的第一存儲設備,其特征在于,所述獲得模塊,包括:
地址獲取單元,獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
數據獲得單元,用于根據所述物理地址獲得所述歷史數據。

8.  根據權利要求5至7任一所述的第一存儲設備,其特征在于,所述第一存儲設備還包括:
標記生成模塊,用于在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息生成所述操作標記;
保存模塊,用于保存所述邏輯地址與所述操作標記之間的對應關系。

9.  一種數據恢復方法,其特征在于,所述方法應用于存儲系統中,所述存儲系統至少包括第一存儲設備和第二存儲設備,其中,所述第一存儲設備周期性生成所述第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,所述方法包括:
所述第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據在所述目標快照時間點之后被從所述第一存儲設備中刪除,所述操作標記用于指示所述邏輯地址中存儲的數據被從所述第一存儲設備中刪除的時間信息;
判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
若判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所 述歷史數據。

10.  根據權利要求9所述的方法,其特征在于,所述方法還包括:
若判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在所述第二存儲設備中存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。

11.  根據權利要求9所述的方法,其特征在于,所述獲得所述歷史數據,包括:
獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
根據所述物理地址獲得所述歷史數據。

12.  根據權利要求9至11任一所述的方法,其特征在于,所述方法還包括:
在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據被從所述第一存儲設備中刪除的時間信息生成所述操作標記;
保存所述邏輯地址與所述操作標記之間的對應關系。

13.  第一存儲設備,其特征在于,所述第一存儲設備應用于存儲系統中,所述存儲系統至少包括所述第一存儲設備和第二存儲設備,其中,所述第一存儲設備周期性生成所述第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,所述第一存儲設備包括:
指令接收模塊,用于接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
確定模塊,用于根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據在所述目標快照時間點之后被從所述第一存儲設備中刪除,所述操作標記用于指示所述邏輯地址中存儲的數據被從所述第一存儲設備中刪除的時間信息;
判斷模塊,用于判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史 數據;
獲得模塊,用于若所述判斷模塊的判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
第一發送模塊,用于將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。

14.  根據權利要求13所述的第一存儲設備,其特征在于,所述第一存儲設備還包括:
第二發送模塊,用于若所述判斷模塊的判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在所述第二存儲設備中存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。

15.  根據權利要求13所述的第一存儲設備,其特征在于,所述獲得模塊,包括:
地址獲取單元,獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
數據獲得單元,用于根據所述物理地址獲得所述歷史數據。

16.  根據權利要求13至15任一所述的第一存儲設備,其特征在于,所述第一存儲設備還包括:
標記生成模塊,用于在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據被從所述第一存儲設備中刪除的時間信息生成所述操作標記;
保存模塊,用于保存所述邏輯地址與所述操作標記之間的對應關系。

說明書

說明書數據恢復方法及設備
技術領域
本發明涉及數據存儲領域,特別涉及一種數據恢復方法及設備。
背景技術
ROW(Redirect On Write,重定向寫)是一種應用非常廣泛的數據寫入方法。在基于ROW的數據存儲系統中,當需要對某一邏輯地址對應的數據進行修改時,系統會保持該數據及其物理地址不變,為修改的數據分配新的物理地址并寫入;管理人員定期為當前存儲的數據建立快照,當系統中數據出錯時,系統可以根據管理人員的指令進行快照回滾,將各個邏輯地址對應的數據更新為目標快照建立時刻點時的數據,從而將數據恢復至目標快照建立時的狀態。
同時,為了避免因自然災害等因素導致本地數據無法恢復而造成損失的情況,數據存儲系統還對主存儲設備上的數據進行遠程復制,即將主存儲設備上的數據復制給處于遠端的從存儲設備進行存儲,以建立遠程備份。
在基于ROW的數據存儲系統中,現有的數據恢復方法,當系統中數據出錯而進行快照回滾時,系統將主存儲設備上的所有數據全部復制并發送給從存儲設備進行數據恢復。
在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
現有的基于ROW的數據存儲系統中的數據恢復方法,每當系統中數據出錯而進行快照回滾時,需要將主存儲設備中所有數據復制給從存儲設備,復制時間長,且浪費大量帶寬資源。
發明內容
本發明實施例提供了一種數據恢復方法及設備,以提高數據恢復的效率。所述技術方案如下:
第一方面,提供了一種數據恢復方法,所述方法應用于存儲系統中,所述存儲系統至少包括第一存儲設備和第二存儲設備,其中,所述第一存儲設備周 期性生成所述第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,所述方法包括:
所述第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據,所述操作標記用于指示所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息;
判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
若判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
在第一方面的第一種可能實現方式中,所述方法還包括:
若判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在所述第二存儲設備中存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。
在第一方面的第二種可能實現方式中,所述獲得所述歷史數據,包括:
獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
根據所述物理地址獲得所述歷史數據。
結合第一方面、第一方面的第一種可能實現方式或者第一方面的第二種可能實現方式,在第一方面的第三種可能實現方式中,所述方法還包括:
在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息生成所述操作標記;
保存所述邏輯地址與所述操作標記之間的對應關系。
第二方面,提供了第一存儲設備,所述第一存儲設備應用于存儲系統中,所述存儲系統至少包括所述第一存儲設備和第二存儲設備,其中,所述第一存 儲設備周期性生成所述第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,所述第一存儲設備包括:
指令接收模塊,用于接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
確定模塊,用于根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據,所述操作標記用于指示所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息;
判斷模塊,用于判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
獲得模塊,用于若所述判斷模塊的判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
第一發送模塊,用于將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
在第二方面的第一種可能實現方式中,所述第一存儲設備還包括:
第二發送模塊,用于若所述判斷模塊的判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在所述第二存儲設備中存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。
在第二方面的第二種可能實現方式中,所述獲得模塊,包括:
地址獲取單元,獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
數據獲得單元,用于根據所述物理地址獲得所述歷史數據。
結合第二方面、第二方面的第一種可能實現方式或者第二方面的第二種可能實現方式,在第二方面的第三種可能實現方式中,所述第一存儲設備還包括:
標記生成模塊,用于在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息生成所述操作標記;
保存模塊,用于保存所述邏輯地址與所述操作標記之間的對應關系。
第三方面,提供了一種數據恢復方法,所述方法應用于存儲系統中,所述存儲系統至少包括第一存儲設備和第二存儲設備,其中,所述第一存儲設備周期性生成所述第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,所述方法包括:
所述第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據在所述目標快照時間點之后被從所述第一存儲設備中刪除,所述操作標記用于指示所述邏輯地址中存儲的數據被從所述第一存儲設備中刪除的時間信息;
判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
若判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
在第三方面的第一種可能實現方式中,所述方法還包括:
若判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在所述第二存儲設備中存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。
在第三方面的第二種可能實現方式中,所述獲得所述歷史數據,包括:
獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
根據所述物理地址獲得所述歷史數據。
結合第三方面、第三方面的第一種可能實現方式或者第三方面的第二種可能實現方式,所述方法還包括:
在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據被從所述第一存儲設備中刪除的時間信息生成所述操作標記;
保存所述邏輯地址與所述操作標記之間的對應關系。
第四方面,提供了第一存儲設備,所述第一存儲設備應用于存儲系統中,所述存儲系統至少包括所述第一存儲設備和第二存儲設備,其中,所述第一存儲設備周期性生成所述第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,所述第一存儲設備包括:
指令接收模塊,用于接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
確定模塊,用于根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據在所述目標快照時間點之后被從所述第一存儲設備中刪除,所述操作標記用于指示所述邏輯地址中存儲的數據被從所述第一存儲設備中刪除的時間信息;
判斷模塊,用于判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
獲得模塊,用于若所述判斷模塊的判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
第一發送模塊,用于將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
在第四方面的第一種可能實現方式中,所述第一存儲設備還包括:
第二發送模塊,用于若所述判斷模塊的判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在所述第二存儲設備中存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。
在第四方面的第二種可能實現方式中,所述獲得模塊,包括:
地址獲取單元,獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
數據獲得單元,用于根據所述物理地址獲得所述歷史數據。
結合第四方面、第四方面的第一種可能實現方式或者第四方面的第二種可能實現方式,在第四方面的第三種可能實現方式中,所述第一存儲設備還包括:
標記生成模塊,用于在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據被從所述第一存儲設備中刪除的時間信息生成所述操作標記;
保存模塊,用于保存所述邏輯地址與所述操作標記之間的對應關系。
本發明實施例提供的技術方案帶來的有益效果是:
通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據改動的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明提供的存儲系統的系統構成圖;
圖2是本發明一個實施例提供的數據恢復方法的方法流程圖;
圖3是本發明另一實施例提供的數據恢復方法的方法流程圖;
圖4是本發明另一實施例提供的邏輯地址、物理地址以及操作標記之間的對應關系示意圖;
圖5是本發明一個實施例提供的第一存儲設備的結構示意圖;
圖6是本發明另一實施例提供的第一存儲設備的結構示意圖;
圖7是本發明又一實施例提供的第一存儲設備的結構示意圖;
圖8是本發明又一實施例提供的第一存儲設備的結構示意圖;
圖9是本發明一個實施例提供的數據恢復方法的方法流程圖;
圖10是本發明另一實施例提供的數據恢復方法的方法流程圖;
圖11是本發明另一實施例提供的邏輯地址、物理地址以及操作標記之間的對應關系示意圖;
圖12是本發明一個實施例提供的第一存儲設備的結構示意圖;
圖13是本發明另一實施例提供的第一存儲設備的結構示意圖;
圖14是本發明又一實施例提供的第一存儲設備的結構示意圖;
圖15是本發明又一實施例提供的第一存儲設備的結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
本發明提供的方案可以用于一種存儲系統中,如圖1所示,該存儲系統至少包括第一存儲設備和第二存儲設備,其中,第二存儲設備為第一存儲設備的備份,用戶每次在第一存儲設備中寫入數據時,第一存儲設備都將寫入的數據發送給第二存儲設備進行備份存儲。此外,第一存儲設備還周期性生成第一存儲設備中的數據的快照,每次生成快照的時間點為一個快照時間點,當第一存儲設備中的數據出錯時,第一存儲設備可以根據在目標快照時間點建立的快照將數據恢復至該目標快照時間點時的狀態。其中,在進行數據恢復時,第一存儲設備通常需要對兩類數據進行恢復:一類是在該目標快照時間點之后寫入第一存儲設備的數據,另一類是在該目標快照時間點之后從第一存儲設備中刪除的數據。本發明下述實施例分別對著兩類數據的恢復過程進行描述。
請參見圖2,其示出了本發明一個實施例提供的數據恢復方法的方法流程圖。該數據恢復方法可以用于如圖1所示的存儲系統中,當第一存儲設備中的數據錯處進行數據恢復時,對第二存儲設備中的數據進行相應的恢復。該數據恢復方法可以包括:
步驟102,第一存儲設備接收數據恢復指令,該數據恢復指令包括目標快照時間點;
步驟104,根據事先保存的邏輯地址與操作標記之間的對應關系確定該邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備或者從所述第一存儲設備中刪除的數據,該操作標記用于指示該邏輯地址中存儲的數據寫入第 一存儲設備的時間信息;
步驟106,判斷該邏輯地址在目標快照時間點是否存儲有歷史數據;
步驟108,若判斷結果為該邏輯地址在目標快照時間點存儲有歷史數據,則獲得該歷史數據;
步驟110,將該歷史數據以及該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據。
綜上所述,本發明實施例提供的數據恢復方法,通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據寫入的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
為了對上述圖2所示的數據恢復方法做進一步的描述,請參見圖3,其示出了本發明另一實施例提供的數據恢復方法的方法流程圖。該數據恢復方法可以用于如圖1所示的存儲系統中,當第一存儲設備中的數據錯處進行數據恢復時,對第二存儲設備中的數據進行相應的恢復。以第一存儲設備基于ROW進行數據存儲為例,該數據恢復方法可以包括:
步驟202,第一存儲設備接收數據恢復指令,該數據恢復指令包括目標快照時間點;
該數據恢復指令可以是管理人員在第一存儲設備上進行快照回滾操作時發出的快照回滾指令。具體的,當第一存儲設備中發生硬盤寫錯誤、文件損壞或程序故障時,管理人員可以向第一存儲設備發出快照回滾指令,該快照回滾指令用于指示第一存儲設備將數據恢復至目標快照時間點時的狀態。
步驟204,根據事先保存的邏輯地址與操作標記之間的對應關系確定該邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據;
其中,該操作標記用于指示該邏輯地址中存儲的數據寫入第一存儲設備的 時間信息。在最近一次生成該第一存儲設備中的數據的快照時,第一存儲設備根據該邏輯地址中存儲的數據寫入該第一存儲設備的時間信息生成該操作標記,并保存該邏輯地址與該操作標記之間的對應關系。當第一存儲設備接收到包含有目標快照時間點的數據恢復指令時,可以根據存儲的該邏輯地址與該操作標記之間的對應關系確定該邏輯地址中的數據是否是在該目標快照時間點之后寫入第一存儲設備的數據。
在基于ROW存儲數據時,第一存儲設備中的寫入數據的情形主要有兩種:新寫入一個邏輯地址中的數據或者對已有邏輯地址中的數據進行修改。每一次生成數據的快照時,第一存儲設備對應存儲各個數據的邏輯地址和物理地址之間的對應關系,同時,第一存儲設備還根據各個邏輯地址中的數據的寫入時間為各個邏輯地址生成對應的操作標記,并存儲生成的操作標記和各個邏輯地址之間的對應關系。其中,該操作標記具體可以是生成快照時的快照時間點,也可以是各個快照的流水號或者事務號等。
具體的,以操作標記為快照時間點為例,假設第一存儲設備先后3次生成數據的快照,每次生成快照時存儲的各個邏輯地址與物理地址以及操作標記之間的對應關系如圖4所示。其中,在t1時刻之前,第一存儲設備中存儲有a、b、c和d四個數據,該四個數據的邏輯地址分別為L1、L2、L3和L4,物理地址分別為P1、P2、P3和P4。在t1時刻時,第一存儲設備首次生成數據的快照,同時生成各個邏輯地址對應的操作標記為t1,該操作標記t1用于指示對應的邏輯地址中的數據的寫入時間在t1時刻之前。在t1時刻到t2時刻之間的時間段內,邏輯地址為L1的數據被修改為a’,對應的物理地址修改為P1’,其余邏輯地址對應的數據和物理地址不變,在t2時刻時,第一存儲設備第二次生成數據的快照,同時生成邏輯地址L1對應的操作標記為t2,生成其余邏輯地址對應的操作標記為t1,其中,該操作標記t2用于指示邏輯地址L1中的數據的寫入時間在t1時刻到t2時刻之間。在t2時刻到t3時刻之間的時間段內,邏輯地址為L1、L2、L3和L4的數據保持不變,同時新增一個邏輯地址為L5,對應的數據為e,其物理地址為P5;在t3時刻時,第一存儲設備第三次生成數據的快照,同時生成邏輯地址L5對應的操作標記為t3,生成邏輯地址L1對應的操作標記為t2,生成其余邏輯地址對應的操作標記為t1,其中,該操作標記t3用于指示邏輯地址L5中的數據的寫入時間在t2時刻到t3時刻之間。
在t3時刻之后,當第一存儲設備接收到數據恢復指令時,若該數據恢復指令中的目標快照時間點為t1,此時,第一存儲設備獲取t3時刻生成的各個邏輯地址與操作標記之間的對應關系,并確定對應的操作標記大于t1的邏輯地址中的數據為t1時刻之后寫入第一存儲設備的數據,即邏輯地址為L1和L5中的數據為t1時刻之后寫入第一存儲設備的數據。
此外,第一存儲設備每次寫入數據或者刪除數據時,都會與第二存儲設備進行數據同步。比如,當第一存儲設備新寫入一個邏輯地址對應的數據或者對原有邏輯地址中的數據進行修改時,將寫入的數據發送給第二存儲設備,由第二存儲設備進行數據更新;當第一存儲設備將原有邏輯地址中的數據刪除時,向第二存儲設備發送刪除通知,由第二存儲設備將對應的邏輯地址中的數據刪除。
步驟206,判斷該邏輯地址在目標快照時間點是否存儲有歷史數據;若是,進入步驟208,否則,進入步驟212;
第一存儲設備確定某一邏輯地址中的數據為在目標快照時間點之后寫入第一存儲設備的數據之后,可以獲取目標快照時間點時生成的各個邏輯地址與物理地址之間的對應關系,并根據目標快照時間點時生成的各個邏輯地址與物理地址之間的對應關系判斷該邏輯地址在該目標快照時間點時是否對應有物理地址,若目標快照時間點時生成的各個邏輯地址與物理地址之間的對應關系表明在目標快照時間點時該邏輯地址對應有物理地址,則判斷出該邏輯地址在目標快照時間點存儲有歷史數據;若目標快照時間點時生成的各個邏輯地址與物理地址之間的對應關系表明在目標快照時間點時該邏輯地址未對應有物理地址或者在目標快照時間點時不存在該邏輯地址,則判斷出該邏輯地址在目標快照時間點未存儲歷史數據。
步驟208,獲得該歷史數據;
當判斷出該邏輯地址在目標快照時間點時存儲有歷史數據時,第一存儲設備獲取該邏輯地址在目標快照時間點時對應的物理地址,并根據該物理地址獲得該歷史數據。
以圖4為例,其中邏輯地址L1和L4在t1時刻時對應有物理地址,則判斷邏輯地址L1和L4在t1時刻存儲有歷史數據,第一存儲設備將t1時刻時邏輯地址L1對應的物理地址P1中存儲的數據a獲得為邏輯地址L1的歷史數據,并將 t1時刻時邏輯地址L4對應的物理地址P4中存儲的數據d獲得為邏輯地址L4的歷史數據。
步驟210,將該歷史數據以及該邏輯地址發送給第二存儲設備;
第一存儲設備將該歷史數據以及該邏輯地址發送給第二存儲設備,使得第二存儲設備將自身存儲的該邏輯地址對應的數據替換為該歷史數據,已完成數據的恢復。
以圖4為例,第一存儲設備將邏輯地址L1和數據a發送給第二存儲設備,并將邏輯地址L4和數據d發送給第二存儲設備,使得第二存儲設備將第二存儲設備中的邏輯地址L1和L4對應的數據替換為a和d,從而完成數據的恢復。
步驟212,將該邏輯地址以及與該邏輯地址對應的刪除指示發送給第二存儲設備;
當判斷出該邏輯地址在目標快照時間點時存儲有歷史數據時,第一存儲設備將該邏輯地址以及與該邏輯地址對應的刪除指示發送給第二存儲設備,使得第二存儲設備在存儲有與該邏輯地址對應的數據時,根據該刪除指示將第二存儲設備中存儲的與該邏輯地址對應的數據刪除。其中,該刪除指示可以是一個用于指示第二存儲設備刪除數據的刪除代碼,第二存儲設備接收到該刪除代碼后,檢測第二存儲設備中是否存儲有與該邏輯地址對應的數據,并在檢測出第二存儲設備中存儲有與該邏輯地址對應的數據時,將第二存儲設備中的該邏輯地址對應的數據刪除。
依舊以圖4為例,其中,t1時刻時第一存儲設備中不存在邏輯地址L5,即表示邏輯地址L5在t1時刻時未存儲有歷史數據,此時,第一存儲設備向第二存儲設備發送邏輯地址L5和刪除代碼。由于在t3時刻到第一存儲設備接收到數據恢復指令的這一段時間內,該邏輯地址L5中的歷史數據可能被從第一存儲設備和第二存儲設備中刪除,因此,該第二存儲設備接收到該刪除代碼后,首先檢測本地是否存儲有邏輯地址L5對應的數據,若有,則將第二存儲設備中與邏輯地址L5對應的數據刪除。
綜上所述,本發明實施例提供的數據恢復方法,通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得 第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據寫入的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
請參見圖5,其示出了本發明一個實施例提供的第一存儲設備的結構示意圖,該第一存儲設備用于如圖1所示的存儲系統中,且該第一存儲設備可以用于執行圖2或圖3所示的數據恢復方法。該第一存儲設備可以包括:
指令接收模塊301,用于接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
確定模塊302,用于根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據,所述操作標記用于指示所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息;
判斷模塊303,用于判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
獲得模塊304,用于若所述判斷模塊303的判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
第一發送模塊305,用于將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
綜上所述,本發明實施例提供的第一存儲設備,通過在接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據寫入的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少 復制時間,節約帶寬資源的目的。
為了對上述圖5所示的第一存儲設備做進一步的描述,請參見圖6,其示出了本發明另一實施例提供的第一存儲設備的結構示意圖。該第一存儲設備用于如圖1所示的存儲系統中,且該第一存儲設備可以用于執行圖2或圖3所示的數據恢復方法。該第一存儲設備可以包括:
指令接收模塊401,用于接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
確定模塊402,用于根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據,所述操作標記用于指示所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息;
判斷模塊403,用于判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
獲得模塊404,用于若所述判斷模塊403的判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
第一發送模塊405,用于將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
所述第一存儲設備還包括:
第二發送模塊406,用于若所述判斷模塊403的判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。
所述獲得模塊404,包括:
地址獲取單元404a,獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
數據獲得單元404b,用于根據所述物理地址獲得所述歷史數據。
所述第一存儲設備還包括:
標記生成模塊407,用于在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息生成所述操作標記;
保存模塊408,用于保存所述邏輯地址與所述操作標記之間的對應關系。
綜上所述,本發明實施例提供的第一存儲設備,通過在接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據寫入的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
請參見圖7,其示出了本發明又一實施例提供的第一存儲設備的結構示意圖,該第一存儲設備用于如圖1所示的存儲系統中,且該第一存儲設備可以用于執行圖2或圖3所示的數據恢復方法。該第一存儲設備可以包括:
至少一個I/O接口001、至少一個處理器002,比如CPU、存儲器003和顯示器004;存儲器003可能包含高速Ram存儲器,也可能還包括非不穩定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器003可選的可以包含至少一個位于遠離前述處理器002的存儲裝置。在一些實施方式中,存儲器003存儲了如下的元素,模塊或者數據結構,或者他們的子集,或者他們的擴展集:
操作系統0031,包含各種程序,用于實現各種基礎業務以及處理基于硬件的任務;
應用模塊0032,包含一個或多個模塊,所述一個或多個模塊被配置由所述一個或多個處理器002執行,所述一個或多個模塊具有如下功能:
所述第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中 存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據,所述操作標記用于指示所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息;
判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
若判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
綜上所述,本發明實施例提供的第一存儲設備,通過在接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據寫入的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
為了對上述圖7所示的第一存儲設備做進一步的描述,請參見圖8,其示出了本發明又一實施例提供的第一存儲設備的結構示意圖。該第一存儲設備用于如圖1所示的存儲系統中,且該第一存儲設備可以用于執行圖2或圖3所示的數據恢復方法。該第一存儲設備可以包括:
至少一個I/O接口005、至少一個處理器006,比如CPU、存儲器007和顯示器008;存儲器007可能包含高速Ram存儲器,也可能還包括非不穩定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器007可選的可以包含至少一個位于遠離前述處理器006的存儲裝置。在一些實施方式中,存儲器007存儲了如下的元素,模塊或者數據結構,或者他們的子集,或者他們的擴展集:
操作系統0071,包含各種程序,用于實現各種基礎業務以及處理基于硬件 的任務;
應用模塊0072,包含一個或多個模塊,所述一個或多個模塊被配置由所述一個或多個處理器006執行,所述一個或多個模塊具有如下功能:
所述第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入所述第一存儲設備的數據,所述操作標記用于指示所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息;
判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
若判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
所述功能還包括:
若判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。
所述獲得所述歷史數據,包括:
獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
根據所述物理地址獲得所述歷史數據。
所述功能還包括:
在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據寫入所述第一存儲設備的時間信息生成所述操作標記;
保存所述邏輯地址與所述操作標記之間的對應關系。
綜上所述,本發明實施例提供的第一存儲設備,通過在接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后寫入第一存儲設備的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史 數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據寫入的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
請參見圖9,其示出了本發明一個實施例提供的數據恢復方法的方法流程圖。該數據恢復方法可以用于如圖1所示的存儲系統中,當第一存儲設備中的數據錯處進行數據恢復時,對第二存儲設備中的數據進行相應的恢復。該數據恢復方法可以包括:
步驟502,第一存儲設備接收數據恢復指令,該數據恢復指令包括目標快照時間點;
步驟504,根據事先保存的邏輯地址與操作標記之間的對應關系確定該邏輯地址中存儲的數據是在目標快照時間點之后被從所述第一存儲設備中刪除的數據,該操作標記用于指示該邏輯地址中存儲的數據被從第一存儲設備中刪除的時間信息;
步驟506,判斷該邏輯地址在目標快照時間點是否存儲有歷史數據;
步驟508,若判斷結果為該邏輯地址在目標快照時間點存儲有歷史數據,則獲得該歷史數據;
步驟510,將該歷史數據以及該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據。
綜上所述,本發明實施例提供的數據恢復方法,通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后被從第一存儲設備中刪除的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據刪除的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備 的問題,達到減少復制時間,節約帶寬資源的目的。
為了對上述圖9所示的數據恢復方法做進一步的描述,請參見圖10,其示出了本發明另一實施例提供的數據恢復方法的方法流程圖。該數據恢復方法可以用于如圖1所示的存儲系統中,當第一存儲設備中的數據錯處進行數據恢復時,對第二存儲設備中的數據進行相應的恢復。以第一存儲設備基于ROW進行數據存儲為例,該數據恢復方法可以包括:
步驟602,第一存儲設備接收數據恢復指令,該數據恢復指令包括目標快照時間點;
該數據恢復指令可以是管理人員在第一存儲設備上進行快照回滾操作時發出的快照回滾指令。具體的,當第一存儲設備中發生硬盤寫錯誤、文件損壞或程序故障時,管理人員可以向第一存儲設備發出快照回滾指令,該快照回滾指令用于指示第一存儲設備將數據恢復至目標快照時間點時的狀態。
步驟604,根據事先保存的邏輯地址與操作標記之間的對應關系確定該邏輯地址中存儲的數據是在目標快照時間點之后被從第一存儲設備中刪除的數據;
其中,該操作標記用于指示該邏輯地址中存儲的數據被從第一存儲設備中刪除的時間信息。在最近一次生成該第一存儲設備中的數據的快照時,第一存儲設備根據該邏輯地址中存儲的數據被從該第一存儲設備中刪除的時間信息生成該操作標記,并保存該邏輯地址與該操作標記之間的對應關系。當第一存儲設備接收到包含有目標快照時間點的數據恢復指令時,可以根據存儲的該邏輯地址與該操作標記之間的對應關系確定該邏輯地址中的數據是否是在該目標快照時間點之后被從第一存儲設備中刪除的數據。
在基于ROW存儲數據過程中,每一次生成數據的快照時,第一存儲設備對應存儲各個數據的邏輯地址和物理地址之間的對應關系,同時,第一存儲設備還根據各個邏輯地址中的數據的刪除時間為各個邏輯地址生成對應的操作標記,并存儲生成的操作標記和各個邏輯地址之間的對應關系。其中,該操作標記具體可以是生成快照時的快照時間點,也可以是各個快照的流水號或者事務號等。
具體的,以操作標記為快照時間點為例,假設第一存儲設備先后2次生成數據的快照,每次生成快照時存儲的各個邏輯地址與物理地址以及操作標記之 間的對應關系如圖11所示。其中,在t1時刻之前,第一存儲設備中存儲有a、b、c和d四個數據,該四個數據的邏輯地址分別為L1、L2、L3和L4,物理地址分別為P1、P2、P3和P4。在t1時刻時,第一存儲設備首次生成數據的快照,同時生成各個邏輯地址對應的操作標記為t1,該操作標記t1用于指示對應的邏輯地址中的數據的寫入時間在t1時刻之前。在t1時刻到t2時刻之間的時間段內,邏輯地址為L1、L2和L3的數據保持不變,邏輯地址為L4對應的數據d被刪除;在t2時刻時,第一存儲設備第二次生成數據的快照,同時生成邏輯地址L4對應的操作標記為t2,生成其余邏輯地址對應的操作標記為t1,其中,該操作標記t2用于指示邏輯地址L4中的數據的刪除時間在t2時刻到t3時刻之間。
在t2時刻之后,當第一存儲設備接收到數據恢復指令時,若該數據恢復指令中的目標快照時間點為t1,此時,第一存儲設備獲取t2時刻生成的各個邏輯地址與操作標記之間的對應關系,并確定對應的操作標記大于t1的邏輯地址中的數據為t1時刻之后寫入第一存儲設備或者從第一存儲設備刪除的數據,即邏輯地址L4中的數據為t1時刻之后被從第一存儲設備刪除的數據。
此外,第一存儲設備每次寫入數據或者刪除數據時,都會與第二存儲設備進行數據同步。比如,當第一存儲設備新寫入一個邏輯地址對應的數據或者對原有邏輯地址中的數據進行修改時,將寫入的數據發送給第二存儲設備,由第二存儲設備進行數據更新;當第一存儲設備將原有邏輯地址中的數據刪除時,向第二存儲設備發送刪除通知,由第二存儲設備將對應的邏輯地址中的數據刪除。
步驟606,判斷該邏輯地址在目標快照時間點是否存儲有歷史數據;若是,進入步驟608,否則,進入步驟612;
第一存儲設備確定某一邏輯地址中的數據為在目標快照時間點之后被從第一存儲設備中刪除的數據之后,可以獲取目標快照時間點時生成的各個邏輯地址與物理地址之間的對應關系,并根據目標快照時間點時生成的各個邏輯地址與物理地址之間的對應關系判斷該邏輯地址在該目標快照時間點時是否對應有物理地址,若目標快照時間點時生成的各個邏輯地址與物理地址之間的對應關系表明在目標快照時間點時該邏輯地址對應有物理地址,則判斷出該邏輯地址在目標快照時間點存儲有歷史數據;若目標快照時間點時生成的各個邏輯地址與物理地址之間的對應關系表明在目標快照時間點時該邏輯地址未對應有物理 地址或者在目標快照時間點時不存在該邏輯地址,則判斷出該邏輯地址在目標快照時間點未存儲歷史數據。
步驟608,獲得該歷史數據;
當判斷出該邏輯地址在目標快照時間點時存儲有歷史數據時,第一存儲設備獲取該邏輯地址在目標快照時間點時對應的物理地址,并根據該物理地址獲得該歷史數據。
以圖11為例,其中邏輯地址L4在t1時刻時對應有物理地址,則判斷邏輯地址L4在t1時刻存儲有歷史數據,第一存儲設備將t1時刻時邏輯地址L4對應的物理地址P4中存儲的數據d獲得為邏輯地址L4的歷史數據。
步驟610,將該歷史數據以及該邏輯地址發送給第二存儲設備;
第一存儲設備將該歷史數據以及該邏輯地址發送給第二存儲設備,使得第二存儲設備將自身存儲的該邏輯地址對應的數據替換為該歷史數據,已完成數據的恢復。
以圖4為例,第一存儲設備將邏輯地址L4和數據d發送給第二存儲設備,使得第二存儲設備將第二存儲設備中的邏輯地址L4對應的數據替換為d,從而完成數據的恢復。
步驟612,將該邏輯地址以及與該邏輯地址對應的刪除指示發送給第二存儲設備;
當判斷出該邏輯地址在目標快照時間點時存儲有歷史數據時,第一存儲設備將該邏輯地址以及與該邏輯地址對應的刪除指示發送給第二存儲設備,使得第二存儲設備在存儲有與該邏輯地址對應的數據時,根據該刪除指示將第二存儲設備中存儲的與該邏輯地址對應的數據刪除。其中,該刪除指示可以是一個用于指示第二存儲設備刪除數據的刪除代碼。
由于在第一存儲設備最近一次生成數據的快照以及邏輯地址與操作標記之間的對應關系時刻至第一存儲設備接收到數據恢復指令之間的一段時間內,第一存儲設備中可能重新寫入該邏輯地址中的數據并備份至第二存儲設備,因此,第二存儲設備接收到該刪除代碼后,首先檢測第二存儲設備中是否存儲有與該邏輯地址對應的數據,并在檢測出第二存儲設備中存儲有與該邏輯地址對應的數據時,將第二存儲設備中的該邏輯地址對應的數據刪除。
綜上所述,本發明實施例提供的數據恢復方法,通過在第一存儲設備接收 包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后被從第一存儲設備中刪除的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據刪除的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
請參見圖12,其示出了本發明一個實施例提供的第一存儲設備的結構示意圖,該第一存儲設備用于如圖1所示的存儲系統中,且該第一存儲設備可以用于執行圖9或圖10所示的數據恢復方法。該第一存儲設備可以包括:
指令接收模塊701,用于接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
確定模塊702,用于根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后被從所述第一存儲設備中刪除的數據,所述操作標記用于指示所述邏輯地址中存儲的數據從所述第一存儲設備中刪除的時間信息;
判斷模塊703,用于判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
獲得模塊704,用于若所述判斷模塊703的判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
第一發送模塊705,用于將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
綜上所述,本發明實施例提供的第一存儲設備,通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后被從第一存儲設備中刪除的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該 歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據刪除的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
為了對上述圖12所示的第一存儲設備做進一步的描述,請參見圖13,其示出了本發明另一實施例提供的第一存儲設備的結構示意圖。該第一存儲設備用于如圖1所示的存儲系統中,且該第一存儲設備可以用于執行圖9或圖10所示的數據恢復方法。該第一存儲設備可以包括:
指令接收模塊801,用于接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
確定模塊802,用于根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后被從所述第一存儲設備中刪除的數據,所述操作標記用于指示所述邏輯地址中存儲的數據從所述第一存儲設備中刪除的時間信息;
判斷模塊803,用于判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
獲得模塊804,用于若所述判斷模塊803的判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
第一發送模塊805,用于將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
所述第一存儲設備還包括:
第二發送模塊806,用于若所述判斷模塊803的判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。
所述獲得模塊804,包括:
地址獲取單元804a,獲取所述邏輯地址在所述目標快照時間點時對應的物 理地址;
數據獲得單元804b,用于根據所述物理地址獲得所述歷史數據。
所述第一存儲設備還包括:
標記生成模塊807,用于在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據從所述第一存儲設備中刪除的時間信息生成所述操作標記;
保存模塊808,用于保存所述邏輯地址與所述操作標記之間的對應關系。
綜上所述,本發明實施例提供的第一存儲設備,通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后被從第一存儲設備中刪除的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據刪除的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
請參見圖14,其示出了本發明又一實施例提供的第一存儲設備的結構示意圖,該第一存儲設備用于如圖1所示的存儲系統中,且該第一存儲設備可以用于執行圖9或圖10所示的數據恢復方法。該第一存儲設備可以包括:
至少一個I/O接口009、至少一個處理器010,比如CPU、存儲器011和顯示器012;存儲器011可能包含高速Ram存儲器,也可能還包括非不穩定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器011可選的可以包含至少一個位于遠離前述處理器010的存儲裝置。在一些實施方式中,存儲器011存儲了如下的元素,模塊或者數據結構,或者他們的子集,或者他們的擴展集:
操作系統0111,包含各種程序,用于實現各種基礎業務以及處理基于硬件的任務;
應用模塊0112,包含一個或多個模塊,所述一個或多個模塊被配置由所述一個或多個處理器010執行,所述一個或多個模塊具有如下功能:
所述第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后寫入被從所述第一存儲設備中刪除的數據,所述操作標記用于指示所述邏輯地址中存儲的數據從所述第一存儲設備中刪除的時間信息;
判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
若判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
綜上所述,本發明實施例提供的第一存儲設備,通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后被從第一存儲設備中刪除的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據刪除的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
為了對上述圖14所示的第一存儲設備做進一步的描述,請參見圖15,其示出了本發明又一實施例提供的第一存儲設備的結構示意圖。該第一存儲設備用于如圖1所示的存儲系統中,且該第一存儲設備可以用于執行圖9或圖10所示的數據恢復方法。該第一存儲設備可以包括:
至少一個I/O接口013、至少一個處理器014,比如CPU、存儲器015和顯示器016;存儲器015可能包含高速Ram存儲器,也可能還包括非不穩定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器015可選的可以包含至少一個位于遠離前述處理器014的存儲裝置。在一些實施方式中,存儲 器007存儲了如下的元素,模塊或者數據結構,或者他們的子集,或者他們的擴展集:
操作系統0151,包含各種程序,用于實現各種基礎業務以及處理基于硬件的任務;
應用模塊0152,包含一個或多個模塊,所述一個或多個模塊被配置由所述一個或多個處理器014執行,所述一個或多個模塊具有如下功能:
所述第一存儲設備接收數據恢復指令,所述數據恢復指令包括目標快照時間點;
根據事先保存的邏輯地址與操作標記之間的對應關系確定所述邏輯地址中存儲的數據是在所述目標快照時間點之后被從所述第一存儲設備中刪除的數據,所述操作標記用于指示所述邏輯地址中存儲的數據從所述第一存儲設備中刪除的時間信息;
判斷所述邏輯地址在所述目標快照時間點是否存儲有歷史數據;
若判斷結果為所述邏輯地址在所述目標快照時間點存儲有所述歷史數據,則獲得所述歷史數據;
將所述歷史數據以及所述邏輯地址發送給所述第二存儲設備,使得所述第二存儲設備將所述第二存儲設備中存儲的與所述邏輯地址對應的數據恢復成所述歷史數據。
所述功能還包括:
若判斷結果為所述邏輯地址在所述目標快照時間點未存儲有所述歷史數據,則將所述邏輯地址以及與所述邏輯地址對應的刪除指示發送給所述第二存儲設備,使得所述第二存儲設備在存儲有與所述邏輯地址對應的數據時,根據所述刪除指示將所述第二存儲設備中存儲的與所述邏輯地址對應的數據刪除。
所述獲得所述歷史數據,包括:
獲取所述邏輯地址在所述目標快照時間點時對應的物理地址;
根據所述物理地址獲得所述歷史數據。
所述功能還包括:
在最近一次生成所述第一存儲設備中的數據的快照時,根據所述邏輯地址中存儲的數據從所述第一存儲設備中刪除的時間信息生成所述操作標記;
保存所述邏輯地址與所述操作標記之間的對應關系。
綜上所述,本發明實施例提供的第一存儲設備,通過在第一存儲設備接收包括目標快照時間點的數據恢復指令,確定邏輯地址中存儲的數據是在目標快照時間點之后被從第一存儲設備中刪除的數據,并判斷出該邏輯地址在目標快照時間點存儲有歷史數據后,將該歷史數據和該邏輯地址發送給第二存儲設備,使得第二存儲設備將第二存儲設備中存儲的與該邏輯地址對應的數據恢復成該歷史數據,即第一存儲設備在進行數據恢復時,只需要向第二存儲設備發送在目標快照時間點之后發生數據刪除的邏輯地址在目標快照時間點時對應的歷史數據,解決了現有技術中需要將主存儲設備中所有數據全部復制給從存儲設備的問題,達到減少復制時間,節約帶寬資源的目的。
需要說明的是:上述實施例提供的第一存儲設備在進行數據恢復時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將設備的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的第一存儲設備與數據恢復的方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

關于本文
本文標題:數據恢復方法及設備.pdf
鏈接地址:http://www.pqsozv.live/p-6180737.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影