(57)【要約】【課題】  実際に必要なデータのみコピーしながら、ハードディスクドライブでのヘッドのシークタイムの遅れを解決する改善されたコピー技術が求められる。【解決手段】  データと、データのアドレスを含む属性を記述するメタデータを有し、データをセカンダリシステムにより効率的にコピーできるシステムを開示する。ストレージシステムはメタデータで記述されるデータを含むブロックを特定し、アドレス順にこれらのブロックを読み込み、所望のターゲットへコピーする。本方法により、ディスクへのアクセスタイムが減少し、その結果コピー処理が高速化される。【選択図】  図１
2006268829.tif 000002
【特許請求の範囲】
【請求項１】
プライマリボリュームとセカンダリボリュームを有するストレージシステムにおいて、プライマリボリュームからセカンダリボリュームへデータをコピーする方法であって、
前記プライマリボリュームに保存されたデータの、少なくともボリュームＩＤデータ、オブジェクトＩＤデータ、およびデータが保存されている保存位置に関するアドレス情報を含むメタデータのテーブルを生成するステップと、
前記プライマリボリュームから前記セカンダリボリュームへのデータコピーの要求がなされた場合に、少なくとも前記メタデータの一部を、前記プライマリボリュームから前記セカンダリボリュームへコピーし、前記コピーされるデータに関する全ての保存位置のリストを用意するステップと、
前記保存位置のリストをソートするステップと、
前記ソートされたリストに従って前記プライマリボリュームから前記セカンダリボリュームへデータをコピーするステップとからなることを特徴とする、プライマリボリュームからセカンダリボリュームへデータをコピーする方法。
【請求項２】
前記保存位置がブロックを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記テーブルを生成するステップがストレージコントローラにより実行されることを特徴とする請求項１に記載の方法。
【請求項４】
前記ソートされたリストがアドレス順にソートされたデータブロックのリストより成ることを特徴とする請求項１に記載の方法。
【請求項５】
前記データはブロックベースで保存され、前記データをコピーするステップが選択された論理ブロックアドレスのブロックを前記セカンダリシステムの同じ論理ブロックアドレスにコピーするステップにより成ることを特徴とする請求項１に記載の方法。
【請求項６】
前記各ブロックが、ボリュームＩＤ、オフセットアドレス、データ長およびデータを提供するために、関連する情報を更に備えていることを特徴とする請求項５に記載の方法。
【請求項７】
前記データはオブジェクトで示され、前記データをコピーするステップは選択された論理ブロックアドレスのブロックを前記プライマリシステムとは異なる前記セカンダリシステムの論理ブロックアドレスにコピーするステップを備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記データを論理ブロックに割り当てる方法をストレージコントローラが決定することを特徴とする請求項７に記載の方法。    
【請求項９】
前記プライマリボリュームと前記セカンダリボリュームを同期させるのにビットマップが使用されることを特徴とする請求項１に記載の方法。
【請求項１０】
前記プライマリボリュームと前記セカンダリボリュームを同期させるのにテーブルが使用され、前記テーブルが前回の同期後に変更されたオブジェクトを追跡することを特徴とする請求項１に記載の方法。
【請求項１１】
データを保存するプライマリボリュームと、
前記プライマリボリュームのデータのコピーを保存するセカンダリボリュームと、
前記プライマリボリュームと関連付けられたメタデータのテーブルと、
前記データを前記セカンダリボリュームへコピーする要求に応じて、コピーする前記データの保存位置を決定し、前記保存位置に基づいた順番でコピーする前記データを配置するコピー処理をコントロールするための、前記プライマリボリュームと関連付けられた、ストレージコントローラと、
を備えていることを特徴とするストレージシステム。
【請求項１２】
前記セカンダリボリュームに関連付けられたメタデータのテーブルをさらに備えていることを特徴とする請求項１１に記載のストレージシステム。
【請求項１３】
プライマリボリュームとセカンダリボリュームを有するストレージシステムにおいて、前記プライマリボリュームから前記セカンダリボリュームへデータをコピーする方法であって、
前記プライマリボリュームに保存されたデータの、少なくとも、前記データが保存されている保存位置に関するアドレス情報と前記データの少なくとも一つの属性に関する属性情報を含むメタデータのテーブルを生成するステップと、
前記プライマリボリュームから前記セカンダリボリュームへのデータコピーの要求がなされた場合に、少なくとも前記メタデータの一部を、前記プライマリボリュームから前記セカンダリボリュームへコピーし、前記コピーされるデータに関する全ての保存位置のリストを用意するステップと、
前記属性の少なくとも一つに基づいて前記リストをソートするステップと、
前記ソートされたリストに従って前記プライマリボリュームから前記セカンダリボリュームにデータをコピーするステップとからなることを特徴とする、プライマリボリュームからセカンダリボリュームへデータをコピーする方法。
【請求項１４】
前記ボリュームがハードディスクドライブ上に保存領域を備え、前記ソートされたリストに従って前記データをコピーすることにより、ソートされていない場合に比べて高速で前記ハードディスクドライブからデータが読み出されることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記属性の一つが前記コピーされるデータのアドレス情報よりなることを特徴とする請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明はストレージシステムに関わり、より具体的にはこれらストレージシステムでのボリューム間のコピー処理の性能を改善する技術に関する。
【背景技術】
【０００２】
０００２    今日、世界中の大組織は、数百万に達する膨大な量のテキスト、映像、図形、音声情報を含むトランザクションを処理している。この情報は日々、分類され、保存され、アクセスされ、転送されている。これらの情報量は拡大し続けている。これらの膨大な量の情報を管理する一つの方法はストレージシステムを使用することである。従来のストレージシステムは、様々な制御機構のもとで動作する大量のハードディスクドライブを有し、このデータを記録し、ミラーし、遠隔バックアップをとり、再生している。データ量が急速に拡大しているため、多くの企業は情報技術システムを用いてデータを注意深く扱い、これらのシステム内で高性能を追求することを求められている。
【０００３】
【特許文献１】米国公開特許公報２００３／０１６３５５３Ａ１
【発明の開示】
【発明が解決しようとする課題】
【０００４】
０００３    このようなデータを管理する上で、プライマリシステムからこれらのデータをセカンダリシステムにコピーする必要性はよく起こることである。これらのコピーはデータの冗長性を提供して、プライマリシステムのデータがアクセス不能となる、あるいはデータが破壊された場合にも、データの回復を可能にする。データのコピーを遠隔地に保持することにより、プライマリサイトに自然災害や予測できない事態が発生した場合にも、データの所有者にデータの可用性を保証するのに役に立つ。遠隔地にデータを保存することにより、プライマリストレージシステムに障害が発生した場合にもデータが保護される。プライマリサイトに事故が発生したとしても、セカンダリサイトからデータが回復され複製されて組織で使用され、妥当なコストと時間でデータの喪失が防がれ、データを再生成する必要がなくなる。
【０００５】
０００４    通常、セカンダリ（あるいは遠隔）サイトのデータは、プライマリストレージシステムと遠隔ストレージシステムの間でデータを伝送する専用線、インタネット、あるいは他の手段のいずれかで提供される。プライマリストレージからセカンダリストレージにデータをコピーする一つの方法は、プライマリストレージに接続するサーバがプライマリサイトのデータを読み、読んだデータを当該サーバからセカンダリストレージへ送信することである。この方法では、サーバがコピー処理の極めて重い負荷の処理を求められ、ネットワークに大きな通信量が発生し、コピー性能の劣化につながる。
【０００６】
０００５    サーバ及び／またはネットワークの負荷を減らす公知の方法はプライマリストレージシステムからセカンダリ（あるいは遠隔）ストレージシステムへ直接データをコピーすることである。典型的な実施形態では、（プライマリストレージの）ソースボリュームをセカンダリストレージにコピーする必要がある。これを実行するため、ターゲットボリュームとよばれる他のボリュームがセカンダリストレージに用意され、ソースボリュームの全てのデータがターゲットボリュームにコピーされる。この方法の一つの問題点は、実際のデータが入っているのはボリュームのごく一部分のみであったとしても、ボリューム全体をコピーしなければならない点である。この問題に対する一つの解決法が米国公開特許公報２００３０１６３５５３Ａ１に記述されている。この広報では、例えばファイルシステムのｉノードテーブルなどのメタデータを使用して、コピーする実際のデータのアドレスを決定する方法を開示している。従って、この方法ではメタデータに含まれないデータをコピーする必要がないので、コピーに要する時間が短縮される。しかしながら、都合悪く、実際のデータがソースディスク上で断片化されていた場合は、データはディスク中に分散されているので、読み書きヘッドをターゲットデータのアドレスに位置づけるのに比較的長いシークタイムを要するのでコピー性能が低下する場合がある。
【０００７】
０００６    実際に必要なデータのみコピーしながら、ハードディスクドライブでのヘッドのシークタイムの遅れを解決する改善されたコピー技術が求められる。
【課題を解決するための手段】
【０００８】
０００７    本発明の方法と装置は、実際のデータ自体のみをコピーし、当該ハードディスクドライブのデータに位置決めするシークタイムを最小にして、プライマリボリュームからセカンダリボリュームに、あるいは任意の二つのボリューム間でデータをコピーする技術を提供する。      
０００８    一般に、プライマリストレージシステムがデータ、ならびに保存位置の識別情報などの当該データの属性を記述するメタデータを含む場合、プライマリストレージシステムのプロセッサは、メタデータに記述されるデータを含むブロックを特定し、そのアドレス順にブロックを読み、次にこれらのブロックをセカンダリストレージシステムにコピーする。この方法を用いることにより、ディスクアクセスタイムが減少し、コピーはより迅速に完了する。
【０００９】
０００９    プライマリボリュームとセカンダリボリュームを有するストレージシステムの好適なる実施例において、プライマリボリュームからセカンダリボリュームへデータをコピーする方法は、プライマリボリュームに保存されたデータのメタデータ表を提供することを含む。ここでメタデータは少なくともボリューム識別データ、オブジェクト識別データ、及びデータが保存された保存位置に関するアドレス情報を含む。次に少なくともメタデータの一部がプライマリボリュームからセカンダリボリュームにコピーされる。プライマリボリュームからセカンダリボリュームへのコピー要求が発生すると、コピーするデータに関連する全ての保存位置がリストされる。次にこの保存位置のリストがソートされ、次いでソートされたリストに従ってプライマリボリュームからセカンダリボリュームへデータがコピーされる。
【発明を実施するための最良の形態】
【００１０】
００２２    図１は、ここに説明する発明を実施できる典型的なストレージシステムの基本的なシステム構成を示すブロック図である。図１に示すように、プライマリストレージシステム１０１はローカル／物理ボリューム又はパーティション１０２、１０３を有している。サーバ又はホスト１１１からの指示に応じて動作しているストレージコントローラ１０４を用いてデータはこれらのボリュームに書かれ、これらから読み出される。ホスト１１１は、ファイバチャネルなどの適当な通信リンクを通してインターフェース１１０と１０６を用いてストレージシステム１０１と通信する。
【００１１】
００２３    動作中、ストレージコントローラ１０４はサーバ１１１からインターフェース１０６、１１０を介して入出力要求を受信する。これに応じてストレージコントローラ１０４はボリューム１０２、１０３などのボリュームからデータを読み出し、これらに書き込みを行なう。ボリューム１０２と１０３に保存されたデータはテーブル１０５に記述されている。このテーブルのデータはここでは“メタデータ”と呼ばれ、読み書きされるデータのアドレス、その他の属性を有している。メタデータ１０５は専用のボリュームに保持されているとして示されているが、他のデータとボリュームを共有することも可能である。このボリュームはフラッシュメモリ又は他の方法によるものであっても良い。図１に示すストレージシステムはオブジェクトベースのストレージシステムとして知られている。望むなら、適切なインターフェース１０７、１１２を用いて他のストレージシステム１１３と接続することも可能である。
【００１２】
００２４    図２はメタデータを示す図である。図２の実施形態においては、メタデータは専用のストレージボリュームに保持されるが、当該ボリュームは他のデータも同様に保持することができる。メタデータ２０１はボリューム（又はパーティション）ＩＤ２０２、オブジェクトＩＤ２０３、およびデータ２０４へのポインタに関する情報を有している。例えば、行２０８に示すように、オブジェクト０００１がボリューム０００１にあり、データ３、７、６、及び４へのポインタを有している。ポインタはオブジェクトの実際のデータが保存されているアドレスをポイントしている。オブジェクトＩＤは通常はボリューム内で固有である。もちろん、メタデータはオブジェクト名、タイムスタンプ情報、所有者名などの他の属性を含むこともできる。
【００１３】
００２５    図３はメタデータを用いたコピー処理を示すフローチャートである。図１のボリューム１０２のデータがセカンダリストレージシステム１１３にコピーされるものとする。システムによっては前もってセカンダリストレージシステムに適切なボリュームが用意され、コピー技術によってはこのボリュームはボリューム１０２と同じサイズ、同じフォーマットでなければならない。しかしながら、他のシステムではストレージシステム１１３のボリュームはソースデータを提供するボリューム１０２より容量が大きいことのみが求められている。
【００１４】
００２６    図３に示すように、ストレージコントローラ１０４はボリューム１０２の全オブジェクトをストレージシステム１１３にコピーするコマンドを受信すると、ステップ３０１に示すようにまずメタデータを読みこむ。このメタデータはボリューム１０２のオブジェクトについて記述する。メタデータはステップ３０１で読みこまれると、ステップ３０２に示すようにセカンダリストレージシステム１１３にコピーされる。メタデータはストレージコントローラにより使用されるので、メタデータはセカンダリストレージシステム１１３のストレージコントローラからも使用可能でなければならない。セカンダリストレージシステム１１３のストレージコントローラがこのメタデータを使用しオブジェクトベースのストレージシステムとして動作すれば特に利点がある。さらに、セカンダリストレージシステム１１３がオブジェクトベースのストレージシステムとして動作していれば、オブジェクトレベルのコントロール法を用いて、データブロックをコピーすることができる。適切なメタデータがコピーされると、ストレージコントローラ１０４は、コピーする対象、例えばボリューム１０２内のオブジェクトと関連する全データブロックのリストを決定する。本ステップは図３のステップ３０３に示されている。例えば、コピーするデータが図２に示すものであった場合、セカンダリボリュームにコピーするオブジェクトは二つ、ＯＩＤ００００、ＯＩＤ０００１のみである。
【００１５】
００２７    リストが完成すると全ブロックはアドレス順にソートされる。図２の例に戻り、コピーするオブジェクトはＯＩＤ００００とＯＩＤ０００１の二つだけであるとすると、これらのオブジェクトのデータを含むブロックのアドレスは１、５、２、３、７、６、４である。データをアドレスでソートすると、コピーの順番は１、２、３、４、５、６、７となる。ステップ３０４に示すようにブロックをソートすることにより、シークタイムを最小にするという意味で、ハードディスクにデータを読み書きするのにもっとも都合よい順番に情報が配置される。従って、ソート後には、リストは１、２、３、４、５、６、７となる。次に、ストレージコントローラ１０４はソートされた第一のブロックに含まれるデータを読み３０５、そのデータをセカンダリストレージシステムへコピーする３０６。処理は第二のブロック、次に第三のブロック・・・と続く。ブロックをコピーする詳細な方法を以下に説明する。図３に示すように、コピーするブロックが残っている間は、プログラムは図３の最後の数ステップを全てのブロックがコピーされるまで繰り返す。
【００１６】
００２８    ブロックをコピーする好適な方法が二つある。ブロックレベルコピーとオブジェクトレベルコピーである。ここでブロックレベルコピーは、ある論理ブロックアドレス（ＬＢＡ）のブロックがセカンダリストレージシステム１１３のボリュームのまさしく同じＬＢＡにコピーされることを意味する。図４はコピーされるデータのデータ構造の単純化した例である。これは、ここで説明したようなブロックレベルのコピーコマンドで使用される代表的な構造である。データ構造は、セカンダリストレージシステムのどのボリュームがデータのコピー先であるかを特定するボリュームＩＤ４０１を有している。システム１１３にコピーされるデータのボリューム１０２でのＬＢＡを示すオフセットアドレス４０２が特定される。転送されるデータとデータ量がフィールド４０４とフィールド４０３に含まれる。図４では、データＩＤあるいは通信の相手、すなわち本例ではセカンダリストレージシステム１１３、の名前を含んでいないことに注意すること。この情報は二つのストレージシステム間を接続するために使用済みであることを前提としているからである。しかしながら、望むなら、この情報を提供することはもちろん可能である。他の実施例では、説明したようなコピーコマンドを使用する代わりに、ストレージコントローラ１０４は、例えばＡＮＳＩ（American National Standard for Information Technology）で定義されるＥＣＯＰＹあるいはＷＲＩＴＥなどのＳＣＳＩ標準コマンドを使用することも出来る。
【００１７】
００２９    ブロックレベルのコピーとは異なり、オブジェクトレベルのコピーは、ボリューム又はパーティションに対する相対アドレスではなく、各オブジェクトに対する相対アドレスを使用する。セカンダリストレージシステム１１３もまたオブジェクトベースであるときには、オブジェクトレベルのコピーが使用可能である。図５にオブジェクトレベルのコピーコマンドに典型的に関連するデータのデータ構造を示す。データ構造は、オブジェクトが転送されるボリュームＩＤ又はパーティションＩＤを特定するレコード５０１を有している。レコード５０２はオブジェクトのＩＤを特定し、レコード５０３はオフセットアドレスであり、オブジェクトのデータの最初から測定されたものであることが望ましい。レコード５０４はデータ長を特定し、５０５はセカンダリストレージシステム１１３へコピーされるデータを含む。ブロックレベルのコピーと同様に、オブジェクトコピーコマンドはＷＲＩＴＥあるいはＣＲＥＡＴＥ  ＡＮＤ  ＷＲＩＴＥなどのＳＣＳＩでのオブジェクトベースのコマンドを使用することができる。
【００１８】
００３０    図６はセカンダリストレージシステムもまたオブジェクトベースのストレージシステムであるシステムを示す。記述されているように、セカンダリストレージシステム１１３はボリューム７０２、７０３のメタデータ７０５を有している。典型的な例ではボリューム１０２のデータはボリューム７０２にコピーされる。ストレージコントローラ７０４がＷＲＩＴＥコマンドを受信すると、ストレージコントローラ７０４はデータをどのようにどのブロックに割り当てるかを決定する。プライマリストレージシステム１０１のＬＢＡと同じＬＢＡにデータを保存する必要はない。コントローラがデータの割り当て法を決定すると、アドレスが、例えばステップ３０２（図３参照）でプライマリストレージシステムから受信したメタデータ７０５に書き込まれる。これは、データフィールド２０４へのポインタをプライマリストレージシステム１０１からセカンダリストレージシステム１１３に必ずしも転送しなくても良いことを意味する。
【００１９】
００３１    データ転送の結果としてボリュームＩＤとオブジェクトＩＤが変わらないことが望ましい。変わってしまう場合は、同じデータのボリュームＩＤとオブジェクトＩＤの関係がセカンダリストレージシステム１１３のメタデータテーブル７０５に記述される。図７に例を示す。図７に示すように、例えば行８０７では、ボリューム０１０１とオブジェクト０１００で特定されるオブジェクトはプライマリストレージシステム１０１ではボリュームＩＤとして０００１、オブジェクトＩＤとして００００を有していた。
【００２０】
００３２    本発明の様々な応用での動作について次に論ずる。第一の例では、ブロックレベル処理を用いてプライマリストレージシステムからセカンダリストレージシステムへデータをコピーする場合には、差分コピーが望ましい。このような環境でプライマリストレージシステム１０１からセカンダリストレージシステム１１３へデータをコピーした後に、プライマリストレージシステムのデータが更新されると、二つのボリュームの間に相違が生ずる。セカンダリストレージシステム１１３のボリュームをプライマリボリューム１０２に同期させるために、ボリューム１０２の更新されたブロックのアドレスをビットマップを用いて記録し、データの更新された（変更された）ブロックのみがセカンダリストレージシステム１１３へ送られる。
【００２１】
００３３    プライマリストレージシステム１０１とセカンダリストレージシステム１１３のデータが両方とも更新可能の場合（例えば、セカンダリストレージシステムに接続するホストによって）、事態はより複雑になる。しばらくの期間が過ぎると、セカンダリストレージシステムのデータはプライマリシステムのデータと同期している場合も、していない場合もある。プライマリシステムとセカンダリシステムの各ストレージコントローラにボリュームに対する変更を追跡するビットマップを保持させることにより同期が可能になる。セカンダリシステムのデータがプライマリシステムのデータと同期している場合には、二つのビットマップはマージされ、マージされたビットマップに指定されたブロックはプライマリストレージシステムからセカンダリストレージシステムへ転送される。（米国特許Ｕ．Ｓ．６，０９２，０６６に典型的なビットマップが記述されている。）
００３４    本発明のもう一つの応用はオブジェクトレベルの処理であり、第一のケースではデータはプライマリシステムでのみ更新される。ここでイニシャルコピーがオブジェクトコピー処理で実行される場合、セカンダリストレージシステム１１３のコピーされたオブジェクトはプライマリシステム１０１のソースオブジェクトとは異なるアドレスを有しても良い。このような環境ではビットマップを直接使用することはできない。ビットマップを保持する代わりに、図８に示したようなテーブルを保持してオブジェクトレベルの処理が実行される。ここではステータスフィールド９０４で、オブジェクトが前回の同期後に、新規に生成されたか、変更されたか、或いは削除されたかが特定される。前回の同期の時点でオブジェクトがすでに存在し、その後修正がなければ、“非該当”が特定される。オペレーションフィールド９０５は発生の順にオブジェクトの属性の変化を保存している。属性の例としてはオブジェクトの名前、タイムスタンプなどがある。ストレージコントローラ１０４がセカンダリストレージシステム１１３を同期するコマンドを受信すると、コントローラ１０４は図８に示すテーブル９０１を使用してコマンドを用意する。
【００２２】
００３５    前回の同期後にオブジェクトが更新されるとオブジェクトの属性を変更するコマンドのリストがテーブル９０１に発生順にリストされる。これらのコマンドはセカンダリストレージシステムに転送される。図９及び１０はテーブル９０１に基づくコマンドのフォーマットの例を示す。例えば、属性“オブジェクト名”が変更されていたら、属性ＩＤフィールド１００３には“オブジェクト名”（あるいはそれを意味する数字）が入れられ、変更フィールド１００４には属性の新しい名前が入れられる。他の例では、データのみを変更する場合を考える。このケースでは図１０に示すようなコマンドフォーマットが採用される。変更されたデータの長さはフィールド１３０５にセットされ、変更データ自体はフィールド１３０６に置かれる。次にストレージコントローラ１０４は用意したコマンドをセカンダリストレージシステム１１３に発行する。
【００２３】
００３６    データを同期するコマンドは、オブジェクト毎に準備して発行する必要はない。すでにここに述べたように、データをアドレスの順に読み出すと、読み出し性能を向上することができる。これを達成するために、更新されたブロックはテーブル９０１の情報に基づいて集められ、ブロックのアドレスを記述するメタデータ７０５を用いて、アドレス順にソートされる。ストレージコントローラ１０４はソートされた順に従ってこのデータを読み込み、更新されたデータをプライマリシステムからセカンダリシステムにコピーするコマンドを用意する。
【００２４】
００３７    オブジェクトが新しく生成された場合には、メタデータ７０５にエントリを追加させるコマンドがボリュームＩＤとオブジェクトＩＤの情報とともにセカンダリストレージシステムへ発行される。次にオブジェクトの属性が図９に示すようにフォーマットされたコマンドによりセカンダリシステム１１３に転送される。オブジェクトが削除された場合には、オブジェクトを削除させるコマンドがセカンダリストレージシステムに転送され、セカンダリシステムはメタデータ７０５からエントリを削除し、オブジェクトのデータは削除してもよく、或は再使用できるようにディスクの該当部分にマークするだけでも良い。同期が完了するとテーブル９０１は更新される。
【００２５】
００３８    プライマリシステムとセカンダリシステムの両方でデータが更新されるもう一つの状況が発生し得る。これが許され、ある時間の後にセカンダリシステムのデータがプライマリシステムのデータに同期される場合には、ストレージコントローラ７０４は図１１に示すようにテーブル１１０１を保守する。テーブル１１０１のフォーマットは９０１と同じでも良い。しかしながら、セカンダリストレージシステムのデータをプライマリストレージシステムのデータに同期させる目的には列９０５は必要ない。
【００２６】
００３９    図１２はストレージコントローラ７０４が同期プロセスの最初に使用するフローチャートである。ここに示すように、ステップ１２０１でストレージコントローラ７０４はテーブル１１０１を読み、ステータスが“新規”であるオブジェクトを全て削除する。これらの削除されたオブジェクトのエントリもまたメタデータ７０５から削除される。これはステップ１２０２に示される。次にストレージコントローラ７０４は“変更”あるいは“削除”のステータスを有するオブジェクトのボリュームＩＤとオブジェクトＩＤをリストする。次にストレージコントローラ７０４は本リストをプライマリストレージシステム１０１へ送信する。テーブル９０１（図８）のようなテーブルを使用して、テーブル９０１を維持しているストレージコントローラ１０４は、リストをセカンダリストレージシステムから受信し、リストにあるオブジェクトのステータスを“新規”に設定する。次に、セカンダリシステムのデータがプライマリシステムに同期される（プライマリシステムの更新済又は新規のデータがセカンダリストレージシステムにコピーされる）。オブジェクトが“新規”あるいは“変更”にマークされている場合には、メタデータ７０５にエントリを追加あるいは更新させるコマンドが、ボリュームＩＤおよびオブジェクトＩＤの情報とともにセカンダリストレージシステムへ発行される。次に、オブジェクトの属性が、図９に示すようにフォーマットされたコマンドによりセカンダリシステム１１３へ転送される。オブジェクトが“削除”にマークされている場合には、オブジェクトを削除させるコマンドがセカンダリストレージシステムへ転送され、セカンダリシステムはメタデータ７０５からエントリを削除し、次にオブジェクトのデータを削除するか再使用のためにディスクの該当部分にマークする。同期が完了するとテーブル１１０１は再イニシャライズされる。
【００２７】
００４０    ここに記述された技術のもう一つの期待できる応用は、セカンダリストレージシステム１１３にコピーされた全データを第三のストレージシステムへコピーすることを必要とする環境である。プライマリシステムとセカンダリシステム間でなされるのと同じ方法で本コピーを実行することができるので、データ処理の数を最小限にすることができる。あるいは、メタデータ７０５が第三のストレージシステムへ強制的にコピーされ、第三のシステムのストレージコントローラが本メタデータを使用してセカンダリシステムから適切なデータを読み出す。この方法は、セカンダリシステムがオブジェクトベースのストレージシステムではない場合に特に有利である。もちろん、ここで示唆したように、これまで記述した技術は単一のストレージシステム内でいかなるボリュームからボリュームへコピーする場合にも使用可能である。
【００２８】
００４１    以上は本発明の好適なる実施例を記述したものである。本発明の範囲は添付の請求項により明らかにされる。
【図面の簡単な説明】
【００２９】
【図１】００１０    図１は本発明が実施されるストレージシステムのアーキテクチャを示すブロック図である。
【図２】００１１    図２はメタデータを示す。
【図３】００１２    図３はボリュームコピー処理のフローチャートである。
【図４】００１３    図４はブロックレベルのコピーコマンドに使用されるデータ構造の例である。
【図５】００１４    図５はオブジェクトレベルのコピーコマンドに使用されるデータ構造の例である。
【図６】００１５    図６はストレージシステムに於けるもう一つの実施例のブロック図である。
【図７】００１６    図７はボリュームＩＤとオブジェクトＩＤの関係を示す図表である。
【図８】００１７    図８は同期コマンドを説明する表である。
【図９】００１８    図９は代表的なコマンドフォーマットを示す。
【図１０】００１９    図１０はもう一つのコマンドフォーマットを示す。
【図１１】００２０    図１１は同期テーブルを示す。
【図１２】００２１    図１２は再同期処理中のストレージコントローラのフローチャートである。
【符号の説明】
【００３０】
１０１、１１３…ストレージシステム、１０２、１０３…ローカル／物理ボリューム又はパーティション、１１１…サーバ又はホスト、１０６、１０７、１１０、１１２…インターフェース、１０５…メタデータ
【図１】
2006268829.tif 000003
【図２】
2006268829.tif 000004
【図３】
2006268829.tif 000005
【図４】
2006268829.tif 000006
【図５】
2006268829.tif 000007
【図６】
2006268829.tif 000008
【図７】
2006268829.tif 000009
【図８】
2006268829.tif 000010
【図９】
2006268829.tif 000011
【図１０】
2006268829.tif 000012
【図１１】
2006268829.tif 000013
【図１２】
2006268829.tif 000014
【外国語明細書】
2006268829000001.pdf