(57)【要約】【課題】データ利用の要求からそのデータを利用可能になるまでの待ち時間を短縮する。【解決手段】制御部１２は、ホスト装置２１，２２のいずれかからデータの利用要求を受信したとき、ドライブ装置４１〜４３の中から選択したドライブ装置を使用して、データを可搬型記録媒体からキャッシュ装置３０に読み出す読み出し処理を実行する。また、制御部１２は、ホスト装置２２からデータＤ４の利用要求を受信したときに、ドライブ装置４１〜４３のすべてが使用中の場合、割り当て情報１１ａを参照し、ホスト装置２２からの利用要求に応じて実行中の読み出し処理の数がホスト装置２２に割り当てられた使用数未満の場合、ホスト装置２１からの利用要求に応じて実行中の読み出し処理を中断させ、その読み出し処理が実行されていたドライブ装置４３を、データＤ４についての読み出し処理を実行するためのドライブ装置として選択する。【選択図】図１
2019153166.tif 000002
【特許請求の範囲】
【請求項１】
複数のホスト装置のそれぞれが、可搬型記録媒体に記憶されたデータをキャッシュ装置を介して利用できるように制御するストレージ装置において、
前記複数のホスト装置のそれぞれに対して、可搬型記録媒体に対するデータの読み書きを行う複数のドライブ装置のうち、最低限いくつ使用できるかを示す使用数が割り当てられて登録された割り当て情報を記憶する記憶部と、
前記複数のホスト装置のいずれかからデータの利用要求を受信したとき、前記複数のドライブ装置の中から使用ドライブ装置を選択し、前記使用ドライブ装置を使用して、利用が要求されたデータを可搬型記録媒体から前記キャッシュ装置に読み出す読み出し処理を実行する制御部と、
を有し、
前記使用ドライブ装置の選択では、前記複数のホスト装置のうち第１のホスト装置から第１のデータの利用要求を受信したときに、前記複数のドライブ装置のすべてが使用中の場合、前記割り当て情報を参照し、前記第１のホスト装置からの利用要求に応じて実行中の前記読み出し処理の数が前記第１のホスト装置に割り当てられた前記使用数未満の場合、前記複数のホスト装置のうち第２のホスト装置からの利用要求に応じて実行中の前記読み出し処理を中断させ、前記複数のドライブ装置のうち中断させた前記読み出し処理が実行されていたドライブ装置を、前記第１のデータについての前記読み出し処理を実行するための前記使用ドライブ装置として選択する、
ストレージ装置。
【請求項２】
前記使用ドライブ装置の選択では、前記第１のホスト装置から前記第１のデータの利用要求を受信したとき、前記複数のドライブ装置のすべてが使用中の場合、前記複数のホスト装置のうち前記第１のホスト装置以外のホスト装置からの利用要求に応じて実行中の前記読み出し処理の中から、その実行を中断した場合に前記複数のドライブ装置のうち使用していたドライブ装置が空き状態になるまでの所要時間が最短の前記読み出し処理を判別し、判別された前記読み出し処理を中断させる、
請求項１記載のストレージ装置。
【請求項３】
前記読み出し処理の実行では、前記複数のホスト装置のうち同一のホスト装置から同一の可搬型記録媒体に記憶された複数のデータの利用要求を受信した場合、前記複数のデータを一度の前記読み出し処理によって前記キャッシュ装置に読み出し、
前記使用ドライブ装置の選択では、前記所要時間が最短の前記読み出し処理が複数抽出された場合、抽出された前記読み出し処理のうち、読み出すデータ数が最小の前記読み出し処理を中断させる、
請求項２記載のストレージ装置。
【請求項４】
前記使用ドライブ装置の選択では、前記所要時間が最短の前記読み出し処理が複数抽出された場合、抽出された前記読み出し処理のうち、処理完了までの時間が最長の前記読み出し処理を中断させる、
請求項２記載のストレージ装置。
【請求項５】
複数のホスト装置のそれぞれが、可搬型記録媒体に記憶されたデータをキャッシュ装置を介して利用できるように制御するストレージ装置と、
可搬型記録媒体に対するデータの読み書きを行う複数のドライブ装置と、
を有するストレージシステムであって、
前記ストレージ装置は、
前記複数のホスト装置のそれぞれに対して、前記複数のドライブ装置のうち最低限いくつ使用できるかを示す使用数が割り当てられて登録された割り当て情報を記憶する記憶部と、
前記複数のホスト装置のいずれかからデータの利用要求を受信したとき、前記複数のドライブ装置の中から使用ドライブ装置を選択し、前記使用ドライブ装置を使用して、利用が要求されたデータを可搬型記録媒体から前記キャッシュ装置に読み出す読み出し処理を実行する制御部と、
を有し、
前記使用ドライブ装置の選択では、前記複数のホスト装置のうち第１のホスト装置から第１のデータの利用要求を受信したときに、前記複数のドライブ装置のすべてが使用中の場合、前記割り当て情報を参照し、前記第１のホスト装置からの利用要求に応じて実行中の前記読み出し処理の数が前記第１のホスト装置に割り当てられた前記使用数未満の場合、前記複数のホスト装置のうち第２のホスト装置からの利用要求に応じて実行中の前記読み出し処理を中断させ、前記複数のドライブ装置のうち中断させた前記読み出し処理が実行されていたドライブ装置を、前記第１のデータについての前記読み出し処理を実行するための前記使用ドライブ装置として選択する、
ストレージシステム。
【請求項６】
複数のホスト装置のそれぞれが、可搬型記録媒体に記憶されたデータをキャッシュ装置を介して利用できるように制御するストレージ制御プログラムにおいて、
コンピュータに、
前記複数のホスト装置のいずれかからデータの利用要求を受信したとき、可搬型記録媒体に対するデータの読み書きを行う複数のドライブ装置の中から使用ドライブ装置を選択し、
前記使用ドライブ装置を使用して、利用が要求されたデータを可搬型記録媒体から前記キャッシュ装置に読み出す読み出し処理を実行する、
処理を実行させ、
前記使用ドライブ装置の選択では、前記複数のホスト装置のうち第１のホスト装置から第１のデータの利用要求を受信したときに、前記複数のドライブ装置のすべてが使用中の場合、前記複数のホスト装置のそれぞれに対し、前記複数のドライブ装置のうち最低限いくつ使用できるかを示す使用数が割り当てられて登録された割り当て情報を参照し、前記第１のホスト装置からの利用要求に応じて実行中の前記読み出し処理の数が前記第１のホスト装置に割り当てられた前記使用数未満の場合、前記複数のホスト装置のうち第２のホスト装置からの利用要求に応じて実行中の前記読み出し処理を中断させ、前記複数のドライブ装置のうち中断させた前記読み出し処理が実行されていたドライブ装置を、前記第１のデータについての前記読み出し処理を実行するための前記使用ドライブ装置として選択する、
ストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージシステムおよびストレージ制御プログラムに関する。
【背景技術】
【０００２】
可搬型記録媒体を用いて実現される大容量の記憶領域を、キャッシュ装置を介して利用できるように制御するストレージ装置が知られている。例えば、可搬型記録媒体として磁気テープを用いた上記ストレージ装置は、「仮想テープ装置」と呼ばれる場合がある。また、可搬型記録媒体に対するデータの読み書きを行うドライブ装置や、ドライブ装置に対する可搬型記録媒体のマウント、アンマウント、可搬型記録媒体の搬送を行うロボットなどを含む装置は、例えば「ライブラリ装置」と呼ばれる。このようなライブラリ装置と上記ストレージ装置とを用いたシステムは、例えば「仮想ライブラリシステム」と呼ばれる。
【０００３】
上記のようなストレージ装置は、例えば、ホスト装置から論理ボリュームの利用要求を受け付ける。利用要求は、例えば、論理ドライブに対する論理ボリュームのマウント要求という形式で受け付けられる。ストレージ装置は、利用が要求された論理ボリュームのデータがキャッシュ装置に存在しない場合、そのデータが記憶された可搬型記録媒体をドライブ装置にマウントし、その可搬型記録媒体からそのデータを読み出してキャッシュ装置に格納するように制御する。このような可搬型記録媒体からキャッシュ装置へのデータの読み出し処理は、例えば「リコール処理」と呼ばれる。ホスト装置は、リコール処理によってキャッシュ装置に格納された論理ボリュームのデータに対して、アクセス可能になる。
【０００４】
ストレージ装置の関連技術として、次のような提案がある。例えば、ホストから論理ボリュームを論理ドライブにマウントする要求が出された後、この論理ボリュームのマウント完了までに上記マウント処理をキャンセルするようにした仮想ライブラリ装置が提案されている。また、制御手段が管理テーブルによって全ライブラリ装置を管理し、各ホストコンピュータがマウント要求コマンドを発行するだけで、制御手段がホストコンピュータの指定する記録媒体をマウントし、ホストコンピュータがこの記録媒体の記録再生をできるようにした制御装置が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１３４６８２号公報
【特許文献２】特開平６−３５６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記のストレージ装置に対して、複数のドライブ装置と、複数のホスト装置とが接続される場合がある。この構成では、例えば、各ホスト装置が個別のデータの利用を要求でき、それらの要求に伴って各データがキャッシュ装置に格納される。また、各ホスト装置からの利用要求に伴うリコール処理を、複数のドライブ装置を用いて並列に実行できる。さらに、各ホスト装置は、それぞれ別の可搬型記録媒体に格納された複数のデータの利用を要求することもできる。この場合、データごとに別のドライブ装置を使用してリコール処理が実行される。
【０００７】
このような構成では、あるホスト装置からのデータの利用要求に伴ってリコール処理が必要になったとき、ドライブ装置に空きがあれば、そのドライブ装置を使用して直ちにリコール処理が実行される。この場合、ホスト装置は、データの利用を要求してから短時間でそのデータにアクセスできる。しかし、例えば、複数のドライブ装置のすべてにおいてリコール処理が実行中であった場合には、ホスト装置は、いずれかのリコール処理が完了してドライブ装置が解放され、そのドライブ装置を用いて実行される新たなリコール処理が完了するまで、待ち状態になる。この場合、ホスト装置がデータの利用を要求してからそのデータにアクセスできるまで、大幅に遅延してしまうという問題がある。
【０００８】
１つの側面では、本発明は、データ利用の要求からそのデータを利用可能になるまでの待ち時間を短縮することが可能なストレージ装置、ストレージシステムおよびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、複数のホスト装置のそれぞれが、可搬型記録媒体に記憶されたデータをキャッシュ装置を介して利用できるように制御するストレージ装置が提供される。このストレージ装置は、複数のホスト装置のそれぞれに対して、可搬型記録媒体に対するデータの読み書きを行う複数のドライブ装置のうち、最低限いくつ使用できるかを示す使用数が割り当てられて登録された割り当て情報を記憶する記憶部と、複数のホスト装置のいずれかからデータの利用要求を受信したとき、複数のドライブ装置の中から使用ドライブ装置を選択し、使用ドライブ装置を使用して、利用が要求されたデータを可搬型記録媒体からキャッシュ装置に読み出す読み出し処理を実行する制御部と、を有する。また、使用ドライブ装置の選択では、複数のホスト装置のうち第１のホスト装置から第１のデータの利用要求を受信したときに、複数のドライブ装置のすべてが使用中の場合、割り当て情報を参照し、第１のホスト装置からの利用要求に応じて実行中の読み出し処理の数が第１のホスト装置に割り当てられた使用数未満の場合、複数のホスト装置のうち第２のホスト装置からの利用要求に応じて実行中の読み出し処理を中断させ、複数のドライブ装置のうち中断させた読み出し処理が実行されていたドライブ装置を、第１のデータについての読み出し処理を実行するための使用ドライブ装置として選択する。
【００１０】
また、１つの案では、上記のストレージ装置と、上記の複数のドライブ装置とを有するストレージシステムが提供される。
さらに、１つの案では、上記のストレージ装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
【発明の効果】
【００１１】
１つの側面では、データ利用の要求からそのデータを利用可能になるまでの待ち時間を短縮できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】仮想ライブラリ制御サーバのハードウェア構成例を示す図である。
【図４】リコール処理に関する問題点について説明するための図である。
【図５】仮想ライブラリ制御サーバが備える処理機能の構成例を示すブロック図である。
【図６】ドライブ割り当てテーブルのデータ構成例を示す図である。
【図７】リコール管理テーブルのデータ構成例を示す図である。
【図８】処理時間テーブルのデータ構成例を示す第１の図である。
【図９】処理時間テーブルのデータ構成例を示す第２の図である。
【図１０】中断させるリコール処理についての第１の選択処理例を示す図である。
【図１１】中断させるリコール処理についての第２の選択処理例を示す図である。
【図１２】中断させるリコール処理についての第３の選択処理例を示す図である。
【図１３】マウント処理の手順を示すフローチャートの例（その１）である。
【図１４】マウント処理の手順を示すフローチャートの例（その２）である。
【図１５】リコール中断要否判定処理の手順を示すフローチャートの例である。
【図１６】リコール処理の手順を示すフローチャートの例（その１）である。
【図１７】リコール処理の手順を示すフローチャートの例（その２）である。
【図１８】リコール処理の手順を示すフローチャートの例（その３）である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図１に示すストレージシステムは、ストレージ装置１０、ホスト装置２１，２２、キャッシュ装置３０およびドライブ装置４１〜４３を有する。ホスト装置２１，２２およびドライブ装置４１〜４３は、ストレージ装置１０の外部に接続されている。キャッシュ装置３０は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）などの固定型の記憶装置によって実現される。図１の例ではキャッシュ装置３０がストレージ装置１０の内部に搭載されているが、キャッシュ装置３０はストレージ装置１０の外部に接続されていてもよい。
【００１４】
なお、ストレージ装置１０に接続されるホスト装置の台数は、図１のように２台に限ったものではなく、３台以上であってもよい。また、ストレージ装置１０に接続されるドライブ装置の台数は、図１のように３台に限ったものではなく、２台、あるいは４台以上であってもよい。
【００１５】
ストレージ装置１０は、ホスト装置２１，２２が、可搬型記録媒体に記憶されたデータをキャッシュ装置３０を介して利用できるように制御する制御装置である。ドライブ装置４１〜４３は、可搬型記録媒体をマウントし、その可搬型記録媒体からのデータの読み出しや、可搬型記録媒体に対するデータの書き込みを行う。
【００１６】
ストレージ装置１０は、記憶部１１および制御部１２を有する。記憶部１１は、例えば、ＲＡＭ（Random Access Memory）、ＨＤＤなど、ストレージ装置１０が備える記憶装置として実現される。制御部１２は、例えば、ストレージ装置１０が備えるプロセッサとして実現される。
【００１７】
記憶部１１には、割り当て情報１１ａが記憶される。割り当て情報１１ａには、ホスト装置２１，２２のそれぞれに対して、ドライブ装置４１〜４３のうち、最低限いくつを使用できるかを示す使用数が割り当てられて登録されている。以下の説明では例として、図に示すように、ホスト名「Ｈ１」に対して使用数「１」が割り当てられ、ホスト名「Ｈ２」に対して使用数「２」が割り当てられているとする。なお、ホスト名「Ｈ１」，「Ｈ２」は、ホスト装置２１，２２をそれぞれ指すものとする。ここで、割り当て情報１１ａでは、登録された使用数の合計がドライブ装置４１〜４３の台数（この例では３台）と一致するように、使用数が割り当てられる。
【００１８】
制御部１２は、ホスト装置２１，２２から、可搬型記録媒体に記憶されているデータの利用要求を受信する。例えば、ホスト装置２１からデータの利用要求を受信したとする。すると、制御部１２は、ドライブ装置４１〜４３の中から使用するドライブ装置（「使用ドライブ装置」と記載する）を選択する。制御部１２は、使用ドライブ装置を使用して、利用が要求されたデータを可搬型記録媒体からキャッシュ装置３０に読み出す「読み出し処理」を実行する。読み出し処理が完了して、データがキャッシュ装置３０に格納されると、ホスト装置２１は、キャッシュ装置３０に格納されたデータにアクセスして、そのデータを利用できるようになる。
【００１９】
ここで、ホスト装置２１，２２は、それぞれ異なる可搬型記録媒体に記憶された複数のデータの利用要求を、ストレージ装置１０に送信することができる。この場合、利用が要求されたデータごとに上記の読み出し処理が実行される。また、制御部１２は、ドライブ装置４１〜４３をそれぞれ使用して、複数の読み出し処理を並列に実行させることができる。
【００２０】
使用ドライブ装置を選択する際、制御部１２は、ドライブ装置４１〜４３の中に空き状態のドライブ装置（「空きドライブ装置」と記載する）がある場合には、空きドライブ装置の中から使用ドライブ装置を選択する。空きドライブ装置がある状態では、読み出し処理の実行のためにホスト装置２１，２２のそれぞれに割り当てられるドライブ装置の数には、制限がない。したがって、空きドライブ装置がある状態では、ホスト装置２１，２２のそれぞれに対し、割り当て情報１１ａで割り当てられた使用数を超える数のドライブ装置を割り当てて、読み出し処理を実行することができる。
【００２１】
一方、空きドライブがない状態では、制御部１２は、割り当て情報１１ａを参照しながら以下のような処理を実行する。ここでは例として、図１に示すように、ホスト装置２１からデータＤ１，Ｄ３の利用要求が送信され、ドライブ装置４１，４３をそれぞれ使用してデータＤ１，Ｄ３の読み出し処理が実行されているとする。これとともに、ホスト装置２２からデータＤ２の利用要求が送信され、ドライブ装置４２を使用してデータＤ２の読み出し処理が実行されているとする。そして、この状態で、ホスト装置２２がデータＤ４の利用要求を送信したとする。なお、データＤ１，Ｄ２，Ｄ３は、可搬型記録媒体Ｍ１，Ｍ２，Ｍ３にそれぞれ記憶されているとする。
【００２２】
制御部１２は、割り当て情報１１ａを参照して、次の手順で使用ドライブ装置を選択する。制御部１２は、ホスト装置２２からの利用要求に応じて実行中の読み出し処理の数が、ホスト装置２２に対して割り当てられた使用数「２」未満かを判定する。ここで、実行中の読み出し処理の数が使用数「２」以上の場合、制御部１２は、データＤ１〜Ｄ３のいずれかの読み出し処理が完了するまで、データＤ４の読み出し処理の実行待ち状態となる。
【００２３】
一方、ホスト装置２２からの利用要求に応じて実行中の読み出し処理の数が使用数「２」未満の場合には、制御部１２は、他のホスト装置からの利用要求に応じて実行中の読み出し処理のうちの１つを中断させる。例えば、図１に示すように、制御部１２は、ホスト装置２１からの利用要求に応じたデータＤ３の読み出し処理を中断させる。そして、制御部１２は、データＤ３の読み出し処理が実行されていたドライブ装置４３を、使用ドライブ装置として選択する。
【００２４】
すなわち、制御部１２は、データＤ３の読み出し処理を中断させ、ドライブ装置４３から可搬型記録媒体Ｍ３をアンマウントさせる。そして、制御部１２は、空き状態になったドライブ装置４３に、データＤ４が記憶された可搬型記録媒体Ｍ４をマウントさせ、可搬型記録媒体Ｍ４からキャッシュ装置３０へのデータＤ４の読み出し処理を実行する。読み出し処理が完了すると、ホスト装置２２は、キャッシュ装置３０内のデータＤ４にアクセスできるようになる。
【００２５】
このような処理により、データＤ１〜Ｄ３の読み出し処理のいずれかが完了して、空きドライブ装置が発生するまで、データＤ４の読み出し処理の実行を待つ場合と比較して、データＤ４の読み出し処理の実行を早期に開始できる。このため、ホスト装置２２がデータＤ４の利用要求を送信してから、データＤ４を利用できるようになるまでの待ち時間を短縮できる。
【００２６】
このように、ストレージ装置１０によれば、空きドライブ装置のない状態でホスト装置がデータの利用要求を送信した場合に、割り当て情報１１ａの使用数に基づく条件を満たす範囲で、そのデータを利用できるようになるまでの待ち時間を短縮できる。したがって、ストレージシステム全体として、ホスト装置２１，２２からのデータの利用要求の送信からそのデータを利用できるようになるまでの待ち時間を、短縮できる可能性が高くなる。
【００２７】
〔第２の実施の形態〕
次に、第２の実施の形態として、可搬型記録媒体として磁気テープを用いたストレージシステムについて説明する。
【００２８】
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、仮想テープ装置１００、テープライブラリ２００および複数のホスト装置を含む。本実施の形態では例として、ストレージシステムは３台のホスト装置３０１〜３０３を含む。
【００２９】
仮想テープ装置１００には、ディスクアレイ１１０が搭載されている。仮想テープ装置１００は、テープライブラリ２００をバックエンドのライブラリ装置、ディスクアレイ１１０をキャッシュ装置とした階層型の仮想ライブラリシステムとして動作するように制御する。仮想ライブラリシステムとは、テープライブラリ２００によって実現される大容量の記憶領域に対して、ホスト装置３０１〜３０３がディスクアレイ１１０を通じて仮想的にアクセスできるようにしたものである。
【００３０】
ディスクアレイ１１０は、仮想ライブラリシステムにおけるキャッシュ装置の記憶領域を実現する記録媒体として、複数のＨＤＤを備える。なお、このような記録媒体の少なくとも一部として、ＳＳＤなどの他の種類の不揮発性記憶装置を備えていてもよい。
【００３１】
テープライブラリ２００は、仮想ライブラリシステムにおけるバックエンドの記憶領域を実現する記録媒体として、磁気テープを用いた記憶装置である。磁気テープは、テープカートリッジに収容された状態で利用される。テープライブラリ２００は、複数のテープドライブ、ロボット２１０およびコントローラ２２０を備える。本実施の形態では例として、テープライブラリ２００は４台のテープドライブ２０１〜２０４を備える。
【００３２】
テープドライブ２０１〜２０４にはそれぞれ、ロボット２１０によって搬送されたテープカートリッジが１つずつマウントされる。テープドライブ２０１〜２０４はそれぞれ、コントローラ２２０の制御の下で、マウントされたテープカートリッジ内の磁気テープに対するデータの書き込みや、磁気テープからのデータの読み出しを行う。ロボット２１０は、コントローラ２２０の制御の下で、テープドライブ２０１〜２０４と、図示しない収納セルとの間でテープカートリッジを搬送する。
【００３３】
コントローラ２２０は、図示しないプロセッサ、メモリなどを備え、テープライブラリ２００の動作を統括的に制御する。例えば、コントローラ２２０は、仮想テープ装置１００からの指示に応じて、ロボット２１０に対し、テープドライブ２０１〜２０４に対するテープカートリッジのマウントや、テープドライブ２０１〜２０４からのテープカートリッジのアンマウントを指示する。また、コントローラ２２０は、仮想テープ装置１００からの指示に応じて、テープドライブ２０１〜２０４に対し、テープカートリッジ内の磁気テープからのデータの読み出しや、磁気テープに対するデータの書き込みを指示する。
【００３４】
なお、仮想ライブラリシステムのバックエンドの記憶領域を実現する記録媒体としては、磁気テープの他、例えば、光ディスク、光磁気ディスクなどの可搬型の記録媒体を利用することもできる。
【００３５】
ホスト装置３０１〜３０３のそれぞれは、例えば、各種の業務のための処理を実行するサーバ装置である。ホスト装置３０１〜３０３はそれぞれ、仮想テープ装置１００に対してアクセスを要求することで、仮想テープ装置１００から提供される論理ボリュームにアクセスする。論理ボリュームは、テープライブラリ２００のテープ媒体による物理記憶領域を用いて実現される論理記憶領域である。
【００３６】
仮想テープ装置１００の内部構成について、さらに説明する。仮想テープ装置１００は、ディスクアレイ１１０に加えて、チャネル制御サーバ１２０、仮想ライブラリ制御サーバ１３０およびデバイス制御サーバ１４０を備える。
【００３７】
チャネル制御サーバ１２０は、ホスト装置３０１〜３０３、ディスクアレイ１１０および仮想ライブラリ制御サーバ１３０に接続されている。チャネル制御サーバ１２０は、ホスト装置３０１〜３０３から仮想ライブラリシステムに対するインタフェース処理を実行する。
【００３８】
例えば、チャネル制御サーバ１２０は、テープライブラリ２００内のテープドライブ２０１〜２０４を仮想化した論理ドライブの機能を実現する。論理ドライブは、ホスト装置３０１〜３０３に対して、テープライブラリ２００内の実際のテープドライブの台数より多い数（例えば、１６ドライブ）だけ認識させることができる。論理ドライブに対して論理ボリュームがマウントされることで、ホスト装置３０１〜３０３は、チャネル制御サーバ１２０を介して論理ボリュームにアクセスできるようになる。
【００３９】
仮想ライブラリ制御サーバ１３０は、ホスト装置３０１〜３０３、ディスクアレイ１１０、チャネル制御サーバ１２０およびデバイス制御サーバ１４０に接続されている。仮想ライブラリ制御サーバ１３０は、仮想ライブラリシステムにおけるボリューム管理を行う。
【００４０】
例えば、仮想ライブラリ制御サーバ１３０は、ホスト装置３０１〜３０３からの要求に応じて、論理ドライブに対する論理ボリュームのマウントや、論理ドライブからの論理ボリュームのアンマウントを制御する。また、仮想ライブラリ制御サーバ１３０は、デバイス制御サーバ１４０に対し、テープドライブ２０１〜２０４に対するテープカートリッジのマウントや、テープドライブ２０１〜２０４からのテープカートリッジのアンマウントを指示する。さらに、仮想ライブラリ制御サーバ１３０は、デバイス制御サーバ１４０に対し、磁気テープからディスクアレイ１１０への論理ボリュームのデータの読み出しや、ディスクアレイ１１０からテープ媒体への論理ボリュームのデータの書き込みを指示する。
【００４１】
デバイス制御サーバ１４０は、ディスクアレイ１１０、仮想ライブラリ制御サーバ１３０およびテープライブラリ２００のコントローラ２２０に接続されている。デバイス制御サーバ１４０は、仮想ライブラリ制御サーバ１３０からの指示に応じて、コントローラ２２０に対し、テープドライブ２０１〜２０４へのテープカートリッジのマウントや、テープドライブ２０１〜２０４からのテープカートリッジのアンマウントを指示する。また、デバイス制御サーバ１４０は、仮想ライブラリ制御サーバ１３０からの指示に応じて、磁気テープからディスクアレイ１１０への論理ボリュームのデータの読み出しや、ディスクアレイ１１０からテープ媒体への論理ボリュームのデータの書き込みを制御する。
【００４２】
ここで、ホスト装置３０１〜３０３からの論理ボリュームに対するアクセス処理の基本的な手順について説明する。ここでは例として、ホスト装置３０１から論理ボリュームにアクセスする場合について説明する。
【００４３】
前述のように、ホスト装置３０１は、複数の論理ドライブを認識している。ホスト装置３０１は、仮想ライブラリ制御サーバ１３０に対して、アクセス対象の論理ボリュームを論理ドライブの１つにマウントするように要求する。仮想ライブラリ制御サーバ１３０は、マウントが要求された論理ボリュームのデータがディスクアレイ１１０に存在する場合、その論理ボリュームを論理ドライブにマウントするようにチャネル制御サーバ１２０に指示する。
【００４４】
一方、仮想ライブラリ制御サーバ１３０は、マウントが要求された論理ボリュームのデータがディスクアレイ１１０に存在しない場合、その論理ボリュームのデータをテープカートリッジ内の磁気テープから読み出してディスクアレイ１１０に格納するように、デバイス制御サーバ１４０に指示する。これにより、テープドライブ２０１〜２０４のいずれかにテープカートリッジがマウントされ、そのテープカートリッジ内の磁気テープから該当論理ボリュームのデータが読み出されて、ディスクアレイ１１０に格納される。このように、論理ドライブに対するマウント要求に応じて論理ボリュームのデータを磁気テープからディスクアレイ１１０に格納する処理を、「リコール処理」と呼ぶ。
【００４５】
仮想ライブラリ制御サーバ１３０は、ディスクアレイ１１０に論理ボリュームのデータが格納されると、その論理ボリュームを論理ドライブにマウントするようにチャネル制御サーバ１２０に指示する。
【００４６】
チャネル制御サーバ１２０は、仮想ライブラリ制御サーバ１３０からのマウントの指示に応じて、ディスクアレイ１１０にデータが格納された論理ボリュームを論理ドライブにマウントする。これにより、ホスト装置３０１が論理ボリュームを認識し、その論理ボリュームにアクセス可能になる。
【００４７】
ホスト装置３０１は、例えば、マウントされた論理ボリュームからのデータの読み出しをチャネル制御サーバ１２０に要求する。チャネル制御サーバ１２０は、読み出しが要求されたデータをディスクアレイ１１０上の論理ボリュームの領域から読み出し、ホスト装置３０１に送信する。また、ホスト装置３０１は、例えば、マウントされた論理ボリュームに対するデータの書き込みをチャネル制御サーバ１２０に要求する。チャネル制御サーバ１２０は、書き込みが要求されたデータをホスト装置３０１から受信し、ディスクアレイ１１０上の論理ボリュームの領域に書き込む。なお、論理ボリュームに書き込まれたデータは、バックエンドの記憶領域に反映されていないダーティデータとして管理される。
【００４８】
その後、ホスト装置３０１は、仮想ライブラリ制御サーバ１３０に対して、論理ボリュームを論理ドライブからアンマウントするように要求する。仮想ライブラリ制御サーバ１３０は、その論理ボリュームのアンマウントをチャネル制御サーバ１２０に指示する。チャネル制御サーバ１２０は、その論理ボリュームを論理ドライブからアンマウントする。これにより、ホスト装置３０１はその論理ボリュームを認識しなくなる。
【００４９】
また、仮想ライブラリ制御サーバ１３０は、アンマウントが要求された論理ボリュームのデータを、ディスクアレイ１１０に格納されたままにする。これにより、同じ論理ボリュームを論理ドライブにマウントするように再度要求されたとき、その論理ボリュームのデータを磁気テープから読み出すことなく、マウント処理が短時間で実行される。
【００５０】
また、仮想ライブラリ制御サーバ１３０は、論理ボリュームにダーティデータが含まれる場合、その論理ボリュームのアンマウントとは非同期のタイミングで、論理ボリュームのデータを磁気テープにも書き込む。このように、ディスクアレイ１１０内の論理ボリュームのデータを磁気テープに書き込む処理を、「マイグレーション処理」と呼ぶ。
【００５１】
マイグレーション処理では、仮想ライブラリ制御サーバ１３０は、デバイス制御サーバ１４０に対し、テープドライブ２０１〜２０４のうちの空きドライブにテープカートリッジをマウントするように指示する。そして、仮想ライブラリ制御サーバ１３０は、デバイス制御サーバ１４０に対し、論理ボリュームのデータをディスクアレイ１１０から読み出し、マウントされたテープカートリッジ内の磁気テープに書き込むように指示する。なお、マイグレーション処理が実行された後の論理ボリュームは、ダーティデータを含まない論理ボリュームとして管理される。
【００５２】
さらに、仮想ライブラリ制御サーバ１３０は、ディスクアレイ１１０の空き領域が足りなくなると、ディスクアレイ１１０から論理ボリュームのデータを追い出す処理を実行する。仮想ライブラリ制御サーバ１３０は、例えば、ディスクアレイ１１０にデータが格納された論理ボリュームの中から、ＬＲＵ（Least Recently Used）方式によって追い出し対象の論理ボリュームを選択する。
【００５３】
選択された論理ボリュームにダーティデータが含まれていない場合、仮想ライブラリ制御サーバ１３０は、その論理ボリュームのデータをディスクアレイ１１０から消去する。一方、選択された論理ボリュームにダーティデータが含まれている場合、仮想ライブラリ制御サーバ１３０は、その論理ボリュームについてのマイグレーション処理を実行する。マイグレーション処理が完了すると、仮想ライブラリ制御サーバ１３０は、その論理ボリュームのデータをディスクアレイ１１０から消去する。
【００５４】
次に、仮想テープ装置１００内の各サーバのハードウェア構成について説明する。
図３は、仮想ライブラリ制御サーバのハードウェア構成例を示す図である。仮想ライブラリ制御サーバ１３０は、プロセッサ１３０ａ、ＲＡＭ１３０ｂ、ＳＳＤ１３０ｃおよび通信インタフェース１３０ｄを備える。
【００５５】
プロセッサ１３０ａは、仮想ライブラリ制御サーバ１３０全体を統括的に制御する。プロセッサ１３０ａは、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１３０ａは、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。なお、プロセッサ１３０ａは、図１の制御部１２の一例である。
【００５６】
ＲＡＭ１３０ｂは、仮想ライブラリ制御サーバ１３０の主記憶装置として使用される。ＲＡＭ１３０ｂには、プロセッサ１３０ａに実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１３０ｂには、プロセッサ１３０ａによる処理に必要な各種データが格納される。
【００５７】
ＳＳＤ１３０ｃは、仮想ライブラリ制御サーバ１３０の補助記憶装置として使用される。ＳＳＤ１３０ｃには、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＨＤＤなどの他の種類の不揮発性記憶装置を使用することもできる。
【００５８】
なお、ＲＡＭ１３０ｂまたはＳＳＤ１３０ｃは、図１の記憶部１１の一例である。
通信インタフェース１３０ｄは、ネットワーク１５０を介して、ホスト装置３０１〜３０３、ディスクアレイ１１０、チャネル制御サーバ１２０およびデバイス制御サーバ１４０と通信する。ネットワーク１５０は、例えば、ＬＡＮ（Local Area Network）である。
【００５９】
なお、チャネル制御サーバ１２０およびデバイス制御サーバ１４０も、仮想ライブラリ制御サーバ１３０と同様のハードウェア構成によって実現可能である。ただし、チャネル制御サーバ１２０は、例えば、仮想ライブラリ制御サーバ１３０との間でＬＡＮを介して通信する通信インタフェースと、ホスト装置３０１〜３０３およびディスクアレイ１１０との間でファイバチャネル（ＦＣ）ネットワークを介して通信する通信インタフェースとを備えてもよい。また、デバイス制御サーバ１４０は、例えば、仮想ライブラリ制御サーバ１３０との間でＬＡＮを介して通信する通信インタフェースと、ディスクアレイ１１０およびテープライブラリ２００のコントローラ２２０との間でファイバチャネル（ＦＣ）ネットワークを介して通信する通信インタフェースとを備えてもよい。
【００６０】
次に、図４は、リコール処理に関する問題点について説明するための図である。前述のように、ホスト装置３０１〜３０３は、複数の論理ドライブに対して論理ボリュームをマウントさせることで、その論理ボリュームに対してアクセス可能になる。ホスト装置３０１〜３０３のそれぞれは、複数の論理ボリュームのマウントを要求して、それらの論理ボリュームにアクセスすることができる。仮想ライブラリ制御サーバ１３０は、ホスト装置３０１〜３０３から、データがディスクアレイ１１０に存在していない論理ボリュームのマウントが要求されたとき、テープドライブ２０１〜２０４のうちの空きドライブを利用してリコール処理を実行させる。前述のように、リコール処理とは、論理ボリュームのデータを磁気テープから読み出してディスクアレイ１１０に格納する処理である。
【００６１】
図４では例として、ホスト装置３０１が論理ボリュームＬＶ１，ＬＶ２のマウントを要求し、ホスト装置３０２が論理ボリュームＬＶ３，ＬＶ４のマウントを要求した場合について示している。そして、これらのマウント要求に応じて論理ボリュームＬＶ１〜ＬＶ４のリコール処理が実行されている。
【００６２】
具体的には、テープドライブ２０１にテープカートリッジＴＰ１がマウントされ、テープカートリッジＴＰ１内の磁気テープから論理ボリュームＬＶ１のデータが読み出されてディスクアレイ１１０に格納されている。テープドライブ２０２にテープカートリッジＴＰ２がマウントされ、テープカートリッジＴＰ２内の磁気テープから論理ボリュームＬＶ２のデータが読み出されてディスクアレイ１１０に格納されている。テープドライブ２０３にテープカートリッジＴＰ３がマウントされ、テープカートリッジＴＰ３内の磁気テープから論理ボリュームＬＶ３のデータが読み出されてディスクアレイ１１０に格納されている。テープドライブ２０４にテープカートリッジＴＰ４がマウントされ、テープカートリッジＴＰ４内の磁気テープから論理ボリュームＬＶ４のデータが読み出されてディスクアレイ１１０に格納されている。
【００６３】
このように論理ボリュームＬＶ１〜ＬＶ４のリコール処理が実行中の状態で、例えば、ホスト装置３０３が、データがディスクアレイ１１０に存在しない他の論理ボリューム（ここでは「論理ボリュームＬＶ５」とする）のマウントを要求したとする。このとき、テープライブラリ２００が備えるテープドライブ２０１〜２０４のすべてが使用中である。このため、ホスト装置３０３は、論理ボリュームＬＶ１〜ＬＶ４のいずれかのリコール処理が完了して、テープドライブ２０１〜２０４のいずれかが解放される（空き状態になる）まで、待ち状態となる。このようなテープドライブの解放待ちが発生することで、ホスト装置３０３が論理ボリュームＬＶ５のデータを利用した処理を開始できるまでの時間が遅延してしまうという問題がある。
【００６４】
このような問題に対して、本実施の形態では、ホスト装置３０１〜３０３のそれぞれに対して、マウント要求に伴うリコール処理のために最小限使用可能なテープドライブの使用台数が、あらかじめ割り当てられる。そして、仮想ライブラリ制御サーバ１３０は、テープドライブ数を超える数のリコール処理の実行が必要になった場合に、ホスト装置３０１〜３０３のそれぞれに対して割り当て台数以上のテープドライブが割り当てられてリコール処理が実行されるように調整する。
【００６５】
例えば、空きドライブがない状態でホスト装置３０３からのマウント要求に伴うリコール処理が必要になったときに、ホスト装置３０３からのマウント要求に伴って現在実行中のリコール処理数が、ホスト装置３０３に対する割り当て台数未満であったとする。この場合、仮想ライブラリ制御サーバ１３０は、実行中のリコール処理の中から、他のホスト装置３０１，３０２からのマウント要求に伴うリコール処理を１つ選択する。仮想ライブラリ制御サーバ１３０は、選択したリコール処理を中断させてテープドライブを解放してから、そのテープドライブを使用してホスト装置３０３からのマウント要求に伴う新たなリコール処理を実行させる。
【００６６】
このような処理により、割り当て台数に基づく条件を満たす範囲で、ホスト装置３０１〜３０３のそれぞれが論理ボリュームのマウントを要求してからその論理ボリュームのデータにアクセスできるまでの待ち時間を、短縮できる。
【００６７】
さらに、仮想ライブラリ制御サーバ１３０は、割り当て台数の条件に基づいて、中断させるリコール処理の候補が複数抽出される場合には、テープドライブが解放されるまでの解放待ち時間が最短となるリコール処理を判別して、そのリコール処理を中断させる。これにより、新たにマウントを要求したホスト装置の待ち時間を短縮する。
【００６８】
次に、仮想ライブラリ制御サーバ１３０の処理の詳細について説明する。
まず、図５は、仮想ライブラリ制御サーバが備える処理機能の構成例を示すブロック図である。仮想ライブラリ制御サーバ１３０は、記憶部１３１、ボリューム管理部１３２、リコール制御部１３３およびマイグレーション制御部１３４を備える。
【００６９】
記憶部１３１は、例えば、ＲＡＭ１３０ｂ、ＳＳＤ１３０ｃなどの仮想ライブラリ制御サーバ１３０が備える記憶装置の記憶領域によって実現される。記憶部１３１には、ボリューム管理テーブル１３１ａ、ドライブ割り当てテーブル１３１ｂ、リコール管理テーブル１３１ｃおよび処理時間テーブル１３１ｄが記憶される。
【００７０】
ボリューム管理テーブル１３１ａには、データがディスクアレイ１１０に格納されている各論理ボリュームに関する情報が登録される。例えば、ボリューム管理テーブル１３１ａには、各論理ボリュームが論理ドライブにマウントされているか否かを示すマウントフラグや、各論理ボリュームにダーティデータが含まれているか否かを示すダーティフラグなどが登録される。
【００７１】
ドライブ割り当てテーブル１３１ｂには、ホスト装置３０１〜３０３のそれぞれについてのテープドライブの割り当て台数が登録される。割り当て台数とは、ホスト装置３０１〜３０３のそれぞれに対して、マウント要求に伴うリコール処理のために最小限使用することが保証されるテープドライブの台数を示す。
【００７２】
リコール管理テーブル１３１ｃには、実行中のリコール処理に関する情報が登録される。例えば、リコール管理テーブル１３１ｃには、実行中のリコール処理ごとの解放待ち時間が登録される。解放待ち時間とは、現時点でリコール処理を中断した場合に、リコール処理で使用されているテープドライブが解放される（空き状態になる）までにかかる時間を示す。
【００７３】
処理時間テーブル１３１ｄには、リコール処理完了までの所要時間や、上記の解放待ち時間を計算するために参照される各種の時間情報が登録される。
ボリューム管理部１３２、リコール制御部１３３およびマイグレーション制御部１３４の処理は、例えば、プロセッサ１３０ａが所定のプログラムを実行することで実現される。
【００７４】
ボリューム管理部１３２は、論理ボリュームを管理する。例えば、ボリューム管理部１３２は、ホスト装置３０１〜３０３からのマウント要求およびアンマウント要求に応じて、論理ドライブに対する論理ボリュームのマウント、および論理ドライブからのアンマウントを制御する。また、ボリューム管理部１３２は、論理ボリュームのマウントが要求されたとき、必要に応じてリコール制御部１３３にリコール処理を実行させる。さらに、ボリューム管理部１３２は、テープドライブ数を超える数のリコール処理の実行が必要になった場合に、ドライブ割り当てテーブル１３１ｂに登録された割り当て台数に基づいて、実行させるリコール処理を選択するとともに、その処理に使用するテープドライブを選択する。
【００７５】
リコール制御部１３３は、ボリューム管理部１３２からの指示に応じて、リコール処理の実行を制御する。マイグレーション制御部１３４は、ボリューム管理部１３２からの指示に応じて、マイグレーション処理の実行を制御する。例えば、マイグレーション制御部１３４は、論理ドライブから論理ボリュームがアンマウントされたことの通知を受ける。この論理ボリュームにダーティデータが含まれる場合、マイグレーション制御部１３４は、その後の非同期のタイミングにおいて、その論理ボリュームについてのマイグレーション処理をデバイス制御サーバ１４０に実行させる。
【００７６】
図６は、ドライブ割り当てテーブルのデータ構成例を示す図である。ドライブ割り当てテーブル１３１ｂには、仮想ライブラリシステムにアクセスする各ホスト装置に対し、割り当て台数が対応付けて登録されている。前述のように、割り当て台数とは、各ホスト装置に対して、マウント要求に伴うリコール処理のために最小限使用することが保証されるテープドライブの台数を示す。
【００７７】
例えば、ホスト装置３０１に対して割り当て台数として「２」が設定されており、なおかつ、ホスト装置３０１からの複数の論理ボリュームのマウント要求に伴って２つ以上のリコール処理の実行が必要になっているとする。この場合、ホスト装置３０１を含む複数のホスト装置からのマウント要求に伴うリコール処理によってテープドライブに空きがない状況であっても、ホスト装置３０１に対して最低２台のテープドライブが割り当てられる。そして、割り当てられた各テープドライブを用いて、ホスト装置３０１からのマウント要求に伴うリコール処理がそれぞれ実行される。
【００７８】
ここで、ドライブ割り当てテーブル１３１ｂには、各ホスト装置に対応する割り当て台数の合計値が、テープライブラリ２００に搭載されたテープドライブの数と一致するように、割り当て台数が登録される。
【００７９】
また、各ホスト装置に対応する割り当て台数は、管理者の入力操作によって任意に設定される。あるいは、ホスト装置ごとの割り当て台数が自動的に設定されてもよい。例えば、各ホスト装置による論理ボリュームの利用頻度に応じて、ホスト装置ごとの割り当て台数が自動的に設定される。具体的な例として、仮想ライブラリ制御サーバ１３０は、論理ボリュームに対するアクセス要求（読み出し要求、書き込み要求）の頻度が高いホスト装置ほど、割り当て台数として大きな値を設定してもよい。あるいは、仮想ライブラリ制御サーバ１３０は、論理ドライブに論理ボリュームをマウントさせ続けた時間が長いホスト装置ほど、割り当て台数として大きな値を設定してもよい。
【００８０】
なお、図６に示す「ホスト名」という項目には、ホスト装置３０１〜３０３をそれぞれ識別する識別番号が登録される。図６の例では、ホスト装置３０１，３０２，３０３のそれぞれについて、「ＨＳＴ１」「ＨＳＴ２」「ＨＳＴ３」という識別番号が登録されている。
【００８１】
図７は、リコール管理テーブルのデータ構成例を示す図である。リコール管理テーブル１３１ｃは、テープドライブ名、利用ホスト名、リコール処理状態、残トータル処理時間、残リコール数および解放待ち時間の各項目を有する。また、リコール管理テーブル１３１ｃには、テープライブラリ２００に搭載されたテープドライブごとのレコードがあらかじめ登録される。
【００８２】
テープドライブ名の項目には、テープドライブの識別番号があらかじめ登録される。一方、利用ホスト名、リコール処理状態、残トータル処理時間、残リコール数および解放待ち時間の各項目は、対応するテープドライブを使用してリコール処理が実行されている場合のみ、以下の情報が登録される。なお、利用ホスト名、リコール処理状態、残トータル処理時間、残リコール数および解放待ち時間の各項目には、リコール制御部１３３によって情報が登録される。
【００８３】
利用ホスト名の項目には、ホスト装置の識別番号が登録される。このホスト装置とは、テープドライブを使用して実行中のリコール処理に対応する論理ボリュームのマウント要求を発行したホスト装置である。
【００８４】
リコール処理状態の項目には、実行中のリコール処理について、リコール処理に含まれる段階的な処理のうち、現在どの処理が実行中であるかを示す識別情報が登録される。後述するように、リコール処理状態の項目には、「マウント中」「ロード中」「位置付け中」「読み出し中」「アンロード中」「アンマウント中」のいずれかが登録される。
【００８５】
残トータル処理時間の項目には、リコール処理が完了するまでの残りの処理時間が登録される。残トータル処理時間は、例えば、次の図８に示すテーブルに基づいて算出される。
【００８６】
図８は、処理時間テーブルのデータ構成例を示す第１の図である。図８に示すように、処理時間テーブル１３１ｄは、例えば、図８に示すような所要時間テーブル１３１ｄ１を含む。所要時間テーブル１３１ｄ１には、リコール処理状態ごとに、対応する処理が完了するまでの所要時間が登録されている。
【００８７】
前述のように、リコール処理状態は、リコール処理に含まれる段階的な処理のうち、現在どの処理が実行中であるかを示す。残トータル処理時間は、現在実行中の処理を起点としてリコール処理が完了するまでに実行される各処理についての所要時間の合計値として算出される。
【００８８】
ここで、リコール処理では、次のような段階的な処理が順番に実行される。
まず、論理ドライブへのマウントが要求された論理ボリュームのデータが記録されたテープカートリッジが、テープドライブにマウントされる。このような処理の実行中では、リコール処理状態は「マウント中」と表される。例として、この処理には５秒かかるものとする。
【００８９】
次に、テープドライブにマウントされたテープカートリッジから磁気テープが引き出され、テープドライブ内のリールに巻き付けられる。このような処理の実行中では、リコール処理状態は「ロード中」と表される。例として、この処理には３秒かかるものとする。
【００９０】
次に、磁気テープ上の記憶領域のうち、論理ドライブへのマウントが要求された論理ボリュームのデータ記憶領域の先頭に、磁気ヘッドが位置付けされるように、磁気テープがさらに引き出される。このような処理の実行中では、リコール処理状態は「位置付け中」と表される。この処理にかかる時間は、磁気テープにおける論理ボリュームのデータ記憶領域の位置によって変動する。例として、この処理には最大で９０秒かかるものとする。残トータル処理時間の算出時には、読み出し対象のデータ記憶領域の位置に応じて、所要時間が計算される。
【００９１】
次に、引き出された磁気テープから論理ボリュームのデータが読み出され、ディスクアレイ１１０に書き込まれる。このような処理の実行中では、リコール処理状態は「読み出し中」と表される。例として、磁気テープからのデータ読み出しは１秒以下で完了するものとし、残トータル処理時間の算出時に使用される所要時間としては１秒が用いられるものとする。
【００９２】
次に、磁気テープがテープカートリッジに巻き戻される。このような処理の実行中では、リコール処理状態は「アンロード中」と表される。この処理にかかる時間は、磁気テープにおける論理ボリュームのデータ記憶領域の位置によって変動する。例として、この処理には最大で９３秒かかるものとする。残トータル処理時間の算出時には、読み出し対象のデータ記憶領域の位置に応じて、所要時間が計算される。
【００９３】
次に、テープカートリッジがテープドライブからアンロードされ、収納セルに搬送される。このような処理の実行中では、リコール処理状態は「アンマウント中」と表される。例として、この処理には５秒かかるものとする。
【００９４】
以下、図７に戻って説明を続ける。
残リコール数の項目には、テープドライブにマウントされたテープカートリッジ内の磁気テープから読み出すべき残りの論理ボリューム数が登録される。例えば、あるホスト装置から複数の論理ドライブのそれぞれに対して論理ボリュームのマウントが要求されたときに、それらの論理ボリュームが同一テープカートリッジ内の磁気テープに記録されている場合がある。この場合、そのテープカートリッジをテープドライブに１回マウントするだけで、各論理ボリュームのデータを読み出すことができる。このような場合に、残リコール数としては、まずマウントが要求された論理ボリュームの総数が登録され、論理ボリュームのデータの読み出しが完了するごとに、残リコール数が１ずつ減算される。
【００９５】
解放待ち時間の項目には、現時点でリコール処理を中断した場合に、リコール処理で使用されているテープドライブが解放される（空き状態になる）までにかかる時間が登録される。解放待ち時間は、リコール処理状態と残リコール数とに基づき、例えば次の図９に示すような情報を参照して計算される。
【００９６】
図９は、処理時間テーブルのデータ構成例を示す第２の図である。図９に示すように、処理時間テーブル１３１ｄは、例えば、待ち時間テーブル１３１ｄ２とアンロード時間テーブル１３１ｄ３とをさらに含む。
【００９７】
待ち時間テーブル１３１ｄ２には、リコール処理状態ごとに解放待ち時間が登録される。また、図９に示す「処理内容」には、リコール処理状態が示す状態から、リコール処理を中断してテープドライブが解放されるまでの処理の内容と処理時間とが記載されている。この処理内容の項目は説明のために図９に記載されたものであって、待ち時間テーブル１３１ｄ２に含まれている必要はない。
【００９８】
リコール処理の中断が指示されたとき、現在のリコール処理状態に応じて、テープドライブを解放するまでに実行すべき処理内容が決まる。このため、解放待ち時間は、テープドライブを解放するまでの実行すべき各処理の所要時間の合計値として算出される。
【００９９】
例えば、リコール処理状態が「マウント中」「アンマウント中」のどちらの場合でも、テープドライブを解放するためには、テープドライブからのテープカートリッジのアンマウントが行われる。図８に示したように、アンマウントの所要時間は５秒である。したがって、リコール処理状態が「マウント中」「アンマウント中」の場合の解放待ち時間は、５秒となる。
【０１００】
リコール処理状態が「ロード中」の場合、テープドライブを解放するためには、磁気テープをテープカートリッジに巻き戻すアンロードと、テープドライブからのテープカートリッジのアンマウントとが行われる。リコール処理状態が「ロード中」の場合には、磁気ヘッドを読み出し開始位置まで位置付けするための磁気テープの引き出しは行われていない。このため、アンロードの所要時間は一定の時間となり、ここでは例として３秒とする。したがって、リコール処理状態が「ロード中」の場合の解放待ち時間は、８秒となる。
【０１０１】
リコール処理状態が「位置付け中」「読み出し中」「アンロード中」のいずれの場合でも、テープドライブを解放するためには、磁気テープをテープカートリッジに巻き戻すアンロードと、テープドライブからのテープカートリッジのアンマウントとが行われる。これらのリコール処理状態では、磁気テープの引き出し量に応じてアンロードの所要時間（アンロード時間ａ）が変動する。したがって、リコール処理状態が「位置付け中」「読み出し中」「アンロード中」の場合の解放待ち時間は、（ａ＋５）秒となる。
【０１０２】
アンロード時間テーブル１３１ｄ３には、現在位置ごとにアンロード時間ａが登録されている。現在位置としては、磁気テープにおける磁気ヘッドの位置を示すアドレス範囲が登録される。リコール制御部１３３は、磁気ヘッドの現在位置を示すアドレスをテープドライブからコントローラ２２０、デバイス制御サーバ１４０を介して随時取得し、取得したアドレスに対応するアンロード時間ａをアンロード時間テーブル１３１ｄ３から抽出する。これによって、リコール制御部１３３は、リコール処理状態が「位置付け中」「読み出し中」「アンロード中」の場合の解放待ち時間を算出することができる。
【０１０３】
次に、図１０を用いて、中断させるリコール処理の選択処理の具体例について説明する。
図１０は、中断させるリコール処理についての第１の選択処理例を示す図である。図１１は、中断させるリコール処理についての第２の選択処理例を示す図である。図１２は、中断させるリコール処理についての第３の選択処理例を示す図である。図１０〜図１２では、テープドライブ２０１〜２０４のすべてを使用してリコール処理が実行されている状態の例を、リコール管理テーブル１３１ｃを用いて示している。
【０１０４】
なお、図１０〜図１２では、テープドライブ２０１，２０２，２０３，２０４のテープドライブ名を、それぞれ「ＴＤＲ１」「ＴＤＲ２」「ＴＤＲ３」「ＴＤＲ４」と示す。また、ホスト装置３０１のホスト名を「ＨＳＴ１」と示す。さらに、ホスト装置３０１に対するテープドライブの割り当て台数を「２」とし、ホスト装置３０２に対するテープドライブの割り当て台数を「１」とする。
【０１０５】
図１０、図１１の例では、テープドライブ２０１〜２０４（ＴＤＲ１〜ＴＤＲ４）のすべてにおいて、ホスト装置３０１（ＨＳＴ１）からの論理ボリュームのマウント要求に伴うリコール処理が実行中であるものとする。この状態で、ホスト装置３０２から論理ボリュームのマウントが要求され、それに伴って新たなリコール処理の実行が必要になったとする。
【０１０６】
これらのケースでは、ホスト装置３０１に対応するリコール処理の実行で使用されているテープドライブ数が、ホスト装置３０１に対応する割り当て台数を超えている。このため、ボリューム管理部１３２は、いずれかのリコール処理を中断させ、空きになったテープドライブを用いて、ホスト装置３０２に対応する新たなリコール処理を実行させる。
【０１０７】
ボリューム管理部１３２は、新たなリコール処理を実行させる場合、まず、空きドライブが存在するかを判定する。図１０の例では、テープドライブ２０１〜２０４（ＴＤＲ１〜ＴＤＲ４）のすべてにおいてリコール処理が実行されているものの、テープドライブ２０４（ＴＤＲ４）のリコール処理状態が「アンマウント中」である。このため、ボリューム管理部１３２は、テープドライブ２０４（ＴＤＲ４）が短時間で解放されると判定して、テープドライブ（ＴＤＲ４）を使用して実行されているリコール処理を中断させずに、そのリコール処理が完了するのを待つ。
【０１０８】
一方、図１１の例では、実行中のいずれのリコール処理も短時間では完了しないと判断される。そこで、ボリューム管理部１３２は、まず、実行中のリコール処理の中から、解放待ち時間が最短のリコール処理を、中断させるリコール処理として選択する。図１１の例では、テープドライブ２０３（ＴＤＲ３）を使用して実行中のリコール処理についての解放待ち時間が最も短い。このため、ボリューム管理部１３２は、このリコール処理を中断させる。このように、解放待ち時間が最短のリコール処理を中断させることで、テープドライブが解放されて新たなリコール処理を実行できるようになるまでの時間を最短にすることができる。したがって、ホスト装置３０１の待ち時間を短縮できる。
【０１０９】
次に、図１２の例では、図１０、図１１の例と同様に、テープドライブ２０１〜２０４（ＴＤＲ１〜ＴＤＲ４）のすべてにおいて、ホスト装置３０１（ＨＳＴ１）からの論理ボリュームのマウント要求に伴うリコール処理が実行中であるものとする。この状態で、ホスト装置３０２から論理ボリュームのマウントが要求され、それに伴って新たなリコール処理の実行が必要になったとする。この場合、実行中のいずれかのリコール処理を中断させる必要がある。
【０１１０】
ボリューム管理部１３２は、前述のように、まず、実行中のリコール処理の中から、解放待ち時間が最短のリコール処理を、中断させるリコール処理として選択する。しかし、図１２の例では、テープドライブ２０１，２０３，２０４（ＴＤＲ１，ＴＤＲ３，ＴＤＲ４）のそれぞれに対応する解放待ち時間が、最短かつ同一値となっている。この場合、ボリューム管理部１３２は、次に、選択されたリコール処理の中から、残リコール数が最小のリコール処理を、中断させるリコール処理として選択する。図１２の例では、ボリューム管理部１３２は、テープドライブ２０１（ＴＤＲ１）を使用して実行中のリコール処理を中断させる。
【０１１１】
ここで、残リコール数が多いということは、テープドライブを交換せずに同一のテープドライブから多くの論理ボリュームを読み出すことができるので、処理効率が高い。このため、残リコール数が最短のリコール処理を中断させる一方、残リコール数が多いリコール処理を中断させずに継続して実行させることで、仮想テープ装置１００全体での処理効率を向上させることができる。
【０１１２】
なお、図示しないが、複数のリコール処理に対応する解放待ち時間が最短かつ同一値であった場合、ボリューム管理部１３２は、例えば、それらのリコール処理の中から、残トータル処理時間が最長のリコール処理を、中断させるリコール処理として選択する。
【０１１３】
ここで、中断されたリコール処理は、その後に空きドライブが発生したときに再度実行される。ただし、リコール処理の再実行では、マウントが指示された論理ボリュームに含まれるすべてのデータがテープカートリッジ内の磁気テープから再度読み出される。このため、中断させるリコール処理として、リコール処理の開始からの時間が短いものを中断させる方が、無駄な読み出しデータ量が少なくなり、処理効率が高まる。
【０１１４】
残トータル処理時間が最長のリコール処理を中断させることで、そのリコール処理に伴う無駄な読み出しデータ量を最小にできる可能性が高まる。その結果、仮想テープ装置１００全体での処理効率を向上させることができる。
【０１１５】
次に、仮想テープ装置１００の処理についてフローチャートを用いて説明する。
まず、図１３、図１４は、マウント処理の手順を示すフローチャートの例である。図１３の処理は、ボリューム管理部１３２が、ホスト装置３０１〜３０３のいずれかから論理ドライブに対する論理ボリュームのマウント要求を受信すると、開始される。ここでは例として、ホスト装置３０１からマウント要求が送信されたものとする。
【０１１６】
［ステップＳ１１］ボリューム管理部１３２は、ボリューム管理テーブル１３１ａを参照して、マウントが要求された論理ボリュームのデータがディスクアレイ１１０に存在するかを判定する。ボリューム管理部１３２は、論理ボリュームのデータがディスクアレイ１１０に存在する場合、ステップＳ１２の処理を実行し、存在しない場合、ステップＳ１３の処理を実行する。
【０１１７】
なお、同一のテープカートリッジに記憶された複数の論理ボリュームのマウントが要求されていて、それらの一部がディスクアレイ１１０に存在する場合、データがディスクアレイ１１０に存在する論理ボリュームについてはステップＳ１２の処理が実行される。一方、データがディスクアレイ１１０に存在しない論理ボリュームについてはステップＳ１３の処理が実行される。
【０１１８】
［ステップＳ１２］論理ドライブに対する論理ボリュームのマウント処理が実行される。具体的には、ボリューム管理部１３２は、論理ボリュームを論理ドライブにマウントするようにチャネル制御サーバ１２０に指示する。チャネル制御サーバ１２０は、論理ボリュームを論理ドライブにマウントし、論理ボリュームがホスト装置３０１から認識される状態にする。また、ボリューム管理部１３２は、ボリューム管理テーブル１３１ａを参照し、マウントされた論理ボリュームに対応するマウントフラグを、０から１に更新する。
【０１１９】
［ステップＳ１３］ボリューム管理部１３２は、テープドライブ２０１〜２０４の中に使用されていない空きドライブがあるかを判定する。ボリューム管理部１３２は、空きドライブがある場合、ステップＳ１４の処理を実行し、空きドライブがない場合、ステップＳ１６の処理を実行する。
【０１２０】
なお、ボリューム管理部１３２は、空きドライブがない場合でも、リコール管理テーブル１３１ｃに基づき、リコール処理状態が「アンマウント中」となっているリコール処理が実行中である場合には、このリコール処理が完了するまで待った後、ステップＳ１４の処理を実行する。
【０１２１】
［ステップＳ１４］ボリューム管理部１３２は、デバイス制御サーバ１４０に対してリコール処理の実行を指示する。このとき、ボリューム管理部１３２は、デバイス制御サーバ１４０に対し、論理ボリュームのデータが記録されたテープカートリッジを示す情報と、データの読み出し対象の論理ボリュームを示す情報と、使用するテープドライブを示す情報とを通知する。これにより、デバイス制御サーバ１４０の制御の下で、空きドライブにテープカートリッジがマウントされ、そのテープカートリッジ内の磁気テープから論理ボリュームのデータが読み出されて、ディスクアレイ１１０に格納される。
【０１２２】
なお、リコール処理の実行中には、そのリコール処理についての情報がリコール管理テーブル１３１ｃに登録される。そして、リコール処理が完了すると、それらの情報はリコール管理テーブル１３１ｃから削除される。これとともに、リコール処理が完了した論理ボリュームに対応するレコードがボリューム管理テーブル１３１ａに追加される。
【０１２３】
［ステップＳ１５］ステップＳ１２と同様の手順で、論理ドライブに対する論理ボリュームのマウント処理が実行される。
［ステップＳ１６］ボリューム管理部１３２は、テープドライブ２０１〜２０４を使用して実行されている処理のすべてがリコール処理かを判定する。ボリューム管理部１３２は、リコール処理以外の処理、具体的にはマイグレーション処理が実行されている場合、ステップＳ１７の処理を実行する。一方、ボリューム管理部１３２は、実行されている処理がすべてリコール処理の場合、図１４のステップＳ２１の処理を実行する。
【０１２４】
［ステップＳ１７］ボリューム管理部１３２は、実行中のマイグレーション処理を中断するようにマイグレーション制御部１３４に指示する。マイグレーション制御部１３４は、マイグレーション処理を中断するようにデバイス制御サーバ１４０に指示する。これにより、デバイス制御サーバ１４０の制御の下で、マイグレーション処理が中断され、その処理が実行されていたテープドライブが解放される。
【０１２５】
［ステップＳ１８］ボリューム管理部１３２は、マイグレーション処理を中断するための処理が完了するまで、待ち状態になる。そして、その処理が完了すると、ボリューム管理部１３２は、ステップＳ１３の処理を再度実行する。この場合、ステップＳ１３では空きドライブがあると判定され、ステップＳ１４において、その空きドライブを用いてリコール処理が実行される。
【０１２６】
以下、図１４を用いて説明を続ける。
［ステップＳ２１］ボリューム管理部１３２は、実行中のリコール処理のいずれかを中断させるか否かを判定するリコール中断要否判定処理を実行する。
【０１２７】
［ステップＳ２２］ボリューム管理部１３２は、ステップＳ２１のリコール中断要否判定処理において、いずれかのリコール処理を中断すると判定された場合、ステップＳ２４の処理を実行し、いずれかのリコール処理の完了を待つと判定された場合、ステップＳ２３の処理を実行する。
【０１２８】
［ステップＳ２３］ボリューム管理部１３２は、実行中のいずれかのリコール処理が完了するまで待ち状態となる。そして、ボリューム管理部１３２は、いずれかのリコール処理が完了すると、図１３のステップＳ１３の処理を再度実行する。この場合、ステップＳ１３では空きドライブがあると判定され、ステップＳ１４において、その空きドライブを用いてリコール処理が実行される。なお、リコール処理の完了は、リコール制御部１３３からボリューム管理部１３２に対して通知される。
【０１２９】
［ステップＳ２４］ボリューム管理部１３２は、リコール管理テーブル１３１ｃを参照し、解放待ち時間が最短のリコール処理を、中断させるリコール処理として選択する。
［ステップＳ２５］ボリューム管理部１３２は、ステップＳ２５において、解放待ち時間が最短のリコール処理が複数存在した場合、ステップＳ２６の処理を実行し、解放待ち時間が最短のリコール処理が１つだけであった場合、ステップＳ２７の処理を実行する。
【０１３０】
［ステップＳ２６］ボリューム管理部１３２は、リコール管理テーブル１３１ｃを参照し、解放待ち時間が最短であった複数のリコール処理の中から、残リコール数または残トータル処理時間の少なくとも一方に基づいて、中断させるリコール処理を選択する。例えば、ボリューム管理部１３２は、これらのリコール処理の中から、残リコール数が最小のリコール処理を、中断させるリコール処理として選択する。また、ボリューム管理部１３２は、残リコール数が最小のリコール処理が複数存在した場合、これらのリコール処理の中から、残トータル処理時間が最長のリコール処理を、中断させるリコール処理として選択する。
【０１３１】
［ステップＳ２７］ボリューム管理部１３２は、選択されたリコール処理を中断するようにリコール制御部１３３に指示する。リコール制御部１３３は、そのリコール処理を中断するようにデバイス制御サーバ１４０に指示する。これにより、デバイス制御サーバ１４０の制御の下で、リコール処理が中断され、その処理が実行されていたテープドライブが解放される。
【０１３２】
［ステップＳ２８］ボリューム管理部１３２は、リコール処理を中断するための処理が完了するまで、待ち状態になる。そして、その処理が完了すると、ボリューム管理部１３２は、ステップＳ１３の処理を再度実行する。この場合、ステップＳ１３では空きドライブがあると判定され、ステップＳ１４において、その空きドライブを用いてリコール処理が実行される。
【０１３３】
図１５は、リコール中断要否判定処理の手順を示すフローチャートの例である。この図１５の処理は、図１４のステップＳ２１の処理に対応する。
［ステップＳ３１］ボリューム管理部１３２は、リコール管理テーブル１３１ｃを参照し、ホスト装置３０１からのマウント要求に伴うリコール処理によって使用されているテープドライブの数を算出する。この処理では、実際には、ホスト装置３０１が、リコール管理テーブル１３１ｃの利用ホスト名の項目にいくつ登録されているかが判定される。
【０１３４】
［ステップＳ３２］ボリューム管理部１３２は、ドライブ割り当てテーブル１３１ｂを参照し、ステップＳ３１で算出されたドライブ数が、ホスト装置３０１に対応する割り当て台数以上であるかを判定する。ボリューム管理部１３２は、算出されたドライブ数が割り当て台数未満の場合、ステップＳ３３の処理を実行し、算出されたドライブ数が割り当て台数以上の場合、ステップＳ３４の処理を実行する。
【０１３５】
［ステップＳ３３］このケースでは、ホスト装置３０１には、マウント要求に伴うリコール処理を優先的に実行させる権利がある。このため、ボリューム管理部１３２は、実行中のリコール処理のいずれかを中断させると判定する。
【０１３６】
このステップＳ３３の実行後、図１４のステップＳ２２で「Ｙｅｓ」と判定され、さらにその後、ステップＳ２７の実行により実行中のリコール処理が中断されて、テープドライブが解放される。その後、図１３のステップＳ１３，Ｓ１４と進み、ホスト装置３０１からのマウント要求に伴うリコール処理が、解放されたテープドライブを使用して実行される。
【０１３７】
［ステップＳ３４］ボリューム管理部１３２は、実行中のリコール処理を中断させずに、それらの１つが完了するまで待つと判定する。この場合、次に図１４のステップＳ２２で「Ｎｏ」と判定され、ボリューム管理部１３２は、いずれかのリコール処理が完了するまで待ち状態となる。
【０１３８】
以上の図１３〜図１５の処理では、マウント要求に伴うリコール処理の実行が必要になったときに（ステップＳ１１「Ｎｏ」）、空きドライブがある場合には（ステップＳ１３「Ｙｅｓ」）、リコール処理が直ちに実行される（ステップＳ１４）。このように、リコール処理は、空きドライブがある状態では、ホスト装置３０１〜３０３のそれぞれについての割り当て台数に関係なく、直ちに実行される。換言すると、空きドライブが存在する限り、同一のホスト装置からのマウント要求に伴うリコール処理を、テープドライブの数を上限としていくつでも並列に実行させることができる。
【０１３９】
一方、空きドライブがない状態では（ステップＳ１３「Ｎｏ」）、マウント要求元のホスト装置に対応する割り当て台数に基づいて、他のリコール処理を中断させるか、あるいは他のリコール処理の１つが完了するまで待つかが判定される（ステップＳ２１，Ｓ３２）。他のリコール処理を中断させると決定された場合、そのリコール処理を実行していたテープドライブが解放され（ステップＳ２７）、解放されたテープドライブを使用して新たなリコール処理が実行される（ステップＳ１４）。これにより、他のリコール処理の１つが完了するまで待つ場合と比較して、ホスト装置が論理ボリュームのマウントを要求してから、その論理ボリュームのデータにアクセスできるまでの待ち時間を短縮できる。
【０１４０】
このように、空きドライブがない状態では、割り当て台数に基づく条件を満たす範囲で、ホスト装置３０１〜３０３のそれぞれが、論理ボリュームのマウントを要求してから、その論理ボリュームのデータにアクセスできるまでの待ち時間を短縮できる。換言すると、ホスト装置３０１〜３０３のそれぞれに対して、割り当て台数に基づく条件を満たす範囲で、キャッシュされていない論理ボリュームのデータに短時間でアクセスできることが保証される。
【０１４１】
図１６〜図１８は、リコール処理の手順を示すフローチャートの例である。これらの図１６〜図１８は、図１３のステップＳ１４において、リコール制御部１３３が実行する処理を示す。具体的には、ステップＳ１４において、ボリューム管理部１３２が、リコール処理を実行するようにリコール制御部１３３に指示する。このとき、論理ボリュームのデータが記録されたテープカートリッジを示す情報、読み出し対象の論理ボリュームを示す情報、使用するテープドライブを示す情報、どのホスト装置からのマウント要求に伴うリコール処理かを示す情報が、ボリューム管理部１３２からリコール制御部１３３に通知される。
【０１４２】
［ステップＳ４１］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用するテープドライブに対応するレコードに対して、次の情報を登録する。リコール制御部１３３は、利用ホスト名として、マウント要求元のホスト装置の識別番号を登録し、残リコール数として、ボリューム管理部１３２から通知された、読み出し対象の論理ボリュームの数を登録する。
【０１４３】
［ステップＳ４２］リコール制御部１３３は、論理ボリュームのデータが記憶されたテープカートリッジをボリューム管理部１３２から通知されたテープドライブにマウントするように、デバイス制御サーバ１４０に指示する。デバイス制御サーバ１４０は、この指示をテープライブラリ２００のコントローラ２２０に伝達し、これによってテープカートリッジがテープドライブにマウントされる。
【０１４４】
［ステップＳ４３］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用するテープドライブに対応するレコードを、次のように更新する。リコール制御部１３３は、リコール処理状態として「マウント中」を設定する。また、リコール制御部１３３は、処理時間テーブル１３１ｄを参照して、残トータル処理時間および解放待ち時間を計算し、これらをレコードに登録する。なお、この時点では、残トータル処理時間および解放待ち時間の計算では、磁気テープにおける磁気ヘッドの位置としてはあらかじめ決められた固定値が用いられる。
【０１４５】
［ステップＳ４４］リコール制御部１３３は、テープカートリッジのマウントが完了するまで待ち状態となる。そして、リコール制御部１３３は、マウントが完了すると、ステップＳ４５の処理を実行する。
【０１４６】
［ステップＳ４５］リコール制御部１３３は、磁気テープをロードするようにデバイス制御サーバ１４０に指示する。デバイス制御サーバ１４０は、この指示をテープライブラリ２００のコントローラ２２０に伝達し、これによって磁気テープがテープドライブにロードされる。
【０１４７】
［ステップＳ４６］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用するテープドライブに対応するレコードを、次のように更新する。リコール制御部１３３は、リコール処理状態を「ロード中」に更新する。また、リコール制御部１３３は、磁気テープにおける読み出し対象の論理ボリュームの記憶領域の位置情報を、ロード実行中のテープドライブからコントローラ２２０、デバイス制御サーバ１４０を通じて取得する。リコール制御部１３３は、取得した情報に基づき、処理時間テーブル１３１ｄを参照して、残トータル処理時間および解放待ち時間を計算して、算出された値によってレコードの値を更新する。
【０１４８】
［ステップＳ４７］リコール制御部１３３は、磁気テープのロードが完了するまで待ち状態となる。そして、リコール制御部１３３は、ロードが完了すると、図１７のステップＳ５１の処理を実行する。
【０１４９】
以下、図１７を参照して説明を続ける。
［ステップＳ５１］リコール制御部１３３は、磁気テープに対して磁気ヘッドを位置付けするようにデバイス制御サーバ１４０に指示する。デバイス制御サーバ１４０は、この指示をテープライブラリ２００のコントローラ２２０に伝達し、これによって磁気テープに対して磁気ヘッドが位置付けされる。
【０１５０】
［ステップＳ５２］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用するテープドライブに対応するレコードを、次のように更新する。リコール制御部１３３は、リコール処理状態を「位置付け中」に更新する。また、リコール制御部１３３は、ステップＳ４６でテープドライブから取得した情報に基づき、処理時間テーブル１３１ｄを参照して、残トータル処理時間および解放待ち時間を計算し、算出された値によってレコードの値を更新する。
【０１５１】
［ステップＳ５３］リコール制御部１３３は、磁気ヘッドの位置付けが完了するまで待ち状態となる。そして、リコール制御部１３３は、磁気ヘッドの位置付けが完了すると、ステップＳ５４の処理を実行する。
【０１５２】
［ステップＳ５４］リコール制御部１３３は、磁気テープから論理ボリュームのデータを読み出してディスクアレイ１１０に格納するように、デバイス制御サーバ１４０に指示する。デバイス制御サーバ１４０は、この指示をテープライブラリ２００のコントローラ２２０に伝達し、これによって磁気テープから論理ボリュームのデータが読み出されてデバイス制御サーバ１４０に転送される。デバイス制御サーバ１４０は、転送された論理ボリュームのデータをディスクアレイ１１０に格納する。
【０１５３】
［ステップＳ５５］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用するテープドライブに対応するレコードを、次のように更新する。リコール制御部１３３は、リコール処理状態を「読み出し中」に更新する。また、リコール制御部１３３は、ステップＳ４６でテープドライブから取得した情報に基づき、処理時間テーブル１３１ｄを参照して、残トータル処理時間および解放待ち時間を計算し、算出された値によってレコードの値を更新する。
【０１５４】
［ステップＳ５６］リコール制御部１３３は、磁気テープからディスクアレイ１１０に対するデータの読み出しが完了するまで待ち状態となる。そして、リコール制御部１３３は、データの読み出しが完了すると、ステップＳ５７の処理を実行する。
【０１５５】
以上のステップＳ５１〜Ｓ５６の処理により、１つの論理ボリュームのデータをディスクアレイ１１０に読み出す処理が完了する。
［ステップＳ５７］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用するテープドライブに対応するレコードを参照し、残リコール数を１だけ減算する。
【０１５６】
［ステップＳ５８］リコール制御部１３３は、減算後の残リコール数が０であるかを判定する。残リコール数が１以上である場合、リコール制御部１３３は、処理をステップＳ５１に進め、次の論理ボリュームを処理対象として処理を継続する。一方、残リコール数が０である場合、リコール制御部１３３は、図１８のステップＳ６１の処理を実行する。
【０１５７】
以下、図１８を参照して説明を続ける。
［ステップＳ６１］リコール制御部１３３は、磁気テープをアンロードするようにデバイス制御サーバ１４０に指示する。デバイス制御サーバ１４０は、この指示をテープライブラリ２００のコントローラ２２０に伝達し、これによって磁気テープがアンロードされる。
【０１５８】
［ステップＳ６２］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用するテープドライブに対応するレコードを、次のように更新する。リコール制御部１３３は、リコール処理状態を「アンロード中」に更新する。また、リコール制御部１３３は、ステップＳ４６でテープドライブから取得した情報に基づき、処理時間テーブル１３１ｄを参照して、残トータル処理時間および解放待ち時間を計算し、算出された値によってレコードの値を更新する。
【０１５９】
［ステップＳ６３］リコール制御部１３３は、磁気テープのアンロードが完了するまで待ち状態となる。そして、リコール制御部１３３は、アンロードが完了すると、ステップＳ６４の処理を実行する。
【０１６０】
［ステップＳ６４］リコール制御部１３３は、テープカートリッジをテープドライブからアンマウントするようにデバイス制御サーバ１４０に指示する。デバイス制御サーバ１４０は、この指示をテープライブラリ２００のコントローラ２２０に伝達し、これによってテープカートリッジがテープドライブからアンマウントされる。
【０１６１】
［ステップＳ６５］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用するテープドライブに対応するレコードを、次のように更新する。リコール制御部１３３は、リコール処理状態を「アンマウント中」に更新する。また、リコール制御部１３３は、処理時間テーブル１３１ｄを参照して、残トータル処理時間および解放待ち時間を計算し、算出された値によってレコードの値を更新する。
【０１６２】
［ステップＳ６６］リコール制御部１３３は、テープカートリッジのアンマウントが完了するまで待ち状態となる。そして、リコール制御部１３３は、アンマウントが完了すると、ステップＳ６７の処理を実行する。
【０１６３】
［ステップＳ６７］リコール制御部１３３は、リコール管理テーブル１３１ｃにおける、使用されていたテープドライブに対応するレコードから、利用ホスト名、リコール処理状態、残トータル処理時間、残リコール数および解放待ち時間を削除する。また、リコール制御部１３３は、リコール処理が完了したことをボリューム管理部１３２に通知する。
【０１６４】
以上の図１６〜図１８に示した手順により、リコール処理の進行に伴ってリコール管理テーブル１３１ｃの情報が随時更新される。
なお、上記の各実施の形態に示した装置（例えば、ストレージ装置１０、チャネル制御サーバ１２０、仮想ライブラリ制御サーバ１３０、デバイス制御サーバ１４０）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（Blu-ray（登録商標） Disc，ＢＤ）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１６５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１６７】
１０  ストレージ装置
１１  記憶部
１１ａ  割り当て情報
１２  制御部
２１，２２  ホスト装置
３０  キャッシュ装置
４１〜４３  ドライブ装置
Ｄ１〜Ｄ４  データ
Ｍ１〜Ｍ４  可搬型記録媒体
【図１】
2019153166.tif 000003
【図２】
2019153166.tif 000004
【図３】
2019153166.tif 000005
【図４】
2019153166.tif 000006
【図５】
2019153166.tif 000007
【図６】
2019153166.tif 000008
【図７】
2019153166.tif 000009
【図８】
2019153166.tif 000010
【図９】
2019153166.tif 000011
【図１０】
2019153166.tif 000012
【図１１】
2019153166.tif 000013
【図１２】
2019153166.tif 000014
【図１３】
2019153166.tif 000015
【図１４】
2019153166.tif 000016
【図１５】
2019153166.tif 000017
【図１６】
2019153166.tif 000018
【図１７】
2019153166.tif 000019
【図１８】
2019153166.tif 000020