數據複製方法及存儲系統的製作方法
2023-10-08 13:47:59 1
數據複製方法及存儲系統的製作方法
【專利摘要】本發明實施例提供了一種數據複製方法及存儲系統。該方法應用於至少包括第一存儲設備以及第二存儲設備的存儲系統中。該方法包括:第一存儲系統確定複製信息,該複製信息用於指示所述第一存儲系統在當前複製任務中需要複製到第二存儲系統的數據;第一存儲系統根據該複製信息確定第一複製子信息及第二複製子信息;所述第一存儲設備根據所述第一複製子信息將需要由第一存儲設備複製到第二存儲系統的數據複製到第二存儲系統;第二存儲設備根據第二複製子信息將需要由第二存儲設備複製到第二存儲系統的數據複製到第二存儲系統。該數據複製方法能夠提高第一存儲系統與第二存儲系統之間的複製效率。
【專利說明】數據複製方法及存儲系統
【技術領域】
[0001]本發明涉及存儲【技術領域】,尤其涉及一種數據複製方法及存儲系統。
【背景技術】
[0002]為了保護數據的安全,出於災備(Disaster Recovery)的目的,各存儲廠商會通過建立異地容災中心來實現數據的遠程備份,以便能夠在災難(例如火災、地震等)發生之後確保原有的數據不會丟失或者遭到破壞,並保證關鍵業務在允許的時間範圍內恢復運行,儘可能減少災難帶來的損失。
[0003]當前主要的容災系統主要包括:兩中心容災系統和三中心(3Data Center, 3DC)容災系統。兩中心容災系統通過建立兩個數據中心來實現容災,其中,主數據中心用於承擔用戶的業務,備份數據中心用於備份主數據中心的數據、配置、業務等。當主數據中心發生災難時,備份數據中心可以接管主數據中心的業務。3DC容災系統是通過部署在三個數據中心的存儲系統來實現容災。通常,在3DC容災系統中,三個數據中心可以分別稱為生產站點、一級站點和二級站點,。通常,一級站點和二級站點屬於災備站點,生產站點與一級站點可以處於同一個城市的兩個不同位置,而二級站點則與生產站點位於不同的城市。現有的3DC容災系統通常是在三個數據中心之間通過同步遠程複製技術以及異步遠程複製技術來實現容災。由於3DC容災系統的可靠性和可擴展性比較好,因此,3DC容災系統的適用範圍也越來越廣。
[0004]然而,現有的3DC容災系統中,當需要將數據複製到二級站點時,通常是由生產站點或一級站點將數據複製到二級站點,數據複製效率不高。
【發明內容】
[0005]本發明實施例中提供的一種數據複製方法以及存儲系統,能夠提高複製效率。
[0006]第一方面,本發明實施例提供一種數據複製方法,該方法至少包括第一存儲設備以及第二存儲設備的存儲系統中,該方法包括:
第一存儲系統確定複製信息,所述複製信息用於指示所述第一存儲系統在當前複製任務中需要複製到第二存儲系統的數據,其中,所述第一存儲系統中的第一存儲設備與所述第二存儲設備存儲有相同的數據,所述第一存儲系統與所述第二存儲系統通過異步複製技術實現數據備份;
所述第一存儲系統根據所述複製信息確定第一複製子信息及第二複製子信息,其中,所述第一複製子信息用於指示在所述當前複製任務中需要由所述第一存儲設備複製到所述第二存儲系統的數據,所述第二複製子信息用於指示在所述當前複製任務中需要由所述第二存儲設備複製到所述第二存儲系統的數據,且所述第一複製子信息指示的數據與所述第二複製子信息指示的數據不同;
所述第一存儲設備根據所述第一複製子信息將所述需要由所述第一存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統; 所述第二存儲設備根據所述第二複製子信息將所述需要由所述第二存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統。
[0007]在第一方面的第一種可能的實現方式中,所述第一存儲設備根據所述第一複製子信息將所述需要由所述第一存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統包括:
所述第一存儲設備根據所述第一複製子信息將第一源數據卷中存儲的所述需要由所述第一存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統的目標數據卷中;
所述第二存儲設備根據所述第二複製子信息將第二源數據卷中存儲的所述需要由所述第二存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統的所述目標數據卷中;
其中,所述第一源數據卷中存儲的數據與所述第二源數據卷中存儲的數據相同。
[0008]結合第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式中,所述第一存儲系統確定複製信息包括:
所述第一存儲設備向所述第二存儲設備發送複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識和所述目標數據卷的標識;
所述第二存儲設備根據所述第一源數據卷的標識、所述目標數據卷的標識以及預設的複製關係確定所述第二存儲設備中的所述第二源數據卷,其中,所述複製關係中包含有所述第一源數據卷、所述第二源數據卷與所述目標數據卷的對應關係;
所述第二存儲設備根據確定的所述第二源數據卷中存儲的數據確定所述複製信息; 所述第一存儲設備根據所述第一源數據卷中存儲的數據確定所述複製信息。
[0009]結合第一方面的第一種可能的實現的方式,在第三種可能實現的方式中,所述第一存儲系統確定複製信息包括:
所述第一存儲系統中的所述第一存儲設備根據所述第一源數據卷中存儲的數據確定所述複製信息;
所述第一存儲設備向所述第二存儲設備發送複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識、目標數據卷的標識以及所述複製信息;
所述第二存儲設備根據所述第一源數據卷的標識、目標數據卷的標識以及預設的複製關係確定與所述複製信息對應的第二源數據卷,其中,所述複製關係中包含有所述第一源數據卷、所述目標數據卷與所述第二源數據卷的對應關係。
[0010]結合第一方面或第一方面的第一種至第三種任意一種可能的實現方式,在第四種可能的實現方式中,系統根據所述複製信息確定第一複製子信息及第二複製子信息包括:所述第一存儲設備根據所述複製信息以及預設的複製策略確定所述第一複製子信息;所述第二存儲設備根據所述複製信息以及所述複製策略確定所述第二複製子信息。
[0011]結合第一方面或第一方面的第一種至第四種任意一種可能的實現方式,在第五種可能的實現方式中,所述第一存儲系統根據所述複製信息確定第一複製子信息及第二複製子信息包括:所述第一存第一存儲設備接收所述第二存儲設備的複製協商請求,所述複製協商請求中至少包含有所述第二存儲設備與所述第二存儲系統的鏈路帶寬信息;所述第一存儲設備根據所述鏈路帶寬信息確定所述第一複製子信息以及所述第二複製子信息;所述第一存儲設備向所述第二存儲設備發送所述第二複製子信息。
[0012]結合第一方面或第一方面的第一種至第五種中任意一種可能的實現方式,在第六種可能的實現方式中,所述複製信息由所述第一複製子信息以及所述第二複製子信息組成,所述方法還包括:在所述當前複製任務的執行過程中,所述第一存儲設備根據已複製完成的數據生成第一複製進度信息;所述第一存儲設備將所述第一複製進度信息發送給所述第二存儲設備;當所述第一存儲設備故障時,所述第二存儲設備根據所述第一複製進度信息、第二複製子信息以及所述複製信息確定所述第一存儲設備尚未複製完成的數據;所述第二存儲設備將所述第一存儲設備尚未複製完成的數據複製到所述第二存儲系統。
[0013]第二方面,本發明實施例提供一種數據複製方法,該方法應用於存儲系統中,包括:
第二存儲系統接收第一存儲系統發送的複製信息,所述複製信息用於指示所述第一存儲系統在當前複製任務中需要複製到所述第二存儲系統的數據,其中,所述第一存儲系統中至少包括第一存儲設備以及第二存儲設備,所述第一存儲設備與所述第二存儲設備中存儲有相同的數據,所述第一存儲系統與所述第二存儲系統通過異步複製技術實現數據備份;
所述第二存儲系統根據所述複製信息向所述第一存儲設備發送第一獲取請求,所述第一獲取請求中包含有所述第二存儲系統在所述當前複製任務中需要向所述第一存儲設備獲取的數據的信息;
所述第二存儲系統根據所述複製信息向所述第二存儲設備發送第二獲取請求,所述第二獲取請求中包含有所述第二存儲系統在所述當前複製任務中需要向所述第二存儲設備獲取的數據的信息,其中,所述第一獲取請求要獲取的數據與所述第二獲取請求要獲取的數據不同;
所述第二存儲系統接收所述第一存儲設備根據所述第一獲取請求發送的數據;
所述第二存儲系統接收所述第二存儲設備根據所述第二獲取請求發送的數據。
[0014]在第二方面的第一種實現方式中,所述第一獲取請求中包含的要獲取的數據的信息至少包括所述第一存儲設備中的第一源數據卷的標識以及所述第一獲取請求要獲取的數據地址;
所述第二獲取請求中包含的要獲取的數據的信息至少包括第二存儲設備中的第二源數據卷的標識以及所述第二獲取請求要獲取的數據地址;
其中,所述第一源數據卷與所述第二源數據卷中均存儲有所述第一存儲系統在當前複製任務中需要複製到所述第二存儲系統的數據,且所述第一源數據卷與所述第二源數據卷中存儲的數據相同。
[0015]結合第二方面的第一種可能的實施方式,在第二方面的第二種可能的實施方式中,所述第二存儲系統接收第一存儲系統發送的複製信息包括:
所述第二存儲系統接收所述第一存儲系統發送的複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識以及根據所述第一源數據卷存儲的數據確定的所述複製信息;
所述方法還包括:所述第二存儲系統根據所述第一源數據卷的標識以及預設的複製關係確定所述第二存儲設備中的第二源數據卷及所述第二存儲系統中的目標數據卷;其中,所述複製關係中包含有所述第一源數據卷、所述第二源數據卷與所述目標數據卷的對應關係,所述目標數據卷用於存儲所述第二存儲系統在所述當前複製任務中接收的數據。
[0016]結合第二方面、第二方面的第一種或第二種可能的實現方式,在第三種可能的實現方式中,所述第二存儲系統根據所述複製信息向所述第一存儲設備發送第一獲取請求包括:
所述第二存儲系統根據所述複製信息以及所述第二存儲系統與所述第一存儲設備之間的鏈路帶寬確定需要向所述第一存儲設備獲取的數據;
所述第二存儲系統根據確定的所述需要向所述第一存儲設備獲取的數據向所述第一存儲設備發送所述第一獲取請求;
所述第二存儲系統根據所述複製信息向所述第二存儲設備發送第二獲取請求包括:所述第二存儲系統根據所述複製信息以及所述第二存儲系統與所述第二存儲設備之間的鏈路帶寬確定需要向所述第二存儲設備獲取的數據;
所述第二存儲系統根據確定的所述需要向所述第二存儲設備獲取的數據向所述第二存儲設備發送所述第二獲取請求。
[0017]第三方面,本發明實施例提供一種存儲系統,該存儲系統至少包括第一存儲設備以及第二存儲設備,所述第一存儲設備與所述第二存儲設備存儲有相同的數據,其中:
所述存儲系統,用於確定複製信息,所述複製信息用於指示所述存儲系統在當前複製任務中需要複製到其他存儲系統的數據,所述存儲系統與所述其他存儲系統通過異步複製技術實現數據備份;
所述存儲系統,還用於根據所述複製信息確定第一複製子信息以及所述第二複製子信息,其中,所述第一複製子信息用於指示在所述當前複製任務中需要由所述第一存儲設備複製到所述其他存儲系統的數據,所述第二複製子信息用於指示在所述當前複製任務中需要由所述第二存儲設備複製到所述其他存儲系統的數據,且所述第一複製子信息指示的數據與所述第二複製子信息指示的數據不同;
所述第一存儲設備,用於根據所述第一複製子信息將所述需要由所述第一存儲設備複製到所述其他存儲系統的數據複製到所述其他存儲系統;
所述第二存儲設備,用於根據所述第二複製子信息將所述需要由所述第二存儲設備複製到所述其他存儲系統的數據複製到所述其他存儲系統。
[0018]在第三方面的第一種可能的實現方式中,所述第一存儲設備,用於根據所述第一複製子信息將第一源數據卷中存儲的所述需要由所述第一存儲設備複製到所述其他存儲系統的數據複製到所述其他存儲系統的目標數據卷中;
所述第一存儲設備,用於根據所述第二複製子信息將第二源數據卷中存儲的所述需要由所述第二存儲設備複製到所述其他存儲系統的數據複製到所述其他存儲系統的所述目標數據卷中;
其中,所述第一源數據卷中存儲的數據與所述第二源數據卷中存儲的數據相同。
[0019]結合第三方面的第一種可能的實現方式,在第三方面的第二種可能的實現方式中,所述第一存儲設備,還用於向所述第二存儲設備發送複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識和所述目標數據卷的標識;
所述第二存儲設備,還用於根據所述第一源數據卷的標識、所述目標數據卷的標識以及預設的複製關係確定所述第二存儲設備中的所述第二源數據卷,並根據確定的所述第二源數據卷中存儲的數據確定所述複製信息,其中,所述複製關係中包含有所述第一源數據卷、所述目標數據卷與所述第二源數據卷的對應關係;
所述第一存儲設備,還用於根據所述第一源數據卷中存儲的數據確定所述複製信息。
[0020]結合第三方面的第一種可能的實現方式,在第三方面的第三種可能的實現方式中,所述第一存儲設備,還用於根據所述第一源數據卷中存儲的數據確定所述複製信息,並向所述第二存儲設備發送複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識、目標數據卷的標識以及所述複製信息;
所述第二存儲設備,還用於據所述第一源數據卷的標識、目標數據卷的標識以及預設的複製關係確定與所述複製信息對應的第二源數據卷,其中,所述複製關係中包含有所述第一源數據卷、所述目標數據卷與所述第二源數據卷的對應關係。
[0021]結合第三方面、第三方面的第一種至第三種中任意一種可能的實現方式,在第三方面的第四種可能的實現方式中,所述第一存儲設備還用於根據複製信息以及預設的複製策略確定所述第一複製子信息;所述第二存儲設備還用於根據所述複製信息以及所述複製策略確定所述第二複製子信息。
[0022]結合第三方面、第三方面的第一種至第三種中任意一種可能的實現方式,在第三方面的第五種可能的實現方式中,所述第一存儲設備,還用於接收所述第二存儲設備的複製協商請求,所述複製協商請求中至少包含有所述第二存儲設備與所述其他存儲系統的鏈路帶寬信息,根據所述鏈路帶寬信息確定所述第一複製子信息以及所述第二複製子信息,並向所述第二存儲設備發送所述第二複製子信息。
[0023]結合第三方面、第三方面的第一種至第五種中任意一種可能的實現方式,在第三方面的第六種可能的實現方式中,所述複製信息由所述第一複製子信息以及所述第二複製子信息組成,所述第一存儲設備,還用於在所述當前複製任務的執行過程中,根據已複製完成的數據生成第一複製進度信息,並將所述第一複製進度信息發送給所述第二存儲設備;
所述第二存儲設備,還用於當所述第一存儲設備故障時,根據所述第一複製進度信息、第二複製子信息以及所述複製信息確定所述第一存儲設備尚未複製完成的數據,並將所述第一存儲設備尚未複製完成的數據複製到所述其他存儲系統。
[0024]第四方面,本發明實施例提供一種存儲系統,包括:
接收模塊,用於接收其他存儲系統發送的複製信息,所述複製信息用於指示所述其他存儲系統在當前複製任務中需要複製到所述存儲系統的數據,其中,所述其他存儲系統中至少包括所述第一存儲設備以及第二存儲設備,所述第一存儲設備與所述第二存儲設備中存儲有相同的數據,所述存儲系統與所述其他存儲系統通過異步複製技術實現數據備份;發送模塊,用於根據所述複製信息向所述第一存儲設備發送第一獲取請求,所述第一獲取請求中包含有所述存儲系統在所述當前複製任務中需要向所述第一存儲設備獲取的數據的信息;
所述發送模塊,還用於根據所述複製信息向所述第二存儲設備發送第二獲取請求,所述第二獲取請求中包含有所述存儲系統在所述當前複製任務中需要向所述第二存儲設備獲取的數據的信息,其中,所述第一獲取請求要獲取的數據與所述第二獲取請求要獲取的數據不同; 所述接收模塊,還用於接收所述第一存儲設備根據所述第一獲取請求發送的數據,以及接收所述第二存儲設備根據所述第二獲取請求發送的數據。
[0025]在第四方面的第一種可能的實現方式中,所述第一獲取請求中包含的要獲取的數據的信息至少包括所述第一存儲設備中的第一源數據卷的標識以及所述第一獲取請求要獲取的數據地址;
所述第二獲取請求中包含的要獲取的數據的信息至少包括第二存儲設備中的第二源數據卷的標識以及所述第二獲取請求要獲取的數據地址;
其中,所述第一源數據卷與所述第二源數據卷中均存儲有所述其他存儲系統在當前複製任務中需要複製到所述存儲系統的數據,且所述第一源數據卷與所述第二源數據卷中存儲的數據相同。
[0026]結合第四方面的第一種可能的實現方式,在第四方面的第二種可能的實現方式中,所述接收模塊,還用於接收所述其他存儲系統發送的複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識以及根據所述第一源數據卷存儲的數據確定的所述複製信息;
所述存儲系統還包括:消息處理模塊,用於根據所述第一源數據卷的標識以及預設的複製關係確定所述第二存儲設備中的第二源數據卷及所述第二存儲系統中的目標數據卷;
其中,所述複製關係中包含有所述第一源數據卷、所述第二源數據卷與所述目標數據卷的對應關係,所述目標數據卷用於存儲所述存儲系統在所述當前複製任務中接收的數據。
[0027]結合第四方面或第四方面的第一種至第二種中任意一種可能的實現方式,在第四方面的第三種可能的實現方式中,該存儲系統還包括:
確定模塊,用於根據所述複製信息以及所述存儲系統與所述第一存儲設備之間的鏈路帶寬確定需要向所述第一存儲設備獲取的數據,並根據所述複製信息以及所述存儲系統與所述第二存儲設備之間的鏈路帶寬確定需要向所述第二存儲設備獲取的數據;
所述發送模塊,具體用於根據所述確定模塊確定的所述需要向所述第一存儲設備獲取的數據向所述第一存儲設備發送所述第一獲取請求,並且根據所述確定模塊確定的所述需要向所述第二存儲設備獲取的數據向所述第二存儲設備發送所述第二獲取請求。
[0028]第五方面,本發明實施例提供了又一種存儲系統,包括控制器和存儲器,其中,所述存儲器用於存儲其他存儲系統發送的數據;所述控制器包括:
通信接口,用於與所述其他存儲系統進行通信;
內存,用於存儲計算機執行指令;
處理器,用於運行所述計算機執行指令,執行前述第二方面中所述的方法。
[0029]第六方面,本發明實施例提供了一種電腦程式產品,包括存儲了程序代碼的計算機可讀存儲介質,所述程序代碼包括的指令用於執行前述第一方面中所述的方法。
[0030]第七方面,本發明實施例提供了一種電腦程式產品,包括存儲了程序代碼的計算機可讀存儲介質,所述程序代碼包括的指令用於執行前述第二方面中所述的方法。
[0031]在本發明實施例中提供的數據複製方法中,由於第一存儲系統中的第一存儲設備和第二存儲設備中存儲有相同的數據,因此,在第一存儲系統到第二存儲系統的複製過程中,第一存儲系統可以根據當前複製任務中的複製信息確定第一複製子信息以及第二複製子信息,並由第一存儲設備根據第一複製子信息將數據複製到第二存儲系統,由第二存儲設備根據第二複製子信息將數據複製到第二存儲系統。根據本發明實施例的方法,能夠將第一存儲系統的同一個複製任務由第一存儲設備和第二存儲設備進行分擔,從而能夠在不增加生產成本的情況下提升第一存儲系統與第二存儲系統之間的複製效率。
【專利附圖】
【附圖說明】
[0032]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例。
[0033]圖1為本發明實施例提供的一種應用場景示意圖;
[0034]圖2為本發明實施例提供的一種存儲設備的結構示意圖;
[0035]圖3為本發明實施例提供的一種數據複製方法的流程圖;
[0036]圖3a為本發明實施例提供的一種複製位圖的示意圖;
[0037]圖3b為本發明實施例提供的一種複製信息確定方法的流程圖;
[0038]圖3c為本發明實施例提供的又一種複製信息確定方法的流程圖;
[0039]圖4為本發明實施例提供的又一種數據複製方法的信令圖;
[0040]圖5為本發明實施例提供的又一種數據複製方法的流程圖;
[0041]圖6為本發明實施例提供的又一種數據複製方法的信令圖;
[0042]圖7為本發明實施例提供的又一種存儲設備的結構示意圖。
【具體實施方式】
[0043]為了使本【技術領域】的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。
[0044]本發明實施例提供的數據備份方法主要應用於多數據中心的容災系統中,本發明實施例所指的多數據中心的容災系統是指包括不少於3個數據中心的容災系統。為了描述方便,本發明實施例以三數據中心(3Data Center,3DC)容災系統為例進行描述。如圖1所不,圖1為本發明實施例的一種應用場景不意圖。圖1所不的一種3DC容災系統包括至少一個主機100以及三個數據中心。這三個數據中心包括至少一個生產站點以及兩個災備站點。為了描述方便,在本發明實施例中,將圖1所示的三個數據中心分別稱為生產站點11、一級站點12以及二級站點13,其中一級站點12以及二級站點13通常屬於災備站點。這三個數據中心之間可以採用星形組網方式通過光纖或網線進行連接。這三個數據中心之間可以通過IP (Internet Protocol)或者FC (Fiber Chanel)進行數據傳輸。在本發明實施例中,主機100與生產站點11或一級站點12之間可以基於小型計算機系統接口(SCSI,Small Computer System Interface)協議,或者基於網際網路小型計算機系統接口(iSCSI,Internet Small Computer System Interface)協議進行通信。在此不做限定。
[0045]生產站點11中包括第一存儲設備110,一級站點12中包括第二存儲設備120,並且在二級站點13中包括第三存儲設備130。其中,第一存儲設備110、第二存儲設備120以及第三存儲設備130可以是存儲陣列、伺服器等當前技術已知的存儲設備。例如,第一存儲設備110、第二存儲設備120以及第三存儲設備130可以包括存儲區域網絡(Storage AreaNetwork, SAN)陣列,也可以包括網絡附加存儲(network attach storage, NAS)陣列。本發明實施例中不對各數據中心中的存儲設備的具體形式進行限定。需要說明的是,在本發明實施例中的方法均是由這些站點中的存儲設備來執行的。為了描述方便,在本發明實施例中,如無特別說明,生產站點11指的是生產站點11中的第一存儲設備110,一級站點12指的是一級站點12中的第二存儲設備120,二級站點13指的是二級站點13中的第三存儲設備 130。
[0046]在圖1所示的應用場景中,生產站點11和一級站點12的距離比較近。通常,生產站點11和一級站點12的距離可以在IOOkm以內。例如,生產站點11和一級站點12可以位於同一個城市的兩個不同位置。二級站點13與生產站點11或一級站點12的距離較遠。通常,二級站點13與生產站點11的距離可以在IOOOkm以上。例如,二級站點13可以位於與生產站點11位於不同的城市。當然,在本發明實施例中,並不限定生產站點11和一級站點12必須在同一個城市,只要在生產站點11和一級站點12之間能夠實現數據的同步複製即可。
[0047]主機100可以包括當前技術已知的任何計算設備,如伺服器、臺式計算機、應用伺服器等等,在主機100中安裝有作業系統以及其他應用程式,主機100可以有多個。
[0048]在圖1所示的應用場景中,二級站點13主要作為災備站點,用於備份數據。主機100不會對二級站點13進行訪問。生產站點11和一級站點12均可以接收主機100的訪問。在一種情形下,主機100可以將數據只寫入生產站點11。例如,可以是一個或多個主機100對生產站點11進行數據寫入操作。在又一種情形下,一個主機100也可以將不同的數據分別寫入生產站點11和一級站點12。在又一種情形下,不同的主機100可以分別對生產站點11和一級站點12進行數據寫入操作。例如主機A對生產站點11進行數據寫入操作,同時主機B也在對一級站點12進行數據寫入操作。可以理解的是,在後兩種情形下,由於生產站點11和一級站點12可以同時承擔主機100的業務,因此能夠提高數據的讀寫效率。在本發明實施例中,不對生產站點11和一級站點12是否同時承擔主機100的業務進行限制,只要能在生產站點11和一級站點12之間能夠實現同步複製,保證生產站點11和一級站點12中的數據實時同步即可。需要說明的是,由於在圖1所示的容災系統中,生產站點11和一級站點12均可以接收主機100的訪問,並且生產站點11和一級站點12通過同步複製方式保持存儲的數據的一致性,所以生產站點11和一級站點12的角色可以互換。
[0049]在本發明實施例中,生產站點11和一級站點12可以通過同步複製技術使生產站點11和一級站點12中存儲的數據實時保持同步。例如,在主機100將數據寫入生產站點11時,生產站點11可以同時將該數據備份到一級站點12。當數據均寫入生產站點11和一級站點12後,生產站點11再向主機100返回寫入成功的響應,以保持生產站點11和一級站點12中的數據同步。由於二級站點13與生產站點11的距離較遠,因此,生產站點11或一級站點12可以採用異步複製技術將數據存儲到二級站點13。例如,當主機100將數據寫入生產站點11時,生產站點11可以直接向主機100返回一個寫入成功的響應。在間隔一段時間後,生產站點11再將主機100寫入的數據發送到二級站點13進行存儲,以實現數據的進一步備份。需要說明的是,在本發明實施例中,將數據寫入生產站點11可以是將數據寫入生產站點11的緩存,也可以是指將數據寫入生產站點11的存儲器中,在此不做限定。
[0050]需要說明的是,生產站點11的存儲器構成的存儲空間可以包括多個數據卷。其中,本發明實施例所述的數據卷是由物理存儲空間映射而成的一段邏輯存儲空間。例如,數據卷可以是邏輯單元號(Logic Unit Number, LUN)標識的邏輯單元,也可以是文件系統。可以理解的是,一級站點12以及二級站點13的存儲空間也可以包括多個數據卷。
[0051]實際應用中,在3DC容災系統中,通常會在生產站點11和一級站點120之間採用同步複製技術保持數據的同步,在生產站點11和二級站點13之間建立異步複製或者在一級站點12與二級站點13之間建立異步複製。例如,在異步複製的過程中,採用生產站點11和二級站點13之間的鏈路進行異步複製,而將一級站點12與二級站點13之間的鏈路作為備份鏈路。為了描述方便,在本發明實施例中,將生產站點11和二級站點13之間的鏈路稱為第一鏈路,將一級站點12與二級站點13之間的鏈路稱為第二鏈路。當生產站點11和二級站點13之間的複製進程出現異常時,可以從一級站點12將數據重新複製到二級站點13。其中,複製進程出現異常包括因生產站點11發生故障導致複製進程出現異常,或者由於第一鏈路出現故障導致複製進程出現異常。可以理解的是,在異步複製的過程中,也可以採用一級站點12和二級站點13之間的鏈路進行異步複製,而將生產站點11與二級站點13之間的鏈路作為備份鏈路。
[0052]然而,由於生產站點11中的數據變化量很大,在異步複製的過程中,如果僅採用第一鏈路進行異步複製,可能導致第一鏈路的帶寬成為數據備份的過程的瓶頸。並且在實際應用中,如果採用帶寬更大的第一鏈路進行備份,又會增加用戶的成本。為了在不增加成本的情況下提高數據備份的帶寬,在本發明實施例中,當需要進行異步複製時,由生產站點11和一級站點12同時向二級站點13進行異步複製。根據這種方式,在異步複製的過程中,第一鏈路以及第二鏈路均處於活動(Active)狀態。
[0053]由於本發明實施例主要涉及如何將數據從生成站點11以及一級站點12複製到二級站點13,因此為了描述方便,在下述的實施例中,將複製過程中發送數據的第一存儲設備110和第二存儲設備130組成的存儲系統稱為第一存儲系統33,將接收數據的第三存儲設備130所屬的存儲系統稱為第二存儲系統44。可以理解的是,第一存儲系統33還可以包括其他存儲設備,第二存儲系統44也還可以包括其他存儲設備。
[0054]圖1中所示的第一存儲設備110、第二存儲設備120和第三存儲設備130的結構可以如圖2所示。圖2為本發明實施例提供的一種存儲設備20的結構示意圖,圖2所示的存儲設備20為一種存儲陣列。如圖2所示,存儲設備20可以包括控制器200以及磁碟陣列214,其中,其中,這裡的磁碟陣列214用於提供存儲空間,可以包括獨立磁碟冗餘陣列(Redundant Arrays of Independent Disks,RAID)或者由多個磁碟構成的磁碟櫃。磁碟陣列214可以有多個,磁碟陣列214由多個磁碟216構成。磁碟216用於存儲數據。磁碟陣列216與控制器200之間可以通過小型計算機系統接口(Small Computer System Interface,SCSI)協議等通信協議進行通信連接,在此不進行限定。
[0055]可以理解的是,磁碟陣列214僅僅是存儲系統中的存儲器的一種示例,在本發明實施例中,還可以通過磁帶庫等存儲器來存儲數據。需要說明的是,磁碟216也僅僅是構建磁碟陣列214的存儲器的一種示例,實際應用中,還可以在包含多個磁碟的機櫃之間構建磁碟陣列等實施方式。因此,在本發明實施例中,磁碟陣列214還可以由固態硬碟(SolidState Drives, SSD)、多個磁碟構成的機櫃或伺服器等由非易失性存儲介質構成的存儲器組成,在此不做限定。
[0056]控制器200是存儲設備20的「大腦」,主要包括處理器(processor) 202、緩存(cache) 204、內存(memory) 206、通信總線(簡稱總線)210以及通信接口(CommunicationInterface) 212。處理器202、緩存204、內存206以及通信接口 212通過通信總線210完成相互間的通信。需要說明的是,在本發明實施例中,存儲設備20中的控制器200可以是一個,也可以是多個。可以理解的是,當存儲設備20中包括至少兩個控制器200時,可以提高存儲設備20的穩定性。
[0057]通信接口 212,用於與主機100、磁碟216或其他存儲設備通信。
[0058]內存206,用於存放程序208。內存206可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁碟存儲器。可以理解的是,內存206可以為隨機存儲器(Random-Access Memory, RAM)、磁碟、硬碟、光碟、固態硬碟(Solid State Disk, SSD)或者非易失性存儲器等各種可以存儲程序代碼的非短暫性的(non-transitory)機器可讀介質。
[0059]程序208可以包括程序代碼,所述程序代碼包括計算機操作指令。
[0060]緩存(Cache) 204是存在於控制器與硬碟之間的存儲器,容量較硬碟小但速度比硬碟快。緩存204用於緩存從主機100或其他存儲設備接收的數據以及緩存從磁碟216讀取的數據,以提高陣列的性能和可靠性。緩存204可以是RAM、R0M、快閃記憶體(Flash memory)或固態硬碟(Solid State Disk, SSD)等各種可以存儲數據的非短暫性的(non-transitory)機器可讀介質,在此不做限定。
[0061]處理器202可以是一個中央處理器CPU,或者是特定集成電路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成實施本發明實施例的一個或多個集成電路。在處理器202中安裝有作業系統和其他軟體程序,不同的軟體程序可以視作一個處理模塊,具有不同的功能。例如,處理對磁碟216的輸入/輸出(Input/output, 1/0)請求,對磁碟216中的數據進行其他處理,或者修改存儲設備20中保存的元數據等等。從而使控制器200可以實現10操作、快照、鏡像、複製等各種的數據管理功能。在本發明實施例中,處理器202用於執行程序208,具體可以執行下述方法實施例中的相關步驟。
[0062]可以理解的是,在本發明實施例中,第一存儲設備110、第二存儲設備120以及第三存儲設備130的硬體結構可能相似,但是由於在數據複製過程中第一存儲設備110、第二存儲設備120以及第三存儲設備130承擔的職能不同,因此第一存儲設備110、第二存儲設備120以及第三存儲設備130中的處理器202執行的程序208會有所不同。下面將對本發明實施例中各個存儲設備具體如何實現數據複製的方法進行詳細介紹。
[0063]圖3是本發明實施例提供的一種數據複製方法的流程圖。該方法可以應用於圖1所示的應用場景中。圖3所示的方法將從發送數據的第一存儲系統33側進行描述。其中,第一存儲系統33可以包括圖1中所示的生產站點11中的第一存儲設備110以及一級站點12中的第二存儲設備120。其中,第一存儲設備110和第二存儲設備120中存儲的數據相同。接收複製數據的第二存儲系統44可以包括第三存儲設備130。並且在本發明實施例中的第一存儲設備110、第二存儲設備120的硬體結構均可以如圖2所示。具體的,圖3所述的方法可以由第一存儲設備110、第二存儲設備120中的處理器202共同執行。下面將結合圖1和圖2,對圖3中所示的數據複製方法進行描述。如圖3所示,該方法可以包括下述步驟。
[0064]在步驟300中,第一存儲系統33根據存儲的數據確定複製信息,所述複製信息用於指示第一存儲系統33在當前複製任務中需要複製到第二存儲系統44的數據。其中,複製任務(也可以被稱為異步遠程複製任務)是指第一存儲系統33將一段時間內一個數據卷接收到的寫數據命令攜帶的數據複製到第二存儲系統44的一個數據卷中。實際應用中,第一存儲系統33可以將這段時間內一個數據卷中的所有的數據都發送給第二存儲系統44,也可以將這段時間內接收到相對於上一次複製任務的差異數據(也稱增量數據)發送給第二存儲系統44,在此不做限定。
[0065]需要說明的是,在一種情形下,由於第一存儲設備110或第二存儲設備120中可以存在多個數據卷,因此,可能同時存在多個複製任務。在本發明實施例中,可以採用複製任務標識來將不同的複製任務進行區分,其中,複製任務標識可以根據在當前複製過程中源數據卷的標識和目標數據卷的標識來確定。例如,複製任務標識可以為:A LUNOOIBLUN002,用於表示該複製任務是將數據從存儲設備A中標識為001的LUN複製到存儲設備B中標識為002的LUN中。此外,複製任務標識還可以採用其他標識來表示,在此不做限定。只要能讓各存儲設備識別出當前複製任務的源數據卷和目標數據卷即可。
[0066]可以理解的是,在本發明實施例中,雖然第一存儲設備110與第二存儲設備120通過同步複製的方式保持存儲的數據的一致性,但第一存儲設備HO與第二存儲設備120中存儲相同數據的數據卷的標識並不一定相同。例如,在第一存儲設備110中存儲數據A的LUN ID可以為LUN1#,在第二存儲設備120中存儲數據A的LUN的ID可以為LUN2#。在實際應用中,可以預先配置第一存儲設備110、第二存儲設備120以及第三存儲設備130中各個數據卷之間的複製關係,使得第一存儲設備110、第二存儲設備120和第三存儲設備130在當前複製任務中均可以根據該複製關係確定相應的源數據卷和目標數據卷。換一種表達方式,在具有相同複製關係的各數據卷之間可以實現數據備份。
[0067]在設置的複製關係中,可以包括複製關係標識,也可以包括第一存儲設備110、第二存儲設備120以及第三存儲設備130的LUN的標識。例如,複製關係標識可以為:ALUNOO IB LUN002C LUN003,用於表示存儲設備A中標識為001的LUN、存儲設備B中標識為002的LUN以及存儲設備C中標識為003的LUN之間存在複製關係。當然,複製關係標識也可以用其他的標識來表示,在此不做限定,只要能讓各存儲設備識別出當前複製任務中涉及的複製關係即可。在實際應用中,可以預先在第一存儲設備110、第二存儲設備120以及第三存儲設備130中均保存有這個複製關係。
[0068]在本發明實施例中,複製任務是根據預設的複製關係啟動的不同存儲設備中的LUN之間的複製任務,並且在某一時刻,具有相同複製關係的數據卷之間只可能存在一個複製任務。本發明實施例主要涉及在一個複製任務中各個設備之間的交互過程,因此在本發明實施例中,可以用複製關係標識來表不一個複製任務。換一種表達方式,在本發明實施例中,複製任務標識可以與複製關係標識相同。當然,實際應用中,若為了區分具有相同複製關係的數據卷之間在不同時間段存在的多個複製任務,複製任務標識也可以與複製關係標識不同,例如,複製任務標識可以在複製關係標識的基礎上再增加時間標識,用於表示該複製任務是在具有相同複製關係的數據卷之間在不同時刻啟動的複製任務。[0069]可以理解的是,在一種情形下,若第一存儲設備110、第二存儲設備120及第三存儲設備130的存儲空間中均只存有一個數據卷時,當前複製任務就是針對各存儲設備中唯一的一個數據卷在當前時刻啟動的複製任務,因此,也可以不用預設各存儲設備中各LUN之間的複製關係。
[0070]在本發明實施例中,複製信息可以根據第一存儲設備110或第二存儲設備120接收的差異數據信息來確定。差異數據信息是指存儲設備在當前複製任務的前一個複製任務開始之後、並且在當前複製任務開始之前寫入存儲設備的數據的信息。實際應用中,差異數據信息可以用差異位圖的方式來記錄。以第一存儲設備100為例,第一存儲設備110可以為每一個數據卷(例如LUN)創建一個差異位圖,用於記錄該數據卷中的寫入的數據的信息。圖3a為本發明實施例提供的一種差異位圖的示例。如圖3a所示,差異位圖中的每一個格子對應LUN中的一段地址。在本發明實施例中,以標識位「I」來表示有數據寫入。由於主機100發送的寫數據命令中會攜帶要寫入的數據以及所述數據的地址,因此,當第一存儲設備100接收到主機100發送的寫數據命令後,可以根據該寫數據命令中攜帶的數據的地址將差異位圖中對應的格子中的標識位置為「I」。通過這種差異位圖的記錄方式,能夠記錄寫入該LUN中的被改變的數據的信息。可以理解的是,在同一個複製周期中,如果同一個地址的數據被連續改變,則在記錄時,可以將該數據地址對應的格子中的標識位保持為「 I」。可以理解的是,在另一種情形下,還可以以標識位「0」來表示有數據寫入。在又一種情形下,還可以「I」表示有數據寫入,以「0」表示沒有數據寫入。此外,還可以用其他標識位表示是否有數據寫入,在此不對標識位的具體形式做限定。在本發明實施例中,差異位圖可以保存在第一存儲設備110或第二存儲設備120的緩存中,也可以保存在第一存儲設備110或第二存儲設備120的存儲器中。
[0071]可以理解的是,差異數據信息除了可以以差異位圖的形式來記錄之外,還可以以「樹」形結構來記錄。例如可以採用差異二叉樹、差異B+樹以及其他樹來記錄差異數據信息。在採用「樹」形結構來記錄差異數據信息時,可以使每一個葉子節點對應LUN中的一段地址。當有數據寫入時,將該葉子節點的標識位置為相應的標識,用於表示該葉子節點對應的地址有數據寫入。在又一種情形下,差異數據信息還可以以鍊表或表項的結構來記錄,在採用鍊表形式來表示時,該表中每一個表項對應LUN中的一段地址。此外,差異數據信息還可以以日誌等形式來記錄,在此不做限定。與差異位圖類似,上述以樹形結構、鍊表結構或日誌等形式記錄的差異數據信息可以保存在第一存儲設備110或第二存儲設備120的緩存中,也可以保存在第一存儲設備110或第二存儲設備120的存儲器中。
[0072]可以理解的是,當差異數據信息以差異位圖的形式來記錄時,複製信息也以複製位圖的形式來表示。當差異數據信息以差異樹的形式來記錄時,複製信息也可以以複製樹得形式來表示。以此類推,在此不再贅述。
[0073]在本發明實施例中,為了描述方便,下面以差異位圖為例進行描述,並且以標識位為「I」來表示有數據寫入。當啟動複製任務時,一種情形下,第一存儲設備110可以將啟動複製任務時的差異位圖轉換為複製位圖以確定複製信息,並重新生成空的差異位圖來記錄該LUN中在當前複製任務啟動之後在第一存儲設備110中寫入的數據。其中,複製位圖用於表示在當前複製任務中需要複製到第三存儲設備130中的數據。根據這種方式,在複製時,可以將複製位圖中為「I」的格子對應的地址的數據複製到第三存儲設備130中。在又一種情形下,可以在第一存儲設備110中設置一個差異位圖和一個複製位圖,用差異位圖來記錄第一存儲設備在當前複製任務的前一個複製任務開始之後、並且在當前複製任務開始之前寫入的數據的信息。當啟動當前複製任務時,可以將該差異位圖轉換為當前複製任務中的複製位圖,並將前一個複製任務中使用完的複製位圖轉換為新的差異位圖,用以記錄當前複製任務開始之後寫入的數據的信息。需要說明的是,當使用前一個複製任務中使用完的複製位圖轉換為新的差異位圖時,需要清空前一個複製任務中的複製位圖中的標識位後再作為新的差異位圖。換一種表達方式,在這種情形下,可以將差異位圖和複製位圖更替使用,分別用以記錄差異數據信息以及待覆制到第三存儲設備130的數據的信息。在此不對如何具體根據差異數據信息確定複製信息的形式做限定。
[0074]如前所述,在圖1所示的3DC容災系統中,由於第一存儲系統33中的第一存儲設備110和第二存儲設備120通過同步複製技術保持存儲的數據的一致性。當確定需要啟動第一存儲系統33到第二存儲系統44的複製任務,換一種表達方式,當確定需要啟動到第三存儲設備130的異步複製時,第一存儲系統33需要確定複製信息,用於指示在當前複製任務中第一存儲系統33需要複製到第二存儲系統44的數據。在一種情形下,第一存儲系統33需要確定複製信息具體可以由第一存儲設備110與第二存儲設備120可以分別根據存儲的數據確定複製信息。由於第一存儲設備110與第二存儲設備120中存儲的數據相同,因此第一存儲設備110根據存儲的數據確定的複製信息與第二存儲設備120根據存儲的數據確定的複製信息相同。具體的,在本發明實施例中,以當前複製任務是在第一存儲設備110中的第一源數據卷、第二存儲設備120中的第二源數據卷以及第三存儲設備130中的目標數據卷之間啟動的複製任務為例進行描述。其中,第一源數據卷與第二源數據卷中存儲的數據相同。圖3b為本發明實施例提供的一種複製信息確定方法的流程圖。如圖3b所示,該方法可以包括下述步驟。
[0075]在步驟310中,第一存儲設備110向第二存儲設備120發送複製任務啟動消息。其中,所述複製任務啟動消息中攜帶有第一存儲設備110中的第一源數據卷的標識和第三存儲設備130中的目標數據卷的標識。該複製任務啟動消息用於通知第二存儲設備120當前複製任務為第一存儲設備110中的第一源數據卷與第三存儲設備130中的目標數據卷之間的複製任務。
[0076]其中複製任務啟動消息可以採用預定義的消息格式進行。例如,在複製任務啟動消息的頭部可以包含消息類型(例如opCode)欄位、源設備ID(例如,srcAppId)欄位以及目標設備ID (例如,dstAppId)欄位。其中,消息類型欄位用於表示該消息的類型為複製任務啟動信息。源設備ID欄位用於標識該複製進度消息的發起者,目標設備ID欄位用於標識該複製任務啟動消息的接收者。源設備ID以及目標設備ID欄位均可以用IP位址來標識。複製任務啟動消息的內容部分(例如,複製任務啟動消息中的data欄位)的格式可以如下所示:
Byte0123
0 Lun ID`
4RepIicationObject LUN id
[0077]其中:LUN ID:可以位於第0-4個字節,用於表示當前複製任務中源數據卷的標識,該LUN標識為唯一標識;
[0078]ReplicationObject LUN id:可以位於第4_8個字節,用於表示當前複製任務中接收數據的目標設備中目標數據卷的標識,例如可以是目標設備的LUN ID。換一種表達方式,該欄位用於表示當前複製任務指向的目標存儲設備中的目標數據卷。
[0079]例如,在本步驟中,第一存儲設備110發送給第三存儲設備130的複製任務啟動消息中,「LUN ID」欄位可以為第一存儲設備110中存儲有待覆制數據的第一源數據卷的ID,例如LUN001。「R印IicationObject LUN id」欄位可以為第三存儲設備130中的目標數據卷的ID,例如LUN003。用於說明當前複製任務是第一存儲設備110中標識為001的LUN與第三存儲設備130中標識為003的LUN之間的複製任務。在又一種情形下,「LUN ID」欄位也可以為第二存儲設備120中的第二源數據卷的ID,在這種情況下,可以由第一存儲設備110預先根據預設的複製關係以及第一源數據卷的標識和目標數據卷的標識確定第二源數據卷的標識。
[0080]在步驟312中,第二存儲設備120根據所述第一源數據卷的標識、所述目標數據卷的標識以及預設的複製關係確定所述第二存儲設備中的所述第二源數據卷。其中,所述複製關係中包含有所述第一源數據卷、所述第二源數據卷與所述目標數據卷的對應關係。如前所述,在本發明實施例中,在第一存儲設備110、第二存儲設備120以及第三存儲設備130中均預設有各數據卷之間的複製關係。在第二存儲設備120接收到第一存儲設備110的複製任務啟動消息後,第二存儲設備120可以根據預設的複製關係以及複製任務啟動消息中攜帶的第一源數據卷的標識、目標數據卷的標識確定第二存儲設備120中的第二源數據卷。
[0081]在步驟314中,第二存儲設備120根據確定的所述第二源數據卷中存儲的數據確定所述複製信息。在步驟316中,第一存儲設備110根據確定的所述第一源數據卷中存儲的數據確定所述複製信息。例如,第二存儲設備120可以根據第二源數據卷的差異位圖生成複製位圖,第一存儲設備110可以根據第一源數據卷的差異位圖生成覆核位圖。第一存儲設備110和第二存儲設備120具體如何根據數據卷中存儲的數據確定複製信息可以參見前面的描述,在此不再贅述。由於第二源數據卷與第一源數據卷中存儲的數據相同,因此,第二存儲設備120根據第二源數據卷確定的複製信息與第一源數據卷確定的複製信息相同,且該複製信息即為第一存儲系統33在當前複製任務中的複製信息,用於指示第一存儲系統33在當前複製任務中需要複製到第二存儲系統44的數據。
[0082]在另一種情形下,第一存儲系統33確定複製信息也可以具體由第一存儲系統33中的第一存儲設備110根據第一存儲設備110中存儲的數據確定複製信息,再將確定後的複製信息發送給第二存儲設備120。通過這種方式也能夠使第一存儲設備110和第二存儲設備120均具有相同的複製信息。具體的,可以如圖3c所示,圖3b為本發明實施例提供的又一種複製信息確定方法的流程圖。圖3c所示的複製信息的確定方法仍然以當前複製任務是在第一存儲設備110中的第一源數據卷、第二存儲設備120中的第二源數據卷以及第三存儲設備130中的目標數據卷之間啟動的複製任務為例進行描述。其中,第一源數據卷與第二源數據卷中存儲的數據相同。該方法可以包括下述步驟。
[0083]在步驟320中,第一存儲設備110根據第一源數據卷中存儲的數據確定複製信息。具體的,第一存儲設備110在需要啟動複製任務時,可以根據第一源數據卷的差異位圖確定複製信息,該複製信息用於指示當前複製任務中需要複製到第二存儲系統44的數據。第一存儲設備110確定複製信息的具體方式可以參見前面的描述,在此不再贅述。
[0084]在步驟322中,第一存儲設備110向所述第二存儲設備120發送複製任務啟動消息。其中,該複製任務啟動消息中可以攜帶所述第一源數據卷的標識、目標數據卷的標識以及所述複製信息。該複製任務啟動消息用於通知第二存儲設備120當前複製任務為第一存儲設備110中的第一源數據卷與第三存儲設備130中的目標數據卷之間的複製任務。由於在步驟320中,第一存儲設備110已經根據第一源數據卷確定了當前複製任務的複製信息,因此,第一存儲設備110可以在通知第二存儲設備120啟動複製任務時,將該複製信息同時發送給第二存儲設備120,從而第二存儲設備120可以不用自己確定複製信息。可以理解的是,在第二存儲設備120沒有記錄差異數據的情形下,也可以由第一存儲設備110將當前複製任務的複製信息發送給第二存儲設備120。可以理解的是,實際應用中,複製任務啟動消息中除了攜帶複製信息外,還可以攜帶第一源數據卷的標識以及目標數據卷的標識,用於指示當前複製任務為第一源數據卷與目標數據卷之間的複製。關於複製任務啟動消息的具體描述可以參見前面的描述的類似,具體還可以在前述複製任務啟動消息的數據部分的其他欄位攜帶複製信息。例如,可以在第8個字節之後的欄位中攜帶複製信息(例如,待覆制的數據的地址信息),在此不再贅述。
[0085]在步驟324中,第二存儲設備120根據所述第一源數據卷的標識、目標數據卷的標識以及預設的複製關係確定與所述複製信息對應的第二源數據卷。其中,所述複製關係中包含有所述第一源數據卷、所述目標數據卷與所述第二源數據卷的對應關係。具體的,第二存儲設備120接收到第一存儲設備110的複製任務啟動消息之後,可以根據預設的複製關係以及複製任務啟動消息中攜帶的第一源數據卷的標識、目標數據卷的標識確定在第二存儲設備120中與第一源數據卷存儲有相同數據的第二源數據卷,從而能夠確定與該複製信息對應的第二源數據卷。
[0086]圖3b和圖3c是本發明實施例提供的第一存儲系統33確定複製信息的兩種實現方式,實際應用中,還可以根據具體網絡的部署採用其他的方式來確定第一存儲系統33在當前複製任務中的複製信息,在此不對第一存儲系統33確定複製信息的具體方式進行限定。需要說明的是,本發明實施例中,由於複製任務是在數據卷之間執行的複製任務,因此,本發明實施例中的複製信息均是指存儲設備中某個數據卷的複製信息。通常,在一個複製任務中一個數據卷對應一個複製信息。
[0087]在步驟302中,第一存儲系統33根據所述複製信息確定第一複製子信息及第二複製子信息。其中,所述第一複製子信息用以指示需要由第一存儲設備110複製到第三存儲設備130的數據,所述第二複製子信息用於指示需要由第二存儲設備120複製到第三存儲設備130的數據。需要說明的是,在確定第一複製子信息和第二複製子信息時,需要確定第一複製子信息和第二複製子信息指示的數據範圍,以避免第一存儲設備110和第二存儲設備120複製的數據重複。
[0088]實際應用中,在一種情形下,第一複製子信息和第二複製子信息可以分別由第一存儲系統33中的第一存儲設備110和第二存儲設備120分別進行確定。具體的,第一存儲設備110可以根據在步驟300中確定的複製信息以及預設的複製策略確定第一複製子信息,第二存儲設備120根據在步驟300中確定的複製信息以及預設的複製策略確定第二複製信息。實際應用中,可以在第一存儲設備110中預先設定複製策略,其中,複製策略可以包括複製比例以及複製範圍等。例如,在一種情形下,設定的策略可以為:第一存儲設備110從複製位圖的頭部開始向尾部方向複製,第二存儲設備120從複製位圖的尾部開始向頭部方向複製,當複製位置有交叉時結束複製。在又一種情形下,設定的策略可以為:第一存儲設備110從複製位圖的頭部開始向尾部方向複製60%的差異數據,第二存儲設備從複製位圖的尾部開始向頭部方向複製40%的差異數據。在又一種情形下,設定的策略還可以為:第一存儲設備110以及第二存儲設備120從複製位圖的中部開始,分別向兩頭複製差異數據。此外設定的策略還可以包括第一存儲設備110需要複製的數據的地址範圍以及第二存儲設備120需要複製的數據的地址範圍等等。實際應用中可以根據具體情況設定複製策略,在此不對具體的複製策略進行限定。
[0089]需要說明的是,由於本發明實施例中,啟動異步複製時,需要將當前複製任務由第一存儲設備110與第二存儲設備120進行分擔,因此需要在第一存儲設備110與第二存儲設備120中設置相同的複製策略,以避免第一存儲設備110和第二存儲設備120將相同的數據複製給第三存儲設備130。
[0090]在又一種情形下,為了使第一存儲設備110與第二存儲設備120在複製過程中實現負載均衡,第一存儲設備110可以根據所述複製信息與第二存儲設備120協商確定第一複製子信息和第二複製子信息。具體的,如圖1所示,在協商過程,第一存儲設備110可以接收第二存儲設備120的協商請求,該協商請求中至少包含第二鏈路的帶寬信息。第一存儲設備110可以根據第二鏈路的帶寬信息確定第一複製子信息以及第二複製子信息。例如,若第二鏈路的帶寬大於第一鏈路的帶寬,第一存儲設備110可以確定第一複製子信息指示的數據量小於第二複製子信息指示的數據量,例如第一複製子信息指示的數據為需要複製的總數據量30%,第二複製子信息指示的數據為需要複製的總數據量70%。在第一存儲設備110確定第一複製子信息和第二複製子信息後,第一存儲設備110可以將確定後的第二複製子信息發送給第二存儲設備120。第二複製子信息可以以協商響應消息的形式發送給第二存儲設備120,在協商響應消息中需要攜帶第二複製子信息所指示的數據的地址範圍。
[0091]需要說明的是,本發明實施例中,第一複製子信息和第二複製子信息均屬於複製信息的一部分。或者,換一種表達方式,第一複製子信息指示的數據和第二複製子信息指示的數據均是複製信息指示的數據一部分。可以理解的是,在第一存儲系統33隻包括兩個存儲設備的情況下,複製信息可以由第一複製子信息和第二複製子信息組成。在本發明實施例中,當複製信息以複製位圖的方式表示時,第一複製子信息或第二複製子信息並不需要另外以單獨的複製位圖來表示,可以在複製位圖的基礎上標識出第一複製子信息或第二複製子信息的範圍即可。在本發明實施例中,並不對第一複製子信息和第二複製子信息的具體形式進行限定,只要第一複製子信息和第二複製子信息能夠標識需要複製的數據的範圍即可。
[0092]可以理解的是,本發明實施例只是以第一存儲系統33中包括兩個存儲設備進行描述。在實際應用中,若第一存儲系統33中包含N個存儲設備,則在啟動異步複製時,可以將當前複製任務的複製信息分為N個部分。換一種表達方式,可以根據當前複製任務的複製信息確定N個複製子信息,分別由N個設備分別根據N個複製子信息同時向第三設備進行複製。其中,N為大於2的自然數。當複製信息以複製位圖的方式表示時,第一複製子信息和第二複製子信息也可以以複製位圖的方式來表示。
[0093]在步驟304中,第一存儲設備110根據所述第一複製子信息將所述需要由所述第一存儲設備110複製到第三存儲設備130的數據複製到第三存儲設備130。例如,當複製信息以複製位圖方式表示時,第一存儲設備110可以根據第一複製子信息將複製位圖標識位為「I」的位置對應的第一源數據卷中的數據複製到第三存儲設備130的目標數據卷中。具體的,第一存儲設備110可以通過寫數據命令或複製命令將需要由第一存儲設備110中的第一源數據卷中的複製到第三存儲設備130的數據發送到第三存儲設備130的目標數據卷中。
[0094]如圖1所示,由於第一存儲設備110和第三存儲設備130之間是採用異步複製技術實現數據備份,因此第三存儲設備130中存儲的數據會比第三存儲設備110中存儲的數據有一定時間的延遲。通常情況下,第一存儲設備110在一段時間內會接收主機100的多個寫數據命令,並且第一存儲設備110在向第三存儲設備130進行異步遠程複製時,主機100仍然可能發送寫數據命令給第一存儲設備110。因此在執行當前複製任務時,有必要將第一存儲設備110在當前複製任務中發送給第三存儲設備130的數據與其接收的新數據區分開。
[0095]在本發明實施例中,可以利用快照技術將複製過程中第一存儲設備110發送給第三存儲設備130的數據與在複製過程中第一存儲設備110接收的新數據進行區分。快照是關於指定數據集合的一個完全可用拷貝,該拷貝包括相應數據在某個時間點(拷貝開始的時間點)的映像。快照可以是其所表示的數據的一個副本,也可以是數據的一個複製品。在本發明實施例中,在啟動複製時,可以通過對數據卷創建一個在創建時刻的狀態視圖,通過這個視圖只可以看到數據卷在創建時刻的數據,在此時間點之後數據卷的修改(有新的數據寫入),不會反映在快照視圖中。利用這個快照視圖,就可以做數據的複製。對於第一存儲設備110而言,由於快照數據是「靜止的」,因此第一存儲設備110可以在將各個時間點的數據創建快照之後,再將快照數據複製到第三存儲設備130。通過這種方式既可以完成遠程數據複製,也不會影響第一存儲設備110在複製期間繼續接收主機100發送的寫數據命令。因此,第一存儲設備110可以在啟動複製的時刻對第一源數據卷中的數據進行快照處理,以形成該時刻的第一源數據卷的數據副本,將所述數據副本發送給第三存儲設備130的目標數據卷。需要說明的是,所述數據副本即為在當前複製任務中待覆制給第三存儲設備130的數據。
[0096]可選的,本發明實施例還可以利用給第一存儲設備110接收到的每個寫數據命令增加時間片編號的方式來解決上述問題。例如,第一存儲設備110中可以包含一個當前時間片編號管理器,所述當前時間片編號管理器中保存有當前時間片編號。當前時間片編號可以用數值表示,例如O、1、2。當前時間片編號也可以用字母表示,例如a、b、C。在此不做限定。當第一存儲設備110接收到寫數據命令時,在寫數據命令攜帶的數據和數據的地址中增加由當前時間片編號賦值的第一編號。當一個異步遠程複製任務觸發時,將第一編號對應的數據作為在當前複製任務中的待覆制給第三存儲設備130的數據,並且將第一編號對應的數據和數據的地址發送給第三存儲設備130。同時修改所述當前時間片編號,以標識後續的寫數據命令。此外,在本發明實施例中,還可以採用其他方式將第一存儲設備110在當前複製任務中需要發送給第三存儲設備130的數據與其接收的新數據進行區分。在此不做限定。
[0097]在本發明實施例中,以第一存儲設備110的存儲空間中包含的數據卷為LUN為例。在啟動複製任務時,例如,在確定複製信息時,第一存儲設備110可以通過快照的方式創建在當前時刻的第一源LUN的副本。則在步驟306中,第一存儲設備110可以將創建的第一源LUN的副本中與第一複製子信息中標識位為「I」的格子對應的地址的數據複製到第三存儲設備130的目的LUN中。本領域人員可以理解,通過這種創建LUN副本的方式,即使在當前複製任務中,第一存儲設備110在第一源LUN的相同地址又寫入了新的數據,也不會影響當前複製任務中要複製的數據。
[0098]在本步驟中,以第一存儲設備110通過寫數據命令將數據複製到第三存儲設備130為例。當第一存儲設備110根據創建的第一源LUN的副本以及所述第一複製子信息將數據複製到第三存儲設備130的目標LUN中時,在第一存儲設備110發送給第三存儲設備130的寫數據命令中,需要包含當前複製任務的目標LUN的標識、待寫入的數據以及待寫入的數據的地址。其中,目標LUN的標識可以是LUN ID。待寫入的數據的地址可以是數據的LBA地址,用於表示所述數據的目的地址。第三存儲設備130可以根據所述目標LUN的標識以及待寫入的數據的LBA地址將寫數據命令中攜帶的數據寫入第三存儲設備130的目標LUN中。可以理解的是,在第一存儲設備110發送給第三存儲設備130的寫數據命令中,還可以攜帶所述待寫入數據的第一源LUN的ID,用於標識該數據是從第一存儲設備110的第一源LUN中發送的數據。
[0099]在步驟306中,第二存儲設備120根據所述第二複製子信息將所述需要由所述第二存儲設備120複製到第三存儲設備130的數據複製到第三存儲設備130。由於步驟306與步驟304類似,因此可以參見步驟304的相關描述。需要說明的是,在本發明實施例中,上述步驟304和步驟306沒有先後順序之分,第一存儲設備110的複製過程和第二存儲設備120的複製過程可以同時進行。
[0100]在本發明實施例中,由於第一存儲設備110和第二存儲設備120通過同步複製方式保持存儲的數據的一致性,並且,當前複製任務的複製信息是根據一個數據卷中寫入的差異數據信息來確定的。例如,當前複製任務的複製信息是根據第一存儲設備110中的第一源數據卷中寫入的差異數據信息來確定的。由於第一存儲設備110中的第一源數據卷中存儲的數據與第二存儲設備120中的第二源數據卷存儲的數據相同,第一複製子信息和第二複製子信息又是根據同一個複製信息確定的,因此,在第一源數據卷中也存儲有與第二複製子信息指示的數據相同的數據,在第二源數據卷中也存儲有與第一複製子信息指示的數據相同的數據。
[0101]在圖3所示的方法中,由於第一存儲系統33中的第一存儲設備110和第二存儲設備120中存儲的數據相同,因此,第一存儲設備110和第二存儲設備120可以有相同的複製信息。在啟動異步複製過程中,第一存儲系統33通過複製信息確定第一複製子信息和第二複製子信息,並由第一存儲設備110根據第一複製子信息將數據複製到第三存儲設備130,由第二存儲設備120根據第二複製子信息將數據複製到第三存儲設備130。根據本發明實施例的方法,能夠將第一存儲系統33的同一個複製任務由第一存儲系統33中的第一存儲設備110和第二存儲設備120進行分擔。與現有技術中只使用一條鏈路進行複製相比,圖3所示的方法能夠在不增加生產成本的情況下提升第一存儲系統33與第二存儲系統44之間的複製鏈路的帶寬,提高了複製效率。例如,若圖1所示的第一鏈路和第二鏈路的帶寬均為10M,則採用本發明實施例的方法,在將第一存儲系統33中的一個LUN中的數據複製到第三存儲設備130時,複製鏈路帶寬可以達到20M。而採用現有技術中只使用一條鏈路進行複製的方法,複製鏈路的帶寬只有10M。
[0102]此外,與現有技術中只使用第一存儲系統33中的一個存儲設備進行複製相比,採用圖3所示的實施例的方法,在啟動遠程異步複製時是由第一存儲系統33中的多個存儲設備同時進行,從而可以減少對第一存儲系統33中單個存儲設備資源的消耗。
[0103]圖4為本發明實施例提供的一種數據複製方法的信令圖。圖4所示方法將從第一存儲系統33以及第二存儲系統44的角度對圖3所示的方法進一步進行詳細描述。可以理解的是,圖4所示方法中的第一存儲設備110、第二存儲設備120以及第三存儲設備130的具體結構仍然可以如圖2所示。具體的,圖4所示的方法可以分別由第一存儲設備110、第二存儲設備120以及第三存儲設備130中的處理器來執行。為了描述方便,本發明實施例中將複製信息以複製位圖來表示、差異數據信息以差異位圖來表示。在本發明實施例中,還是以當前複製任務為第一存儲設備HO中的第一源數據卷、第二存儲設備120中的第二源數據卷以及第三存儲設備130中的目標數據卷之間的複製任務為例進行描述。下面將結合圖1和圖3對圖4所示的方法進行描述。具體如圖4所示,該方法包括:
[0104]在步驟402中,第一存儲設備110確定啟動異步複製任務。實際應用中,在第一存儲設備110中可以根據設定的定時器來確定是否啟動異步複製任務,當定時器到達設定的異步複製時間時,確定啟動異步複製任務。可以理解的是,第一存儲設備110通過設定定時器來啟動異步複製只是一種實現方式.實際應用中,第一存儲設備110還可以根據接收的數據量來確定是否啟動異步複製任務,當第一存儲設備110接收的數據量較少時,第一存儲設備110可以確定啟動異步複製任務。
[0105]在步驟404中,第一存儲設備110停止接收主機100的寫數據命令,並處理已經接收的寫數據命令。實際應用中,主機100向第一存儲設備110寫入數據或者主機100從第一存儲設備110讀取數據是通過向第一存儲設備110發送輸入輸出(Input/output,I/O)命令來實現的。在本發明實施例中,當第一存儲設備110確定啟動向第三存儲設備的異步複製流程時,第一存儲設備可以停止接收主機的寫數據命令,以便第一存儲設備110可以根據停止接收主機100的寫數據命令之前已接收的數據確定當前複製任務中需要從第一源數據卷複製的數據。
[0106]在本步驟中,在第一存儲設備110和第二存儲設備120通過同步複製保持數據一致性的情況下,處理已經接收的寫數據命令包括根據接收的寫數據命令將數據寫入第一存儲設備110以及第二存儲設備120。具體的,當第一存儲設備110接收到主機100發送的寫數據命令後,可以先緩存該寫數據命令中攜帶的數據,再根據設定的寫入策略將緩存中的數據寫入數據卷中。與此同時,第一存儲設備110中的數據同步引擎獲知了這個變化後,可以立即將變化的數據塊從緩存中直接通過SAN交換機發送到第二存儲設備120的緩存中。第二存儲設備120接收到該數據塊後,會向第一存儲設備110發送一個寫入成功的響應。第一存儲設備110在收到第二存儲設備120的響應後,會向主機100返回一個寫入成功的響應,以告知主機100該寫數據命令中的數據被處理完成。通過這種方式,可以使主機100寫入第一存儲設備HO的第一源數據卷的數據被同步寫入第二存儲設備120的第二源數據卷中。同樣的,主機100寫入第二存儲設備120的第二源數據卷中的數據也會採用類似的方式被同步寫入第一存儲設備110的第一源數據卷中。第一存儲設備110以及第二存儲設備120通過上述同步複製方式保持存儲的數據的一致性。
[0107]在步驟406中,第一存儲設備110通知第二存儲設備120啟動異步複製。在本發明實施例中,第一存儲設備110與第二存儲設備120通過同步複製方式使第一存儲設備110中存儲的數據與第二存儲設備120中存儲的數據相同。為了充分利用第一存儲設備110以及第二存儲設備120到第三存儲設備130之間的鏈路帶寬,提高複製效率,在本發明實施例所述的複製過程中,可以由第一存儲設備110和第二存儲設備120 —起完成同一個複製任務。因此,當第一存儲設備110確定啟動異步複製時,需要通知第二存儲設備120啟動異步複製流程。
[0108]在本步驟中,第一存儲設備110可以向第二存儲設備120發送複製任務啟動消息,具體的,在第一種情形下,第一存儲設備110可以將當前複製任務中涉及的複製關係通知第二存儲設備120,以使第二存儲設備120能夠根據預設的複製關係確定當前複製任務所涉及的第二存儲設備120中的數據卷的標識。例如,第一存儲設備110可以在複製任務啟動消息中將複製關係標識通知第二存儲設備120。在第二種情形下,第一存儲設備110可以在複製任務啟動消息中攜帶第一源數據卷的標識以及目標數據卷的標識,以使第二存儲設備120可以根據預設的複製關係以及第一源數據卷的標識、目標數據卷的標識確定當前複製任務所涉及的第二存儲設備120中的第二源數據卷。在第三種情形下,第一存儲設備110在確定複製任務後,可以根據第一存儲設備110中預設的複製關係以及第一源數據卷的標識和目標數據卷的標識確定第二源數據卷的標識,並在發送給第二存儲設備120的複製任務啟動消息中攜帶第二源數據卷的標識,使得第二存儲設備120能夠根據接收的複製任務啟動消息直接確定第二存儲設備120中的第二源數據卷。在第四種情況下,第一存儲設備110可以在複製任務啟動消息中攜帶第一源數據卷的標識,以使第二存儲設備120可以根據第一源數據卷的標識及預設的複製關係確定當前複製任務所涉及的第二存儲設備120中的第二源數據卷。在第五種情況下,第一存儲設備110還可以在複製任務啟動消息中攜帶目標數據卷的標識,以使第二存儲設備120可以根據目標數據卷的標識及預設的複製關係確定當前複製任務所涉及的第二存儲設備120中的第二源數據卷。在本發明實施例中不對第二存儲設備120具體如何通過複製任務啟動消息確定第二源數據卷的具體方式進行限定,只要能夠讓第二存儲設備120確定與第一源數據卷存儲有相同數據的第二源數據卷即可。關於複製任務啟動消息的具體描述可以參見圖3所示實施例的相關描述。在此不再贅述。
[0109]在步驟408中,第二存儲設備120停止接收主機100的寫數據命令,並處理已經接收的寫數據命令。具體的,當第二存儲設備120接收到第一存儲設備110關於啟動異步複製的通知後,可以停止接收主機100的寫數據命令。由於步驟408與步驟404類似,具體描述可以參見步驟404。
[0110]在步驟410中,第二存儲設備120創建當前時刻的第二源數據卷的副本。實際應用中,第二存儲設備120可以通過快照的方式創建在當前時刻的第二源數據卷的副本。通過這種方式,可以確定第二存儲設備120在當前複製任務中需要複製的數據,並可以通過第二源數據卷的副本將當前複製任務中需要複製的數據與第二存儲設備120在當前複製任務中新接收的數據進行區分。具體如何創建通過快照技術創建第二源數據卷的副本可以參見前面的描述,在此不再贅述。
[0111]在步驟412中,第二存儲設備120根據第二源數據卷的差異位圖生成第二複製位圖。在本發明實施例中,第二存儲設備120在接收到主機100發送的向第二源數據卷寫數據的寫數據命令後,會根據該寫數據命令中攜帶的數據的地址更新第二源數據卷的差異位圖。例如,第二存儲設備120可以將差異位圖中與該數據地址對應的格子中的標識位置為「1」,用於標識該格子對應的地址有數據寫入。第二存儲設備120的差異位圖用於記錄所述第二存儲設備120的第二源數據卷在當前複製任務的前一個複製任務開始之後、並且在當前複製任務開始之前寫入的數據的信息。由於本步驟與步驟301類似,因此,具體如何根據第二存儲設備120中第二源數據卷的差異位圖生成第二複製位圖可以參見步驟301的描述。
[0112]在步驟414中,第二存儲設備120通知第一存儲設備110已準備好異步複製。實際應用中,為了使開始複製時第一存儲設備110與第二存儲設備120均已做好異步複製的準備,例如第一存儲設備110與第二存儲設備120均已經準備好複製位圖以及數據卷的副本,則在第二存儲設備120生成第二複製位圖並創建當前複製任務所需的第二源數據卷的副本後,第二存儲設備120可以通知第一存儲設備110已經做好異步複製的準備。
[0113]在步驟416中,第一存儲設備110創建當前時刻的第一源數據卷的副本。在第一存儲設備110確認第二存儲設備120已經做好異步複製的準備後,第一存儲設備110開始創建當前時刻的第一源數據卷的副本。該步驟與步驟410類似,具體可以參見步驟410的描述。在此不再贅述。
[0114]在步驟418中,第一存儲設備110根據第一源數據卷的差異位圖生成第一複製位圖。由於步驟418與步驟412類似,具體可以參見步驟412的描述。需要說明的是,由於在本發明實施例中,第一存儲設備110與第二存儲設備120通過同步複製技術保持存儲的數據的一致性,第一源數據卷中存儲的數據與第二源數據卷中存儲的數據相同,因此,第一存儲設備110的第一複製位圖與第二存儲設備120的第二複製位圖相同。
[0115]在步驟420中,第一存儲設備110通知第二存儲設備120開始接收主機100的寫數據命令。為了使第一存儲設備110與第二存儲設備120保持同步,當第一存儲設備110在確認第一存儲設備110和第二存儲設備120已經做好當前複製任務的複製準備後,可以通知第二存儲設備120開始接收主機100的寫數據命令,因為在做好複製準備後接收的主機100的寫數據命令,不會影響當前複製任務的執行。
[0116]在步驟422中,第一存儲設備110開始接收主機100的寫數據命令。在步驟424中,第二存儲設備120開始接收主機100的寫數據命令。可以理解的是,在當前複製任務啟動之後寫入第一存儲設備110和第二存儲設備120的數據將再下一個複製任務中被複製到第三存儲設備130。
[0117]需要說明的是,實際應用中,步驟404、408、410、416以及420-424是可選的。例如,如前所述,如果採用增加時間片編號的方式來確定存儲設備在當前複製任務中需要複製的數據,則啟動異步複製時,第一存儲設備110以及第二存儲設備120可以不停止接收主機100的寫數據命令,並且也可以不需要創建LUN的副本。
[0118]在步驟426中,第一存儲設備110根據第一複製位圖和複製策略確定第一複製子信息。在步驟428中,第二存儲設備120根據第二複製位圖和複製策略確定第一複製子信息。在本發明實施例中,由於第一複製位圖和第二複製位圖相同,並且預設的複製策略也相同,因此第一存儲設備110和第二存儲設備120可以分別確定複製子位圖。這裡的複製子位圖具體可以包括第一存儲設備110確定的第一複製子位圖和第二存儲設備120確定的第二複製子位圖。其中,第一複製子位圖用於標識需要由第一存儲設備110複製到第三存儲設備130的數據的信息,第二複製子位圖用於標識需要由第二存儲設備110複製到第三存儲設備130的數據的信息。可以理解的是,在複製策略中會指定第一存儲設備110與第二存儲設備120的具體複製範圍,因此第一複製子位圖指示的數據與第二複製子位圖指示的數據不會重複。步驟426和步驟428與步驟302類似,具體可以參見步驟302的相關描述。
[0119]在步驟430中,第一存儲設備110根據第一複製子位圖複製部分差異數據到第三存儲設備130。具體複製時,第一存儲設備110在當前複製任務的一次複製過程中可以根據第一存儲設備HO的複製規則複製一部分差異數據,例如複製規則可以設定一次複製的數據塊的LBA的數量。
[0120]在步驟432中,第三存儲設備130向第一存儲設備110返回單次複製成功的響應,以通知第一存儲設備110該次複製的數據已被成功寫入第三存儲設備130中。
[0121]在步驟434中,第一存儲設備110根據第三存儲設備130返回的複製成功響應更新第一複製子位圖。具體的,在更新第一複製子位圖時,可以將與已經複製完成的數據的地址對應的第一複製子位圖中的格子打上複製完成的標識,也可以將第一複製子位圖中與已複製完成的數據的地址對應的格子中的標識位刪除。例如,可以將第一複製子位圖中與已複製完成的數據的地址對應的格子中的標識位「I」刪除。可以理解的是,由於第一複製子位圖是第一複製位圖的一部分,因此更新了第一複製子位圖也就更新了第一複製位圖。
[0122]在步驟436中,第一存儲設備110發送第一存儲設備110的複製進度信息給第二存儲設備120。在本發明實施例中,第一存儲設備110每複製完一次差異數據,就需要將第一存儲設備110的複製進度信息發送給第二存儲設備120,以便第二存儲設備120可以了解第一存儲設備110的複製進度,若第一存儲設備110在複製過程中出現故障,則第二存儲設備120可以根據第一存儲設備110的複製進度信息對第一存儲設備110的複製任務進行接管。為了將第一存儲設備HO的複製進度信息與第二存儲設備120的複製進度信息進行區分,在本發明實施例中將第一存儲設備110的複製進度信息稱為第一複製進度信息,將第二存儲設備120的複製進度信息稱為第二複製進度信息。
[0123]實際應用中,第一存儲設備110可以通過複製進度消息的形式將第一複製進度信息發送給第二存儲設備120。其中,複製進度消息的格式可以與前述的複製任務啟動消息的格式類似。在複製進度消息的頭部也可以包含消息類型(例如opCode)欄位、源設備ID(例如,srcAppId)欄位以及目標設備ID (例如,dstAppId)欄位。其中,消息類型欄位用於表示該消息的類型為複製進度信息。在複製進度消息的內容部分(例如,複製進度消息中的data欄位)除了需要攜帶當前複製任務的源數據卷以及目標數據卷以外,還需要攜帶當前的複製進度信息,例如複製進度消息的內容部分的格式可以如下所示:
【權利要求】
1.一種數據複製方法,所述方法應用於至少包括第一存儲設備以及第二存儲設備的存儲系統中,其特徵在於,包括: 第一存儲系統確定複製信息,所述複製信息用於指示所述第一存儲系統在當前複製任務中需要複製到第二存儲系統的數據,其中,所述第一存儲系統中的第一存儲設備與所述第二存儲設備存儲有相同的數據,所述第一存儲系統與所述第二存儲系統通過異步複製技術實現數據備份; 所述第一存儲系統根據所述複製信息確定第一複製子信息及第二複製子信息,其中,所述第一複製子信息用於指示在所述當前複製任務中需要由所述第一存儲設備複製到所述第二存儲系統的數據,所述第二複製子信息用於指示在所述當前複製任務中需要由所述第二存儲設備複製到所述第二存儲系統的數據,且所述第一複製子信息指示的數據與所述第二複製子信息指示的數據不同; 所述第一存儲設備根據所述第一複製子信息將所述需要由所述第一存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統; 所述第二存儲設備根據所述第二複製子信息將所述需要由所述第二存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統。
2.根據權利要求1所述的數據複製方法,其特徵在於, 所述第一存儲設備根據所述第一複製子信息將所述需要由所述第一存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統包括: 所述第一存儲設備根據所述第一複製子信息將第一源數據卷中存儲的所述需要由所述第一存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統的目標數據卷中; 所述第二存儲設備根據所述第二複製子信息將第二源數據卷中存儲的所述需要由所述第二存儲設備複製到所述第二存儲系統的數據複製到所述第二存儲系統的所述目標數據卷中; 其中,所述第一源數據卷中存儲的數據與所述第二源數據卷中存儲的數據相同。
3.根據權利要求2所述的數據複製方法,其特徵在於,所述第一存儲系統確定複製信息包括: 所述第一存儲設備向所述第二存儲設備發送複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識和所述目標數據卷的標識; 所述第二存儲設備根據所述第一源數據卷的標識、所述目標數據卷的標識以及預設的複製關係確定所述第二存儲設備中的所述第二源數據卷,其中,所述複製關係中包含有所述第一源數據卷、所述第二源數據卷與所述目標數據卷的對應關係; 所述第二存儲設備根據確定的所述第二源數據卷中存儲的數據確定所述複製信息; 所述第一存儲設備根據所述第一源數據卷中存儲的數據確定所述複製信息。
4.根據權利要求2所述的數據複製方法,其特徵在於,所述第一存儲系統確定複製信息包括: 所述第一存儲系統中的所述第一存儲設備根據所述第一源數據卷中存儲的數據確定所述複製信息; 所述第一存儲設備向所述第二存儲設備發送複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識、目標數據卷的標識以及所述複製信息; 所述第二存儲設備根據所述第一源數據卷的標識、目標數據卷的標識以及預設的複製關係確定與所述複製信息對應的第二源數據卷,其中,所述複製關係中包含有所述第一源數據卷、所述目標數據卷與所述第二源數據卷的對應關係。
5.根據權利要求1-4任意一項所述的數據複製方法,其特徵在於, 所述第一存儲系統根據所述複製信息確定第一複製子信息及第二複製子信息包括:所述第一存儲設備根據所述複製信息以及預設的複製策略確定所述第一複製子信息; 所述第二存儲設備根據所述複製信息以及所述複製策略確定所述第二複製子信息。
6.根據權利要求1-4任意一項所述的數據複製方法,其特徵在於,所述第一存儲系統根據所述複製信息確定第一複製子信息及第二複製子信息包括: 所述第一存儲設備接收所述第二存儲設備的複製協商請求,所述複製協商請求中至少包含有所述第二存儲設備與所述第二存儲系統的鏈路帶寬信息; 所述第一存儲設備根據所述鏈路帶寬信息確定所述第一複製子信息以及所述第二複製子信息; 所述第一存儲設備向所述第二存儲設備發送所述第二複製子信息。
7.根據權利要求1-6所述的數據複製方法,其特徵在於,所述複製信息由所述第一複製子信息以及所述第二複製子信息組成,所述方法還包括: 在所述當前複製任務的執行過程中,所述第一存儲設備根據已複製完成的數據生成第一複製進度信息; 所述第一存儲設備將所述第一複製進度信息發送給所述第二存儲設備; 當所述第一存儲設備故障時,所述第二存儲設備根據所述第一複製進度信息、第二複製子信息以及所述複製信息確定所述第一存儲設備尚未複製完成的數據; 所述第二存儲設備將所述第一存儲設備尚未複製完成的數據複製到所述第二存儲系統。
8.根據權利要求1-7任意一項所述的數據複製方法,其特徵在於,還包括: 在所述當前複製任務的執行過程中,所述第一存儲設備根據已複製完成的數據更新所述第一複製子信息; 所述第二存儲設備根據已複製完成的數據更新所述第二複製子信息。
9.一種數據複製方法,所述方法應用於存儲系統中,其特徵在於,包括: 第二存儲系統接收第一存儲系統發送的複製信息,所述複製信息用於指示所述第一存儲系統在當前複製任務中需要複製到所述第二存儲系統的數據,其中,所述第一存儲系統中至少包括第一存儲設備以及第二存儲設備,所述第一存儲設備與所述第二存儲設備中存儲有相同的數據,所述第一存儲系統與所述第二存儲系統通過異步複製技術實現數據備份; 所述第二存儲系統根據所述複製信息向所述第一存儲設備發送第一獲取請求,所述第一獲取請求中包含有所述第二存儲系統在所述當前複製任務中需要向所述第一存儲設備獲取的數據的信息; 所述第二存儲系統根據所述複製信息向所述第二存儲設備發送第二獲取請求,所述第二獲取請求中包含有所述第二存儲系統在所述當前複製任務中需要向所述第二存儲設備獲取的數據的信息,其中,所述第一獲取請求要獲取的數據與所述第二獲取請求要獲取的數據不同; 所述第二存儲系統接收所述第一存儲設備根據所述第一獲取請求發送的數據; 所述第二存儲系統接收所述第二存儲設備根據所述第二獲取請求發送的數據。
10.根據權利要求9所述的方法,其特徵在於: 所述第一獲取請求中包含的要獲取的數據的信息至少包括所述第一存儲設備中的第一源數據卷的標識以及所述第一獲取請求要獲取的數據地址; 所述第二獲取請求中包含的要獲取的數據的信息至少包括第二存儲設備中的第二源數據卷的標識以及所述第二獲取請求要獲取的數據地址; 其中,所述第一源數據卷與所述第二源數據卷中均存儲有所述第一存儲系統在當前複製任務中需要複製到所述第二存儲系統的數據,且所述第一源數據卷與所述第二源數據卷中存儲的數據相同。
11.根據權利要求10所述的方法,其特徵在於, 所述第二存儲系統接收第一存儲系統發送的複製信息包括: 所述第二存儲系統接收所述第一存儲系統發送的複製任務啟動消息,所述複製任務啟動消息中攜帶有所述 第一源數據卷的標識以及根據所述第一源數據卷存儲的數據確定的所述複製信息; 所述方法還包括: 所述第二存儲系統根據所述第一源數據卷的標識以及預設的複製關係確定所述第二存儲設備中的第二源數據卷及所述第二存儲系統中的目標數據卷; 其中,所述複製關係中包含有所述第一源數據卷、所述第二源數據卷與所述目標數據卷的對應關係,所述目標數據卷用於存儲所述第二存儲系統在所述當前複製任務中接收的數據。
12.根據權利要求9-11任意一項所述的方法,其特徵在於: 所述第二存儲系統根據所述複製信息向所述第一存儲設備發送第一獲取請求包括:所述第二存儲系統根據所述複製信息以及所述第二存儲系統與所述第一存儲設備之間的鏈路帶寬確定需要向所述第一存儲設備獲取的數據; 所述第二存儲系統根據確定的所述需要向所述第一存儲設備獲取的數據向所述第一存儲設備發送所述第一獲取請求; 所述第二存儲系統根據所述複製信息向所述第二存儲設備發送第二獲取請求包括:所述第二存儲系統根據所述複製信息以及所述第二存儲系統與所述第二存儲設備之間的鏈路帶寬確定需要向所述第二存儲設備獲取的數據; 所述第二存儲系統根據確定的所述需要向所述第二存儲設備獲取的數據向所述第二存儲設備發送所述第二獲取請求。
13.根據權利要求9-12任意一項所述的方法,其特徵在於,還包括: 在所述當前複製任務的執行過程中,所述第二存儲系統根據接收的數據更新所述複製信息。
14.一種存儲系統,其特徵在於,所述存儲系統至少包括第一存儲設備以及第二存儲設備,所述第一存儲設備與所述第二存儲設備存儲有相同的數據,其中:所述存儲系統,用於確定複製信息,所述複製信息用於指示所述存儲系統在當前複製任務中需要複製到其他存儲系統的數據,所述存儲系統與所述其他存儲系統通過異步複製技術實現數據備份; 所述存儲系統,還用於根據所述複製信息確定第一複製子信息以及所述第二複製子信息,其中,所述第一複製子信息用於指示在所述當前複製任務中需要由所述第一存儲設備複製到所述其他存儲系統的數據,所述第二複製子信息用於指示在所述當前複製任務中需要由所述第二存儲設備複製到所述其他存儲系統的數據,且所述第一複製子信息指示的數據與所述第二複製子信息指示的數據不同; 所述第一存儲設備,用於根據所述第一複製子信息將所述需要由所述第一存儲設備複製到所述其他存儲系統的數據複製到所述其他存儲系統; 所述第二存儲設備,用於根據所述第二複製子信息將所述需要由所述第二存儲設備複製到所述其他存儲系統的數據複製到所述其他存儲系統。
15.根據權利要求14所述的存儲系統,其特徵在於, 所述第一存儲設備,用於根據所述第一複製子信息將第一源數據卷中存儲的所述需要由所述第一存儲設備複製到所述其他存儲系統的數據複製到所述其他存儲系統的目標數據卷中; 所述第一存儲設備,用於根據所述第二複製子信息將第二源數據卷中存儲的所述需要由所述第二存儲設備複製到所述其他存儲系統的數據複製到所述其他存儲系統的所述目標數據卷中; 其中,所述第一源數據卷中存儲的數據與所述第二源數據卷中存儲的數據相同。
16.根據權利要求15所述的存儲系統,其特徵在於: 所述第一存儲設備,還用於向所述第二存儲設備發送複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識和所述目標數據卷的標識; 所述第二存儲設備,還用於根據所述第一源數據卷的標識、所述目標數據卷的標識以及預設的複製關係確定所述第二存儲設備中的所述第二源數據卷,並根據確定的所述第二源數據卷中存儲的數據確定所述複製信息,其中,所述複製關係中包含有所述第一源數據卷、所述目標數據卷與所述第二源數據卷的對應關係; 所述第一存儲設備,還用於根據所述第一源數據卷中存儲的數據確定所述複製信息。
17.根據權利要求15所述的存儲系統,其特徵在於: 所述第一存儲設備,還用於根據所述第一源數據卷中存儲的數據確定所述複製信息,並向所述第二存儲設備發送複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識、目標數據卷的標識以及所述複製信息; 所述第二存儲設備,還用於據所述第一源數據卷的標識、目標數據卷的標識以及預設的複製關係確定與所述複製信息對應的第二源數據卷,其中,所述複製關係中包含有所述第一源數據卷、所述目標數據卷與所述第二源數據卷的對應關係。
18.根據權利要求14-17任意一項所述的存儲系統,其特徵在於: 所述第一存儲設備,還用於根據複製信息以及預設的複製策略確定所述第一複製子信息; 所述第二存儲設備,還用於根據所述複製信息以及所述複製策略確定所述第二複製子信息。
19.根據權利要求14-17任意一項所述的存儲系統,其特徵在於: 所述第一存儲設備,還用於接收所述第二存儲設備的複製協商請求,所述複製協商請求中至少包含有所述第二存儲設備與所述其他存儲系統的鏈路帶寬信息,根據所述鏈路帶寬信息確定所述第一複製子信息以及所述第二複製子信息,並向所述第二存儲設備發送所述第二複製子信息。
20.根據權利要求14-19任意一項所述的存儲系統,其特徵在於,所述複製信息由所述第一複製子信息以及所述第二複製子信息組成, 所述第一存儲設備,還用於在所述當前複製任務的執行過程中,根據已複製完成的數據生成第一複製進度信息,並將所述第一複製進度信息發送給所述第二存儲設備; 所述第二存儲設備,還用於當所述第一存儲設備故障時,根據所述第一複製進度信息、第二複製子信息以及所述複製信息確定所述第一存儲設備尚未複製完成的數據,並將所述第一存儲設備尚未複製完成的數據複製到所述其他存儲系統。
21.根據權利要求14-20任意一項所述的存儲系統,其特徵在於: 所述第一存儲設備,還用於根據已複製完成的數據更新所述第一複製子信息; 所述第二存儲設備,還用於根據已複製完成的數據更新所述第二複製子信息。
22.一種存儲系統,其特徵在於,包括: 接收模塊,用於接收其他存儲系統發送的複製信息,所述複製信息用於指示所述其他存儲系統在當前複製任務中需要複製到所述存儲系統的數據,其中,所述其他存儲系統中至少包括所述第一存儲設備以及第二存儲設備,所述第一存儲設備與所述第二存儲設備中存儲有相同的數據,所述存儲系統與所述其他存儲系統通過異步複製技術實現數據備份; 發送模塊,用於根據所述複製信息向所述第一存儲設備發送第一獲取請求,所述第一獲取請求中包含有所述存儲系統在所述當前複製任務中需要向所述第一存儲設備獲取的數據的信息; 所述發送模塊,還用於根據所述複製信息向所述第二存儲設備發送第二獲取請求,所述第二獲取請求中包含有所述存儲系統在所述當前複製任務中需要向所述第二存儲設備獲取的數據的信息,其中,所述第一獲取請求要獲取的數據與所述第二獲取請求要獲取的數據不同; 所述接收模塊,還用於接收所述第一存儲設備根據所述第一獲取請求發送的數據,以及接收所述第二存儲設備根據所述第二獲取請求發送的數據。
23.根據權利要求22所述的存儲系統,其特徵在於: 所述第一獲取請求中包含的要獲取的數據的信息至少包括所述第一存儲設備中的第一源數據卷的標識以及所述第一獲取請求要獲取的數據地址; 所述第二獲取請求中包含的要獲取的數據的信息至少包括第二存儲設備中的第二源數據卷的標識以及所述第二獲取請求要獲取的數據地址; 其中,所述第一源數據卷與所述第二源數據卷中均存儲有所述其他存儲系統在當前複製任務中需要複製到所述存儲系統的數據,且所述第一源數據卷與所述第二源數據卷中存儲的數據相同。
24.根據權利要求23所述的存儲系統,其特徵在於:所述接收模塊,還用於接收所述其他存儲系統發送的複製任務啟動消息,所述複製任務啟動消息中攜帶有所述第一源數據卷的標識以及根據所述第一源數據卷存儲的數據確定的所述複製信息; 所述存儲系統還包括: 消息處理模塊,用於根據所述第一源數據卷的標識以及預設的複製關係確定所述第二存儲設備中的第二源數據卷及所述第二存儲系統中的目標數據卷; 其中,所述複製關係中包含有所述第一源數據卷、所述第二源數據卷與所述目標數據卷的對應關係,所述目標數據卷用於存儲所述存儲系統在所述當前複製任務中接收的數據。
25.根據權利要求22-24任意一項所述的存儲系統,其特徵在於,還包括: 確定模塊,用於根據所述複製信息以及所述存儲系統與所述第一存儲設備之間的鏈路帶寬確定需要向所述第一存儲設備獲取的數據,並根據所述複製信息以及所述存儲系統與所述第二存儲設備之間的鏈路帶寬確定需要向所述第二存儲設備獲取的數據; 所述發送模塊,具體用於根據所述確定模塊確定的所述需要向所述第一存儲設備獲取的數據向所述第一存儲設備發送所述第一獲取請求,並且根據所述確定模塊確定的所述需要向所述第二存儲設備獲取的數據向所述第二存儲設備發送所述第二獲取請求。
26.根據權利要求22-25任意一項所述的存儲系統,其特徵在於,還包括: 更新模塊,用於在所述當前複製任務的執行過程中,根據接收到的數據更新所述複製信息。
27.一種存儲系統,其特徵在於,包括控制器和存儲器,其中: 所述存儲器,用於存儲其他存儲系統發送的數據; 所述控制器包括: 通信接口,用於與所述其他存儲系統進行通信; 內存,用於存儲計算機執行指令; 處理器,用於運行所述計算機執行指令,執行如權利要求9-13任意一項所述的方法。
28.一種電腦程式產品,包括存儲了程序代碼的計算機可讀存儲介質,所述程序代碼包括的指令用於執行如權利要求1-8任意一項所述的方法。
29.一種電腦程式 產品,包括存儲了程序代碼的計算機可讀存儲介質,所述程序代碼包括的指令用於執行如權利要求9-13任意一項所述的方法。
【文檔編號】G06F12/08GK103814360SQ201380002271
【公開日】2014年5月21日 申請日期:2013年12月12日 優先權日:2013年12月12日
【發明者】陳怡佳, 歐陽戟, 蔣培軍 申請人:華為技術有限公司