【手続補正書】
【提出日】平成16年9月3日(2004.9.3)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】  明細書
【発明の名称】  ストレージシステムおよびデータ保護方法ならびにデータ記憶方法
【特許請求の範囲】
【請求項１】
少なくとも一台のプロセッサユニットとの間でデータ交信を行うストレージシステムであって、
前記プロセッサユニットに結合し、前記プロセッサユニットからのデータ書き込み要求に従って、データを記憶するための複数の第一のストレージエリアをもち、前記複数の第一のストレージエリアの一つと、各々対応する第二のストレージエリアとの、ペア対応を示すペアテーブルを有する、第一のストレージユニットと、
前記第一のストレージユニットに通信結合し、前記第一のストレージエリアに対応する前記第二のストレージエリアをもつ第二のストレージユニットと、
前記各ストレージエリアの前記各ペアに対応してアサインされたプライオリテイ値を有する、前記ペアテーブルと関連付けられたプライオリテイテーブルと、
で構成され、
前記第一のストレージユニットは、前記第一のストレージエリアの一つへのデータの書き込み要求を受信し、アサインされたプライオリテイに従って、前記第二のストレージユニットにデータを送信し、前記ペアテーブルで指定された前記第一のストレージエリアに対応する前記第二のストレージエリアの一つに、データを書き込むストレージシステム。
【請求項２】
前記第一及び第二のストレージエリアは複数のデイスクストレージユニット上に形成される、請求項１のストレージシステム。
【請求項３】
第一の地域にあるストレージシステムに記憶されたデータを保護するための方法であって、該データはプロセッサシステムからのデータ書き込み要求に基づいて、予め決められた複数の第一のストレージエリアに記憶されているデータ保護方法において、
前記第一の地域とは異なる第二の地域にリモートストレージシステムを設置し、前記リモートストレージシステムには、前記第一の複数のストレージエリアの各々に対応した、第二のストレージエリアを持たせるステップと、
前記第一の地域で複数のペア表示を保持するペアテーブルを維持し、該複数のペア表示の各々は前記第一のストレージエリアの各々と、対応する前記第二のストレージエリアの一つとの対応関係を表示し、前記複数のペア表示の各々に対応してプライオリテイ値が関連して定義されるステップと、
前記複数の第一のストレージエリアの幾つかに対する、データの書き込み要求を受け取り、各ペアと関連付けられた前記プライオリテイ値に基づいて前記データを前記リモートストレージシステムに転送し、前記ペアテーブルで指定される、前記第一のストレージエリアに対応した前記複数の第二のストレージエリアの幾つかにデータを書き込むステップと、
から構成されるデータ保護方法。
【請求項４】
データを記憶するための方法であって、
第一の地域で、データの書き込み要求に応じてデータを書き込むための、複数の第一のデータストレージエリアを維持するステップと、
前記第一の地域から遠隔地にある第二の地域に於いて、複数の第二のデータストレージエリアを用意するステップと、
前記複数の第一のデータストレージエリアの各々と前記複数の第二のデータストレージエリアの各々との対応関係をとるステップと、
前記対応関係の各々にプライオリテイをアサインするステップと、
前記複数の第一のストレージエリアの最初の一つに対するデータの書き込み要求を受信し、前記プライオリテイに従って、前記対応する該第二のストレージエリアにデータを転送するステップと、
から構成されるデータ記憶方法。
【請求項５】
データ読み取りが可能なデータ記憶のためのローカルストレージメデイアと、
前記ローカルストレージメデイアへのデータ書き込み要求を受信し、リモートコピーメッセージを記憶するためのリモートコピーキューを維持する、ローカルコントローラと、
リモートストレージメデイアを有するリモートストレージシステムと、
からなり、
前記ローカルコントローラは、多数の書き込み要求を受け取り、多数の書き込み要求の各々に対してコピーメッセージを準備して、前記リモートコピーキューに登録し、前記リモートコピーキューに登録された前記各コピーメッセージにはプライオリティがアサインされており、前記コピーメッセージをアサインされたプライオリテイ値に従って、書き込み要求のデータと共に、前記リモートストレージシステムに送信する、
ストレージシステム。
【請求項６】
前記ローカルコントローラにより維持され、前記ローカルストレージメデイアの予め決められた複数のストレージエリアの各々と該リモートトレージメデイアの複数の各ストレージエリアの一つとの対応関係を表示する、ペアテーブルを含み、
前記多数の書き込み要求の各々は、データが書き込まれるべき前記ストレージエリアの一つを指定する情報を持つ、請求項５のストレージシステム。
【請求項７】
前記各コピーメッセージはデータが書き込まれる前記ローカルストレージエリアに対応するストレージエリアのペア表示を含む、請求項６のストレージシステム。
【請求項８】
少なくとも一台のプロセッサユニットとの間でデータ交信を行うストレージシステムであって、
前記プロセッサユニットに結合し、前記プロセッサユニットからのデータ書き込み要求に従って、データを記憶するための複数の第一のストレージエリアをもち、前記複数の第一のストレージエリアの一つと、各々対応する第二のストレージエリアとの、ペア対応を示すペアテーブルを有する、第一のストレージユニットと、
前記第一のストレージユニットに通信結合し、前記第一のストレージエリアに対応する前記第二のストレージエリアをもつ第二のストレージユニットと、
前記各ストレージエリアの前記各ペアに対応してアサインされたプライオリテイ値を有する、前記ペアテーブルと関連付けられたプライオリテイテーブルと、
で構成され、
前記第一のストレージユニットは、前記第一のストレージエリアの一つへのデータの書き込み要求を受信し、アサインされたプライオリテイに従って、前記第二のストレージユニットにデータを送信し、前記ペアテーブルで指定された前記第一のストレージエリアに対応する前記第二のストレージエリアの一つに、データを書き込み、
前記第一及び第二のストレージエリアは複数のデイスクストレージユニット上に形成され、
前記第一のストレージユニットと、前記第二のストレージユニットとは、それぞれ互いに地理的に離れたローカルストレージシステムと、リモートストレージシステムとに設置されて、互いに通信結合され、
前記ローカルストレージシステムが受信した書き込み要求によるデータの更新により、前記リモートストレージシステムへの当該更新データの転送が行われ、リモートコピー動作が開始される、ストレージシステム。
【請求項９】
データ読み取りが可能なデータ記憶のためのローカルストレージメデイアと、
前記ローカルストレージメデイアへのデータ書き込み要求を受信し、リモートコピーメッセージを記憶するためのリモートコピーキューを維持する、ローカルコントローラと、
リモートストレージメデイアを有するリモートストレージシステムと、
からなり、
前記ローカルコントローラは、多数の書き込み要求を受け取り、多数の書き込み要求の各々に対してコピーメッセージを準備して、前記リモートコピーキューに登録し、前記リモートコピーキューに登録された前記各コピーメッセージにはプライオリティがアサインされており、前記コピーメッセージをアサインされたプライオリテイ値に従って、書き込み要求のデータと共に、前記リモートストレージシステムに送信し、
前記ローカルコントローラにより維持され、前記ローカルストレージメデイアの予め決められた複数のストレージエリアの各々と前記リモートトレージメデイアの複数の各ストレージエリアの一つとの対応関係を表示する、ペアテーブルを含み、
前記多数の書き込み要求の各々は、データが書き込まれるべき前記ストレージエリアの一つを指定する情報を持ち、
前記各コピーメッセージはデータが書き込まれる前記ローカルストレージエリアに対応するストレージエリアのペア表示を含み、
前記ペアテーブル識別された前記ローカルストレージエリアに対応するストレージエリアのボリュームの当該ストレージエリアへのデータの追加、削除、更新等の度に、前記プライオリティ値に従って、前記リモートストレージシステムの対応するボリュームのストレージエリアへのリモートコピーが行われる、ストレージシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的にデータストレージシステムに関連し、特に、遠隔地でのデータバックアップストレージシステムでミラーされるローカルデータストレージシステムを含むデータストレージシステムに関連する。
【０００２】
【従来の技術】
現在の事業環境では、データを何らかの形でバックアップすることは、もはや贅沢ではなく、不可欠なことである。一つの会社の財務的健全性は、会社のデータに依存することが大きく、データの損失、破損、盗難等は、経済的災害であるといえる。このようなデータ損失に対して、数々のデータストレージ対策が考えられてきた。
【０００３】
多くの解決策は、メインデータストレージのデータを定期的に何処か別の所で保管・保護のため、ある種のストレージ媒体に転送することに頼っている。この“何処か別の”と言う意味は、元データと同じ一般的な場所(例えば、同じビルの同じフロアや同じビル群の何処か)かもしれない。この方式はメインストレージシステムが故障したりデータがひどく損傷を受けたときに、バックアップが得られる。しかしながらこの方式は、火事、洪水、地震のような本当の災害の場合には、元データもバックアップも共に損失するというリスクを負っている。従って、多くの企業体では、この方式を避けて、バックアップストレージシステムを、メインストレージシステムから地理的に離れた、例えば他の都市とか州とかに設置するようになってきている。後者の方式では、メインストレージシステムのデータが破損を受ける災害的な事態でも、遠隔地にあるリモートストレージシステムが災害を受けなければ、メインストレージシステムで生成され、維持されているデータのコピーをリモートストレージシステムで保管することで、データの回復が可能になる。
【０００４】
“リモートコピー”はデータを遠隔地にあるリモートストレージシステムに複製させるために現在使用されている技術の一つである。この技術が採用されると、メインまたはローカルストレージシステムにデータが書き込まれ、かつ／または更新される度に、このメインまたはローカルストレージシステムのデータはリモートストレージシステムに転送される。
【０００５】
【発明が解決しようとする課題】
しかしながら、この方式にしても、問題点がある。多くのリモートコピー技術の実施例では、ローカルストレージシステムからリモートストレージシステムにデータを転送するのに、インターネットのような広域ネットワークが用いられる。もしリモートストレージシステムに大量のデータ転送がなされている場合、リモートストレージシステムにデータを転送するリモートコピー動作の前又は動作中に、何か異常事態が発生すると、転送速度不足により、転送中のデータが失われてしまう可能性がある。多くの場合、ローカルストレージシステムでデータ更新の度に、ネットワークの空きを待つ必要があり、災害時のデータ損失時間を増大させるため、このことは稀にしか起きないこととは考えられないことである。
データ損失のリスクを最小にしなければならないことは明らかである。
【０００６】
【課題を解決するための手段】
本発明は、ローカルストレージシステムから地理的に遠隔地に存在するリモートストレージシステムにデータを転送して、リモートコピーをプライオリテイベースで実施するための、方法および当該方法を実現した装置である。データにはローカルストレージシステムにて、各データの重要度に応じてプライオリテイがアサインされる。あるデータは高いプライオリテイがアサインされ、他のデータはより低いプライオリテイがアサインされる。データはアサインされたプライオリテイに応じて転送される。
【０００７】
本発明は、データを保存するための、メインまたはローカルストレージシステムと、このローカルストレージシステムのデータをミラーする地理的に離れた少なくとも一つのリモートストレージシステムと、で構成されるデータ処理システムに広く適用される。一般的に、データはローカルストレージシステムにおいて事前に定められた“ストレージエリア”に保存される。これらのストレージエリアは、ディスクストレージ装置であっても良いし、あるいは（ファイルレベルＩ／Ｏ使用のストレージシステムでは）ファイル単位、（ブロックレベルＩ／Ｏ使用のストレージシステムでは）ブロック単位であってもよい。ローカルストレージシステムでは、ストレージエリアのペアを指定するペアテーブルが用いられ、ペアの一方は、ローカルストレージシステムのストレージエリアで、ペアの他方は対応するリモートストレージシステムのストレージエリアである。各ペアに対応して、プライオリテイがアサインされる。
【０００８】
ローカルストレージシステムが受信した書き込み要求によるデータの更新が、リモートストレージシステムへ更新データの転送を引き起こし、リモートコピー動作を開始する。転送対象のテータと対応するペアのストレージエリアを定義したリモートコピー要求が生成され、キューに登録される。このキューは周期的にチェックされ、より高いプライオリテイがアサインされたストレージエリアのリモートコピー要求が、より低いプライオリテイがアサインされたストレージエリアのリモートコピー要求より、先行して転送される。
【０００９】
【発明の実施の形態】
簡単に言えば、本発明はリモートコピーを用いて、データを優先付けして転送してバックアップする方法であり、ローカルデータストレージに書き込まれた又は更新された重要データを、災害的事態が発生して元データ（ローカルデータ）が傷つけられ、損なわれ、または失われた場合でも利用可能にするために、リモートストレージシステムにコピーすることをできる限り保証するための方法である。
【００１０】
図１では、本発明の主要機能を実装するためのデータ処理システムがブロックダイアグラムの形で一般的に説明されている。図１はローカルストレージシステム１２と、このシステムと地理的に離れた、例えばＷＡＮ（Wide  Area  Network）１４で通信結合された、リモートストレージシステム１２’より構成されるデータ処理システム１０を示す。
【００１１】
ストレージシステム１２、１２’は本質的には如何なる規模であっても良いが、容易に分かるように、本発明は大規模ストレージシステムで特に効果が発揮される。従って、ストレージシステム１２は、複数のテープまたは、デイスクのような、大量データ保存媒体により構成される。このような大量データの保存には、論理ボリュームをストレージスペースの決められた位置にマップする論理ファイル管理システムがよく採用される。慣例として、ホストシステムからの読み書き等のＩ／Ｏ要求がなされる、多数の論理ストレージユニット又は“ボリューム”で構成される“論理”ストレージ、を実装するデータ構造が、メモリ(図示していない)内か何処かに存在する。各論理ストレージユニットは、この記憶媒体中に、指定された物理ストレージエリアを持つ。データは事前に決められた一つの論理ストレージユニット、実際には、この論理ストレージを実装する物理ストレージ媒体に書き込まれる。従って、“ボリューム”なる概念は各ローカルおよびリモートストレージシステム１２、１２’の記憶媒体を識別するものとして、ここでは使用され、このようなボリュームは複数のデイスクユニットやテープユニット等、如何なるストレージタイプ上に実現されても良い。
【００１２】
かくして、図１は複数のボリューム２０、２０'を持つデータストレージシステム１２及び１２’を示す。コントロールユニット２２は一つ以上のサーバ２４よりの読み書きＩ／Ｏ要求に応答して、ボリューム２０へのアクセスと管理動作を行う。コントロールユニット２２は一般的に、ＩＯＰ（入力／出力プロセス）３２とＲＣＰ（リモートコピープロセス）３４を実行するプロセッサユニット３０を含む。ＩＯＰ３２は、各々図２、図３でより詳細に説明される、ペアテーブル３８とプライオリテイテーブル４０を管理する。加えて、ＩＯＰ３２は更に、ＲＣキュー（リモートコピーキュー）４４を管理する。
【００１３】
リモートストレージシステム１２’はローカルストレージシステム１２の、少なくとも災害時でのバックアップが必要な部分についてのミラーであり、デイスクボリューム２０'とコントロールユニット２２’を有する。コントロールユニット２２’はプロセッサユニット３０'を持ち、本プロセッサユニット３０'は、今後更に説明されるように、入力／出力プロセス及びリモートコピープロセス３２’、３４’を実行し、ローカルストレージシステム１２からバックアップ目的にボリューム２０'に送られるデータを受信する処理を行う。  慣例として、事前設定されたストレージエリアは、当該ローカル及びリモートストレージシステム１２、１２’を実現する特定のストレージアーキテクチュアとプロトコルに応じて、ボリューム２０（及び対応のボリューム２０'）上に設定される。例えば、ファイルレベルＩ／Ｏが使用される場合は、コントロールユニット２２はファイル処理可能で、サーバ２４からのファイルレベルＩ／Ｏ要求に応答可能である。典型的には、メタデータライブラリが、サーバ２４からのＩ／Ｏ要求が処理されるデータの物理位置を特定する為に維持されている。一方に於いて、ローカルストレージシステム１２は、ストレージエリアがボリューム２０上のブロック位置で定義されるストレージブロックである、ブロックレベルＩ／Ｏ方式で実装されても良い。本発明では、この二つの相異なるＩ／Ｏプロトコルの各々を用いて、以降により詳細に説明される。ローカルストレージシステム１２でどちらのプロトコルが使用されようとも、ファイルレベルＩ／Ｏ及びブロックレベルＩ／Ｏとも、リモートストレージシステム１２’でミラーされる。
【００１４】
ファイルレベルＩ／Ｏ又はブロックレベルＩ／Ｏの何れが使用されようとも、データは通常一つ又は他のボリューム２０の予め決められたストレージエリア（例えば、ファイル又はブロック）に記憶される。サーバ２４からコントロールユニット２２が受け取った要求には、当該データのストレージエリア（Ａ（１），Ａ（２）、・・・Ａ（Ｎ））及び当該エリアを有するボリューム２０の指定情報が含まれる。ローカルストレージシステム１２の各ストレージエリアは、対応するストレージエリア（Ｂ（１），Ｂ（２）、・・・Ｂ（Ｎ））をリモートストレージシステム１２’のミラーボリューム２０'上に有する。一つはボリューム２０上の、もう一つは対応するボリューム２０'上のストレージエリアのペアの対応関係は、図２で詳細説明されるペアテーブル３８で指定される。例えば、図２に示されるように、ローカルストレージエリア上のＡ（１）とこれに対応するリモートストレージエリア上のＢ（１）はペアテーブル３８ではペア番号１として識別される。同様に、ペア番号２はローカルストレージエリアＡ（２）、リモートストレージエリアＢ（２）を、ペア番号３はローカルストレージエリアＡ（３）、リモートストレージエリアＢ（３）を、ペア番号ＮはローカルストレージエリアＡ（Ｎ）、リモートストレージエリアＢ（Ｎ）を、ペア要素として指定する。
【００１５】
加えて、本発明では、各ストレージエリアのペアには、プライオリテイレベルが予めアサインされている。図３で詳細に示されるプライオリテイテーブル４０は、各ストレージエリアのペア番号と、本ペアにアサインされたプライオリテイレベルを含む。ここでは、“１”が最高プライオリテイで、“５”が最低プライオリテイとして示され、(図２のストレージエリアＡ（１）、Ｂ（１）から成る)ペア１はプライオリテイ４、ペア番号Ｎはプライオリテイ１がアサインされている。
【００１６】
ローカルストレージシステム１２は、サーバ２４からボリューム２０にアクセスする読み書き要求を通常通り処理する。当該ボリュームに記録され保全が必要なデータは、初めに、ペアテーブル３８にリストされるストレージエリアの各ペアを構成するストレージエリア（Ａ（１）、Ａ（２）、・・・）で識別され、次いで、対応するストレージエリア（Ｂ（１）、Ｂ（２）、・・・）にコピーされる。その後、データを保全するために、ペアテーブル３８で識別されたボリューム２０の当該ストレージエリアへのデータの追加、削除、更新等の度に、リモートストレージシステム１２’の対応するボリューム２０'のストレージエリアにコピーする必要がある。従って、コントロールユニット２２は、ローカルでの書き込み操作の結果、変更になったデータをミラーするために、遠隔地に離れたボリューム２０'にリモートコピーする書き込み動作を行う必要がある。
【００１７】
巨大パラレルストレージシステムで、いつ発生するかも知れない大量の書き込み要求に対応するには、リモートストレージシステム１２’へのコピーデータは、当該システムへの転送時期を調整する為に、一旦はＲＣキュー４４に置かれる。（ＲＣキュー４４には、データそのものではなく、当該データのプライオリテイとデータ自身のポインターを含む当該データを識別するリモートコピーメッセージが置かれる。データそのものは、ボリューム２０か、キャッシュメモリ(図示されていない)に置かれる）。既に述べたように、ある種のデータ更新は他のデータ更新より、より重要であり、高いプライオリテイが与えられる。この例では、プライオリテイは対象データが記憶されるストレージエリアを基準に与えられる。しかしながら、以下に見るように、プライオリテイ付与に付いては、他の観点も存在する。
【００１８】
図４は、サーバ２４からのＩ／Ｏ要求を処理する要求処理プロセス５０で取られるステップを一般的に説明する。図４で示される通り、要求処理プロセス５０は、Ｉ／Ｏ要求を受信するまで待ち状態（ステップ５１）で、周期的にサーバ２４からのＩ／Ｏ要求の到着をチェックしている。サーバからのＩ／Ｏ要求を受信すると、要求処理プロセス５０は、ステップ５１から、当該要求のタイプ、すなわち読み取り要求か、書き込み要求か、をチェックするステップ５２に進む。もし受信した要求がボリューム２０からの読み取り要求だったら、通常のリード手順(図示されていない)がステップ５４でコールされ、ボリューム２０の（指定された）ロケーションから要求データが読み出されて、要求サーバ２４に転送される。リード手順からのリターン処理により、ＩＯＰ３２はステップ５１に戻り、次のＩ／Ｏ要求の受信待ちに入る。
【００１９】
一方、ステップ５２の判定で、受け取った要求Ｉ／Ｏ５１が書き込み要求だったら、図５で示されるライト手順６０がコールされる（ステップ５６）。図５では、要求処理プロセス５０のステップ５６からコールされることにより、ライト手順６０の処理が開始され、ステップ６２で書き込み対象のストレージエリア(例えばＡ（３）)が決定される。一度決まれば、当該データはステップ６４で当該ロケーションに書き込まれる。次にステップ６６で完了メッセージが要求サーバ２４に返され、ついで、ステップ６８で当該データはリモートコピーペアの対象ストレージエリアに書き込まれたか、即ち、図１のペアテーブル３８で指定されたストレージエリアに書き込まれたか否かが判定される。従ってＩＯＰ３２はペアテーブル３８をチェックする。もし、指定のロケーション（ストレージエリア）がペアテーブルで検出されなかったら、ステップ６８の処理は終了して、コール手順即ち図４の要求処理プロセス５０のスッテプ５６にリターンする（ステップ８０）。
【００２０】
一方において、ステップ６８で、書き込み対象のストレージエリア、例えばＡ（３）がペアテーブルで指定された場合は、ステップ７０に移る。このステップでは、ペアテーブル３８(図２)で指定されたストレージエリアＡ（３）はペア番号３であることが判る。次に、ステップ７２で、ペアテーブル３８により指定されるペア番号を用いて、このペアのプライオリテイをプライオリテイテーブル４０(図３)より取得する。このプライオリテイを用いて、ライト手順６０は、リモートストレージシステム１２’のストレージエリアに対応して、データが書き込まれたローカルストレージエリア（ここではＡ（３））と当該ぺアのプライオリテイを指定する、ＲＣ（リモートコピー）要求を組み立てる（ステップ７４）。次に、このＲＣ要求はステップ７６でＲＣキュー４４に登録され、手順６０はコール元のステップ５６に対してリターンする、ステップ８０に進む。
【００２１】
すでに述べたように、プロセッサユニット３０上で走行している、ＲＣＰ３４は、リモートストレージシステム１２’のコントロールユニット２２’内に対応するＲＣＰ３４’を持つ。しかしながら、それらの存在位置に対応して、各々異なる処理を行う。図６はこれらの異なる処理を説明する。
【００２２】
図６はＲＣＰ３４と３４’で処理される主要ステップを説明する。最初のステップ９０では、リモートストレージシステム１２’のプロセッサユニット３０'上で稼動しているＲＣＰ３４’が、ＷＡＮ１４を経由したデータの受信があるかを、チェックしている。もし、データの受信が検出されれば、ステップ９２に移り、受信データのボリューム２０'へのコピーを実行するために、レシーブ手順１１０がコールされる。本処理のステップは図７で説明される。
【００２３】
一方、ローカルストレージシステム１２のＲＣＰ３４は、ステップ９０(及び９２)の処理を通過して、ステップ９６でＲＣキュー４４を周期的にチェックして、このＲＣキュー４４内にリモートコピー要求が登録されているか否かを決定している。リモートコピー要求が見つかれば、ステップ９８でセンド手順１２０をコールする。本処理は図８で詳細説明され、以下で論議される。
【００２４】
もし、ステップ９６でＲＣＰ３４がＲＣキュー４４内に処理すべき要求を見い出さなければ、ステップ１００に移り、ペアテーブル又は、プライオリテイテーブルの構成変更要求がないかをチェックする。もし存在すれば、ステップ１０２で変更が実施される。ペアテーブル又は、プライオリテイテーブルの構成変更要求は、システム管理コンソール(図には示されない)を通してなされる。このシステム管理コンソールはシステム管理者の要望に基づいて、要求を形成し、サーバ２４を通して、動作しているコントロールユニット２２にその要求を転送する。      
【００２５】
図７は、リモートストレージシステム１２’のＲＣＰ３４’のレシーブ手順１１０の処理ステップを示す。ローカルストレージシステム１２からの、リモートコピー転送は、プロセッサユニット３０'で受け取られる。各リモートコピー転送はＲＣ要求からの情報を含む。即ち、リモートストレージエリア３０（Ｂ（３））に対応する、ローカルストレージシステム１２にて書き込みが行われた、ストレージエリア（例えばＡ（３））の確認を含む。リモートＲＣＰ３４’は、メッセージを検索して、データが書き込まれるべきロケーション情報を取得して（ステップ１１４）、当該エリアにデータの書き込みを行う（ステップ１１６）。次に、ステップ１１８でレシーブ手順１１０は完了メッセージを、ＷＡＮ１４経由でローカルストレージシステム１２に返送し、ステップ１１９でステップ９２のＲＣＰ動作にリターンする。
【００２６】
図８は、図６の（ローカル）ＲＣＰ３４のステップ９８でコールされるセンド手順１２０を示す。図８に示されるように、センド手順１２０は、ＲＣキュー４４内の未処理ＲＣ要求を調べて、ステップ１２２で最高プライオリテイを持つ要求を特定する。対象要求が存在すると、その中から(もし複数の要求が存在したら)一つを選択して、与えられた情報（例えば書き込まれたローカルストレージエリア）により該当ローカルストレージエリアＡ（３）が前もって書き込んだデータを読み出し（ステップ１２４）、ステップ１２６で当該データを識別情報（ローカル、リモートのストレージエリア、及びデータのアドレス）とともに、ＷＡＮ１４を経由して、リモートストレージシステム１２’に送信する。ついで、ステップ１２８で図６のＲＣＰ処理のコール元ステップ９８に対して、リターンする。
【００２７】
すでに述べたように、ローカル、リモートストレージシステム１２，１２’はファイルシステムやプロトコル即ち、ファイルレベルＩ／Ｏか、ブロックレベルＩ／Ｏか、又は他のファイルシステムか等に基づいて、異なったアーキテクチュアを持つことが出来る。図９〜１２にそのような異なったアーキテクチュアの例を示す。  先ず図9を参照すると、ローカル、リモートストレージシステム２１２，２１２’は、サーバ及びストレージシステム間通信に、例えばＳＣＳＩ(Small  Computer  System  Interface)か、ファイバチャネルプロトコルの、ブロックレベルのＩ／Ｏプロトコルを採用するストレージシステムを示す。ローカルストレージシステム２１２は、サーバ２２４に、例えば慣用的なＬＡＮ(Local  Area  Network)で接続される。デイスクコントローラ２３０は、サーバ２２４からストレージボリューム２２０への読み書きＩ／Ｏ要求処理に、ブロックＩ／Ｏプロセスを実行する。リモートコピープロセス（図９には示されていない）は、デイスクコントローラ２３０で実行される。ブロックＩ／Ｏ及びリモートコピープロセスの双方で、すでに一般的構成が述べられたペアテーブル２３８及びプライオリテイテーブル２４０が使用可能である。
【００２８】
図９で示されるリモートストレージシステム２１２’は、（ローカル）サーバ２２４のミラーサーバ２２４’を持つことも含めて、実質的に、ローカルストレージシステム２１２のミラーとして構成される。リモートストレージシステム２１２’は、デイスクコントローラ２３０’とストレージボリューム２２０'を持つ。サーバ２２４’は、リモートストレージシステム２１２’にＬＡＮを通して接続される。ローカル、リモートストレージシステム２１２、２１２’は、各々のデイスクコントローラ２３０、２３０’を通して、互いに結合し交信する。
【００２９】
ローカル、リモートストレージシステム２１２、２１２’は、図１で説明された、ストレージシステム１２、１２’と同様に動作する。読み取り要求は、デイスクコントローラ２３０により、通常通りに実行される。書き込み要求も、デイスクボリューム２２０に対してデータを書き込むために通常通り実施されるが、加えてＲＣ要求がＲＣキュー（図９には示されていない）に登録される。このＲＣキューは、デイスクコントローラ２３０内リモートコピープロセスにより、このＲＣ要求が登録されていないか、定期的にチェックされる。もし、複数のＲＣ要求が検出されたら、ＲＣプロセスはこれらのプライオリテイを比べて、高いものから順に、当該ＲＣ要求で指定されたデータを読み出し、ＷＡＮ２１４を通して、リモートストレージシステム２１２’に送信する。
【００３０】
リモートストレージシステム２１２’では、デイスクコントローラ２３０’が、送信されたデータを受信し、デイスクボリューム２２０'の指定されたロケーション即ち、ローカルストレージシステムのデイスクボリューム２２０の対応するロケーション、に書き込む。
【００３１】
図９は又、デイスクコントローラ２３０にＬＡＮを通して交信する管理コンソール２２５を示す。管理コンソールはペアのプライオリテイ変更や、指定ペアの再定義等の構成変更を伝える、ストレージシステム２１２へのエントリ役を果たす。
【００３２】
図９Ａは、システム管理者が、ストレージシステムのペアとプライオリテイテーブルをチェックし、かつ／または構成或いは再構成するための、管理コンソール２２５のデイスプレイスクリーンに示される代表的表示画面２５０を示す。図９Ａに示される通り、スクリーン２５０は、部分ウインドウ２５２と２６０を持つＧＵＩ(Graphical  User  Interface)表示を有する。“ボリューム”で示される部分ウインドウ２５２は,図９の各ローカル、リモートストレージシステム２１２、２１２’のボリューム状態を示す。“リモートコピーペア構成”で示される部分ウインドウ２６０は、ローカルストレージシステム２１２にあるボリューム(“ボリュームＡ１”)とセカンダリーボリューム（“ボリュームＢ２”）がペア名称（“ペア１”）で指定されているテーブル２６２を示す。またこのペアにはプライオリテイ（“Ａ”）が与えられている事を示す。キ−ボードの如き適当な入力デバイスとこのスクリーンを通して、システム管理者は、表示された情報を変更することが出来る。例えば、ローカルストレージシステムにあるプライマリーボリューム（“ボリュームＡ１”）とリモートストレージシステムにある別のボリューム（例えば“ボリュームＢ１”）をペアにしたり、プライオリテイを変えることが出来る。構成変更が完了すると、管理コンソールは、ローカルストレージシステム２１２に構成結果を送信し、リモートコピープロセスが結果を受信し、ペアテーブルとプライオリテイテーブルを更新する。
【００３３】
最後に、図９に示されるように、リモートストレージシステム２１２’のサーバ２２４’はローカルストレージシステム２１２のサーバのミラーになることもありえる。この場合、サーバ２２４がローカルストレージシステム２１２と共に、決定的障害を被り、またはローカルストレージシステムの破壊でリモートストレージシステム２１２’との通信が途絶した場合等に備えて、フェイルオーバ機能が持たされることがある。
【００３４】
図１０では、ファイルレベルＩ／Ｏプロトコルを用いる、ローカル、リモートストレージシステム３１２，３１２’を有するストレージシステム３００の構成を示す。図１０に示されるように、ローカルストレージシステム３１２は、サーバ３２４からの読み書きＩ／Ｏ要求を処理するために、少なくとも１台のファイルコントローラ３３０を使用する。デイスクコントローラ３３２は、ボリューム３２０へのアクセスをコントロールする。
【００３５】
ファイルコントローラ中で走行しているのは、ファイルＩ／Ｏプロセスで、デイスクコントローラ３３２にメッセージを発行して、サーバ３２４から受け取ったファイルＩ／Ｏ要求に従ってファイルの読み書き処理を起動する。典型的には、ファイルコントローラ３３０はサーバ３２４との間のＮＦＳ(Network  File  System)又はＣＩＦＳ(Common  Internet  File  System)通信プロトコルを実装する。サーバ３２４からの読み取り要求に対する、ファイルコントローラ３３０より起動される読み取り手順は、通常通り実行される。書き込み要求は、本発明では、変更され、ファイルコントローラ３３０は３種類のテーブル；通常使用されるファイル属性(例えば名前、サイズ、生成日等)とともに、ボリューム３２０でのファイルロケーション等を示すメタデータテーブル；既に述べられたペアテーブル；及び同じく既に述べられたプライオリテイテーブル；を維持する。
【００３６】
書き込み要求に応答する書き込み動作は、一般に図１０Ａで概説されるライト手順３５０によって実行される。ファイルＩ／Ｏプロセスは、データの書き込みロケーションを示すメタデータテーブル３３７の取得（ステップ３５２）から始まる、ライト手順をコールする。フォールトトレラントおよび／又は、米国特許第６,１０８,７５０号に記されたのと類似する分散ストレージシステムを実現するために、ボリューム３２０への書き込みロケーションは複数に分散されることもある。手順３５０は次いで、ステップ３５４でペアテーブル３３８をチェックして、受信した書き込みＩ／Ｏ要求のデータは、リモートコピー対象のペアに対応するストレージエリアに登録されるべきか否かを判定する。もし登録対象でなければ、手順３５０は、ステップ３５６でリストに含まれる各ロケーション対応に、データ書き込み要求をデイスクコントローラ３３２に送信する。
【００３７】
次に、ステップ３７０で、ステップ３５６で送信されたすべての要求に対しての完了報告を待ち、全ての完了が報告されたら、本書き込みＩ／Ｏ要求を発行したサーバに対して完了報告を送信する（ステップ３７２）。次にこの手順３５０は要求元にリターンする（ステップ３７４）。
【００３８】
もし、ステップ３５４で、書き込み対象のデータは、ペアテーブル３３８でペア対象のストレージエリアに書き込まれることが判ったら、ステップ３５４から３６０に移り、ペアテーブル３３８によりペアを特定する。次に、ステップ３６２で、この特定されたペアにより、プライオリテイテーブル３４０を検索して、このペアに以前にアサインされたプライオリテイを取得し、ステップ３６６で各ロケーション対応に、データはリモートコピー対象であることを示して、デイスクコントローラ３３２に対して、書き込み要求を発行する。この様に、書き込み要求は、ペアのプライオリテイ及びリモートストレージシステム３１２’でデータが書き込まれるロケーションを含むペアの識別情報を含む。
【００３９】
一度書き込み要求がデイスクコントローラに転送されると、この手順３５０はステップ３７０で完了メッセージを待ち、受領後、ステップ３７２で要求サーバに完了メッセージを送信して、ステップ３７４に抜ける。
【００４０】
デイスクコントローラ３３２にはブロックI／Ｏプロセスとリモートコピープロセスの二つのプロセスが走行している。ブロックI／Ｏプロセスは読み取りデータを探したり、データを書き込むためにファイルコントローラ３３０からのボリュ−ム３２０に対する読み書き要求を実行する。ライト手順３８０の主要ステップを図１０Ｂに示す。ファイルコントローラ３３０から書き込み要求メッセージを受け取ると、ブロックI／Ｏプロセスのライト手順３８０は、データの書き込まれるべきロケーションを特定し（ステップ３８２）、データを書き込む（ステップ３８４）。ステップ３８６でファイルコントローラ３３０に完了メッセージが返され、次いで、ステップ３８８でこの書き込みデータはリモートコピー対象か、即ち、ファイルコントローラ３３０がそのように指示してきたか、否かを判定する。もし対象でなければ、ライト手順３８０はステップ３９４でブロックI／Ｏプロセスにリターンする。
【００４１】
反対に本要求がリモートコピー対象だったら、ステップ３８８からステップ３９０に進み、指定されたプライオリテイを用いてＲＣ要求を組み立て、ステップ３９２でＲＣキュー(図示されていない)に登録する。ついで、ライト手順３８０は、ステップ３９４でブロックI／Ｏプロセスにリターンする。
【００４２】
リモートコピー動作は、システムの構成要素が必要に応じて変わっていることを除いて、図５−図８に関連して概説されたものと本質的に同じである。同様に、書き込み要求を受け付け、処理するのは、リモートストレージシステム３１２’のデイスクコントローラ３３２’であることを除いて、リモートストレージシステム３１２’での動作も基本的には同じである。
【００４３】
図１１はローカルストレージシステム４１２及びそのコピーがリモートストレージシステム４１２’で構成される、もう一つのファイルＩ／Ｏレベルのストレージシステム４００を示す。図１０のストレージシステム３１２と同様に、ローカルストレージシステム４１２がサーバ２２４と、ボリューム４２０で構成されるストレージメデイアとの間のデータ読み書きＩ／Ｏ要求を処理する。ストレージシステム４１２は、ファイルコントローラ４３０とデイスクコントローラ４３２を有する。サーバ２２４からのファイルレベルＩ／Ｏ要求を処理するファイルコントローラは、ブロックレベルI／Ｏを用いて、ボリューム４２０に直接アクセスするデイスクコントローラ４３２と交信する。図１０のストレージシステム３１２と同様に、ファイルコントローラ４３０は、ファイルレベルＩ／ＯとブロックレベルI／Ｏの間の、一種の変換層として働く。ファイルコントローラ４３０は、ストレージシステム３１２のファイルコントローラ３３０と同様に、メタデータテーブル４３７、ペアテーブル４３８、及びプライオリテイテーブル４４０を維持する。図１１と図１０のシステムの主要な相違は、例えばＷＡＮを通して、（リモートストレージシステム４１２’のファイルコントローラ４３０’を介して）リモートストレージシステム４１２’と交信するのは、ファイルコントローラ４３０であることである。このように、ファイルコントローラ４３０は、ファイルI／Ｏプロセスの処理のみならず、リモートコピープロセスも処理し、ＲＣキュー(図示していない)も維持する。ファイルコントローラ４３０は、図１０のファイルコントローラ３３０について記したことと、本質的に同じ処理を行うが、要求されたデータ書き込みＩ／Ｏ要求が、ペアテーブル４３８により、ペア指定されているストレージロケーションに対して行われる場合は、ファイルコントローラ４３０はリモートコピーメッセージを構築して、本ファイルコントローラが維持するＲＣキューに登録することが異なる。それ以外は、ファイルコントローラ４３０とデイスクコントローラ４３２の動作は、ファイルコントローラ４３０'がリモートコピーデータを受け取り、デイスクコントローラ４３２’への書き込みメッセージを構築することを除いて、基本的に上に述べたファイルコントローラ４３０'とデイスクコントローラ４３２’の動作と同様である。
【００４４】
図１２は、図１のストレージシステムのような、ブロックレベルＩ／Ｏストレージシステムで使用可能な代表的なペアテーブルである。図１２のペアテーブル６００は、３つの主コラム、６０２、６０４、及び６０６を持ち、複数のロー６１０（１）、６１０（２）、・・・、６１０（ｎ）を有する。二つの主コラム６０４、６０６は、各々二つのサブコラム６０４ａ、６０４ｂ、及び６０６ａ、６０６ｂに分割されている。コラム６０２はペアのペア名(例えば、ＰＡＩＲ１，ＰＡＩＲ２，・・・ＰＡＩＲＮ)を指定し、コラム６０４、６０６は各々、各ペアのローカル（プライマリ）、リモート（セカンダリ）ボリュームを指定する。サブコラム６０４ａ、６０６ａはストレージシステム、サブコラム６０４ｂ、６０６ｂはストレージシステム内のボリュームを指定する。ペアテーブル６００には、図示されてはいないが、各ペアのプライオリテイを指定するプライオリテイテーブルが関連している。
【００４５】
ペアテーブルには、他の構成もありえることは、本分野に造詣のある人には明白である。例えば、図１３Ａは、デバイステーブルを示す。デバイスは、デイスクユニット、デイスクユニットの一部、又は他のストレージメデイアのデバイスであっても良い。図１３Ａで示すテーブルの各ローは、デバイス名、デバイス名に対応するローカル（プライマリ）システムのプライマリボリューム、及び対応するリモートストレージシステムのセカンダリボリュームを指定する。図１３Ｂは複数デバイス(例えばデイスクユニット)に分割構成されるペアの例を示し、各デバイスは、データ記憶のためのローカル及びリモートのペア名を指定する。
【００４６】
図１４は、ブロックレベルＩ／Ｏストレージに於ける、複数デバイス構成のペアテーブルでのプライオリテイの一指定法を示す。図１４では、各ペアは、複数デバイスに跨り、各デバイスに独立のプライオリテイがアサインされている。
【００４７】
図１５は、ファイルレベルＩ／Ｏストレージシステムで使用されるペアテーブルの構成例を示す。このテーブルは、３つのコラムで構成される点では、（図１２で説明された）ブロックレベルＩ／Ｏストレージシステムのペアテーブルと基本的には同じである。即ち、ペアを指定するコラム、プライマリ又はローカルのファイル／デイレクトリを指定するコラム、及びセカンダリ又はリモートのファイルシステムを指定するコラムを持っている。もし、ファイル名が指定されると、当該ファイルが複製され、デイレクトリ名が指定されると、当該デイレクトリのツリー構造及び、このデイレクトリ下のファイルが複製される。プライマリで指定されたファイルやデイレクトリがプライマリファイルシステムと同一構造でセカンダリファイルシステムに於いて複製されるため、セカンダリファイルやデイレクトリを指定する必要はないことは明らかである。
【００４８】
以上で示したいずれのペアテーブルでも、図３で開示したのと同様のプライオリテイテーブルを用いることが出来る(勿論、自らプライオリテイ項目を持っている図１４のペアテーブルは、例外である)。しかしながら、プライオリテイ付けには多様な方法が考えられる。例えば、プライオリテイ付けは、書き込み動作を発行するアプリケーションに基づいて行うことが出来る。一例として、データベース処理がテキストエデイタ処理より高い重要度がある場合、データベース処理により起動される書き込み動作は、テキストエデイタ処理により起動される書き込み動作より高いプライオリテイがアサインされても良い。あるいは、プライオリテイ付けは、ユーザに基づいても良い。図１６及び図１７はそれぞれ、図1に示すようなブロックレベルＩ／Ｏシステムに対するＲＣ要求(図１６)、又はファイルレベルＩ／Ｏシステムに対するＲＣ要求(図１７)、のフォーマットを示す。
【００４９】
先ず図１６に戻って、ブロックレベルＩ／Ｏシステムの代表的ＲＣ要求を示す。この要求では、書き込み動作で更新されるストレージエリアは；プライオリテイ「２」が指定され、ローカルストレージシステムにデータが保存されるストレージエリアは「ストレージシステムＡ，ボリュームＡ１」、リモートストレージシステムにコピーされるデータのロケーションは「ストレージシステムＢ，ボリュームＢ２」、両ボリューム内の書き込みアドレスは「１３」、そしてデータのサイズは「８ＫＢ」が指定されている。図１７はファイルレベルフォーマットでのＲＣ要求を示す。更に、この要求では、プライオリテイレベルは「２」、ローカル及びリモートのストレージエリアは「ストレージシステムＡ，ファイルシステムＡ１；ストレージシステムＢ，ファイルシステムＢ２」、ファイル名は「／ＵＳＲ／ｆｉｌｅ１」、ファイルオフセットは「５２０」、そしてファイルサイズは「１０２４」が指定されている。
【００５０】
送信のためのリモートコピー要求を選択するための方法は、各種考えられる。例えば、まずＲＣキュー４４(図１)を定期的に調べて、最高のプライオリテイを有するリモートコピー要求を探し、見つかった場合は、この要求をリモートストレージシステムにＷＡＮを通して転送する。最高プライオリテイの要求が見つからなかった場合は次に高いプライオリテイの要求を見つけ、以下順にプライオリテイを下げて繰り返す。
【００５１】
あるいは又、リモートコピー要求を、最初に来たものを最初に処理する（First-Come,First-Serve）方式でＲCキュー４４内に登録することも出来る。この場合、リモートコピープロセス３４は、より以前に登録された、或る（他より高い）プライオリティーをもつリモートコピー要求を探すためにＲＣキュー４４内をチェックする。即ちＲＣキューはプライオリテイベースのＦＩＦＯ(First-In  First-Out)で処理するように構築される。或いは又、各要求が生成され、又は保存された時間を示す、タイムスタンプを用いてコピー要求を処理し、キュー構造を用いない方法も考えられる。リモートコピープロセス３４は、最高プライオリテイをアサインされたリモートコピー要求を含む構成をサーチする。次に、該当が見つかったら、タイムスタンプに従ってリモートストレージシステムに転送する。
【００５２】
要約すると、重要なデータの変更が、より重要性の低いデータの転送を待つことなく、可能な限り速やかに、リモートストレージシステムでミラーされることを保証するために、プライオリテイに従って、ローカルストレージシステムに維持されたデータの遠隔地に置かれたコピーを更新するための、リモートコピーの方法、及び装置が開示された。
【００５３】
本発明の、上記ならびに下記及び他の効果は、添付する図面とともに本明細書の上記に述べる発明の詳細な説明を読むことにより、本分野に造詣のある人には明確になる。
【００５４】
【発明の効果】
本発明から多数の効果が明白になる。第一に、重要なデータは最大限速やかにリモートストレージシステムにバックアップされる。重要性の低いデータの転送に待たされて、重要なデータの損失が起きるリスクは、もはや存在しないと期待される。
【図面の簡単な説明】
【図１】
図１は本発明による、ローカルおよび(地理的に離れた)リモートストレージシステムで構成されるデータストレージシステムを有するデータ処理システムの基本コンセプトを具体化し、一般的に説明する、ブロックダイアグラムである。
【図２】
図２は図１のローカルストレージシステムで用いられるペアテーブルを示す図である。
【図３】
図３は図１のローカルストレージシステムで用いられるプライオリテイテーブルの構成を示す図である。
【図４】
図４はＩ／Ｏ要求の受領で起動されて、図１のローカルストレージシステムが遂行する初期ステップを示すフローチャートである。
【図５】
図５は図４の書き込み要求の実行のためにコールされる処理ステップを示すフローチャートである。
【図６】
図６はリモートコピー処理で実行される処理ステップを示すフローチャートである。
【図７】
図７はリモートストレージシステムが、バックアップのために図１のローカルストレージシステムより送られたデータを受信し処理する為のステップを示すフローチャートである。
【図８】
図８は図１のローカルストレージシステムが、書き込まれた又は更新されたリモートコピーデータをバックアップの為に、リモートストレージシステムに送信する為の処理ステップを示すフローチャートである。
【図９】
図９はローカル及びリモートストレージシステムに於いて、ブロックレベルＩ／Ｏを採用し、本発明に基づいて構成される、データストレージシステムのブロックダイグラムである。
【図９Ａ】
図９Ａは図９のシステムの管理コンソールで表示される典型的なＧＵＩ画面である。
【図１０】
図１０は本発明のファイルレベルＩ／Ｏプロトコルを用いて構成されるデータストレージシステムの実施例のブロックダイグラムである。
【図１０Ａ】
図１０ＡはＩ／Ｏ書き込み要求の受信に対応して、書き込み動作のために図１０のストレージシステムが実施する処理ステップを示すフローチャートである。
【図１０Ｂ】
図１０ＢはＩ／Ｏ書き込み要求の受信に対応して、書き込み動作のために図１０のストレージシステムが実施する処理ステップを示すフローチャートである。
【図１１】
図１１は本発明のファイルレベルＩ／Ｏプロトコルを使用するストレージシステムの他の実施例を示すのブロックダイグラムである。
【図１２】
図１２は本発明のブロックレベルＩ／Ｏプロトコルを用いるストレージシステムのペアテーブルを示す図である。
【図１３Ａ】
図１３Ａは本発明のペアテーブルのそれぞれ相異なる実施例を示す図である。
【図１３Ｂ】
図１３Ｂは本発明のペアテーブルのそれぞれ相異なる実施例を示す図である。
【図１４】
図１４は本発明のペアテーブルのそれぞれ相異なる実施例を示す図である。
【図１５】
図１５はファイルレベルＩ／Ｏストレージシステムで使用できるペアテーブルを示す図である。
【図１６】
図１６はブロックレベルＩ／Ｏシステムを採用するリモートコピー（ＲＣ）要求のフォーマットを示す図である。
【図１７】
図１７はファイルレベルＩ／Ｏシステムを採用するリモートコピー（ＲＣ）要求のフォーマットを示す図である。
【符号の説明】
１２・・・ローカル／プライマリストレージシステム、１２’・・・／リモート／セカンダリストレージシステム、14・・・WAN、２０・２０‘・・・ストレージボリューム、２２，２２’・・・コントロールユニット、２４・・・サーバ、３０・３０‘・・・プロセッサユニット、３２，３２’・・・ＩＯＰ、３８・・・ペアテーブル、４０・・・プライオリテイテーブル、４４・・・ＲＣキュー。