(57)【特許請求の範囲】
【請求項１】
各々がＤＡＳＤとテープライブラリを含む２つのストレージ装置の１つからデータ・セットをアクセスする方法であって、各々のＤＡＳＤは複数のデータ・セットのコピーを含み、
前記ストレージ装置の前記テープライブラリから前記ＤＡＳＤへデータ・セットに対応するボリュームをリコール（コピー）する先行の試みが失敗したかどうかを示す品質フラグを、前記ストレージ装置について維持し、
もし前記ストレージ装置からデータ・セットをアクセスする１つの先行の試みが失敗したことを他のストレージ装置の品質フラグが示すならば、アクセスの先行の試みが失敗しなかったことを示す品質フラグを有するストレージ装置を選択し、
前記各々のストレージ装置の品質フラグの双方が同一であれば、ロード・バランシング、ラウンド・ロビン、最後にアクセスされたバーチャル・テープ・サーバ、ランダムに選択されたバーチャル・テープ・サーバなどの規準、又は他の規準を使用してストレージ装置を選択し、
選択された前記ストレージ装置からデータ・セットをアクセスする
ことを含む方法。
【請求項２】
更に、選択されたストレージ装置からデータ・セットをアクセスした後に、第１及び第２のストレージ装置の双方にあるデータ・セットを同期させることを含む、請求項１に記載の方法。
【請求項３】
フラグが、第１及び第２のストレージ装置における各々のデータ・セットについて維持され、第１及び第２のストレージ装置が同じデータ・セットを有する、請求項１に記載の方法。
【請求項４】
更に、もしデータ・セットが各々がＤＡＳＤとテープライブラリを含む第３及び第４のストレージ装置の１つにあれば、第３及び第４のストレージ装置の１つからデータ・セットをアクセスし、ここで、もしデータ・セットが第３及び第４のストレージ装置の１つになければ、第１及び第２のストレージ装置の１つを選択して第１及び第２のストレージ装置の１つからデータ・セットをアクセスするステップが起こり、
第１のストレージ装置からデータ・セットをアクセスするとき、第１のストレージ装置から第３のストレージ装置へデータ・セットをコピーし、
第２のストレージ装置からデータ・セットをアクセスするとき、第２のストレージ装置から第４のストレージ装置へデータ・セットをコピーする
ことを含む、請求項１に記載の方法。
【請求項５】
第３及び第４のストレージ装置の双方におけるデータ・セットについて、データ・セットのバージョンを示すデータ・レベルが維持され、更に、データ・セットが第３及び第４のストレージ装置の双方にあるかどうかを決定することを含み、ここで、第３及び第４のストレージ装置の１つからデータ・セットをアクセスすることが、データ・セットについて最高のデータ・レベルを有する第３及び第４のストレージ装置の１つからデータ・セットをアクセスすることを含む、請求項４に記載の方法。
【請求項６】
更に、もし第３及び第４のストレージ装置の双方におけるデータ・セットのデータ・レベルが同じ値を有するならば、データ・セットをアクセスする第３及び第４のストレージ装置の１つをランダムに選択することを含む、請求項５に記載の方法。
【請求項７】
各々がＤＡＳＤとテープライブラリを含む２つのストレージ装置の１つからデータ・セットをアクセスするシステムであって、各々のＤＡＳＤは複数のデータ・セットのコピーを含み、
ストレージ装置の前記テープライブラリから前記ＤＡＳＤへデータ・セットに対応するボリュームをリコール（コピー）する先行の試みが失敗したかどうかを示す品質フラグを、各々のストレージ装置について維持する手段と、
前記ストレージ装置からデータ・セットをアクセスする１つの先行の試みが失敗したことを他のストレージ装置の品質フラグが示すならば、アクセスの先行の試みが失敗しなかったことを示す品質フラグを有するストレージ装置を選択する手段と、
前記各々のストレージ装置の品質フラグの双方が同一であれば、ロード・バランシング、ラウンド・ロビン、最後にアクセスされたバーチャル・テープ・サーバ、ランダムに選択されたバーチャル・テープ・サーバなどの規準、又は他の規準を使用してストレージ装置を選択する手段と、
選択された前記ストレージ装置からデータ・セットをアクセスする手段と
を含むシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データのコピーを維持する２つのストレージ装置の１つからデータをアクセスするシステム、方法、及びプログラムに関し、さらに具体的には、データ・セットをリコール（recall）するストレージ装置の１つを選択するシステム、方法、及びプログラムに関する。
【０００２】
【従来の技術】
従来技術において、バーチャル・テープ・ストレージ・システム、即ちハード・ディスク・ドライブ・ストレージが、テープ・ドライブ及びテープ・カートリッジをエミュレートするために使用される。この方法では、テープに関して入力／出力（Ｉ／Ｏ）動作を実行しているホスト・システムは、実際にはテープ・ストレージをエミュレートしている一組のハード・ディスク・ドライブに関してＩ／Ｏ動作を実行している。従来技術のＩＢＭマグスター・バーチャル・テープ・サーバ（International Business Machines Magstar Virtual Tape Server）では、１つ又は複数のバーチャル・テープ・サーバは、それぞれ、多くのテープ・カートリッジ、テープ・ドライブを含むテープ・ライブラリ、及び多くの相互接続されたハード・ディスク・ドライブから構成される直接アクセス記憶装置（ＤＡＳＤ）と統合されている。バーチャル・テープ・サーバは、ホストに対してトランスペアレントである。ホストは、テープ・ボリュームをアクセスするリクエストを出す。バーチャル・テープ・サーバは、テープ・リクエストを傍受し、ＤＡＳＤ内のボリュームをアクセスする。もしボリュームがＤＡＳＤ内になければ、バーチャル・テープ・サーバはボリュームをテープ・ドライブからＤＡＳＤへリコールする。バーチャル・テープ・サーバは、データのリクエストにテープ・ドライブから応答するよりも、ＤＡＳＤから応答する方が、テープ・カートリッジ内のボリュームに対するホストのリクエストに実質的に早く応答することができる。このように、ＤＡＳＤは、テープ・カートリッジ・ライブラリ内のボリュームについて、テープ・ボリューム・キャッシュとして機能する。
【０００３】
従来技術において、それぞれ別個のテープ・ドライブに統合された２つのバーチャル・テープ・サーバは、同じデータ・ボリュームについてアクセス及び記憶を提供することができる。２つのバーチャル・テープ・サーバ及び２つのライブラリを設けることによって、もし１つのバーチャル・テープ・サーバ及びテープ・ライブラリからファイルをリコールする動作が失敗すれば、ファイルは他のバーチャル・テープ・サーバ及びテープ・ライブラリから依然としてリコールされてよい。この冗長アーキテクチャは、１つのシステムのテープが損傷を受けた場合に、データ及びテープのより大きな利用可能性及び改善されたデータ・シャドーイング（data shadowing）を提供する。従来技術のシステムでは、エンタープライズ・システム・コネクション（ＥＳＣＯＮ）**チャネルが、多くのホストからバーチャル・テープ・サーバへ通信を提供することができる。システム内の各々のＥＳＣＯＮチャネルは、ホストＩ／Ｏリクエストを処理するためにバーチャル・テープ・サーバを選択する１つ又は複数のバーチャル・テープ・コントローラを有する。
【０００４】
従来技術において、各々のバーチャル・テープ・サーバはトークン・データベースを含み、このトークン・データベースは、テープ・ライブラリ内の各々のボリュームについて制御情報を含む。トークン・データベースは、各々のボリュームについてデータ・レベルを示し、且つボリュームが有効であるかどうかを示す。動作中に、バーチャル・テープ・サーバは、双方のバーチャル・テープ・サーバがデータの最新バージョンを含むことを確実にするため、同期化動作を実行する。ボリュームへのアップデートを受け取る従来技術のバーチャル・テープ・サーバは、更新されたボリュームについてトークン内のデータ・レベルを増進する。従って、アップデートを受け取った従来技術のバーチャル・テープ・サーバは、アップデートを受け取らなかったバーチャル・テープ・サーバよりも高いレベルを、ボリュームについて有する。更新動作の間に、双方のバーチャル・テープ・サーバのトークンの中にあるボリューム有効フラグは、ボリュームが更新されている間のボリュームへのアクセスを防止するため無効へ設定される。もしバーチャル・テープ・コントローラがホストのデータ・リクエストを受け取り、１つのバーチャル・テープ・サーバが、要求されたファイルについて、他のサーバよりも高いデータ・レベルのバージョンを有するならば、バーチャル・テープ・コントローラは、最高のデータ・レベルを有するバーチャル・テープ・サーバを選択する。従来技術において、バーチャル・テープ・サーバの間でデータが同期させられた後、バーチャル・テープ・サーバの各々は同じデータを含み、データ・レベルを等しく設定され、有効なフラグを設定されている。
【０００５】
従来技術の手法は、時には、有効なデータへのアクセスを提供することができる可能性が最も高いバーチャル・テープ・サーバを選択しない。従って、２つのバーチャル・データ・サーバが使用されるとき、データへのアクセスを提供する改善されたメカニズムの必要性が、当技術分野に存在する。
【０００６】
【発明が解決しようとする課題】
前述した従来技術の制約を克服するために、好ましい実施形態は、２つのストレージ装置の１つからデータ・セットをアクセスする方法、システム、及びプログラムを開示する。
【０００７】
【課題を解決するための手段】
各々のストレージ装置は、データ・セットのコピーを含む。ストレージ装置からデータ・セットをアクセスする先行の試みが失敗したかどうかを示すフラグが、各々のストレージ装置について維持される。ストレージ装置からデータ・セットをアクセスする１つの先行の試みが失敗したことを、他のストレージ装置のフラグが示すならば、アクセスの先行の試みが失敗しなかったことを示すフラグを有するストレージ装置が選択される。データ・セットは、選択されたストレージ装置からアクセスされる。
【０００８】
更なる実施形態において、もしデータ・セットが第３及び第４のストレージ装置の１つにあるならば、第３及び第４のストレージ装置の１つからデータ・セットがアクセスされる。そのような場合、もしデータ・セットが第３及び第４のストレージ装置の１つになければ、第１及び第２のストレージ装置の１つを選択して第１及び第２のストレージ装置の１つからデータをアクセスするステップが起こる。第１のストレージ装置からデータ・セットをアクセスしているとき、第１のストレージ装置からのデータ・セットが第３のストレージ装置へコピーされ、第２のストレージ装置からデータをアクセスしているとき、第２のストレージ装置からのデータ・セットが第４のストレージ装置へコピーされる。
【０００９】
なお、更なる実施形態において、データ・セットをアクセスするステップは、データ・セットをリコールすることを含み、フラグは、データをリコールする試みが失敗したかどうかを示す。第３のストレージ装置から第１のストレージ装置へデータ・セットをコピーする動作がスケジュールされる。動作をスケジュールした後、データ・セットをアクセスするリクエストが受け取られる。もしスケジュールされた動作が、要求されたデータ・セットを第１のストレージ装置へまだコピーしていなければ、データ・セットは第３のストレージ装置からリコールされる。そのような場合、もし第１のストレージ装置に対するデータ・セットのスケジュールされた動作が完了していれば、データ・セットをアクセスするため第１及び第２のストレージ装置の１つを選択してデータ・セットをアクセスするステップが起こる。
【００１０】
好ましい実施形態は、データ・セットをアクセスするため、アクセス・リクエストを成功裏に完了する可能性が最も大きい１つのストレージ装置を多数のストレージ装置の中から選択するプログラム・メカニズムを提供する。この目的のために、ストレージ装置でデータ・セットをアクセスする試みが失敗したかどうかを示すフラグが、各々のストレージ装置、及びその中のデータ・セット、例えばボリューム、ファイルなどについて維持される。もし１つのストレージ装置のフラグが、アクセスの試みが失敗しなかったことを示し、データ・セットについて、他のストレージ装置のフラグが、アクセスの試みが失敗したことを示すならば、システムは、失敗しなかったストレージ装置からデータ・セットをアクセスする。このようにして、好ましい実施形態は、要求されたアクセスの試み、例えばテープ・カートリッジからボリュームをリコールする試みを成功裏に実行する可能性が最も大きい１つのストレージ装置を多数のストレージ装置の中から選択するプログラム・メカニズムを提供する。
【００１１】
【発明の実施の形態】
以下の説明で、説明の一部を形成し本発明の幾つかの実施形態を例示する添付の図面を参照する。他の実施形態が使用されてよいこと、及び本発明の範囲から逸脱することなく構造及び動作上の変更がなされてよいことを理解されたい。
【００１２】
従来技術のシステムは、どのようにしてリコール試行の失敗を処理するか
２つのバーチャル・テープ・サーバ・システムを含む従来技術のＩＢＭシステムにおいて、もしバーチャル・テープ・サーバがテープ・ライブラリからリコールされなければならないファイルのリクエストを受け取り、テープが失敗すると、ホストのプロセスは、その動作を継続するためにデータを必要とするかも知れないので、ホストはデータの獲得を再び試みるか、リコール動作を再び駆動する。もし双方のバーチャル・テープ・サーバにおける双方のボリュームが、同じデータ・レベルを有するならば、バーチャル・テープ・コントローラは、リコール・リクエストを失敗したことのない他のバーチャル・テープ・サーバではなく、リコール・リクエストを以前に失敗した同じバーチャル・テープ・サーバを選択する可能性がある。もしリコール・リクエストの失敗が、テープ・ライブラリに特有の問題の結果であれば、リコール・リクエストを失敗したことのない他のバーチャル・テープ・サーバのテープ・ライブラリからファイルを即時にアクセスできる可能性が非常に高い。しかし、従来技術は、失敗したバーチャル・テープ・サーバからボリュームをリコールする試みを継続し、リコールの試みをまだ失敗したことのない他のバーチャル・テープ・サーバを介してリコールする試みをしない可能性がある。
【００１３】
従って、リコール・リクエストを失敗する可能性が少ないバーチャル・テープ・サーバを選択する改善された方法、システム、及びプログラムの必要性が、当技術分野に存在する。
【００１４】
好ましい実施形態
図１は、２つのバーチャル・テープ・サーバを使用するコンピューティング環境を例示する。複数のホスト・システム２ａ，２ｂは、ＥＳＣＯＮチャネルを介してバーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，４ｄへ接続される。バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，４ｄは、ホスト２ａ，２ｂからバーチャル・テープ・サーバ６ａ又は６ｂへＩ／Ｏリクエストを送る。バーチャル・テープ・サーバ６ａ及び６ｂは、それぞれ直接アクセス記憶装置（ＤＡＳＤ）８ａ及び８ｂ、並びにテープ・ライブラリ１０ａ及び１０ｂへのアクセスを制御する。各々のＤＡＳＤ８ａ，８ｂは、多くの相互接続されたハード・ディスク・ドライブを含む。各々のテープ・ライブラリ１０ａ，１０ｂは、バーチャル・テープ・サーバ６ａ，６ｂがアクセスするテープ・ドライブへ機械的にロードされる多くのテープ・カートリッジを含む。ホストは、ＩＢＭ  ＯＳ／３９０オペレーティング・システムのようなオペレーティング・システム，又は当技術分野で知られた任意の他のオペレーティング・システムを含んでよい。バーチャル・テープ・サーバ６ａ又は６ｂは、テープ・ライブラリをエミュレートするソフトウェアを含むサーバ・システム、例えばＩＢＭ  Ｍａｇｓｔａｒバーチャル・テープ・サーバを含んでよい。例えば、バーチャル・テープ・サーバ６ａ，６ｂ及びバーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，４ｄは、ＩＢＭＲＳ／６０００プロセッサ、ＩＢＭ  ＡＩＸオペレーティング・システム、及びＩＢＭ  ＡＤＳＴＡＲ  分散管理（Distributed Management）（ＡＤＳＭ）ソフトウェア，又はティヴォリ・ストレージ・マネージャ（Tivoli Storage Manager ）を含む別個のコンピュータで実現され、ホスト２ａ，２ｂ、ＤＡＳＤ８ａ，８ｂ、及びテープ・ライブラリ１０ａ，１０ｂの間でデータの移動動作を実行してよい。**テープ・ライブラリは、Ｍａｇｓｔａｒ３４９４テープ・ライブラリのようなＩＢＭ  Ｍａｇｓｔａｒテープ・ライブラリ、又は当技術分野で知られた任意の他のテープ・ライブラリ・システムを含んでよい。
【００１５】
ＤＡＳＤ８ａ，８ｂはテープ・ボリューム・キャッシュを提供する。テープ・ボリューム・キャッシュは、テープ・ライブラリ１０ａ、１０ｂ内のボリュームをアクセスするためにディスク・キャッシュのパフォーマンス利益を拡張し、ホストＩ／ＯリクエストがＤＡＳＤ８ａ，８ｂからサービスされることを可能にすることによってパフォーマンスを改善する。バーチャル・テープ・サーバ６ａ，６ｂは、ホスト２ａ，２ｂに対して、テープ・データ・ボリュームを含むバーチャル・テープ・ドライブとして現れる。ホスト２ａ，２ｂは、バーチャル・ボリュームを実際のテープ・ボリュームとして考え、マウント（mount）のようなテープ管理コマンドを出し、さもなければバーチャル・テープ・サーバ６ａ，６ｂをテープ制御装置としてアドレスする。好ましい実施形態が実現されるバーチャル・テープ・サーバ技術の更なる詳細は、ＩＢＭの刊行物「拡張ＩＢＭ  Ｍａｇｓｔａｒバーチャル・テープ・サーバ：  実現ガイド」（Enhanced IBM Magstar Virtual Tape Server: Implementation Guide）、ＩＢＭドキュメント番号ＳＧ２４−２２２９−０２（Copyright IBM, April, 1999）に説明されている。この刊行物は、参照してその全体を組み込まれる。
【００１６】
テープ・ライブラリ１０ａ，１０ｂ内のテープ・カートリッジの中に維持されるボリュームは、論理ボリュームである。バーチャル・テープ・サーバ６ａ，６ｂ内の論理ボリュームのコピーは、バーチャル・ボリュームと呼ばれる。ＤＡＳＤ８ａ，８ｂの空間使用が閾値に達した後、バーチャル・テープ・サーバ６ａ，６ｂは、ＤＡＳＤ８ａ，８ｂ内のバーチャル・ボリュームをテープ・ライブラリ１０ａ，１０ｂへデステージ（destage）するようにスケジュールする。一度、ボリュームがデステージをスケジュールされると、それはクローズ（close）されるか、事実上ディスマウント（dismount）される。デステージをスケジュールされた後、バーチャル・テープ・サーバ６ａ，６ｂ内のバーチャル・ボリュームは、それがテープへコピーされるまで上書きされることはできない。もしホスト２ａ，２ｂが、テープだけに存在するボリュームを要求すると、論理ボリュームがリコールされ、テープからＤＡＳＤ８ａ，８ｂ内のバーチャル・ボリュームへコピーされなければならない。リコール動作は数分を必要とする場合があり、ストレージ・セルからテープ・カートリッジにアクセスしてテープ・ドライブへ挿入し、テープ・カートリッジをマウントし、テープを巻き戻すなどのために、ロボット・アームの使用に関して機械動作を含むかも知れない。好ましい実施形態において、テープ・ライブラリ１０ａ，１０ｂは同じデータ・ボリュームを含み、従って、相互に投影している。しかし、各々のバーチャル・テープ・サーバ６ａ，６ｂは独立して動作し、各々は異なったボリュームをＤＡＳＤ内にキャッシュしてよい。例えば、バーチャル・テープ・サーバ６ａ，６ｂは、バーチャル・ボリュームをテープ・ライブラリ１０ａ，１０ｂへ書き込む異なったスケジュールの結果として、異なったバーチャル・ボリュームを有してよい。
【００１７】
もしバーチャル・ボリュームがデステージをスケジュールされ、次に、短い時間内に再びアクセスされると、バーチャル・ボリュームは依然としてＤＡＳＤ８ａ，８ｂに存在し、ＤＡＳＤ８ａ，８ｂからテープ・ライブラリ１０ａ，１０ｂへコピーされるのを待っている。ボリュームは事実上ディスマウントされているが、バーチャル・テープ・サーバ６ａ，６ｂは、依然としてＤＡＳＤ８ａ，８ｂに残っていてクローズされているボリュームを、依然として事実上マウントすることができる。ボリュームがマウントされ、ＤＡＳＤ８ａ，８ｂから読み取られるようにすることによって、テープの巻き戻し、ロボット・アームの運動に関連した遅延時間、及びマウントのロード時間が回避される。ＤＡＳＤ８ａ，８ｂに残っているクローズされたボリュームのバーチャル・マウントを実行することは、キャッシュ・ヒットと呼ばれる。なぜなら、ボリュームはテープ・バーチャル・キャッシュ（ＤＡＳＤ８ａ，８ｂ）からマウントされてよいからである。
【００１８】
各々のバーチャル・テープ・サーバ６ａ，６ｂは、テープ・ライブラリ１０ａ，１０ｂ内の全てのボリュームについてトークン又はレコードのデータベースを含む。図２は、各々のボリューム・トークンの中に維持されるフィールド又はデータを例示する。ボリュームＩＤ５２は、ボリュームのアイデンティティを含む。ロケーション・フィールド５４は、ボリュームがバーチャル・テープ・サーバ６ａ，６ｂの中にあるか、テープ・ライブラリ１０ａ，１０ｂの中だけにあるかを示す。ロケーション・フィールド５４は、ボリュームがデステージをスケジュールされていても、それがＤＡＳＤ８ａ，８ｂの中にあることを示すであろう。有効フラグは、データが有効であることを示す。有効フラグ５６は、もし他のバーチャル・テープ・サーバ６ｂがＤＡＳＤ８ｂ内のボリュームを更新していれば、１つのバーチャル・テープ・サーバ６ａ内のそのボリュームについて「無効」へ設定される。ボリュームが１つのバーチャル・テープ・サーバ６ａで更新された後、有効フラグは再び「有効」又は「オン」へ設定される。データ・レベル５８は、ＤＡＳＤ８ａ，８ｂ内のボリュームが同期させられた最後の時間の後にファイルが更新された回数を示す。データがバーチャル・ボリュームへ更新される度に、レベル・フィールド５８が増進されて、特定のＤＡＳＤ８ａ，８ｂ内のボリュームが更新された回数を示す。最高のデータ・レベルを有するＤＡＳＤ８ａ，８ｂ内のボリュームは、アップデートの最も近時のバージョンを含む。この理由によって、データの最も近時のバージョン、即ち最高レベルを有するバーチャル・テープ・サーバ６ａ，６ｂが、ボリュームに関してＩ／Ｏ動作を実行しているときに選択されるであろう。品質フラグ６０は、ボリュームをリコールする試みが、特定のバーチャル・テープ・サーバ６ａ，６ｂについて失敗したかどうかを示す。
【００１９】
図３は、バーチャル・テープ・サーバを選択してマウント・リクエスト及び後続のＩ／Ｏリクエストを処理するため、ディレクタ（director）４ａ，４ｂ，４ｃ，４ｄで実現されるロジックを例示する。制御はブロック１００で始まり、１つのバーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄが、１つのホスト２ａ，２ｂからマウント・リクエストを受け取る。バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、要求されたボリュームがバーチャル・テープ・キャッシュ（ＤＡＳＤ８ａ，８ｂ）の中にあるかどうかを決定するため、各々のバーチャル・テープ・サーバ６ａ，６ｂ（ＶＴＳ）の中のボリューム・トークンを処理する（ブロック１０２）。説明したように、バーチャル・ボリュームは、テープ・ライブラリ１０ａ，１０ｂへ書き込まれる前に、ＤＡＳＤ８ａ，８ｂの中でマウントされないで残っており、クローズされているかも知れない。バーチャル・テープ・サーバ６ａ，６ｂの双方におけるデータ・レベルが有効でないか、同一でなければ（ブロック１０４）、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、最高のデータ・レベルを有するバーチャル・テープ・サーバ６ａ又は６ｂへマウントを出す（ブロック１０８）。もしトークンが有効でなければ、マウントは失敗する。別の状況では、もしバーチャル・テープ・サーバ６ａ，６ｂの双方におけるデータ・レベルが同一且つ有効であれば、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、マウントすべきボリュームが１つのバーチャル・テープ・サーバ６ａ，６ｂ、即ちキャッシュの中に存在するかどうかを決定する（ブロック１０６）。もし存在すれば、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、キャッシュされたボリュームを有するバーチャル・テープ・サーバ６ａ，６ｂへマウントを出す（ブロック１１０）。もしバーチャル・テープ・サーバ６ａ，６ｂの双方が、キャッシュされたボリュームを有するならば，バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、ロード・バランシング（例えば、バーチャル・テープ・サーバの最小ビジー）、ラウンド・ロビンなどの選択規準を使用して、ボリュームをマウントすべき１つのバーチャル・テープ・サーバ６ａ，６ｂを選択してよい。そのような選択規準は、フラグの値に無関係である。
【００２０】
もしボリュームがいずれのキャッシュにもなければ、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、バーチャル・テープ・サーバ６ａ，６ｂの双方が「高」の品質フラグ６０を有するかどうかを決定する（ブロック１１２）。もし有するならば、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、フラグ値に無関係の選択規準に基づいて、バーチャル・テープ・サーバ６ａ，６ｂのいずれかへマウントを出す（ブロック１１４）。別の状況では、もしバーチャル・テープ・サーバ６ａ，６ｂの双方が「高」の品質フラグ６０を有しないならば、バーチャル・テープ・サーバ６ａ又は６ｂの１つが「高」の品質フラグ６０の値を有するかどうかが決定される（ブロック１１６）。もし１つのバーチャル・テープ・サーバ６ａ又は６ｂが「高」の品質フラグ６０の値を有するならば、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、「高」の品質フラグ６０の値を有するバーチャル・テープ・サーバ６ａ又は６ｂへマウント・リクエストを出す（ブロック１１８）。別の状況では、もしバーチャル・テープ・サーバ６ａ又は６ｂのいずれも「高」の品質フラグ６０の値を有しないならば、制御はブロック１１４へ進み、フラグに無関係の規準、例えばロード・バランシング、ラウンド・ロビンなどに従ってバーチャル・テープ・サーバ６ａ，６ｂを選択する。
【００２１】
図４は、ボリュームへのリコール・リクエストを処理するためにバーチャル・テープ・サーバ６ａ，６ｂで実現されるロジックを例示する。制御はブロック１５０で始まり、１つのバーチャル・テープ・サーバ６ａ又は６ｂがマウント・リクエストを受け取る。次に、バーチャル・テープ・サーバ６ａ又は６ｂは、リコールすべきボリュームが依然としてＤＡＳＤ８ａ又は８ｂの中にあるかどうか、即ちクローズされ事実上ディスマウントされているかどうか、しかし、まだテープ・ライブラリ１０ａ又は１０ｂへ書き込まれていないかどうかを決定する（ブロック１５２）。もしボリュームがＤＡＳＤ８ａ又は８ｂの中にあれば、バーチャル・テープ・サーバ６ａ又は６ｂは、ＤＡＳＤ８ａ又は８ｂからボリュームのバーチャル・マウントを実行し（ブロック１５４）、ボリュームがマウントされた旨のリターン・メッセージをホスト２ａ，２ｂへ送る（ブロック１５６）。
【００２２】
もしボリュームがＤＡＳＤ８ａ又は８ｂの中になければ、バーチャル・テープ・サーバ６ａ又は６ｂは、テープ・ライブラリ１０ａ又は１０ｂからボリュームをリコールするためリコール動作を開始する（ブロック１５８）。もしリコールが失敗すれば（ブロック１６０）、バーチャル・テープ・サーバ６ａ又は６ｂは、バーチャル・テープ・サーバ６ａ又は６ｂ内でバーチャル・ボリュームについて品質フラグ６０を低へ設定し（ブロック１６２）、リコール失敗のメッセージをホストへ返す。リコールは、カートリッジの使用不能、例えば、テープ・ライブラリ１０ａの予想されたストレージ・セル内にないこと、又はパーマネントの読み取りエラーを有することの結果として、失敗するかも知れない。もしリコールが成功したならば、バーチャル・テープ・サーバ６ａ又は６ｂは、リコールされた論理ボリュームを、ＤＡＳＤ８ａ又は８ｂ内のバーチャル・ボリュームへコピーする（ブロック１６４）。ボリュームをリコールした後、バーチャル・テープ・サーバ６ａ又は６ｂは、ロケーション・フィールド５４をバーチャル・テープ・サーバへ設定し、品質フラグ６０を「高」へ設定する。次に、ボリュームをリコールしているバーチャル・テープ・サーバ６ａ又は６ｂは、他のバーチャル・テープ・サーバ６ａ又は６ｂと同期させられ、リコールされたボリュームをバーチャル・テープ・サーバ６ａ又は６ｂへコピーしてよい。
【００２３】
更に、もしＤＡＳＤ８ａ，８ｂからボリュームをリコールする試みが、ディスク・ドライブ内の読み取りエラーの結果として失敗したならば、バーチャル・テープ・サーバ６ａ，６ｂは、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，４ｄに、ボリュームを成功裏にリコールする可能性がより高い他のバーチャル・テープ・サーバ６ａ，６ｂからリコールを再試行させるため、ボリュームの品質フラグを「低」へ設定してよい。
【００２４】
図３及び図４のロジックでは、もし最初のリコールの試みが失敗すると、失敗したバーチャル・テープ・サーバ、例えば６ａの品質フラグ６０が「低」へ設定される。これは、高の品質フラグを有するバーチャル・テープ・サーバ、例えば６ｂを、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，４ｄに選択させる。次にリコールが試みられたとき、ディレクタは、まだリコールを失敗したことがなく且つリコールを成功裏に完了する可能性が非常に高いバーチャル・テープ・サーバを選択する。なぜなら、リコールが双方のテープ・ライブラリ・システムで失敗する確率は低いからである。従って、好ましいロジックは、品質フラグがない場合に、他のバーチャル・テープ・サーバが失敗しなかったとき、失敗したリコールを発生したバーチャル・テープ・サーバ６ａをディレクタがランダムに選択し続けるかも知れない状況を回避する。そのような状況の代わりに、好ましい実施形態では、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄは、失敗したリコールを経験した他のバーチャル・テープ・サーバ６ａではなく、「高」の品質フラグ６０を有するバーチャル・テープ・サーバ６ｂを選択する。もし双方の品質フラグ６０が同一、即ち「低」又は「高」であれば、バーチャル・テープ・サーバ６ａ及び６ｂの１つを選択することに利点はない。なぜなら、双方は、リコールを完了する可能性に関して同じ状況にあるからである。そのような場合、ロード・バランシング、ラウンド・ロビン、最後にアクセスされたバーチャル・テープ・サーバなどの規準、又は他の規準を使用してバーチャル・テープ・サーバが選択されるか、テープ・サーバがランダムに選択される。従って、好ましい実施形態は、成功したリコールを実行することのできる可能性が最も高いバーチャル・テープ・サーバ６ａ又は６ｂを確実に選択するソフトウェア・メカニズムを提供する。失敗したリコールは、テープの使用不可能、テープ・ライブラリ１０ａ，１０ｂの機械的問題、テープのパーマネント・エラーなどの結果として起こるかも知れない。
【００２５】
バーチャル・ボリュームをマウントした後、マウントを実行したバーチャル・テープ・サーバ６ａ又は６ｂは、バーチャル・ボリュームへの後続の読み取り／書き込み動作を処理する。
【００２６】
図５は、更新リクエストを処理するためバーチャル・テープ・サーバ６ａ，６ｂ内で実現されるロジックを例示する。制御はブロック２５０で始まり、図３のロジックに従って選択されたバーチャル・テープ・サーバ６ａ，６ｂが、マウントされたバーチャル・ボリュームへのアップデートを受け取る。次に、バーチャル・テープ・サーバ６ａ又は６ｂは、選択されなかったバーチャル・テープ・サーバ６ａ，６ｂのボリューム・トークンについて有効フラグ５６を「オフ」に設定し（ブロック２５４）、選択されたバーチャル・テープ・サーバ６ａ又は６ｂでボリュームを更新する（ブロック２５６）。次に、バーチャル・テープ・サーバ６ａ又は６ｂは、レベル・フラグ５８を増進し（ブロック２５８）、選択されたバーチャル・テープ・サーバ６ａ又は６ｂのボリューム・トークンの有効フラグを「オン」に設定する（ブロック２６０）。有効フラグ５６は、アップデートが他のバーチャル・テープ・サーバ６ａ又は６ｂで同期させられるまで、選択されなかったバーチャル・テープ・サーバ６ａ又は６ｂについて「オフ」のままである。１つのＤＡＳＤ８ａ又は８ｂ内のボリュームへのアップデートが、他のボリュームへコピーされない時間の間、レベルは異なったままであろう。
【００２７】
読み取り動作は、図５のロジックを使用して、バーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，４ｄにバーチャル・テープ・サーバ６ａ又は６ｂを選択させ、読み取り動作を処理することによって進行する。その場合、選択されたバーチャル・テープ・サーバ６ａ又は６ｂは、要求されたデータをホスト２ａ，２ｂへ返すためにバーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，又は４ｄへ返す。
【００２８】
好ましい実施形態は、２つの異なったバーチャル・テープ・サーバ６ａ，６ｂのボリューム状況を示すため、ボリューム・トークンを提供する。このトークンは、バーチャル・テープ・サーバ６ａ，６ｂを選択してアクセス動作を実行するために使用される。更に、このトークンは品質フィールドを含み、この品質フィールドはバーチャル・テープ・コントローラ４ａ，４ｂ，４ｃ，４ｄにバーチャル・テープ・サーバ６ａ，６ｂを選択させて、テープ・ライブラリ１０ａ，１０ｂからボリュームを成功裏にリコールする可能性が最も高いリコール動作をテープ・カートリッジから実行させる。これは、バーチャル・テープ・サーバ６ａ又は６ｂの１つがリコールを失敗したにも拘わらず、アップデートを処理するためにバーチャル・テープ・サーバ６ａ，６ｂをランダムに選択し続ける現在の方法に対する改善である。
【００２９】
結論
ここで、本発明の好ましい実施形態の説明を終了する。以下は、本発明を達成する幾つかの代替の実施形態を説明したものである。好ましい実施形態は、ソフトウェア、ファームウェア、ハードウェア，又はこれらの組み合わせを作り出すため標準のプログラミング及び、又はエンジニアリング手法を使用する方法、装置，又は製造物として実現されてよい。ここで使用される「製造物」（又は代替として「コンピュータ・プログラム製品」）の用語は、１つ又は複数のコンピュータ読み取り可能装置、キャリヤ、又は媒体、例えば磁気記憶媒体、「フロッピー・ディスク」、ＣＤ−ＲＯＭ、ネットワーク伝送線を介してプログラムへのアクセスを提供するファイル・サーバ、ホログラフィック装置などからアクセス可能な１つ又は複数のコンピュータ・プログラム及びデータ・ファイルを包含するように意図されている。もちろん、本発明の範囲から逸脱することなく、多くの変更がこの構成へなされてよいことを、当業者は認識するであろう。
【００３０】
好ましい実施形態は、ＩＢＭバーチャル・テープ・サーバ・システムに関して説明された。しかし、低速ストレージ・システムからのデータをキャッシュするために磁気ストレージ又はメモリを含む高速ストレージ・システムが使用される任意のバーチャル・ストレージ・システムへ、好ましいロジックを応用することができよう。例えば、キャッシュはメモリ装置を含み、ストレージ装置はハード・ディスク・ドライブの集合を含んでよく、ハード・ディスク・ドライブのデータ・セットは、対応するメモリ・セットへページングされて、高速アクセス・キャッシュを介するデータ・セットへのアクセスが提供される。
【００３１】
好ましい実施形態は、リコール、マウント、及びデータ・ボリュームのトークン管理に関して説明された。しかし、任意のデータ・セット又はデータ記憶単位、例えばファイル、トラック、固定ブロックなどが、リコール及びマウント動作の対象となることができよう。ここで使用されている「データ・セット」の用語は、任意のデータ記憶単位を意味する。
【００３２】
好ましい実施形態において、バーチャル・テープ・サーバを選択してリコール又はＩ／Ｏアクセス動作を処理するために、バーチャル・テープ・コントローラが使用された。代替の実施形態では、ホストがそのような選択を行うか、バーチャル・テープ・サーバが、使用するバーチャル・テープ・サーバを決定して、リコール又はアクセス動作を処理してよい。
【００３３】
好ましい実施形態は、リコール・リクエストを処理するため、選択すべきバーチャル・テープ・システムを決定することに関して説明された。代替の実施形態では、データ・アクセス・リクエストは、リコール・リクエスト以外のアクセス・リクエストを含んでよい。
【００３４】
要するに、好ましい実施形態は、２つのストレージ装置の１つからデータ・セットをアクセスするシステム、方法、及びプログラムを開示する。各々のストレージ装置は、データ・セットのコピーを含む。各々のストレージ装置について、ストレージ装置からデータ・セットをアクセスする先行の試みが失敗したかどうかを示すフラグが維持される。もしストレージ装置からデータ・セットをアクセスする１つの先行の試みが失敗したことを、他のストレージ装置のフラグが示すならば、アクセスの先行の試みが失敗しなかったことを示すフラグを有するストレージ装置が選択される。データ・セットは、選択されたストレージ装置からアクセスされる。
【００３５】
本発明の好ましい実施形態の前記の記述は、例示及び説明の目的で呈示された。余すところがないこと、又は開示された正確な形式へ本発明を限定することは意図されていない。前記の教示に照らして、多くの変更及びバリエーションが可能である。本発明の範囲は、この詳細な説明によって限定されるのではなく、ここに付加された請求の範囲によって限定されることが意図されている。前記の仕様、例、及びデータは、本発明の構成の製造及び使用について完全な説明を提供する。本発明の趣旨及び範囲から逸脱することなく、本発明の多くの実施形態を実現できるから、本発明は、付加された請求の範囲に存在する。
【００３６】
**  ＡＩＸ、ＥＳＣＯＮ、Ｍａｇｓｔａｒ、及びＲＳ／６０００は、ＩＢＭの登録商標である。
【００３７】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）２つのストレージ装置の１つからデータ・セットをアクセスする方法であって、各々はデータ・セットのコピーを含み、
ストレージ装置からデータ・セットをアクセスする先行の試みが失敗したかどうかを示すフラグを、各々のストレージ装置について維持し、
もしストレージ装置からデータ・セットをアクセスする１つの先行の試みが失敗したことを他のストレージ装置のフラグが示すならば、アクセスの先行の試みが失敗しなかったことを示すフラグを有するストレージ装置を選択し、
選択されたストレージ装置からデータ・セットをアクセスする
ことを含む方法。
（２）更に、もし双方のストレージ装置のフラグが同じ値を有するならば、フラグの値に無関係の選択規準を使用して第１及び第２のストレージ装置の１つをアクセスすることを含む、上記（１）に記載の方法。
（３）更に、選択されたストレージ装置からデータ・セットをアクセスした後に、第１及び第２のストレージ装置の双方にあるデータ・セットを同期させることを含む、上記（１）に記載の方法。
（４）フラグが、第１及び第２のストレージ装置における各々のデータ・セットについて維持され、第１及び第２のストレージ装置が同じデータ・セットを有する、上記（１）に記載の方法。
（５）更に、もしデータ・セットが第３及び第４のストレージ装置の１つにあれば、第３及び第４のストレージ装置の１つからデータ・セットをアクセスし、ここで、もしデータ・セットが第３及び第４のストレージ装置の１つになければ、第１及び第２のストレージ装置の１つを選択して第１及び第２のストレージ装置の１つからデータ・セットをアクセスするステップが起こり、
第１のストレージ装置からデータ・セットをアクセスするとき、第１のストレージ装置から第３のストレージ装置へデータ・セットをコピーし、
第１のストレージ装置からデータ・セットをアクセスするとき、第２のストレージ装置から第４のストレージ装置へデータ・セットをコピーする
ことを含む、上記（１）に記載の方法。
（６）データ・セットをアクセスするステップが、データ・セットをリコールすることを含み、データをリコールする試みが失敗したかどうかをフラグが示し、更に、
第３のストレージ装置から第１のストレージ装置へデータ・セットをコピーする書き込み動作をスケジュールし、
書き込み動作をスケジュールした後に、データ・セットをアクセスするリクエストを受け取り、
もしスケジュールされた書き込み動作が、要求されたデータ・セットを第１のストレージ装置へまだコピーしていなければ、第３のストレージ装置からデータ・セットをリコールし、ここで、もし第１のストレージ装置へのデータ・セットのスケジュールされた書き込み動作が完了していれば、データ・セットをアクセスするため第１及び第２のストレージ装置の１つを選択してデータ・セットをアクセスするステップが起こる
ことを含む、上記（５）に記載の方法。
（７）更に、もし要求されたデータ・セットが、スケジュールされた書き込み動作の結果として第１及び第２のストレージ装置へコピーされており、また、もし双方のストレージ装置のフラグが同じ値を有するならば、データ・セットをリコールする第１及び第２のストレージ装置の１つをランダムに選択することを含む、上記（６）に記載の方法。
（８）第３及び第４のストレージ装置の双方におけるデータ・セットについて、データ・セットのバージョンを示すデータ・レベルが維持され、更に、データ・セットが第３及び第４のストレージ装置の双方にあるかどうかを決定することを含み、ここで、第３及び第４のストレージ装置の１つからデータ・セットをアクセスすることが、データ・セットについて最高のデータ・レベルを有する第３及び第４のストレージ装置の１つからデータ・セットをアクセスすることを含む、上記（５）に記載の方法。
（９）更に、もし第３及び第４のストレージ装置の双方におけるデータ・セットのデータ・レベルが同じ値を有するならば、データ・セットをアクセスする第３及び第４のストレージ装置の１つをランダムに選択することを含む、上記（８）に記載の方法。
（１０）２つのストレージ装置の１つからデータ・セットをアクセスするシステムであって、各々はデータ・セットのコピーを含み、
ストレージ装置からデータ・セットをアクセスする先行の試みが失敗したかどうかを示すフラグを、各々のストレージ装置について維持する手段と、
もしストレージ装置からデータ・セットをアクセスする１つの先行の試みが失敗したことを他のストレージ装置のフラグが示すならば、アクセスの先行の試みが失敗しなかったことを示すフラグを有するストレージ装置を選択する手段と、
選択されたストレージ装置からデータ・セットをアクセスする手段と
を含むシステム。
（１１）更に、もし双方のストレージ装置のフラグが同じ値を有するならば、フラグの値に無関係の選択規準を使用して第１及び第２のストレージ装置の１つをアクセスする手段を含む、上記（１０）に記載のシステム。
（１２）更に、選択されたストレージ装置からデータ・セットをアクセスした後に、第１及び第２のストレージ装置の双方にあるデータ・セットを同期させる手段を含む、上記（１０）に記載のシステム。
（１３）フラグが、第１及び第２のストレージ装置における各々のデータ・セットについて維持され、第１及び第２のストレージ装置が同じデータ・セットを有する、上記（１０）に記載のシステム。
（１４）更に、もしデータ・セットが第３及び第４のストレージ装置の１つにあれば、第３及び第４のストレージ装置の１つからデータ・セットをアクセスする手段と、ここで、もしデータ・セットが第３及び第４のストレージ装置の１つになければ、第１及び第２のストレージ装置の１つを選択して第１及び第２のストレージ装置の１つからデータ・セットをアクセスする手段が起こり、
第１のストレージ装置からデータ・セットをアクセスするとき、第１のストレージ装置から第３のストレージ装置へデータ・セットをコピーする手段と、
第１のストレージ装置からデータ・セットをアクセスするとき、第２のストレージ装置から第４のストレージ装置へデータ・セットをコピーする手段と
を含む、上記（１０）に記載のシステム。
（１５）データ・セットをアクセスする手段が、データ・セットをリコールすることを含み、データをリコールする試みが失敗したかどうかをフラグが示し、更に、
第３のストレージ装置から第１のストレージ装置へデータ・セットをコピーする書き込み動作をスケジュールする手段と、
書き込み動作をスケジュールした後に、データ・セットをアクセスするリクエストを受け取る手段と、
もしスケジュールされた書き込み動作が、要求されたデータ・セットを第１のストレージ装置へまだコピーしていなければ、第３のストレージ装置からデータ・セットをリコールする手段と、ここで、もし第１のストレージ装置へのデータ・セットのスケジュールされた書き込み動作が完了していれば、データ・セットをアクセスするため第１及び第２のストレージ装置の１つを選択してデータ・セットをアクセスするステップが起こる
ことを含む、上記（１４）に記載のシステム。
（１６）更に、もし要求されたデータ・セットが、スケジュールされた書き込み動作の結果として第１及び第２のストレージ装置へコピーされており、また、もし双方のストレージ装置のフラグが同じ値を有するならば、データ・セットをリコールする第１及び第２のストレージ装置の１つをランダムに選択する手段を含む、上記（１５）に記載のシステム。
（１７）第３及び第４のストレージ装置の双方におけるデータ・セットについて、データ・セットのバージョンを示すデータ・レベルが維持され、更に、データ・セットが第３及び第４のストレージ装置の双方にあるかどうかを決定する手段を含み、ここで、第３及び第４のストレージ装置の１つからデータ・セットをアクセスする手段が、データ・セットについて最高のデータ・レベルを有する第３及び第４のストレージ装置の１つからデータ・セットをアクセスすることを含む、上記（１４）に記載のシステム。
（１８）更に、もし第３及び第４のストレージ装置の双方におけるデータ・セットのデータ・レベルが同じ値を有するならば、データ・セットをアクセスする第３及び第４のストレージ装置の１つをランダムに選択する手段を含む、上記（１７）に記載のシステム。
（１９）２つのストレージ装置の１つからデータ・セットをアクセスするため処理装置のプログラミングに使用される製造物であって、各々はデータ・セットのコピーを含み、製造物はコンピュータ読み取り可能記憶媒体を含み、該コンピュータ読み取り可能記憶媒体は、
ストレージ装置からデータ・セットをアクセスする先行の試みが失敗したかどうかを示すフラグを、各々のストレージ装置について維持し、
もしストレージ装置からデータ・セットをアクセスする１つの先行の試みが失敗したことを他のストレージ装置のフラグが示すならば、アクセスの先行の試みが失敗しなかったことを示すフラグを有するストレージ装置を選択し、
選択されたストレージ装置からデータ・セットをアクセスする
ことを処理装置に実行させる少なくとも１つのコンピュータ・プログラムを、その中に埋め込まれている製造物。
（２０）更に、もし双方のストレージ装置のフラグが同じ値を有するならば、フラグの値に無関係の選択規準を使用して第１及び第２のストレージ装置の１つをアクセスすることを含む、上記（１９）に記載の製造物。
（２１）更に、選択されたストレージ装置からデータ・セットをアクセスした後に、第１及び第２のストレージ装置の双方にあるデータ・セットを同期させることを含む、上記（１９）に記載の製造物。
（２２）フラグが、第１及び第２のストレージ装置における各々のデータ・セットについて維持され、第１及び第２のストレージ装置が同じデータ・セットを有する、上記（１９）に記載の製造物。
（２３）更に、もしデータ・セットが第３及び第４のストレージ装置の１つにあれば、第３及び第４のストレージ装置の１つからデータ・セットをアクセスし、ここで、もしデータ・セットが第３及び第４のストレージ装置の１つになければ、第１及び第２のストレージ装置の１つを選択して第１及び第２のストレージ装置の１つからデータ・セットをアクセスするステップが起こり、
第１のストレージ装置からデータ・セットをアクセスするとき、第１のストレージ装置から第３のストレージ装置へデータ・セットをコピーし、
第１のストレージ装置からデータ・セットをアクセスするとき、第２のストレージ装置から第４のストレージ装置へデータ・セットをコピーする
ことを含む、上記（１９）に記載の製造物。
（２４）データ・セットをアクセスするステップが、データ・セットをリコールすることを含み、データをリコールする試みが失敗したかどうかをフラグが示し、更に、
第３のストレージ装置から第１のストレージ装置へデータ・セットをコピーする書き込み動作をスケジュールし、
書き込み動作をスケジュールした後に、データ・セットをアクセスするリクエストを受け取り、
もしスケジュールされた書き込み動作が、要求されたデータ・セットを第１のストレージ装置へまだコピーしていなければ、第３のストレージ装置からデータ・セットをリコールし、ここで、もし第１のストレージ装置へのデータ・セットのスケジュールされた書き込み動作が完了していれば、データ・セットをアクセスするため第１及び第２のストレージ装置の１つを選択してデータ・セットをアクセスするステップが起こる
ことを含む、上記（２３）に記載の製造物。
（２５）更に、もし要求されたデータ・セットが、スケジュールされた書き込み動作の結果として第１及び第２のストレージ装置へコピーされており、また、もし双方のストレージ装置のフラグが同じ値を有するならば、データ・セットをリコールする第１及び第２のストレージ装置の１つをランダムに選択することを含む、上記（２４）に記載の製造物。
（２６）第３及び第４のストレージ装置の双方におけるデータ・セットについて、データ・セットのバージョンを示すデータ・レベルが維持され、更に、データ・セットが第３及び第４のストレージ装置の双方にあるかどうかを決定することを含み、ここで、第３及び第４のストレージ装置の１つからデータ・セットをアクセスすることが、データ・セットについて最高のデータ・レベルを有する第３及び第４のストレージ装置の１つからデータ・セットをアクセスすることを含む、上記（２３）に記載の製造物。
（２７）更に、もし第３及び第４のストレージ装置の双方におけるデータ・セットのデータ・レベルが同じ値を有するならば、データ・セットをアクセスする第３及び第４のストレージ装置の１つをランダムに選択することを含む、上記（１９）に記載の製造物。
【図面の簡単な説明】
【図１】  好ましい実施形態が実現されるコンピューティング環境を示すブロック図である。
【図２】  本発明の好ましい実施形態に従ってデータをアクセスするために使用されるトークン・データベース・レコードを示す図である。
【図３】  本発明の好ましい実施形態に従ってボリュームをマウントするリクエストを処理するロジックを示す図である。
【図４】  本発明の好ましい実施形態に従ってボリュームをリコールするロジックを示す図である。
【図５】  本発明の好ましい実施形態に従ってボリュームのデータを更新するロジックを示す図である。
【符号の説明】
２ａ，２ｂ  ホスト・システム
４ａ，４ｂ，４ｃ，４ｄ  バーチャル・テープ・コントローラ（ディレクタ）
６ａ，６ｂ  バーチャル・テープ・サーバ
８ａ，８ｂ  直接アクセス記憶装置（ＤＡＳＤ）
１０ａ，１０ｂ  テープ・ライブラリ
５２  ボリュームＩＤ
５４  ロケーション・フィールド
５６  有効フラグ
５８  データ・レベル
６０  品質フラグ
【図１】
0004195180.tif 000002
【図２】
0004195180.tif 000003
【図３】
0004195180.tif 000004
【図４】
0004195180.tif 000005
【図５】
0004195180.tif 000006