(57)【特許請求の範囲】
【請求項１】
２つの仮想サーバとそれぞれがホスト・デバイスおよび各仮想サーバに結合された複数の仮想コントローラとを有し、各仮想サーバは２つのストレージ・ライブラリのうちの１つにさらに結合された、データ・ストレージ・システム内に、データを格納するための方法であって、
データのボリュームを格納するためにホスト・デバイスからの書き込み要求を第１の仮想コントローラ内で受信するステップと、
第１のライブラリに格納するために前記ボリュームを第１の仮想サーバへ送信するステップと、
前記第１の仮想コントローラのキューに前記ボリュームをコピーする旨の要求をキューイングするステップと、
前記コピー要求が前記第１の仮想コントローラによって所定の時間内に処理されない場合は、
（ａ）  前記コピー要求を各々の他の仮想コントローラにブロードキャストするステップと、
（ｂ）  前記コピー要求を各々の他の仮想コントローラのコピー・キュー内に配置するステップと、
（ｃ）  前記コピー要求を前記仮想コントローラのうちの１つによって処理するステップと、
（ｄ）  前記処理中の仮想コントローラから各々の処理中でない仮想コントローラへ、「完了」メッセージをブロードキャストするステップと、
前記第１の仮想コントローラから前記ホスト・デバイスへ「コピー完了」メッセージを送信するステップと、
を有する方法。
【請求項２】
前記コピー要求を各々の他の仮想コントローラにブロードキャストするステップが、
コピー要求を、前記第１の仮想コントローラから、前記第１および第２の仮想サーバのうちの１つにあるルーティング・デバイスへ送信するステップと、
前記コピー要求を、前記ルーティング・デバイスから各々の他の仮想コントローラへブロードキャストするステップと、
を有する、請求項１に記載の方法。
【請求項３】
前記「完了」メッセージを、各々の処理中でない仮想コントローラへブロードキャストするステップが、
前記「完了」メッセージを、前記処理中の仮想コントローラから、前記第１および第２の仮想サーバのうちの１つにあるルーティング・デバイスへ送信するステップと、
前記「完了」メッセージを、前記ルーティング・デバイスから各々の他の仮想コントローラへブロードキャストするステップと、
を有する、請求項１に記載の方法。
【請求項４】
前記コピー要求を各々の他の仮想コントローラへブロードキャストするステップが、
コピー要求を、前記第１の仮想コントローラから、前記第１および第２の仮想サーバのうちの１つにあるルーティング・デバイスへ送信するステップと、
前記コピー要求を、前記ルーティング・デバイスから他の各仮想コントローラへブロードキャストするステップと、
を有し、
前記「完了」メッセージを、各々の処理中でない仮想コントローラへブロードキャストするステップが、
前記「完了」メッセージを、前記処理中の仮想コントローラから、前記第１および第２の仮想サーバのうちの１つにあるルーティング・デバイスへ送信するステップと、
前記「完了」メッセージを、前記ルーティング・デバイスから各々の他の仮想コントローラへブロードキャストするステップと、
を有する、
請求項１に記載の方法。
【請求項５】
前記コピー要求の処理に続いて、各々の処理中でない仮想コントローラのキューから前記コピー要求をデキューイングするステップをさらに有する、請求項１に記載の方法。
【請求項６】
各々の仮想コントローラが、各種遅延期間について前記コピー要求を処理しようとするのを防止するステップをさらに有する、請求項１に記載の方法。
【請求項７】
各種遅延の各々がランダムな遅延を有する、請求項６に記載の方法。
【請求項８】
各種遅延期間の各々が複数の所定の時間単位からランダムに選択される、請求項６に記載の方法。
【請求項９】
前記所定の時間がほぼ１秒である、請求項１に記載の方法。
【請求項１０】
前記仮想コントローラが仮想テープ・コントローラであり、前記仮想サーバが仮想テープ・サーバである、請求項１に記載の方法。
【請求項１１】
その各々がホスト・デバイスに接続された複数の仮想コントローラと、
その各々が各仮想コントローラに接続された第１および第２の仮想サーバと、
その各々が第１および第２の仮想サーバにそれぞれ接続された、第１および第２のストレージ・ライブラリと、
データのボリュームを格納するための前記ホスト・デバイスからの書き込み要求を第１の仮想コントローラ内で受信するための手段と、
前記第１のストレージ・ライブラリに格納するために前記第１の仮想サーバへ前記ボリュームを送信するための手段と、
前記第１の仮想コントローラのキューに前記ボリュームをコピーする旨の要求をキューイングするための手段と、
前記コピー要求が前記第１の仮想コントローラによって所定の時間枠内に処理されない場合は、前記コピー要求を各々の他の仮想コントローラにブロードキャストするための手段と、
前記コピー要求を各々の他の仮想コントローラのキューにキューイングするための手段と、
前記コピー要求を前記仮想コントローラのうちの１つによって処理するための手段と、
前記処理中の仮想コントローラから各々の処理中でないコントローラへ、「完了」メッセージをブロードキャストするための手段と、
前記第１の仮想コントローラから前記ホスト・デバイスへ「コピー完了」メッセージを送信するための手段と、
を有する、データ・ストレージ・システム。
【請求項１２】
ホスト・デバイスに接続するためのホスト・アダプタと、
第１および第２の仮想ストレージ・サーバにそれぞれ接続するための第１および第２のアダプタであって、前記第１および第２の仮想サーバはそれぞれ第１および第２のストレージ・ライブラリに結合され、さらに複数の他の仮想ストレージ・コントローラの各々に結合される、第１および第２のアダプタと、
前記ホスト・デバイスから受信したコピー要求を格納するためのコピー・キューと、
（１）  データのボリュームを格納するために前記ホスト・デバイスから書き込み要求を受信するための命令、
（２）  前記第１のライブラリに格納するために前記ボリュームを前記第１の仮想ストレージ・サーバへ送信するための命令、
（３）  前記ボリュームをコピーする旨の要求を前記コピー・キューにキューイングするための命令、
（４）  前記コピー要求が所定の時間内に前記仮想ストレージ・コントローラによって処理されない場合は、前記コピー要求を各々の他の仮想コントローラにブロードキャストし、それによって前記コピー要求が各々の他の仮想ストレージ・コントローラ内のコピー・キューにキューイングされるための命令、
（５）  前記コピー要求を前記仮想コントローラのうちの１つによって処理するための命令、
（６）  前記コピー要求を処理した仮想ストレージ・コントローラから「完了」メッセージを受信し、前記「完了」メッセージが各々の処理中でないストレージ・コントローラへブロードキャストされるための命令、
（７）  前記ホスト・デバイスへ「コピー完了」メッセージを送信するための命令、
を実行するようにプログラムされたプロセッサと、
を有する、仮想ストレージ・コントローラ。
【請求項１３】
ホスト・デバイスに接続するためのホスト・アダプタと、
第１および第２の仮想ストレージ・サーバにそれぞれ接続するための第１および第２のアダプタであって、前記第１および第２の仮想サーバはそれぞれ第１および第２のストレージ・ライブラリに結合され、さらに、第１の仮想ストレージ・コントローラを含む複数の他の仮想ストレージ・コントローラの各々に結合される、第１および第２のアダプタと、
コピー要求を格納するためのコピー・キューと、
（１）前記第１の仮想ストレージ・コントローラからボリュームをコピーする旨の要求を受信するための命令、
（２）前記ボリュームをコピーする旨の要求を前記コピー・キューにキューイングするための命令、
（３）他の仮想ストレージ・コントローラから「完了」メッセージが受信されない場合に、前記コピー要求を処理するための命令、
（４）各々の他の仮想ストレージ・コントローラに「完了」メッセージをブロードキャストするための命令、
を実行するようにプログラムされたプロセッサと、
を有する、仮想ストレージ・コントローラ。
【請求項１４】
前記仮想ストレージ・コントローラが、他の仮想ストレージ・コントローラと実質的に同時に前記コピー要求を処理しようとする可能性、を減少させるための命令をさらに有する、請求項１３に記載の仮想ストレージ・コントローラ。
【請求項１５】
前記コピー要求を処理するための前記命令が、
他の仮想ストレージ・コントローラから「完了」メッセージが受信されない場合、遅延期間後に前記要求を処理するための命令と、
前記遅延期間中に他の仮想ストレージ・コントローラから「完了」メッセージが受信された場合、前記コピー要求を取り消し、前記コピー・キューから前記コピー要求を除去するための命令と、
を有する、請求項１４に記載の仮想ストレージ・コントローラ。
【請求項１６】
前記遅延期間が、前記コピー要求の対象である前記ボリュームの名前と組み合わされた仮想ストレージ・コントローラのユニット番号から生成された番号を有する、請求項１５に記載の仮想ストレージ・コントローラ。
【請求項１７】
プログラム可能コンピュータと共に使用可能なコンピュータ読取り可能媒体のコンピュータ・プログラムであって、前記コンピュータ・プログラムは、顧客データを格納するために具体化され、複数のうちの第１の仮想ストレージ・コントローラ上で実行可能なコンピュータ読取り可能コードを有し、各々の仮想ストレージ・コントローラは、ホスト・デバイスと第１および第２の仮想ストレージ・サーバとに結合され、前記コンピュータ読取り可能コードは、
データのボリュームを格納するために前記ホスト・デバイスから前記第１の仮想ストレージ・コントローラによって書き込み要求が受信された場合に、
（１）  第１のライブラリに格納するために前記ボリュームを前記第１の仮想ストレージ・サーバに送信し、
（２）  前記ボリュームをコピーする旨の要求を前記第１の仮想ストレージ・コントローラ内のキューにキューイングし、
（３）  前記コピー要求が前記第１の仮想ストレージ・コントローラによって所定の時間内に処理されない場合には、
（３−１）  前記コピー要求を各々の他の仮想ストレージ・コントローラにブロードキャストし、それによって前記コピー要求が各々の他の仮想ストレージ・コントローラのキュー内にキューイングされ、
（３−２）  前記コピー要求を処理中の第２の仮想ストレージ・コントローラから「完了」メッセージを受信し、
（４）  前記コピー要求が前記第１の仮想ストレージ・コントローラによって所定の時間内に処理される場合には、
（４−１）  第２のライブラリに格納するために前記ボリュームを前記第２の仮想ストレージ・サーバに送信し、
（４−２）  「完了」メッセージを各々の他の仮想ストレージ・コントローラにブロードキャストし、それによって各々の他の仮想ストレージ・コントローラ内のコピー・キューから前記コピー要求が除去され、
（５）  前記ホスト・デバイスへ「コピー完了」メッセージを送信し、
データのボリュームを格納するために前記ホスト・デバイスから前記第２の仮想ストレージ・コントローラによって書き込み要求が受信された場合に、
（６）  前記第２の仮想ストレージ・コントローラからボリュームをコピーする旨の要求を受信し、
（７）  前記コピー要求を前記キューにキューイングし、
（８）  「完了」メッセージが他の仮想ストレージ・コントローラから受信されない場合には、
（８−１）  前記コピー要求を処理し、
（８−２）  「完了」メッセージを各々の他のストレージ・コントローラにブロードキャストする、
ための命令を有する、コンピュータ・プログラム。
【請求項１８】
前記コピー要求が前記第１の仮想ストレージ・コントローラによって所定の時間内に処理されない場合に、前記「完了」メッセージの受信に続いて、各々の処理中でない仮想コントローラの前記キューから前記コピー要求をデキューイングするための命令と、
データのボリュームを格納するために前記第２の仮想ストレージ・コントローラによって前記ホスト・デバイスから書き込み要求が受信された場合に、前記コピー要求の前記処理に続いて、前記コピー要求を前記キューから除去するための命令と、
をさらに有する、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記ボリュームをコピーする旨の要求が、前記第１の仮想ストレージ・コントローラによって前記第２の仮想ストレージ・コントローラから受信された場合、前記第１の仮想ストレージ・コントローラが、他の仮想ストレージ・コントローラと実質的に同時に前記コピー要求を処理しようとする可能性、を減少させるための命令をさらに有する、請求項１７に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ・ストレージ・システムに関し、具体的に言えば、仮想ストレージ・コントローラ間でのより効率的なボリューム（ｖｏｌｕｍｅ）・コピー動作の提供に関する。
【背景技術】
【０００２】
高性能のストレージ・コントローラは、ネットワーク化されたホストからストレージ・ライブラリなどの１つまたは複数のストレージ・ユニットへの入出力（Ｉ／Ｏ）要求を管理する。ストレージ・コントローラには、１つまたは複数のホストおよびアダプタと通信するための１つまたは複数のホスト・バス・アダプタまたはインターフェース、あるいはストレージ・ユニットが接続されたストレージ・サーバと通信するためのインターフェースが含まれる。ストレージ・システムを含む情報技術システムは、サイトの災害または機能停止からの保護を必要とすることがあり、機能停止は計画的または非計画的な場合がある。さらに情報技術システムは、データ移送、データ・バックアップ、またはデータ複写のための機能を必要とすることがある。災害または機能停止からの回復、データ移送、データ・バックアップ、およびデータ複写のための実施には、ストレージ・システム内でのデータのミラーリングまたはコピーが含まれる場合がある。こうしたデータのミラーリングまたはコピーは、情報技術システムのホスト、ストレージ・システム、および接続ネットワーク構成要素、の間での対話を必要とすることがある。
【０００３】
ピアツーピア（「ＰｔＰ」）ストレージ環境では、２つの仮想ストレージ・サーバがそれぞれいくつか（４つまたは８つなど）の仮想ストレージ・コントローラに接続される。各コントローラおよび各サーバに接続されたホスト・デバイスが、ストレージ・ライブラリに接続される。ライブラリは、多数のストレージ・ドライブ、多数のデータ・カートリッジ用のシェルフ、およびシェルフとストレージ・ドライブとの間で要求されたカートリッジを移送するための１つまたは複数のアクセス機構を含むことができる。ホスト・デバイスに対しては、システム全体が単一の自動化ストレージ・ライブラリとして現われる。本明細書では本発明を、磁気テープ媒体上に格納されたデータに関して説明する。したがって本明細書では、「仮想ストレージ・コントローラ」および「仮想ストレージ・サーバ」をそれぞれ「仮想テープ・コントローラ」（「ＶＴＣ」）および「仮想テープ・サーバ」（「ＶＴＳ」）と呼ぶ場合もある。しかしながら本発明は、テープ環境での使用に限定されるものではなく、磁気ディスク・ストレージおよび光ストレージなどの他の環境でも同様に実施可能である。
【０００４】
図１は、本発明が実施可能な典型的なデータ・ストレージ・システム１００を示すブロック図である。ＩＢＭ（登録商標）Ｍｏｄｅｌ  ＡＸＯ  Ｖｉｒｔｕａｌ  Ｔａｐｅ  Ｃｏｎｔｒｏｌｌｅｒなどのいくつか（典型的には４つまたは８つ）の仮想テープ・コントローラ１１０Ａ、１１０Ｂ、１１０Ｃ、および１１０Ｄが、それぞれ、ＩＢＭ  ３４９４  Ｍｏｄｅｌ  Ｂｘｘ  Ｖｉｒｔｕａｌ  Ｔａｐｅ  Ｓｅｒｖｅｒなどの２つの仮想テープ・サーバ１２０Ａおよび１２０Ｂに接続される。第１のＶＴＳ  １２０Ａは第１のテープ・ライブラリ１３０Ａに接続され、第２のＶＴＳ  １２０Ｂは第２のテープ・ライブラリ１３０Ｂに接続される。ライブラリ１３０Ａおよび１３０Ｂは、ＩＢＭモデル３４９４テープ・ライブラリとすることができる。各ＶＴＣ  １１０Ａ〜Ｄは、ＩＢＭ  Ｓｙｓｔｅｍ／３９０（登録商標）などのホスト・デバイス１４０にも接続される。
【０００５】
記載された構成は、ピアツーピアのコピー動作も可能である。図２に示された従来の方法では、顧客データ１５０のボリュームが、ホスト１４０からＶＴＣの１つである１１０Ａへ書き込み要求の一部として転送される（ステップ１）。ボリューム１５０は、関連ライブラリ１３０Ａ内のテープ媒体の最終ストレージ用に、ＶＴＳの１つである１２０Ａへ転送される（ステップ３）。さらに、ホスト書き込み要求を受信したＶＴＣ  １１０Ａは、ボリューム１５０を第２のライブラリ１３０Ｂ内の媒体にコピーする（ステップ５）ための要求を、第２のＶＴＳ  １２０Ｂに対して発行する（ステップ４）。即時モードで動作している場合、第１のＶＴＣ  １１０Ａは、ボリューム１５０が第２のライブラリ１３０Ｂにコピーされたことが通知される（ステップ６）まで待機した後、書き込み要求が完了したという確認をホスト１４０に提供する（ステップ７）。別のモードの場合、第１のＶＴＣ  １１０Ａは、書き込み要求が完了したことをホスト１４０に通知した後、ボリューム１５０が第２のライブラリ１３０Ｂにコピーされた旨の通知を受信することができる。ホスト１４０は「完了」メッセージを受信した後、別のＩ／Ｏオペレーションを含む他のオペレーションを自由に実行することができる。
【０００６】
図示された従来の方法では、通常、ホスト・デバイス１４０はＶＴＣ  １１０Ａ〜Ｄの現在の作業負荷とはほとんど無関係に、書き込み動作を処理するＶＴＣを選択する。ＡＸＯ  ＶＴＣは３つの同時複製動作しか実行できないので、その作業キュー（ｑｕｅｕｅ）内には１６または３２の複製などのかなりのバックログを有する可能性がある。したがって、動作が完了した旨をホスト１４０に通知できるまでにかなりの時間がかかる可能性があり、これによってホスト１４０が同じ時間枠に他の動作を実行するのが妨げられる。さらに、キュー内にあるジョブが少ない他のＶＴＣは、最初のＶＴＣがキューで作業をしている間アイドルとなる可能性がある。
【０００７】
特定のＶＴＣ−ＶＴＳ通信リンクが他のホストＩ／Ｏ動作によって過剰に利用された場合、同様の問題が生じる。こうした他の動作が、キュー内のコピー要求を遅延させる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、コピー要求を分配するためのより効率の良い方法が求められている。
【課題を解決するための手段】
【０００９】
本発明は、データ・ストレージ・システム内でのコピー動作の効率を上げるための方法、装置、およびプログラムを提供するものである。複数の仮想ストレージ・コントローラが、それぞれホスト・デバイスおよび２つの仮想ストレージ・サーバと通信している。どちらの仮想ストレージ・サーバも、それぞれ自動化されたストレージ・ライブラリに接続される。各コントローラには１つのコピー・キューが含まれる。顧客データのボリュームをサーバの１つを介して関連ライブラリ内の媒体に格納するように指示した後、開始コントローラは、当該ボリュームを他のライブラリにコピーするようにという旨の要求をコピー・キューにキューイングする。当該要求がごく短い期間の間に開始コントローラによって処理されない場合、開始コントローラは当該コピー要求を他のコントローラにブロードキャストする。好ましくは、当該コピー要求は最初に開始コントローラからサーバの１つにあるルーティング・デバイスに送信され、これが、当該要求を他のそれぞれのコントローラにブロードキャストする。コピー要求は、他のそれぞれのコントローラのコピー・キューにキューイングされる。コントローラの１つが当該要求を処理し、ボリュームが第２のライブラリにコピーされた後、処理コントローラは他のコントローラにメッセージをブロードキャストし、他のコントローラはそれぞれのコピー・キューからコピー要求をデキューイング（ｄｅｑｕｅｕｉｎｇ）する。こうしたメッセージを受信すると、開始コントローラは、ボリュームが首尾よく格納およびコピーされた旨のメッセージをホスト・デバイスに送信する。
【００１０】
２つまたはそれ以上のコントローラがほぼ同時にコピー要求を処理しようとする可能性を減らすために、好ましくはコピー要求が各コピー・キュー内に配置される時間と、これを各コントローラが処理できる時間との間に、遅延が課される。当該遅延は、各コントローラについて事前に決定するか、または各コピー要求に伴ってランダムに生成することができる。
【発明を実施するための最良の形態】
【００１１】
図３のブロック図および図４の流れ図を参照しながら、本発明の実施態様について説明する。データ・ストレージ・システム３００は、いくつか（４つまたは８つなど）の仮想テープ・コントローラ３１０Ａ、３１０Ｂ、３１０Ｃ、および３１０Ｄを含む。各コントローラ３１０Ａ〜Ｄは、適切なアダプタおよびインターフェースを介して２つの仮想テープ・サーバ３２０Ａおよび３２０Ｂに接続される。第１のサーバ３２０Ａは第１の自動化ストレージ・ライブラリ３３０Ａに接続され、第２のサーバ３２０Ｂは第２の自動化ストレージ・ライブラリ３３０Ｂに接続される。各コントローラ３１０Ａ〜Ｄは、適切なアダプタおよびインターフェースを介してホスト・デバイス３４０とも接続される。各コントローラ３１０Ａ〜Ｄは、それぞれコピー・キュー３１２Ａ〜Ｄを含み、サーバ３２０Ａおよび３２０Ｂはどちらも、それぞれルーティング・デバイス３２２Ａおよび３２２Ｂを含む。
【００１２】
動作時、ホスト３４０は仮想コントローラ３１０のうちの１つを選択し（ステップ４００）、顧客データのボリューム３５０を格納する旨の書き込み要求を発行する（ステップ４０２）。図示された例では、選択されたコントローラは第２のコントローラ３１０Ｂであるが、前述のように任意のコントローラを選択することができる。書き込み要求は、選択された仮想コントローラ３１０Ｂから２つの仮想サーバのうちの１つに送信され（図示された例では、書き込み要求は第１のサーバ３２０Ａに送信される）（ステップ４０４）、次にこれが関連するライブラリ３３０Ａにボリュームを格納する（ステップ４０６）。ホスト３４０は、コントローラ３１０Ｂへの書き込み要求の発行を完了すると、「書き込み完了」メッセージを発行する（ステップ４０８）。選択されたコントローラ３１０Ｂは、そのキュー３１２Ｂ内に、関連するライブラリ３３０Ｂに格納するために第２のサーバ３２０Ｂを介してボリュームをコピーする旨の要求をキューイングする（ステップ４１０）。
【００１３】
第２のコントローラ３１０Ｂのコピー・キュー３１２Ｂ内で待機状態となっているジョブがわずかである場合（ステップ４１２）、当該要求は、コピー要求を第２のサーバ３２０Ｂへ送信することによって、１秒などの比較的短時間のうちに処理される可能性がある（ステップ４１４）。しかしながら、より多くのジョブが、当該要求を即時に処理するために第２のコントローラ３１０Ｂに関するキュー内で待機状態となっている場合がある。第２のコントローラ３１０Ｂは、当該コピー要求をキューの最初に進むまで待機させておく（数秒またはそれ以上かかる可能性がある）のではなく、当該コピー要求を他のコントローラ３１０Ａ、３１０Ｃ、および３１０Ｄにブロードキャストする（ステップ４１６）。好ましくは、当該コピー要求は第１にサーバ３２０のうちの１つにあるルータ３２２に送信され、図示された例では、第１のサーバ３２０Ａ内のルーティング・デバイス３２２Ａが採用される（ステップ４１６）。その後、当該ルーティング・デバイス３２２Ａは当該コピー要求を他のコントローラ３１０Ａ、３１０Ｃ、および３１０Ｄのすべてにブロードキャストし、当該コピー要求は、他の各コントローラ３１０Ａ、Ｃ、およびＤのコピー・キュー３１２Ａ、Ｃ、およびＤそれぞれにキューイングされる（ステップ４１８）。
【００１４】
最終的には、コピー・ジョブは、起点のコントローラ３１０Ｂのコピー要求を含むコピー要求３１２Ａ、Ｂ、Ｃ、およびＤのうちの１つの最初まで進むことになる。図示された例では、コピー・ジョブは、ボリュームのコピー３５０Ａを第２のサーバ３２０Ｂへ送信し（ステップ４２０）、これが第２のライブラリ３３０Ｂ内の媒体に格納する（ステップ４２２）ことにより、第３のコントローラ３１０Ｃによって処理される。その後、第３のコントローラ３１０Ｃは、他の処理中でないコントローラ３１０Ａ、Ｂ、およびＤに「完了」メッセージをブロードキャストする（ステップ４２４）。好ましくは、「完了」メッセージは、第１にサーバのうちの１つのルーティング・デバイス（図３では第２のサーバ３２０Ｂのルーティング・デバイス３２２Ｂ）に送信され、これがメッセージを他のコントローラ３１０Ａ、Ｂ、およびＤにブロードキャストする（ステップ４２６）。他のすべてのコントローラ３１０Ａ、Ｂ、およびＤは、そのそれぞれのコピー・キュー３１２Ａ、Ｂ、およびＤからコピー・ジョブをデキューイングする（ステップ４２８）。さらに起点のコントローラ３１０Ｂは、「完了」メッセージを受信すると（または起点のコントローラ３１０Ｂが要求を処理すると）、「完了」メッセージをホスト３４０に返送する（ステップ３４０）。
【００１５】
コントローラ３１０Ａ〜Ｄのうちの２つまたはそれ以上が、同時にコピー要求の処理を試みることが可能である。したがって、コピー要求が処理される前に、各コントローラ内での遅延を課すことが好ましい。たとえば各コントローラ３１０Ａ〜Ｄは、同時処理の可能性を減少させるために、ランダムな時間遅延を生成することができる。遅延は、従来の乱数生成器から生成される、特定のコントローラのユニット数と組み合わされたコピーされるボリューム名に基づいて生成される、時間単位のリスト（０、１、２、または３秒など）からランダムに選択される、あるいは、他の好適な方法から生成されることが可能である。同時処理の可能性を減少させることができる他の要素は、コントローラ３１０Ａ〜Ｄがコピー要求を含むメッセージを取り出す速度が、それぞれの現在の作業負荷に依存していることである。コントローラは、メッセージを取り出すためにいつでも動作を即時に一時停止できるとは限らない。
【００１６】
図５は、本発明が実施可能な仮想テープ・コントローラ３１０を示すブロック図である。コントローラ３１０は、コピー・キュー３１２に加えて、メモリ３１６に格納されたコンピュータ読取り可能アプリケーション・コード３１８に埋め込まれた命令を実行するようにプログラムされたプロセッサ３１４を含む。
【００１７】
記載された技法は、標準的なプログラミングまたはエンジニアリング技法、あるいはその両方を使用して、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成する方法、装置、またはコンピュータ・プログラムとして実施することができる。本明細書で使用される「コンピュータ・プログラム」という用語は、ハードウェア論理（たとえば集積回路チップ、プログラム可能ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）、あるいは、コンピュータ読取り媒体（たとえばハード・ディスク・ドライブ、フロッピィ・ディスク、テープなどの磁気ストレージ媒体）、光学ストレージ（たとえばＣＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性のメモリ・デバイス（たとえばＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラム可能論理など）で実施される、コードまたは論理を表す。プロセッサが、このコンピュータ読取り可能媒体のコードにアクセスして実行する。インプリメンテーションが実行されるコードには、伝送媒体を介して、またはネットワークを通じてファイル・サーバからもアクセスすることができる。このような場合、コードがインプリメントされる製品は、ネットワーク伝送回線、無線伝送媒体、空間を介した信号伝搬、電波、赤外線信号、その他などの、伝送媒体を備えることができる。もちろん当業者であれば、本構成には、本実施態様の範囲から逸脱することなく多くの修正が実行可能であること、ならびに当該製品は、当分野で周知の任意の情報伝搬媒体を備えることが可能であることを理解されよう。
【００１８】
図に示された論理は、一定の順序で発生する一定のイベントを示している。代替の実施態様では、一定の動作を異なる順序で実行、修正、または除去することが可能である。さらに諸ステップを前述の論理に追加し、それでもなお記載された実施態様に準じることも可能である。また、本明細書に記載された動作を順番に実行するか、または一定の動作を並行して処理することも可能である。さらに動作は、単一の処理ユニットによって、または分散型処理ユニットによって実行可能である。
【００１９】
以上、本発明の目的について、本明細書に開示された実施形態を通じて完全に実現してきた。当業者であれば、本発明の様々な態様が、本発明に不可欠な機能を逸脱することなく様々な実施形態を通じて達成できることを理解されよう。特定の実施形態は例示的なものであり、添付の特許請求の範囲に記載された本発明の範囲を限定することを意図するものではない。
【図面の簡単な説明】
【００２０】
【図１】本発明が実施可能なデータ・ストレージ・システムを示すブロック図である。
【図２】データ・ストレージ・システム内のコピー要求を処理する従来技術の方法を示すブロック図である。
【図３】データ・ストレージ・システム内のコピー要求を処理する本発明の方法を示すブロック図である。
【図４】本発明の方法を示す流れ図である。
【図５】本発明の仮想ストレージ・コントローラを示すブロック図である。
【符号の説明】
【００２１】
３１２Ａ    コピー・キュー
３１２Ｂ    コピー・キュー
３１２Ｃ    コピー・キュー
３１２Ｄ    コピー・キュー
３２２Ａ    ルータ
３２２Ｂ    ルータ
３３０Ａ    ストレージ
３３０Ｂ    ストレージ
３４０    ホスト
３５０    ボリューム
３５０Ａ    コピー
【図１】
0004617194.tif 000002
【図２】
0004617194.tif 000003
【図３】
0004617194.tif 000004
【図４】
0004617194.tif 000005
【図５】
0004617194.tif 000006