(57)【特許請求の範囲】
【請求項１】
ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして記憶装置に格納する仮想テープ装置であって、
異なるまたは同一のテープライブラリ装置内の２つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を、前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報と、前記ロボットの３次元座標における各軸方向の移動速度または移動時間とに基づいて算出するロボット移動時間算出部と、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を、前記物理テープ上での前記リコール対象論理ボリュームの位置情報と、前記物理テープがマウントされるドライブ装置のテープ速度とに基づいて算出するテープ位置づけ時間算出部と、
前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する物理テープ選択判定部と、
を備えることを特徴とする仮想テープ装置。
【請求項２】
前記テープ位置づけ時間算出部は、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープ上での前記リコール対象論理ボリュームのデータブロックが記録されている位置に関する情報を、前記記憶装置上の論理ボリュームと前記物理テープ上の物理ボリュームとの対応関係を記憶する論理物理対応関係情報データベースを参照して取得し、前記取得した位置に関する情報に基づいて、前記テープ位置づけのための時間を算出する、
ことを特徴とする請求項１に記載の仮想テープ装置。
【請求項３】
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープにおけるエラーの発生状況を判定するエラー判定部を更に備え、
前記物理テープ選択判定部は、前記エラー判定部の判定結果に基づいて、前記リコール対象論理ボリュームが存在する物理テープを前記リコール処理の対象として選択可能か否かを判定する、
ことを特徴とする請求項１に記載の仮想テープ装置。
【請求項４】
前記テープライブラリ装置に搭載される全ての物理テープにおいて発生している各種エラーリトライの発生状況を記憶するエラーリトライ回数テーブル記憶部を更に備え、
前記エラー判定部は、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープに関する前記各種エラーリトライの発生状況を前記エラーリトライ回数テーブル記憶部から取得することにより、前記物理テープにおけるエラーの発生状況を判定する、
ことを特徴とする請求項３に記載の仮想テープ装置。
【請求項５】
ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして記憶装置に格納する仮想テープ装置における物理テープ選択方法であって、
異なるまたは同一のテープライブラリ装置内の２つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を、前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報と、前記ロボットの３次元座標における各軸方向の移動速度または移動時間とに基づいて算出し、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を、前記物理テープ上での前記リコール対象論理ボリュームの位置情報と、前記物理テープがマウントされるドライブ装置のテープ速度とに基づいて算出し、
前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する、
ことを特徴とする仮想テープ装置における物理テープ選択方法。
【請求項６】
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープ上での前記リコール対象論理ボリュームのデータブロックが記録されている位置に関する情報に基づいて、前記テープ位置づけのための時間を算出する、
ことを特徴とする請求項５に記載の仮想テープ装置における物理テープ選択方法。
【請求項７】
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープにおけるエラーの発生状況を判定し、
前記エラーの発生状況の判定結果に基づいて、前記リコール対象論理ボリュームが存在する物理テープを前記リコール処理の対象として選択可能か否かを判定する、
ことを特徴とする請求項５に記載の仮想テープ装置における物理テープ選択方法。
【請求項８】
前記テープライブラリ装置に搭載される全ての物理テープにおいて発生している各種エラーリトライの発生状況をエラーリトライ回数テーブルとして記憶し、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープに関する前記各種エラーリトライの発生状況を前記エラーリトライ回数テーブルから取得することにより、前記物理テープにおけるエラーの発生状況を判定する、
ことを特徴とする請求項５に記載の仮想テープ装置における物理テープ選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストに接続されるテープライブラリ装置のキャッシュとして用いる仮想テープ装置に関する。
【背景技術】
【０００２】
仮想テープ装置は、テープ運用をハードディスク等の大規模記憶装置上で仮想的に行う装置である。テープイメージデータが論理ボリューム（ＬＶ：Ｌｏｇｉｃａｌ  Ｖｏｌｕｍｅ）として大規模記憶装置上に配置されることによって、テープマウント、ロード／アンロードなどの機械的な動作を無くし、高速処理を図っている。
【０００３】
仮想テープ装置には、バックエンドでテープライブラリ装置が接続されている。このテープライブラリ装置を仮想ボリューム化するための装置として、例えばＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）装置が使用される。ＲＡＩＤ装置は、複数台のハードディスクが組み合わせられることで仮想的な１台のハードディスクとして運用される装置であり、信頼性の向上と高速化が可能となる。仮想テープ装置では、このＲＡＩＤ装置は、テープボリュームキャッシュ（ＴＶＣ：Ｔａｐｅ  Ｖｏｌｕｍｅ  Ｃａｃｈｅ）として用いられる。なお、ＴＶＣは、複数のハードディスクから構成される必要は必ずしもなく、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）装置等の大規模記憶装置によって構成されてもよい。ホスト装置からアクセスされるテープボリュームは、ＴＶＣに置かれる。このようなボリュームデータは、論理ボリュームと呼ばれる。そして、ＴＶＣ上に空きスペースが無くなると、アクセスが一番古いテープボリュームが追い出されて、テープライブラリ装置内のテープカートリッジにセーブされることで、ＴＶＣから削除される。ＴＶＣ上から追い出された論理ボリュームへのアクセスが発生した場合には、テープライブラリ装置からＴＶＣにその論理ボリュームに対応する物理ボリュームが読み込まれる。ＴＶＣ上から追い出された論理ボリュームデータを磁気テープから読み取りＴＶＣに反映すること動作は、リコールと呼ばれる。
【０００４】
ホスト装置のオペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上では、仮想テープ装置は、通常のテープデバイスとして定義され、テープライブラリ装置を意識する必要がない。
【０００５】
テープライブラリ装置では、複数のテープカートリッジが、セルと呼ばれる収納庫に格納されている。仮想テープ装置において、ＴＶＣ上に無い論理ボリュームへのアクセスが発生した場合、次のような動作が実行される。すなわちまず、テープライブラリ装置内の媒体搬送機構であるロボットが、その論理ボリュームに対応する物理ボリュームが記憶されたテープカートリッジをセルからテープライブラリ装置内のドライブに投入する。そして、そのテープカートリッジ内のデータがＴＶＣにロードされる。
【０００６】
ホスト装置より書込み指示された論理ボリュームデータは、一度、ＴＶＣに記録され、その後、テープライブラリ装置のテープカートリッジ内の物理テープ（磁気テープ）に反映される。ここで従来、２つの物理テープに同じデータを書き込む、デュアルセーブと呼ばれる機能を有するテープライブラリ装置が知られている。デュアルセーブ機能は、データ記録を二重化することにより、テープカートリッジやテープライブラリ装置の故障からデータを保護するための機能である。
【０００７】
デュアルセーブ機能によって異なる２つのテープライブラリ装置にそれぞれ書き込まれたデータを物理テープから読み取る(リコール)際、従来は、最初に無条件に、第１番目のテープライブラリ装置内の物理テープから読み取りを行っていた。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−８６２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ここで、異なる２つのテープライブラリ装置内の各物理テープに書き込まれたデータの各セクタ位置は、それぞれ異なる場合がある。また、２つのテープライブラリ装置内の各物理テープのテープカートリッジが収納されているセル位置は、それぞれ異なる場合がある。更に、２つのテープライブラリ装置の各ロボットがリコール時に停止している位置も、異なる場合がある。このため、リコール時に、第１番目のテープライブラリ装置内のリコールされるデータが記憶されている物理テープからよりも、第２番目のテープライブラリ装置内の同じデータが記憶されている物理テープからのほうが、短時間でリコールを実行できる場合がある。
【００１０】
したがって、従来のように、常に一方のテープライブラリ装置のみから物理テープを読み込むリコール処理では、アクセス効率が悪くなってしまう場合があるという問題点を有していた。
【００１１】
そこで、本発明の課題は、リコール処理におけるアクセス効率を向上することである。
【課題を解決するための手段】
【００１２】
本発明の態様の一例では、ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして記憶装置に格納する仮想テープ装置であって、異なるまたは同一のテープライブラリ装置内の２つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を、前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報と、前記ロボットの３次元座標における各軸方向の移動速度または移動時間とに基づいて算出するロボット移動時間算出部と、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を、前記物理テープ上での前記リコール対象論理ボリュームの位置情報と、前記物理テープがマウントされるドライブ装置のテープ速度とに基づいて算出するテープ位置づけ時間算出部と、前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する物理テープ選択判定部とを備えることを特徴とする仮想テープ装置を提供する。
【発明の効果】
【００１３】
本出願により開示する構成及び方法によれば、リコール指示の発生時に、リコール処理対象の物理テープのうち早く読みとれる物理テープを選択することが可能となる。これにより、リコール処理におけるアクセス効率が向上する。
【図面の簡単な説明】
【００１４】
【図１】実施形態のシステム構成図である。
【図２】実施形態による仮想テープ装置のブロック図である。
【図３】ボリュームグループを説明する図である。
【図４】物理ボリュームへの保存を説明する図である。
【図５】論理ボリュームの復元を説明する図である。
【図６】物理ボリュームのリオーガニゼーションを説明する図である。
【図７】デュアルセーブとマルチライブラリを説明する図である。
【図８】シングルセーブとデュアルセーブの例を説明する図である。
【図９】仮想テープ装置のデュアルセーブを説明する図である。
【図１０】仮想テープ装置のリコールを説明する図である。
【図１１】＃０のテープライブラリ装置１０２のＴａｐｅ−Ａのロボット移動時間（Ｔｉｍｅ−１）の算出動作を説明する図である。
【図１２】＃１のテープライブラリ装置１０２のＴａｐｅ−Ｂのロボット移動時間（Ｔｉｍｅ−１）の算出動作を説明する図である。
【図１３】＃０のテープライブラリ装置１０２のＴａｐｅ−Ａのテープ位置づけ時間（Ｔｉｍｅ−２）の算出動作を説明する図である。
【図１４】＃１のテープライブラリ装置１０２のＴａｐｅ−Ｂのテープ位置づけ時間（Ｔｉｍｅ−２）の算出動作を説明する図である。
【図１５】カートリッジメモリに格納されるデータ例を示す図である。
【図１６】＃０のテープライブラリ装置１０２のエラーリトライ回数テーブルのデータ構成の例を示す図である。
【図１７】＃１のテープライブラリ装置１０２のエラーリトライ回数テーブルのデータ構成の例を示す図である。
【図１８】閾値テーブルのデータ構成の例を示す図である。
【図１９】実施形態による仮想テープ装置のフローチャートを示す図である。
【図２０】ＶＬＰ１０６のハードウェア構成例を示す図である。
【図２１】テープカートリッジの構成例を示す図である。
【図２２】カートリッジメモリの構成例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図１は、本実施形態が適用される仮想テープ装置とその周辺装置のシステム構成を示す図である。
【００１６】
仮想テープ装置１０１は、ＴＶＣ１０４と、ＩＣＰ１０５、ＶＬＰ１０６、ＩＤＰ１０７、ＰＬＰ１０８を、構成要素として含む。
ＴＶＣ（Ｔａｐｅ  Ｖｏｌｕｍｅ  Ｃａｃｈｅ）１０４は、例えばＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）装置によって構成される。なお、ＴＶＣ１０４はＳＳＤ等の大規模記憶装置から構成されてもよい。ＩＣＰ１０５、ＶＬＰ１０６、ＩＤＰ１０７、およびＰＬＰ１０８はそれぞれ、サーバコンピュータモジュールによって構成される。
【００１７】
ＩＣＰ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｈａｎｎｅｌ  Ｐｒｏｃｅｓｓｏｒ）１０５は、ストレージ接続用のインタフェースを用いてホスト装置であるサーバ１０３と接続され、ＴＶＣ１０４上の論理ボリュームのデータの送受信を制御する。仮想テープドライブの機能はこのサーバにより行なわれる。このインタフェースは、最大転送速度が例えば１７メガバイト／秒の光ファイバーを使用したストレージデータ転送用の高速リンクである。
【００１８】
ＶＬＰ（Ｖｉｒｔｕａｌ  Ｌｉｂｒａｒｙ  Ｐｒｏｃｅｓｓｏｒ）１０６は、サーバ１０３からのマウント要求を受信し、仮想テープドライブに論理ボリュームをマウントする処理を受け持つ。また、ＶＬＰ１０６は、ＴＶＣ１０４上の論理ボリュームとテープカートリッジ１１１上の物理ボリュームとの対応関係を記憶するデータベース（後述する図２の論理物理対応関係情報データベース２０７）を管理する処理、物理テープへのストア処理等を受け持つ。
【００１９】
ＩＤＰ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｐｒｏｃｅｓｓｏｒ）１０７は、ＶＬＰ１０６からの指示を受ける。そして、ＴＶＣ１０４上の論理ボリュームのデータを、テープライブラリ装置１０２内のテープ駆動装置であるドライブ１０９にセットされたテープカートリッジ１１１にストアする。逆に、ＩＤＰ１０７は、テープライブラリ装置１０２内のセル１１０に収納されたテープカートリッジ１１１をドライブ１０９にマウントする。そして、そのテープカートリッジ１１０内の物理ボリュームから、論理ボリュームのデータを読み出して、ＴＶＣ１０４上にリコールする。
【００２０】
ＰＬＰ（Ｐｈｙｓｉｃａｌ  Ｌｉｂｒａｒｙ  Ｐｒｏｃｅｓｓｏｒ）１０８は、ＶＬＰ１０６からの指示を受け、テープライブラリ装置１０２内のライブラリコントローラ（図２の２０９参照）を介して、テープライブラリ装置１０２内の媒体搬送機構であるロボット（図２の２０８参照）を制御する。
【００２１】
仮想テープ装置１０１は、ＴＶＣ１０４に対して、例えば２つのグループにグループ化することができる。それぞれのグループは、＃１および＃２のテープライブラリ装置１０２（図２参照）を個別に制御できる。ＶＬＰ１０６は例えば、２つのグループのそれぞれに対して、＃０および＃１というように１台ずつ設置できる。また、ＩＣＰ１０５は例えば、２つのグループのそれぞれに対して、＃０と＃２および＃１と＃３というように２台ずつまで設置できる。ＩＣＰ１０５の設置数が増加すると、サーバ１０３がアクセスできる論理ボリュームの数が増加する。ＩＤＰ１０７は例えば、２つのグループのそれぞれに対して、＃０と＃２および＃１と＃３というように２台ずつまで設置できる。ＩＤＰ１０７の設置数が増加すると、制御できるテープライブラリ装置１０２内のドライブ１０９の数が増加する。ＰＬＰ１０８は例えば、＃１および＃２の各テープライブラリ装置１０２内のライブラリコントローラに対応して、２つのグループのそれぞれにおいて＃０と＃１というように１台ずつ設置できる（後述する図２参照）。
【００２２】
ＴＶＣ１０４、各ＩＣＰ１０５、各ＶＬＰ１０６、および各ＩＤＰ１０７間、各ＩＤＰ１０７と各テープライブラリ装置１０２内の各ドライブ１０９、各ＰＬＰ１０８と各テープドライブ装置１０２内の各ライブラリコントローラは、相互に専用のインタフェースで接続される。このインタフェースは、最大転送速度が例えば２００メガバイト／秒の光ファイバーまたは同軸ケーブルを使用したストレージデータ転送用の高速リンクである。このとき、このインタフェースを用いた特には図示しないスイッチ装置が、各グループ内、並びに２つのグループ間の上記各部分の相互接続を制御する。
【００２３】
ＴＶＣ１０４、各ＩＣＰ１０５、各ＶＬＰ１０６、各ＩＤＰ１０７、および各ＰＬＰ１０８は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ケーブル１１７により、複数のハブ装置を介して相互に接続され、制御信号を通信する。
【００２４】
ＶＴＣＰ（Ｖｉｒｔｕａｌ  Ｔａｐｅ  Ｃｏｎｔｒｏｌ  Ｐｒｏｇｒａｍ）１１３は、ＬＡＮＣ（ＬＡＮ  Ｃｏｎｔｒｏｌｌｅｒ）１１２を介して、仮想テープ装置１０１内のＶＬＰ１０６に対し、論理ボリュームのマウントを要求する。
【００２５】
テープライブラリ装置１０２には、物理テープドライブ装置である１台以上のドライブ１０９が設置される。仮想テープ装置１０１内の１台のＩＤＰ１０７は、例えば２台のドライブ１０９を駆動できる。テープライブラリ装置１０２においては、テープカートリッジ１１０を収納するセル１１０から必要なセル１１０がロボット（図２の２０８参照）によりドライブ１０９に搬送されてマウントされる。そして、このテープカートリッジ１１０に、仮想テープ装置１０１内のＩＤＰ１０７がアクセスする。
【００２６】
図２は、本実施形態による仮想テープ装置１０１のブロック図である。図２にはまた、仮想テープ装置１０１によって制御されるテープライブラリ装置１０２の構成も示されている。図２において、図１と同じ部分は同じ番号を付してある。
【００２７】
図２では、仮想テープ装置１０１内のＶＬＰ１０６内に設定されるリコール制御部２０１が、テープライブラリ装置１０２（＃０または＃１）を制御して、デュアルセーブされた論理ボリュームのリコール処理を実行するための構成が示されている。
【００２８】
図２において、＃０および＃１の各テープライブラリ装置１０２は、媒体搬送機構であるロボット２０８と、ロボット２０８によって各テープカートリッジ１１１が出し入れされる複数の収納庫であるセル１１０が設置される。図２では、＃０〜＃６のセル１１０が搭載されている。＃０および＃１の各テープライブラリ装置１０２内の各ロボット２０８は、仮想テープ装置１０１内の＃０および＃１のＰＬＰ１０８によって制御される。また図２では、説明を簡単にするため、＃０および＃１の各テープライブラリ装置１０２には、仮想テープ装置１０１内の＃０および＃１の各ＩＤＰ１０７によって制御される＃０と＃１のドライブ１０９の組のみが示されている。各テープライブラリ装置１０２内のライブラリコントローラ２０９は、ロボット２０８の動作を制御する。
【００２９】
仮想テープ装置１０１に設けられるＶＬＰ１０６（図１参照）内のリコール制御部２０１は、ロボット移動時間算出部２０２、テープ位置づけ時間算出部２０３、および物理テープ選択判定部２０６を備える。これに加えて、リコール制御部２０１は、エラーリトライ回数テーブル記憶部２０４およびエラー判定部２０５を備える。このほか、ＶＬＰ１０６は、論理物理対応関係情報データベース記憶部２０７を備える。
【００３０】
リコール制御部２０１において、ロボット移動時間算出部２０２は、ＶＬＰ１０６内にてリコール指示が発生したときに、リコール対象となる物理テープが存在するテープライブラリ装置１０２内のロボット２０８の移動時間、すなわちロボット移動時間を算出する。
【００３１】
このロボット移動時間は、ロボット２０８が、リコール対象となる物理テープのテープカートリッジ１１１を、それが収納されているセル１１０からドライブ１０９まで移動するのに要する時間である。
【００３２】
より具体的には、このロボット移動時間は、次の第１および第２の移動時間を加算した時間である。すなわち、第１の移動時間は、リコール指示発生時のロボット２０８の位置から、対象となるテープカートリッジ１１１が収納されているセル１１０の位置までの、ロボット２０８の移動時間である。また、第２の移動時間は、そのセル１１０の位置からドライブ１０９の位置までの、ロボット２０８の移動時間である。
【００３３】
第１，第２の移動時間を算出するために、ロボット移動時間算出部２０２は、リコール指示の発生時に、＃０および＃１のＰＬＰ１０８を介して各テープライブラリ装置１０２内の各ライブラリコントローラ２０９から、次の４つの情報を取得する。すなわち、ロボット移動時間算出部２０２は、ロボット２０８の現在位置と、対象のテープカートリッジ１１１が収納されているセル１１０の位置と、そのテープカートリッジ１１１がマウントされる先のドライブ１０９の位置を、それぞれ３次元座標値として取得する。また、ロボット移動時間算出部２０２は、３次元座標の各軸方向のロボット２０８の移動速度（または移動時間）を取得する。ロボット移動時間算出部２０２は、これらの４つの情報に基づいて、ＶＬＰ１０６内にてリコール指示が発生したときに、リコール対象となる各物理テープが存在するテープライブラリ装置１０２内のロボット移動時間を算出する。
【００３４】
リコール制御部２０１において、テープ位置づけ時間算出部２０３は、ＶＬＰ１０６内にてリコール指示が発生したときに、リコール対象となる各物理テープにおけるテープ位置づけ時間を算出する。
【００３５】
テープ位置づけ時間は、テープライブラリ装置１０２内で対象となるテープカートリッジ１１１がマウントされたドライブ１０９で、ヘッダが、リコール対象となる論理ボリュームのデータブロックが格納されている位置まで移動するのに要する時間である。
【００３６】
テープ位置付け時間を算出するために、テープ位置づけ時間算出部２０３は、ＶＬＰ１０６が論理物理対応関係情報データベース記憶部２０７に保持している論理物理対応関係情報データベースを参照する。これにより、テープ位置づけ時間算出部２０３は、リコール対象となる物理テープ上でのリコール対象となる論理ボリュームの位置（セクタ位置）を取得する。テープ位置づけ時間算出部２０３は、この位置情報と、ドライブ１０９におけるテープ速度とから、テープ位置づけ時間を算出する。
【００３７】
リコール制御部２０１において、物理テープ選択判定部２０６は、リコール対象となる物理テープごとに、ロボット移動時間算出部２０２が算出したロボット移動時間とテープ位置づけ時間算出部２０３が算出したテープ位置づけ時間の加算値を算出する。この加算値は、リコール指示が発生してから対象となる各物理テープの読み取りが開始されるまでの「読み取り開始まで時間」を示している。物理テープ選択判定部２０６は、各物理テープごとに算出した「読み取り開始まで時間」のうち時間が最も少ないものに対応するテープライブラリ装置１０２内の物理テープ（テープカートリッジ１１１）を、リコール処理の対象として選択する。
【００３８】
その後、リコール制御部２０１において、選択された物理テープに対して、リコール処理が開始される。
このようにして、本実施形態では、リコール制御部２０１は、リコール対象の２つの物理テープのうち、最も早く読みとれる物理テープを選択することが可能となる。
【００３９】
上述の動作に加えて、物理テープ選択判定部２０６は、物理テープの選択判定処理において、次のような制御を行う。
まず、リコール制御部２０１は、各テープライブラリ装置１０２に搭載される全ての物理テープにおいて発生しているエラーリトライ回数を記憶部２０４のリトライ回数テーブルに記憶する。
【００４０】
そして、リコール制御部２０１内のエラー判定部２０５は、リコール指示の発生時に、リコール対象とされる物理テープごとに、その物理テープの各種エラーリトライ回数を、エラーリトライ回数テーブルを参照して取得する。エラー判定部２０５は、取得した各種エラーリトライ回数に基づいて、リコール対象とされる物理テープを選択可能か否かを判定する。
【００４１】
物理テープ選択判定部２０６は、エラー判定部２０５での判定結果に基づいて、物理テープを選択する。
このようにして、リコール制御部２０１は、リコール対象となる２つの物理テープにおいて、エラーが発生し易い物理テープがリコール処理されないように制御することができる。
【００４２】
以上の２つの制御動作により、リコール制御部２０１は、最適なリコール処理を開始することが可能となる。
【００４３】
以上の構成を有する実施形態による仮想テープ装置１０１の具体的な動作について、以下に説明する。
【００４４】
図１のシステム構成において、仮想テープ装置１０１は、サーバ１０３上のＶＴＣＰ１１３からのマウント要求に対し、例えばＲＡＩＤディスクであるＴＶＣ１０４上に、該当するテープボリュームのデータ格納領域を用意する。サーバ１０３上で、ドライブパスのインタフェースに対しては、通常のトラックテープ装置のように振る舞い、データの受け渡しを行う。このデータは、ＴＶＣ１０４上で読み書きされる。
【００４５】
ＴＶＣ１０４上に置かれエミュレーションされるボリュームデータが、論理ボリュームである。また、すべての論理ボリュームは、バックエンドのテープライブラリ装置１０２の実際のテープカートリッジ１１１にバックアップされる。このテープライブラリ装置１０２内のテープカートリッジ１１１が、物理ボリュームとなる。
【００４６】
サーバ１０３からのアンロード要求を契機として、ＴＶＣ１０４上で使用された論理ボリュームは、テープライブラリ装置１０２の物理ボリュームに保存(マイグレーション)される。ただし、論理ボリュームへのアクセスがリードのみで論理ボリュームになんの変更もされなかった場合には、この処理は行われない。また、論理ボリュームのデータは、ＴＶＣ１０４が一杯になるまでは、削除されずに保持される。
【００４７】
ここで、論理ボリュームＬＶ０００１に対してサーバ１０３がジョブを実行した場合の、仮想テープ装置１０１の動作例を説明する。なお、この例では、論理ボリュームＬＶ０００１のデータは、物理ボリュームＰＶ０００２に保存されているものとする。
【００４８】
ステップ１：サーバ１０３は、論理ボリュームＬＶ０００１に対して、マウント要求を発行する。仮想テープ装置１０１は、この要求をＶＬＰ１０６で受領する。
【００４９】
ステップ２：ＶＬＰ１０６は、ＴＶＣ１０４を参照し、論理ボリュームを保管するのに十分な空き容量があるかチェックする。
【００５０】
空き容量がない場合：ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）論理により、最終アクセス時刻の最も古い論理ボリュームから削除され、空き領域が作られる。ただし、アクセス時刻が古い場合でも論理ボリュームのサイズが小さい場合には削除されず、よりサイズの大きな論理ボリュームが優先される場合がある。ＬＲＵ論理とは、最後に使用した時刻の最も古いもの、かつデータサイズの大きいものを取り出すように管理する方式である。
【００５１】
ステップ３：続いてＶＬＰ１０６は、ＴＶＣ１０４上に要求された論理ボリュームが存在するかチェックする。
【００５２】
すでにキャッシュにある場合：ＶＬＰ１０６は、直ちにサーバ１０３に対してマウント完了を報告する。より具体的には、ＶＬＰ１０６がＩＣＰ１０５に対してマウント完了を通知し、ＩＣＰ１０５がサーバ１０３に対して、「Ｎｏｔ  ｒｅａｄｙ  ｔｏ  Ｒｅａｄｙ」の割り込みを発生させる。
【００５３】
キャッシュ上にない場合：ＶＬＰ１０６は、自身が論理物理対応関係情報データベース記憶部２０７に保有する論理物理対応関係情報データベース（図２参照）を検索する。この結果、ＶＬＰ１０６は、要求された論理ボリュームＬＶ０００１が保存されている物理ボリュームがＰＶ０００２であると認識する。そして、ＶＬＰ１０６は、テープライブラリ装置１０２に、そのＰＶ０００２のマウントを指示し、さらにＩＤＰ１０７に対して、ＰＶ０００２から目的の論理ボリュームＬＶ０００１をＴＶＣ１０４上に読み込むように指示する。論理ボリュームの読み出しが完了した時点で、サーバ１０３に対して、マウント完了が報告される。その間、サーバ１０３は、マウントペンディング状態となる。
【００５４】
ステップ４：サーバ１０３は、論理ボリュームＬＶ０００１に対して、データのリードまたはライトを実行する。
【００５５】
ステップ５：ＶＬＰ１０６は、論理ボリュームＬＶ０００１のデータが変更されたかどうかをチェックする。
【００５６】
変更がなかった場合：特になんの後処理も行われない。
変更があった場合：ＶＬＰ１０６は、更新された論理ボリュームのデータを保存するのに適当な物理ボリュームを検索する。通常、ＰＶ０００２に十分な空き容量があれば、ＰＶ０００２に追い書きで、新たな論理ボリュームＬＶ０００１のデータが保存される。十分な空き領域がなければ、その新たな論理ボリュームＬＶ０００１のデータは、新たな別の物理ボリュームに保存される。ＰＶ０００２に書かれていた更新前の論理ボリュームＬＶ０００１のデータは、論理物理対応関係情報データベース上無効とされ、新たに書き込まれたデータが有効となる。
【００５７】
ステップ６：論理ボリュームＬＶ０００１が格納されている物理ボリュームに対して、サーバ１０３から再度マウント要求があれば、直ちにマウント完了報告を返すことができる。他のマウントのために空き領域が必要になり、ＬＲＵ論理でＴＶＣ１０４から削除されるまで、論理ボリュームはＴＶＣ１０４上に残される。論理ボリュームがＴＶＣ１０４から削除されても、その削除された論理ボリュームは、テープライブラリ装置１０２内の物理ボリュームの中には常に存在している。
【００５８】
ここで、ボリュームとボリュームグループについて、図３を参照しながら説明する。
図３に示されるように、ＴＶＣ１０４上の論理ボリュームは、論理ボリュームグループによりグループ分けがされている。すべての論理ボリュームは、いずれかの論理ボリュームグループに属している。初期状態では、“ＢＡＳＥ”論理ボリュームグループが用意されており、また任意の論理ボリュームグループを作成することも可能である。
【００５９】
また図３に示されるように、テープライブラリ装置１０２に格納されている物理ボリュームも、いずれかのボリュームグループに登録される。こちらは、物理ボリュームグループと呼ばれる。
【００６０】
論理ボリュームグループを物理ボリュームグループに割り当てることで、サーバ１０３から論理ボリュームに書き込まれたデータは、図３に示されるように、その論理ボリュームの所属するボリュームグループにリンクされた物理ボリュームグループ内のいずれかの物理ボリュームに保存される。
【００６１】
ボリュームグループは、サーバ１０３ごとあるいはジョブごとにグループを分けて作成することで、データが保存される物理ボリュームを明示的に分けることが可能になる。また、後述するデュアルセーブ機能は、１つの論理ボリュームグループを２つの物理ボリュームグループにリンクすることで行なわれる。
【００６２】
論理ボリュームは、サーバ１０３から仮想ドライブへのアンロードコマンドを契機として、物理ボリュームに保存(マイグレーション  )される。ただし、論理ボリュームの内容に変更がない場合は、保存は実行されない。
【００６３】
図４は、物理ボリュームへの保存を説明する図である。同図（ａ）「物理ボリュームへの保存例その１」として示されるように、論理ボリュームＬＶ０００１が更新された後、アンロードの契機で物理ボリュームへのストア処理が発生する。この例で、ＬＶ０００１は、物理テープＰＶ０００５の最後に書かれている論理ボリュームの後ろに保存される。そして、もともとＰＶ０００５に保存されていたＬＶ０００１のデータは、論理物理対応関係情報データベース（図２参照）上、無効にされる。
【００６４】
図４の（ｂ）「物理ボリュームへの保存例その２」として示されるように、論理ボリュームの更新が繰り返されて論理ボリュームのデータがＰＶ０００５の終端まで達した場合、同じ物理ボリュームグループに所属する別の物理ボリュームＰＶ０００６に保存される。
【００６５】
論理ボリュームは、小容量トラックテープカートリッジをエミュレーションすることで例えば約８００メガバイトの容量を有する。それに対し物理ボリュームは、大容量テープカートリッジを使用することで例えば８００ギガバイトの容量を有する。したがって、物理ボリュームには、多数の論理ボリュームを保存することができる。
【００６６】
ＴＶＣ１０４上に存在しない論理ボリュームに対してマウント要求またはプレロード要求が発行された場合、前述したリコール処理が実行される。図５は、リコール処理による論理ボリュームの復元を説明する図である。すなわち、同図（ａ）「論理ボリュームの復元例」として示されるように、仮想テープ装置１０１のＶＬＰ１０６は、ＰＬＰ１０８およびＩＤＰ１０７に指示を出してテープライブラリ装置１０２の物理ボリュームをドライブ１０９にマウントする。そして、ＶＬＰ１０６は、目的の論理ボリュームをＴＶＣ１０４上に読み出す。サーバ１０３へのマウント完了報告は、論理ボリュームの読み出しの完了後に行われ、それまでの間サーバ１０３は、マウントペンディング状態となる。
【００６７】
図６は、物理ボリュームのリオーガニゼーションを説明する図である。図４で説明したように、論理ボリュームが更新されると更新以前に物理ボリュームに書かれていたデータは無効となり、新しいデータが物理ボリュームの最後に追い書きされる。しかし、例えば図４（ａ）「物理ボリュームへの保存例その１」に示されるような処理が繰り返されると、図６（ａ）に示されるように、物理ボリューム上に無効な領域が増えていき、また物理ボリュームグループ内の空き物理ボリュームの数も減少する。これを改善するために、仮想テープ装置１０１は、リオーガニゼーションという機能を備えることができる。この機能では、物理ボリュームから有効となっている論理ボリュームのデータだけが別の物理ボリュームに集約され、元の物理テープは初期化される。図６（ａ）→（ｂ）の例では、ＰＶ０００５，ＰＶ０００６に保存されていた論理ボリュームがＰＶ０００７にまとめられ、ＰＶ０００５，ＰＶ０００６は空き物理ボリュームとなる。リオーガニゼーション処理は、仮想テープ装置１０１によって、物理ボリュームグループごとに自動的に実行される。物理ボリュームグループの設定にリオーガニゼーションに関するものがあり、リオーガニゼーション処理を起動する条件として空き物理ボリュームの残り巻数と、リオーガニゼーション処理を実行する時間帯を指定することができる。
【００６８】
図７は、デュアルセーブとマルチライブラリを説明する図である。テープライブラリ装置１０２に置かれる物理ボリューム（テープカートリッジ１１１）は、デュアルセーブ機能により二重化することができる。通常、論理ボリュームのデータは１つの物理ボリュームにのみ保存されるが、デュアルセーブに設定した論理ボリュームグループのデータは、2巻の物理ボリュームに保存される。これにより、メディアエラーなどで物理ボリュームから論理ボリュームのデータを読み出せなかった場合、もう一方の物理ボリュームから復元することができる。
【００６９】
デュアルセーブ機能は、対象とする論理ボリュームグループを２つの物理ボリュームグループに割り当てることで動作する。図７（ａ）「シングルライブラリ構成」の例で、論理ボリュームグループ“ＢＡＳＥ”を物理ボリュームグループ“ＢＡＳＥ”および“ＢＡＳＥ２”に割り当てることにより、論理ボリュームＬＶ０００１は 物理ボリュームＰＶ１００１とＰＶ２００１に保存されるようになる。
【００７０】
ここでさらに、マルチライブラリオプションを使うことで、図２の構成例として示されるように、同時に２台のテープライブラリ装置１０２を接続することが可能である。これとデュアルセーブ機能を併用し、論理ボリュームを２台のテープライブラリ装置１０２内にあるそれぞれの物理ボリュームに保存されるように設定することで、二重化することができる。この場合、物理ボリュームのメディアエラーだけでなく、テープライブラリ装置１０２のダウンに対しても冗長性を持たせることができる。図７（ｂ）「マルチライブラリ構成」の例で、論理ボリュームグループ“ＢＡＳＥ”が、＃０および＃１のテープライブラリ装置１０２（ＬＩＢ＃０／ＬＩＢ＃１）のそれぞれの物理ボリュームグループ“ＢＡＳＥ”／“ＢＡＳＥ２”に割り当てられる。これにより、論理ボリュームＬＶ０００１は、物理ボリュームＰＶ０００１とＰＶ２００１に保存されるようになる。
【００７１】
図８は、シングルセーブとデュアルセーブの例を示す図である。
論理ボリュームグループ−Ａ内に登録されている論理ボリュームは、物理ボリュームグループ−０内に存在する物理ボリュームに書き込まれる（シングルセーブ）。
【００７２】
論理ボリュームグループ−Ｂ内に登録されている論理ボリュームは、物理ボリュームグループ−０と１内に存在する物理ボリュームに書き込まれる（デュアルセーブ）。
論理ボリュームグループ−Ｃ内に登録されている論理ボリュームは、物理ボリュームグループ−２と３内に存在する物理ボリュームに書き込まれる（デュアルセーブ）。
【００７３】
物理ボリュームへの書き込みは、物理テープグループ内の物理テープ状態を調べ、現在、書き込みを行うのにベストな状態な物理テープを使用して書き込みを行う。すでに物理ボリュームがドライブにマウントされている場合は、その物理ボリュームへ書き込みを実施する。例えば、論理ボリュームグループ−Ａ内に登録されている論理ボリュームが更新され、物理ボリュームグループ−０への書き込みを開始する。以前、同じ論理ボリュームの書き込みを行った物理テープが選択され、ドライブにマウントされ、書き込みが行われる。その後、論理ボリュームグループ−Ｂ内に登録されている論理ボリュームが更新され、物理ボリュームグループ−０と１内の物理ボリュームへの書き込みを行うが、物理ボリュームグループ−０では、すでに物理ボリュームがドライブにマウントされているので、この物理ボリュームへの書き込みを行う。物理ボリュームグループ−１では、同じ論理ボリュームの書き込みを行った物理テープを選択し、書き込みを行う。
【００７４】
ここで、マルチライブラリへのデュアルセーブと、それに対応するリコール処理との関係について説明する。図９は、仮想テープ装置のデュアルセーブを説明する図である。また、図１０は、仮想テープ装置のリコールを説明する図である。
【００７５】
サーバ１０３から仮想ドライブへのアンロードコマンドを契機として、仮想テープ装置１０１内のＴＶＣ１０４上の論理ボリュームに変更がある場合に、その論理ボリュームが物理ボリュームに保存(マイグレーション)される。このとき、上述したマルチライブラリのデュアルセーブ機能が有効な場合、論理ボリュームは、例えば図９に示されるようにセーブされる。すなわち、＃０のテープライブラリ装置１０２内の物理ボリュームグループ−Ａ内のテープカートリッジＴａｐｅ−Ａと、＃１のテープライブラリ装置１０２内の物理ボリュームグループ−Ｂ内のテープカートリッジＴａｐｅ−Ｂにデュアルセーブされる。
【００７６】
このようにマイグレーションされたデータに対して、リコール処理が発生した場合、図１０に示されるように、＃０と＃１のテープライブラリ装置１０２のうちのどちらの物理ボリュームからリコールすればよいかを最適化することが重要である。
【００７７】
この最適化するのが、図２で説明したリコール制御部２０１の機能である。このリコール制御部２０１の機能の詳細について、以下に説明する。
まず、前述した図２のリコール制御部２０１内のロボット移動時間算出部２０２の動作の詳細について説明する。
【００７８】
前述したように、ロボット移動時間算出部２０２は、リコール対象となる物理テープごとに、その物理テープに関するテープライブラリ装置１０２内のロボット移動時間を算出する。ロボット移動時間をＴｉｍｅ−１、現在のロボットの位置からリコール対象の物理テープが存在するセル１１０の位置までのロボット移動時間をＴｉｍｅ−１ａ、そのセル１１０からそれがマウントされるドライブ１０９までのロボット移動時間をＴｉｍｅ−１ｂとする。この場合、Ｔｉｍｅ−１は、次式で算出される。
【００７９】
Ｔｉｍｅ−１  ＝  Ｔｉｍｅ−１ａ  ＋  Ｔｉｍｅ−１ｂ  ・・・（１）
【００８０】
図１１は、＃０のテープライブラリ装置１０２のＴａｐｅ−Ａのロボット移動時間（Ｔｉｍｅ−１）の算出動作を説明する図である。前述の図１０の例において、ロボット２０８と、テープカートリッジＴａｐｅ−Ａが収納されるセル１１０［Ｔａｐｅ−Ａ］と、そのテープカートリッジ１１１がマウントされるドライブ１０９との位置関係が、例えば図１１に示される如くであるとする。この場合、ロボット２０８が図面内左右方向または前後方向（これを例えばＸ軸方向またはＺ軸方向とする）に移動する。また、ロボット２０８に付属するハンド１１０１が図面内上下方向（これを例えばＹ軸方向とする）に移動する。これらの動作により、ロボット２０８が、セル１１０［Ｔａｐｅ−Ａ］までＴａｐｅ−Ａを取りに行く。その移動時間を、図１１に示されるＴｉｍｅ−１ａ−Ａとする。次に、ハンド１１０１がＴａｐｅ−Ａを掴んだ後、ロボット２０８およびハンド１１０１が図面内上下左右前後方向に移動しながら、Ｔａｐｅ−Ａがドライブ１０９まで運ばれる。その移動時間を、図１１に示されるＴｉｍｅ−１ｂ−Ａとする。Ｔａｐｅ−Ａに関するロボット移動時間をＴｉｍｅ−１−Ａとすれば、前述の（１）式より、Ｔｉｍｅ−１−Ａは、次式により算出される。
【００８１】
Ｔｉｍｅ−１−Ａ  ＝  Ｔｉｍｅ−１ａ−Ａ  ＋  Ｔｉｍｅ−１ｂ−Ａ
【００８２】
図１２は、＃１のテープライブラリ装置１０２のＴａｐｅ−Ｂのロボット移動時間（Ｔｉｍｅ−１）の算出動作を説明する図である。前述の図１０の例において、ロボット２０８と、テープカートリッジＴａｐｅ−Ｂが収納されるセル１１０［Ｔａｐｅ−Ｂ］と、そのテープカートリッジ１１１がマウントされるドライブ１０９との位置関係が、例えば図１２に示される如くであるとする。この場合、ロボット２０８およびハンド１１０１が移動しながら、セル１１０［Ｔａｐｅ−Ｂ］までＴａｐｅ−Ｂを取りに行く。その移動時間を、図１２に示されるＴｉｍｅ−１ａ−Ｂとする。次に、ハンド１１０１がＴａｐｅ−Ｂを掴んだ後、ロボット２０８およびハンド１１０１が移動しながら、Ｔａｐｅ−Ｂがドライブ１０９まで運ばれる。その移動時間を、図１２に示されるＴｉｍｅ−１ｂ−Ｂとする。Ｔａｐｅ−Ｂに関するロボット移動時間をＴｉｍｅ−１−Ｂとすれば、前述の（１）式より、Ｔｉｍｅ−１−Ｂは、次式により算出される。
【００８３】
Ｔｉｍｅ−１−Ｂ  ＝  Ｔｉｍｅ−１ａ−Ｂ  ＋  Ｔｉｍｅ−１ｂ−Ｂ
【００８４】
より具体的には、ロボット移動時間算出部２０２によるロボット移動時間の具体的な計算例は、以下の如くとなる。
【００８５】
Ｘ軸方向への１セル移動時間：５００ｍｓ（ミリ秒）
Ｙ軸方向への１セル移動時間：５００ｍｓ
Ｚ軸方向への移動時間      ：３００ｍｓ
ロボット移動時間＝Ｘ軸方向への移動セル数×１セル移動時間＋
Ｙ軸方向への移動セル数×１セル移動時間＋
Ｚ軸方向への移動時間(移動有りの場合)
【００８６】
＜図１１のＴａｐｅ−Ａの場合＞
ロボット２０８の位置：Ｘ＝０，Ｙ＝０，Ｚ＝０
Ｔａｐｅ−Ａのセル位置：Ｘ＝１，Ｙ＝８，Ｚ＝０
ドライブ１０９の位置：Ｘ＝５，Ｙ＝０，Ｚ＝０
Ｔａｐｅ−Ａへのロボット移動時間＝（１−０）×５００ｍｓ＋
（８−０）×５００ｍｓ＋
（０−０）×３００ｍｓ＋
（５−１）×５００ｍｓ＋
（８−０）×５００ｍｓ＋
（０−０）×３００ｍｓ
＝１０５００ｍｓ  ・・・（２）
【００８７】
＜図１２のＴａｐｅ−Ｂの場合＞
ロボット２０８の位置：Ｘ＝３，Ｙ＝３，Ｚ＝０
Ｔａｐｅ−Ａのセル位置：Ｘ＝４，Ｙ＝２，Ｚ＝０
ドライブ１０９の位置：Ｘ＝５，Ｙ＝０，Ｚ＝０
Ｔａｐｅ−Ｂへのロボット移動時間＝（４−３）×５００ｍｓ＋
（３−２）×５００ｍｓ＋
（０−０）×３００ｍｓ＋
（５−４）×５００ｍｓ＋
（２−０）×５００ｍｓ＋
（１−０）×３００ｍｓ
＝２８００ｍｓ  ・・・（３）
【００８８】
上述の計算を行なうために、図２のロボット移動時間算出部２０２は、前述したように、ＰＬＰ１０８からテープライブラリ装置１０２内のライブラリコントローラ２０９にアクセスして、ロボット２０８の現在位置と、セル位置と、ドライブ１０９の位置を取得する。また、３次元座標の各軸方向のロボット２０８の移動速度（または移動時間）を取得する。そして、ロボット移動時間算出部２０２は、これらの情報に基づいて、上述した計算例のようにしてロボット移動時間を算出する。
【００８９】
次に、前述した図２のリコール制御部２０１内のテープ位置づけ時間算出部２０３の動作の詳細について説明する。
テープ位置づけ時間算出部２０３は、リコール対象となる各物理テープのテープカートリッジ１１１がマウントされた各ドライブ１０９で、ヘッダが、リコール対象のデータブロックの位置まで移動するのに要する時間を算出する。
【００９０】
テープ位置づけ時間（これを、Ｔｉｍｅ−２とする）は、リコール対象となる物理テープ上の読み取りを開始する位置までの、ヘッダの移動時間である。デュアルセーブでは、２つの物理テープへ同じデータが書き込まれるが、常に同じ２つの物理テープを使用して書き込みを行っている訳ではない。各テープライブラリ装置１０２に搭載されている複数の物理テープは、前述したように、物理テープグループに所属され、物理テープへの書き込みを行う際には、物理テープグループ内の物理テープ状態を調べ、書き込みを行うのにベストな状態の物理テープを使用して書き込みを行う。このため、目的のブロック（読み取るデータ）が物理テープ上に書き込まれている位置は、それぞれの物理テープで異なることになる。
【００９１】
図１３は、＃０のテープライブラリ装置１０２のＴａｐｅ−Ａのテープ位置づけ時間（Ｔｉｍｅ−２）の算出動作を説明する図である。前述の図１０の例において、Ｔａｐｅ−Ａにおけるリコール対象となる目的のブロックが記録されている位置が、例えば図１３に示されるように、テープ終端付近である場合、テープ位置づけ時間Ｔｉｍｅ−２−Ａは非常に長くなる。
【００９２】
図１４は、＃１のテープライブラリ装置１０２のＴａｐｅ−Ｂのテープ位置づけ時間（Ｔｉｍｅ−２）の算出動作を説明する図である。前述の図１０の例において、Ｔａｐｅ−Ｂにおけるリコール対象となる目的のブロックが記録されている位置が、例えば図１４に示されるように、テープ前半付近である場合、テープ位置づけ時間Ｔｉｍｅ−２−Ｂは短くなる。
【００９３】
より具体的には、テープ位置づけ時間算出部２０３によるテープ位置づけ時間Ｔｉｍｅ−２の具体的な計算例は、以下の如くとなる。
【００９４】
１セクタの移動時間：１．３ｓ（秒）
【００９５】
＜図１３のＴａｐｅ−Ａの場合＞
目的ブロック位置：６３セクタ×１３００ｍｓ（ミリ秒）
Ｔａｐｅ−Ａのテープ位置づけ時間＝８１９００ｍｓ  ・・・（４）
【００９６】
＜図１４のＴａｐｅ−Ｂの場合＞
目的ブロック位置：１５セクタ×１３００ｍｓ
Ｔａｐｅ−Ｂのテープ位置づけ時間＝１９５００ｍｓ  ・・・（５）
【００９７】
上述の計算を行うために、図２のテープ位置づけ時間算出部２０３は、前述したように、図２のＶＬＰ１０６が論理物理対応関係情報データベース記憶部２０７に保持している論理物理対応関係情報データベースを参照する。これにより、テープ位置づけ時間算出部２０３は、リコール対象となるテープカートリッジ１１１上でのリコール対象の先頭ブロックが含まれるセクタ位置の情報を取得する。そして、テープ位置づけ時間算出部２０３は、このセクタ位置の情報と、ドライブ１０９における１セクタの移動時間（テープ速度）とから、テープ位置づけ時間Ｔｉｍｅ−２を算出する。
【００９８】
前述した図２のリコール制御部２０１内の物理テープ選択判定部２０６は、上述のようにして算出されたロボット移動時間とテープ位置づけ時間を、リコール対象となる物理テープごとに加算する。すなわち、次式が計算される。
【００９９】
Ｔａｐｅ−Ａの「読み取り開始まで時間」＝Ｔｉｍｅ−１−Ａ（ロボット移動時間）＋
Ｔｉｍｅ−２−Ａ（テープ位置づけ時間）
Ｔａｐｅ−Ｂの「読み取り開始まで時間」＝Ｔｉｍｅ−１−Ｂ（ロボット移動時間）＋
Ｔｉｍｅ−２−Ｂ（テープ位置づけ時間）
【０１００】
例えばＴａｐｅ−Ａに関するロボット移動時間＝１０５００ｍｓ（（２）式）とテープ位置づけ時間＝８１９００ｍｓ（（４）式）が加算され、Ｔａｐｅ−Ａに関する「読み取り開始まで時間」＝９２４００ｍｓが得られる。同様に、Ｔａｐｅ−Ｂに関するロボット移動時間＝２８００ｍｓ（（３）式）とテープ位置づけ時間＝１９５００ｍｓ（（５）式）が加算され、Ｔａｐｅ−Ｂに関する「読み取り開始まで時間」＝２２３００ｍｓが得られる。
【０１０１】
そして、物理テープ選択判定部２０６は、以下の判定論理により、物理テープを選択する。
【０１０２】
＜判定方法＞
比較対象の物理テープの「読み取り開始まで時間」を比較し、時間が最も短い物理テープを選択する。
【０１０３】
Ｔａｐｅ−Ａの「読み取り開始まで時間」≦Ｔａｐｅ−Ｂの「読み取り開始まで時間」
の場合：Ｔａｐｅ−Ａを選択
【０１０４】
Ｔａｐｅ−Ａの「読み取り開始まで時間」＞Ｔａｐｅ−Ｂの「読み取り開始まで時間」
の場合：Ｔａｐｅ−Ｂを選択
【０１０５】
この結果、物理テープ選択判定部２０６は、「読み取り開始まで時間」が短い＃１のテープライブラリ装置１０２上のＴａｐｅ−Ｂを、リコール処理の対象として選択することができる。
【０１０６】
上述の動作に加えて、図２の物理テープ選択判定部２０６は、物理テープの選択判定処理において、物理テープでのエラー発生状況を考慮した選択判定を行う。その詳細について、以下に説明する。
【０１０７】
本実施形態において、ドライブ１０９にマウントされるテープカートリッジ１１１には、カートリッジメモリ（ＣＭ）と呼ばれる。非接触型メモリチップ（ＥＥＰＲＯＭ）が組み込まれている。この記憶容量は、４〜８キロバイト程度である。そしてこのカートリッジメモリには、各管理情報を記録することができ、ＲＦ（無線周波数）インタフェースを使って物理的な接触をすることなくドライブ１０９にロード後、短時間でテープカートリッジ１１１のインデックスや使用状況などの情報を調べることができる。
【０１０８】
図１５は、カートリッジメモリに格納されるデータ例を示す図である。カートリッジメモリには、ボリューム名、製造者名、シリアル番号、物理テープの種類、製造日等の識別情報に加えて、物理テープの運用時に発生したエラー状況を示す情報が格納されている。
【０１０９】
これらのエラー情報のうち、マウントリトライは、物理テープをドライブ１０９に引き込むときの引き込みエラーのリトライで救済されるとカウントアップされる情報である。
ロードリトライは、物理テープの巻取りが行える位置に移動させるときの移動エラーのリトライで救済されるとカウントアップされる情報である。ロード完了位置では、物理テープの裏面にある円盤型のクラッチ盤が回せる。このクラッチ盤には、テープが巻かれている中心の軸と接続されており、クラッチ盤を回すことにより、テープを巻き取ることができる。
【０１１０】
クラッチリトライは、クラッチ盤と接続するときのクラッチエラーのリトライで救済されるとカウントアップされる情報である。クラッチ盤には、ギアのように溝があり、物理ドライブ側のギアと接続する。
【０１１１】
スレッドリトライは、テープカートリッジ１１１からテープを引き出すときのエラーのリトライで救済されるとカウントアップされる情報である。テープの先端には先行ピンが付いており、このピンを掴みテープを引き出し、ドライブ・ヘッドを越え、取り外し不能なテープ巻取機構へと引き出す。これで、ヘッドはテープからのデータの読み取りや、テープへのデータ書き込みを行えるようになる。
【０１１２】
位置づけリトライは、目的ブロックの前（データの前）まで位置づけるときのエラーのリトライで救済されるとカウントアップされる情報である。物理テープ上でデータを書き込む・読み取る際には、目的の場所まで移動する動作が実行される。
【０１１３】
読み取りリトライは、物理テープ上に書き込まれた目的のブロック(データ)を読み取るときのエラーに対するリトライで救済されるとカウントアップされる情報である。
図２のリコール制御部２０１は、各テープライブラリ装置１０２に搭載される全ての物理テープにおいて発生している各種エラーリトライ回数を、各物理テープのカートリッジメモリから読み取って、エラーリトライ回数テーブル記憶部２０４にエラーリトライ回数テーブルとして記憶する。
【０１１４】
まず、リコール制御部２０１は、物理テープが、テープライブラリ装置１０２に搭載されたときに、ＰＬＰ１０８からテープライブラリ装置１０２内のライブラリコントローラ２０９を介して、物理テープのテープカートリッジ１１１内のカートリッジメモリにアクセスする。そして、リコール制御部２０１は、カートリッジメモリ上に記録されている図１５に例示される各種リトライ回数を読み取り、エラーリトライ回数テーブル記憶部２０４に記憶されるエラーリトライ回数テーブルに、初期値として展開する。
【０１１５】
次に、リコール制御部２０１は、ある物理テープを使用してリコール処理した後に、ＰＬＰ１０８からテープライブラリ装置１０２内のライブラリコントローラ２０９を介して、その物理テープのカートリッジメモリにアクセスする。そして、リコール制御部２０１は、カートリッジメモリ上に記録されている図１５に例示される各種リトライ回数を読み取り、エラーリトライ回数テーブルに、リコール値として展開する。
【０１１６】
図１６は、＃０のテープライブラリ装置１０２のエラーリトライ回数テーブルのデータ構成の例を示す図、図１７は、＃１のテープライブラリ装置１０２のエラーリトライ回数テーブルのデータ構成の例を示す図である。エラーリトライ回数テーブルにおいて、初期値は、物理テープがテープライブラリ装置１０２に搭載された時のみに登録されるため、１回しか登録されない。また搭載時には、リコール値にも同じ値が登録される。しかし、リコール値は、その物理テープのリコール処理ごとに上書きして登録される。
【０１１７】
この結果、リコール処理時に、エラーリトライ回数テーブルの該当する物理テープのリコール値と初期値との差分を参照することにより、その物理テープがテープライブラリ装置１０２に搭載後、各種リトライ回数が何回発生しているかを検知することができる。すなわち、各種リトライ回数の差分値があまり大きな値になる場合には、その物理テープにおいて搭載後多くのエラーが発生しているため、その物理テープに対してはリコール処理を行うべきではないと判断することができる。
【０１１８】
そこで、図２のエラー判定部２０５は、次のような制御動作を実行する。すなわち、エラー判定部２０５はまず、内部に例えば図１８に例示されるような各種リトライ回数ごとの閾値を記憶した閾値テーブルを保有する。そして、エラー判定部２０５は、リコール指示された物理テープについて、エラーリトライ回数テーブルを参照する。これにより、各種リトライ回数ごとに、差分値（リコール値−初期値）が、閾値テーブルに記憶されている対応する閾値以上になっているか否かを判定する。その結果、１種類でも差分値が閾値以上になっているリトライ回数があった場合には、対象とされる物理テープを選択不可とする。
【０１１９】
例えば、図１６に例示されるエラーリトライ回数テーブルにおける物理テープＴａｐｅ−Ａ１の場合、各リトライ回数の初期値とリコール値に差がなく（搭載後の全てのリトライ回数は“0”回であり）、差分値は閾値以上になっていない。このため、Ｔａｐｅ−Ａ１は、物理テープ選択判定部２０６での前述した「読み取り開始まで時間」に基づく選択判定の対象とすることができる。
【０１２０】
一方、例えば、図１７に例示されるエラーリトライ回数テーブルにおける物理テープＴａｐｅ−Ｂ１の場合、読み取りリトライのリコール値から初期値を引くと、１１回となる。この差分値＝１１回を図１８に示される閾値テーブルの読み取りリトライの閾値＝１０回と比較すると、閾値以上の値になっていることがわかる。このため、Ｔａｐｅ−Ｂ１は、物理テープ選択判定部２０６での前述した「読み取り開始まで時間」に基づく選択判定の対象からはずされる。具体的には、物理テープ選択判定部２０６でのＴａｐｅ−Ｂ１の「読み取り開始まで時間」の値として、最大を示す値（例えば、９９９９）がセットされる。
【０１２１】
この結果、物理テープ選択判定部２０６において、物理テープＴａｐｅ−Ａ１とＴａｐｅ−Ｂ１について、「読み取り開始まで時間」に基づく選択判定が行われる場合、次のような結果となる。
【０１２２】
＜「読み取り開始まで時間」＞
Ｔａｐｅ−Ａ１の「読み取り開始まで時間」＝Ｔｉｍｅ−１−Ａ１(ロボット移動時間)
＋Ｔｉｍｅ−２−Ａ１(テープ位置づけ時間)
Ｔａｐｅ−Ｂ１の「読み取り開始まで時間」＝最大値（例えば、９９９９）
【０１２３】
＜選択判定＞
両方の物理テープの「読み取り開始まで時間」を比較し、時間が短い方の物理テープを選択する。例えば、物理テープＴａｐｅ−Ａ１とＴａｐｅ−Ｂ１の場合、
【０１２４】
Ｔａｐｅ−Ａ１「読み取り開始まで時間」≦Ｔａｐｅ−Ｂ１「読み取り開始まで時間」
【０１２５】
の判定となり、Ｔａｐｅ−Ａ１が選択され、Ｔａｐｅ−Ａ１を使用してリコール処理が開始される。
【０１２６】
図１９は、図２のリコール制御部２０１の機能を示すフローチャートである。このフローチャートの処理は、ＶＬＰ１０６において、リコール指示が発生したときに起動される。
【０１２７】
まず、＃０のテープライブラリ装置１０２（図中「ＬＩＢ＃０」と記載）側のリコール処理の対象とされる物理テープについて、各種エラーリトライ回数の差分値が、閾値テーブル中の該当する閾値以上であるか否かを判定する処理が実行される（ステップＳ１９０１）。このステップでは、前述した図２のエラー判定部２０５の処理が実行される。
【０１２８】
この結果、差分値が閾値以上となるエラーリトライ回数があった場合には、次のステップＳ１９０２の判定がＹＥＳとなって、＃０側の物理テープについては、「読み取り開始まで時間」は算出されず、「読み取り開始まで時間」として最大値がセットされる（ステップＳ１９０４）。
【０１２９】
一方、差分値が閾値以上となるエラーリトライ回数がなかった場合には、次のステップＳ１９０２の判定がＮＯとなって、＃０側の物理テープについて、「読み取り開始まで時間」の算出処理が実行される（ステップＳ１９０３）。ここでは、前述した図２のロボット移動時間算出部２０２、テープ位置づけ時間算出部２０３、および物理テープ選択判定部２０６による「読み取り開始まで時間」の算出処理が実行される。
【０１３０】
次に、＃１のテープライブラリ装置１０２（図中「ＬＩＢ＃１」と記載）側のリコール処理の対象とされる物理テープについて、各種エラーリトライ回数の差分値が、閾値テーブル中の該当する閾値以上であるか否かを判定する処理が実行される（ステップＳ１９０５）。このステップでは、前述した図２のエラー判定部２０５の処理が実行される。
【０１３１】
この結果、差分値が閾値以上となるエラーリトライ回数があった場合には、次のステップＳ１９０６の判定がＹＥＳとなって、＃１側の物理テープについては、「読み取り開始まで時間」は算出されず、「読み取り開始まで時間」として最大値がセットされる（ステップＳ１９０８）。
【０１３２】
一方、差分値が閾値以上となるエラーリトライ回数がなかった場合には、次のステップＳ１９０６の判定がＮＯとなって、＃１側の物理テープについて、「読み取り開始まで時間」の算出処理が実行される（ステップＳ１９０７）。ここでは、前述した図２のロボット移動時間算出部２０２、テープ位置づけ時間算出部２０３、および物理テープ選択判定部２０６による「読み取り開始まで時間」の算出処理が実行される。
【０１３３】
その後、物理テープ選択判定処理が実行される（ステップＳ１９０９）。ここでは、前述した図２の物理テープ選択判定部２０６の処理により、＃０と＃１の各テープライブラリ装置１０２に対応する各「読み取り開始まで時間」が比較される。この結果、短い時間に対応するテープライブラリ装置１０２側の物理テープが、リコール処理の対象として選択され、リコール処理が開始される（ステップＳ１９１０）。
【０１３４】
図２０は、図１９のフローチャートの動作を行なう図２のＶＬＰ１０６のハードウェア構成例を示す図であり、ＶＬＰ１０６がコンピュータとして構成された例である。
図２０に示されるコンピュータは、ＣＰＵ２００１、メモリ２００２、入力装置２００３、出力装置２００４、外部記憶装置２００５、およびネットワーク接続装置２００６を有し、これらがバス２００７によって相互に接続された構成を有する。同図に示される構成は上記システムを構成できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
【０１３５】
ＣＰＵ２００１は、当該コンピュータ全体の制御を行う。メモリ２００２は、プログラムの実行、データ更新等の際に、外部記憶装置２００５に記憶されているプログラムまたはデータを一時的に格納するＲＡＭ等のメモリである。ＣＵＰ２００１は、プログラムをメモリ２００２に読み出して実行することにより、全体の制御を行う。
【０１３６】
入力装置２００３は、例えば、キーボード、マウス等およびそれらのインタフェース制御装置とからなる。入力装置２００３は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をＣＰＵ２００１に通知する。
【０１３７】
出力装置２００４は、表示装置、印刷装置等およびそれらのインタフェース制御装置とからなる。出力装置２００４は、ＣＰＵ２００１の制御によって送られてくるデータを表示装置や印刷装置に出力する。
【０１３８】
外部記憶装置２００５は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
ネットワーク接続装置２００７は、例えば図１のシステム内の各インタフェースに対応する通信回線を接続するための装置である。
【０１３９】
本実施形態によるシステムは、図１９の処理を行なうために必要な機能を搭載したプログラムをＣＰＵ２００１が実行することで構成される。
図２１は、テープカートリッジ２００の構成例を示す図である。このテープカートリッジ１１１は、カートリッジメモリ２１０１、カートリッジドア２１０２、先行ピン２１０３、書き込み保護スイッチ２１０４、ラベル域２１０５、および挿入ガイド２１０６などを備えて構成される。
【０１４０】
カートリッジメモリ２１０１には、図１５に示したように、テープカートリッジ１１１およびテープについての識別情報のほか、テープカートリッジ１１１の使用についての統計情報（エラーリトライ回数）が含まれている。テープカートリッジ１１１をアンロードすると常に、ドライブ１０９（図２等参照）は、関連する情報をカートリッジメモリ２１０１に書き込む。
【０１４１】
図２２は、図２１のカートリッジメモリ２１０１の部分の構成例を示す図である。テープカートリッジ１１１の端部に、４〜８キロバイト程度の記憶容量を有する非接触型メモリチップ（ＥＥＰＲＯＭ）が組み込まれた構成を有する。この記憶内容は、ＲＦインタフェースを使って、図２のライブラリコントローラ２０９等と通信することが可能である。
【０１４２】
カートリッジドア２１０２は、テープカートリッジ１１１がドライブ１０９から排出されたときに、テープが汚れないように保護する。ドアの後ろで、テープが先行ピン２１０３に接続される。ドライブ１０９にテープカートリッジ１１１を挿入すると、スレッド化機構により、テープカートリッジ１１１から、先行ピン２１０３(およびテープ)が、ドライブヘッドを越え、取り外し不能なテープ巻取機構へと引き出される。これで、ヘッドは、テープからのデータの読み取りや、テープへのデータの書き込みを行えるようになる。
【０１４３】
書き込み保護スイッチ２１０４は、データがテープカートリッジに書き込まれないように保護する。
ラベル域２１０５は、ラベルを貼る場所である。ボリューム読み取り用のバーコードラベルのみが貼付される。
【０１４４】
挿入ガイド２１０６は、テープカートリッジの不正な挿入を防止する、大きなノッチ域である。
以上説明した実施形態におけるリコール制御は、リコール対象論理ボリュームが、＃０および＃１のテープライブラリ装置１０２の各セル１１０にそれぞれ収納される物理テープに冗長に記録されていることを例として説明した。しかし、リコール対象論理ボリュームは、１台のテープライブラリ装置１０２内の２つのセル１１０にそれぞれ収納される物理テープに冗長に記録されていてもよい。この場合においても、実施形態による図２のリコール制御部２０１の機能、または図１９のフローチャートの処理によって、最適な物理ボリュームの選択を行なうことが可能である。
【０１４５】
また、リコール対象論理ボリュームは、１つの論理ボリュームである必要はなく複数ボリュームであってもよい。さらに、リコール対象論理ボリュームの冗長数は２つに限られるものではなく、それ以上の複数であってもよい。その場合には、「読み取り開始まで時間」が最短となる物理テープが選択されることになる。
【０１４６】
本実施形態において、図２のエラー判定部２０２または図１９のステップＳ１９０１、Ｓ１９０４のエラー判定処理においては、各種エラーリトライ回数は、初期値とリトライ値との差分値が判定された。これ以外にも、各種エラーリトライ回数は初期値を考慮しない各リトライ時点における値であってもよい。また、物理テープへのアクセス回数に対する各種エラーリトライの回数の割合が判定されてもよい。
【０１４７】
本実施形態において、リコール制御部２０１を構成する各機能は、仮想テープ装置１０１を構成するＶＬＰ１０６内の機能として行なわれる。しかし、リコール制御部２０１の各機能は、同じ機能を行なうことができれば、ＶＬＰ１０６内の機能に限られるものではない。また例えば、一部の機能はテープライブラリ装置１０２側にあってもよい。
【０１４８】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして大規模記憶装置に格納する仮想テープ装置であって、
異なるまたは同一のテープライブラリ装置内の２つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記大規模記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記テープライブラリ装置内で、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を算出するロボット移動時間算出部と、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を算出するテープ位置づけ時間算出部と、
前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する物理テープ選択判定部と、
を備えることを特徴とする仮想テープ装置。
（付記２）
前記ロボット移動時間算出部は、前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報とに基づいて、前記ロボットの移動時間を算出する、
ことを特徴とする付記１に記載の仮想テープ装置。
（付記３）
前記テープ位置づけ時間算出部は、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープ上での前記リコール対象論理ボリュームのデータブロックが記録されている位置に関する情報を、前記大規模記憶装置上の論理ボリュームと前記物理テープ上の物理ボリュームとの対応関係を記憶する論理物理対応関係情報データベースを参照して取得し、前記取得した位置に関する情報に基づいて、前記テープ位置づけのための時間を算出する、
ことを特徴とする付記１に記載の仮想テープ装置。
（付記４）
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープにおけるエラーの発生状況を判定するエラー判定部を更に備え、
前記物理テープ選択判定部は、前記エラー判定部の判定結果に基づいて、前記リコール対象論理ボリュームが存在する物理テープを前記リコール処理の対象として選択可能か否かを判定する、
ことを特徴とする付記１に記載の仮想テープ装置。
（付記５）
前記テープライブラリ装置に搭載される全ての物理テープにおいて発生している各種エラーリトライの発生状況を記憶するエラーリトライ回数テーブル記憶部を更に備え、
前記エラー判定部は、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープに関する前記各種エラーリトライの発生状況を前記エラーリトライ回数テーブル記憶部から取得することにより、前記物理テープにおけるエラーの発生状況を判定する、
ことを特徴とする付記４に記載の仮想テープ装置。
（付記６）
ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして大規模記憶装置に格納する仮想テープ装置における物理テープ選択方法であって、
異なるまたは同一のテープライブラリ装置内の２つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記大規模記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記テープライブラリ装置内で、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を算出し、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を算出し、
前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する、
ことを特徴とする仮想テープ装置における物理テープ選択方法。
（付記７）
前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報とに基づいて、前記ロボットの移動時間を算出する、
ことを特徴とする付記６に記載の仮想テープ装置における物理テープ選択方法。
（付記８）
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープ上での前記リコール対象論理ボリュームのデータブロックが記録されている位置に関する情報に基づいて、前記テープ位置づけのための時間を算出する、
ことを特徴とする付記６に記載の仮想テープ装置における物理テープ選択方法。
（付記９）
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープにおけるエラーの発生状況を判定し、
前記エラーの発生状況の判定結果に基づいて、前記リコール対象論理ボリュームが存在する物理テープを前記リコール処理の対象として選択可能か否かを判定する、
ことを特徴とする付記６に記載の仮想テープ装置における物理テープ選択方法。
（付記１０）
前記テープライブラリ装置に搭載される全ての物理テープにおいて発生している各種エラーリトライの発生状況をエラーリトライ回数テーブルとして記憶し、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープに関する前記各種エラーリトライの発生状況を前記エラーリトライ回数テーブルから取得することにより、前記物理テープにおけるエラーの発生状況を判定する、
ことを特徴とする付記６に記載の仮想テープ装置における物理テープ選択方法。
【符号の説明】
【０１４９】
１０１  仮想テープ装置
１０２  テープライブラリ装置
１０３  サーバ
１０４  ＴＶＣ（Ｔａｐｅ  Ｖｏｌｕｍｅ  Ｃａｃｈｅ）
１０５  ＩＣＰ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｈａｎｎｅｌ  Ｐｒｏｃｅｓｓｏｒ）
１０６  ＶＬＰ（Ｖｉｒｔｕａｌ  Ｌｉｂｒａｒｙ  Ｐｒｏｃｅｓｓｏｒ）
１０７  ＩＤＰ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｐｒｏｃｅｓｓｏｒ）
１０８  ＰＬＰ（Ｐｈｙｓｉｃａｌ  Ｌｉｂｒａｒｙ  Ｐｒｏｃｅｓｓｏｒ）
１０９  ドライブ
１１０  セル
１１１  テープカートリッジ
１１２  ＬＡＮＣ（ＬＡＮ  Ｃｏｎｔｒｏｌｌｅｒ）
１１３  ＶＴＣＰ（Ｖｉｒｔｕａｌ  Ｔａｐｅ  Ｃｏｎｔｒｏｌ  Ｐｒｏｇｒａｍ）
２０１  リコール制御部
２０２  ロボット移動時間算出部
２０３  テープ位置づけ時間算出部
２０４  エラーリトライ回数テーブル記憶部
２０５  エラー判定部
２０６  物理テープ選択判定部
２０７  論理物理対応関係情報データベース記憶部
２０８  ロボット
２０９  ライブラリコントローラ
１１０１  ハンド
２１０１  カートリッジメモリ
２１０２  カートリッジドア
２１０３  先行ピン
２１０４  書き込み保護スイッチ
２１０５  ラベル域
２１０６  挿入ガイド
【図２】
0005617540.tif 000002
【図８】
0005617540.tif 000003
【図９】
0005617540.tif 000004
【図１０】
0005617540.tif 000005
【図１１】
0005617540.tif 000006
【図１２】
0005617540.tif 000007
【図１３】
0005617540.tif 000008
【図１４】
0005617540.tif 000009
【図１５】
0005617540.tif 000010
【図１８】
0005617540.tif 000011
【図１９】
0005617540.tif 000012
【図２０】
0005617540.tif 000013
【図１】
0005617540.tif 000014
【図３】
0005617540.tif 000015
【図４】
0005617540.tif 000016
【図５】
0005617540.tif 000017
【図６】
0005617540.tif 000018
【図７】
0005617540.tif 000019
【図１６】
0005617540.tif 000020
【図１７】
0005617540.tif 000021
【図２１】
0005617540.tif 000022
【図２２】
0005617540.tif 000023