(57)【特許請求の範囲】
【請求項１】
第１の物理ボリュームに格納される複数の論理ボリュームのデータを複数の第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記複数の論理ボリュームの各々のデータサイズを取得する取得部と、
前記第２の物理ボリュームごとに当該第２の物理ボリュームを書出先とする論理ボリュームを割り当てた複数の書出リストであって、キャッシュ部にデータがキャッシュされている複数の論理ボリュームのそれぞれを、前記取得部で取得したデータサイズの大きい順に、記憶領域の空き容量であって割り当て済みの論理ボリュームのデータサイズを減じた後の前記空き容量が最も大きい第２の物理ボリュームに割り当てた、前記複数の書出リストを生成するとともに、前記キャッシュ部にデータがキャッシュされていない論理ボリュームを、前記取得部で取得したデータサイズの大きい順に割り当てた読出リストを生成する生成部と、
前記複数の書出リストの各々について、前記書出リストの割り当て順に従って、前記キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から前記書出先の第２の物理ボリュームへ書き出す制御を行なう書出制御部と、
前記読出リストの割り当て順に従って、前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行なう読出制御部と、
前記読出制御部による１つの論理ボリュームの制御の完了に応じて、前記読出制御部による制御が完了した論理ボリュームを含む、前記複数の論理ボリュームのうちの前記キャッシュ部にデータがキャッシュされている論理ボリュームのそれぞれを、前記取得部で取得したデータサイズの大きい順に、少なくとも前記書出処理が未完了である第２の物理ボリュームのうちの前記空き容量が最も大きい第２の物理ボリュームに割り当てることで、前記複数の書出リストのうちの少なくとも前記書出処理が未完了である書出リストを再生成する最適化部と、
をそなえることを特徴とする、制御装置。
【請求項２】
前記最適化部は、前記読出制御部による制御が完了した論理ボリュームのデータサイズに基づいて、前記複数の書出リストのうちの少なくとも書出処理が未完了である書出リストを再生成することを特徴とする、請求項１記載の制御装置。
【請求項３】
前記再生成は、前記書出制御部による制御が完了していない論理ボリュームを対象に実行され、前記書出制御部による制御が完了していない論理ボリュームは、前記読出制御部による制御が完了した論理ボリュームを含むことを特徴とする、請求項２記載の制御装置。
【請求項４】
第１の物理ボリュームに格納される複数の論理ボリュームのデータを複数の第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記複数の論理ボリュームの各々のデータサイズを取得する取得部と、
前記第２の物理ボリュームごとに、当該第２の物理ボリュームを書出先とする論理ボリュームを、キャッシュ部に当該論理ボリュームのデータがキャッシュされているか否かを含む情報とともに割り当てた複数の書出リストであって、前記複数の論理ボリュームのそれぞれを、前記取得部で取得したデータサイズの大きい順に、記憶領域の空き容量であって割り当て済みの論理ボリュームのデータサイズを減じた後の前記空き容量が最も大きい第２の物理ボリュームに割り当てた、前記複数の書出リストを生成するとともに、前記キャッシュ部にデータがキャッシュされていない論理ボリュームを、前記取得部で取得したデータサイズの大きい順に割り当てた読出リストを生成する生成部と、
前記複数の書出リストの各々について、前記書出リストの割り当て順に従って、前記キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から前記書出先の第２の物理ボリュームへ書き出す制御を行なう書出制御部と、
前記読出リストの割り当て順に従って、前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行なう読出制御部と、
前記読出制御部による１つの論理ボリュームの制御の完了に応じて、前記複数の書出リストのうちの前記読出制御部による制御が完了した論理ボリュームを含む書出リストの割り当て順を、前記読出制御部による制御が完了していない論理ボリュームよりも、前記読出制御部による制御が完了した論理ボリュームの方が先となるように変更する最適化部と、
をそなえることを特徴とする、制御装置。
【請求項５】
前記複数の論理ボリュームの各々のデータサイズと、前記複数の第２の物理ボリュームの各々の記憶領域の空き容量とに基づき、前記複数の書出リストの生成を行なうか否かを判定する判定部をさらにそなえ、
前記生成部は、前記判定部が前記複数の書出リストの生成を行なうと判定した場合に前記複数の書出リストの生成を行なうことを特徴とする、請求項１〜４のいずれか１項記載の制御装置。
【請求項６】
前記判定部は、前記実行要求における前記複数の論理ボリュームの設定順序で前記複数の第２の物理ボリュームへの書出処理を実行する場合に用いられる第２の物理ボリュームの数を算出し、前記算出した数が、前記複数の第２の物理ボリュームの各々の記憶領域の空き容量の合計値を前記複数の論理ボリュームのデータサイズの合計値で除算し小数点以下を切り上げた値よりも大きい場合に、前記複数の書出リストの生成を行なうと判定することを特徴とする、請求項５記載の制御装置。
【請求項７】
コンピュータに、
第１の物理ボリュームに格納される複数の論理ボリュームのデータを複数の第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記複数の論理ボリュームの各々のデータサイズを取得し、
前記第２の物理ボリュームごとに当該第２の物理ボリュームを書出先とする論理ボリュームを割り当てた複数の書出リストであって、キャッシュ部にデータがキャッシュされている複数の論理ボリュームのそれぞれを、前記取得したデータサイズの大きい順に、記憶領域の空き容量であって割り当て済みの論理ボリュームのデータサイズを減じた後の前記空き容量が最も大きい第２の物理ボリュームに割り当てた、前記複数の書出リストを生成するとともに、前記キャッシュ部にデータがキャッシュされていない論理ボリュームを前記取得したデータサイズの大きい順に割り当てた読出リストを生成し、
前記複数の書出リストの各々について、前記書出リストの割り当て順に従って、前記キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から前記書出先の第２の物理ボリュームへ書き出す制御を行ない、
前記読出リストの割り当て順に従って、前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行ない、
１つの論理ボリュームに対する前記読み出す制御の完了に応じて、前記読み出す制御が完了した論理ボリュームを含む、前記複数の論理ボリュームのうちの前記キャッシュ部にデータがキャッシュされている論理ボリュームのそれぞれを、前記取得したデータサイズの大きい順に、少なくとも前記書出処理が未完了である第２の物理ボリュームのうちの前記空き容量が最も大きい第２の物理ボリュームに割り当てることで、前記複数の書出リストのうちの少なくとも前記書出処理が未完了である書出リストを再生成する
処理を実行させることを特徴とする、制御プログラム。
【請求項８】
コンピュータに、
第１の物理ボリュームに格納される複数の論理ボリュームのデータを複数の第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記複数の論理ボリュームの各々のデータサイズを取得し、
前記第２の物理ボリュームごとに、当該第２の物理ボリュームを書出先とする論理ボリュームを、キャッシュ部に当該論理ボリュームのデータがキャッシュされているか否かを含む情報とともに割り当てた複数の書出リストであって、前記複数の論理ボリュームのそれぞれを、前記取得したデータサイズの大きい順に、記憶領域の空き容量であって割り当て済みの論理ボリュームのデータサイズを減じた後の前記空き容量が最も大きい第２の物理ボリュームに割り当てた、前記複数の書出リストを生成するとともに、前記キャッシュ部にデータがキャッシュされていない論理ボリュームを、前記取得したデータサイズの大きい順に割り当てた読出リストを生成し、
前記複数の書出リストの各々について、前記書出リストの割り当て順に従って、前記キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から前記書出先の第２の物理ボリュームへ書き出す制御を行ない、
前記読出リストの割り当て順に従って、前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行ない、
１つの論理ボリュームに対する前記読み出す制御の完了に応じて、前記複数の書出リストのうちの前記読み出す制御が完了した論理ボリュームを含む書出リストの割り当て順を、前記読み出す制御が完了していない論理ボリュームよりも、前記読み出す制御が完了した論理ボリュームの方が先となるように変更する
処理を実行させることを特徴とする、制御プログラム。
【請求項９】
コンピュータが、
第１の物理ボリュームに格納される複数の論理ボリュームのデータを複数の第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記複数の論理ボリュームの各々のデータサイズを取得し、
前記第２の物理ボリュームごとに当該第２の物理ボリュームを書出先とする論理ボリュームを割り当てた複数の書出リストであって、キャッシュ部にデータがキャッシュされている複数の論理ボリュームのそれぞれを、前記取得したデータサイズの大きい順に、記憶領域の空き容量であって割り当て済みの論理ボリュームのデータサイズを減じた後の前記空き容量が最も大きい第２の物理ボリュームに割り当てた、前記複数の書出リストを生成するとともに、前記キャッシュ部にデータがキャッシュされていない論理ボリュームを前記取得したデータサイズの大きい順に割り当てた読出リストを生成し、
前記複数の書出リストの各々について、前記書出リストの割り当て順に従って、前記キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から前記書出先の第２の物理ボリュームへ書き出す制御を行ない、
前記読出リストの割り当て順に従って、前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行ない、
１つの論理ボリュームに対する前記読み出す制御の完了に応じて、前記読み出す制御が完了した論理ボリュームを含む、前記複数の論理ボリュームのうちの前記キャッシュ部にデータがキャッシュされている論理ボリュームのそれぞれを、前記取得したデータサイズの大きい順に、少なくとも前記書出処理が未完了である第２の物理ボリュームのうちの前記空き容量が最も大きい第２の物理ボリュームに割り当てることで、前記複数の書出リストのうちの少なくとも前記書出処理が未完了である書出リストを再生成する
ことを特徴とする、制御方法。
【請求項１０】
コンピュータが、
第１の物理ボリュームに格納される複数の論理ボリュームのデータを複数の第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記複数の論理ボリュームの各々のデータサイズを取得し、
前記第２の物理ボリュームごとに、当該第２の物理ボリュームを書出先とする論理ボリュームを、キャッシュ部に当該論理ボリュームのデータがキャッシュされているか否かを含む情報とともに割り当てた複数の書出リストであって、前記複数の論理ボリュームのそれぞれを、前記取得したデータサイズの大きい順に、記憶領域の空き容量であって割り当て済みの論理ボリュームのデータサイズを減じた後の前記空き容量が最も大きい第２の物理ボリュームに割り当てた、前記複数の書出リストを生成するとともに、前記キャッシュ部にデータがキャッシュされていない論理ボリュームを、前記取得したデータサイズの大きい順に割り当てた読出リストを生成し、
前記複数の書出リストの各々について、前記書出リストの割り当て順に従って、前記キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から前記書出先の第２の物理ボリュームへ書き出す制御を行ない、
前記読出リストの割り当て順に従って、前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行ない、
１つの論理ボリュームに対する前記読み出す制御の完了に応じて、前記複数の書出リストのうちの前記読み出す制御が完了した論理ボリュームを含む書出リストの割り当て順を、前記読み出す制御が完了していない論理ボリュームよりも、前記読み出す制御が完了した論理ボリュームの方が先となるように変更する
ことを特徴とする、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御プログラム、及び制御方法に関する。
【背景技術】
【０００２】
テープライブラリと仮想テープ装置とをそなえる仮想テープシステムが知られている。テープライブラリは磁気テープカートリッジや光ディスクカートリッジ等の物理ボリューム（Physical Volume；以下、ＰＶと表記する）を複数収納する。
【０００３】
仮想テープ装置はホスト装置とテープライブラリとの間に設けられ、ホスト装置で認識することのできるボリュームである論理ボリューム（Logical Volume；以下、ＬＶと表記する）を格納するＴＶＣ（Tape Volume Cache）をそなえる。なお、ＴＶＣは例えばＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成のストレージ装置等により実現される。
【０００４】
図２３に例示するように、仮想テープシステム１００は、仮想テープ装置２００のＴＶＣ２１０からＬＶ２２０（ＬＶ１〜ＬＶ３と表記）をテープライブラリ３００のＰＶ３１０に書き出し、当該ＰＶ３１０を搬出するボリューム搬出（エクスポート）処理を行なうことができる。エクスポート処理により、ＬＶ２２０のデータをテープライブラリ３００外で保管したり他のテープライブラリで利用することが可能となる。
【０００５】
エクスポート処理の要求は、図２４に例示するように、ホスト装置４００又は他の管理サーバ等から発行される。エクスポート要求にはＬＶリスト４１０が含まれる。ＬＶリスト４１０は例えばテキストファイルである。仮想テープ装置２００は、ＬＶリスト４１０で指定されるＬＶ２２０をＬＶ３２０として、例えばＬＶリスト４１０に記述された順序（図２４の矢印（１）〜（３）参照）でエクスポート用のＰＶ３１０に格納する。
【０００６】
なお、図２５に例示するように、ＬＶリスト４１０で指定されたＬＶ２２０は、データがＴＶＣ２１０に存在するオンキャッシュの状態（例えばＬＶ２及びＬＶ３）と、データがＴＶＣ２１０に存在しないオフキャッシュの状態（例えばＬＶ１）とがある。
【０００７】
オフキャッシュのＬＶ１については、仮想テープ装置２００は当該ＬＶ１が保存（マイグレーション）されている保存用のＰＶ３１０からＬＶ１をＴＶＣ２１０に読み出すリコール処理を行なう（図２５の矢印（１）参照）。そして、仮想テープ装置２００はリコールによりＴＶＣ２２０に読み出したＬＶ１をエクスポート用のＰＶ３１０に書き込む（図２５の矢印（２）参照）。
【０００８】
一方、オンキャッシュのＬＶ２及びＬＶ３については、仮想テープ装置２００は当該ＬＶ２及びＬＶ３をＴＶＣ２１０から直接エクスポート用のＰＶ３１０に書き込みを行なう（図２５の矢印（３）及び（４）参照）。
【０００９】
なお、関連する技術として、エクスポート要求に応じて、エクスポート要求に指定された順序とは関係なく、エクスポート対象のＬＶのうちＴＶＣにキャッシュされているＬＶのデータをＰＶに格納する技術が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１３−１６１２３４号公報
【特許文献２】特開平９−１６０７２７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述したエクスポート処理では、仮想テープ装置２００は格納対象のＬＶ２２０のデータサイズを考慮せずに、ＬＶリスト４１０で指定された順序に従って格納対象のＬＶ２２０を指定されたＰＶ３１０に格納する。そして、仮想テープ装置２００は、次に格納するＬＶ２２０のデータサイズがＰＶの残容量を超えることを検知すると、当該ＰＶ３１０に対するエクスポート処理を終了する。この場合オペレータは別のＰＶ３１０を指定してＬＶリスト４１０の続きからエクスポートを実行することになる。
【００１２】
例えば図２６に示すように、エクスポート用のＰＶ３１０が３巻（ＰＶ１、ＰＶ２、及びＰＶ３と表記）登録されており、ＰＶ１巻あたりのデータ格納可能サイズが全て１００ＧＢ（バイト）であるとする。また、ＬＶリスト４１０で指定されたＬＶ２２０及びその順序は、ＬＶ１〜ＬＶ５であり、データサイズはそれぞれ１０ＧＢ、１０ＧＢ、９０ＧＢ、７０ＧＢ、２０ＧＢ（総データサイズ２００ＧＢ）であるものとする。
【００１３】
この場合、１番目のエクスポート処理では、仮想テープ装置２００はＰＶ１にＬＶ１及びＬＶ２を格納して終了となる。ＬＶ３のデータサイズ（９０ＧＢ）がＰＶ１の空き容量（８０ＧＢ）を超えるためである。２番目のエクスポート処理では、仮想テープ装置２００はＰＶ２にＬＶ３を格納して終了となる。ＬＶ４のデータサイズ（７０ＧＢ）がＰＶ２の空き容量（１０ＧＢ）を超えるためである。３番目のエクスポート処理では、仮想テープ装置２００はＰＶ３にＬＶ４及びＬＶ５を格納し、ＰＶ３の空き容量が１０ＧＢの状態で、全てのＬＶ２２０の格納が終了する。
【００１４】
図２６の例では、ＬＶリスト４１０で指定されたＬＶ２２０（総データサイズ：２００ＧＢ）を全てＰＶ３１０にエクスポートするために、１巻のデータ格納サイズが１００ＧＢであるＰＶ３１０が３巻用いられることになる。
【００１５】
このように、ＬＶリスト４１０に複数のＬＶ２２０が設定された順序によっては、ＬＶリスト４１０で指定されたＬＶ２２０の総データサイズを格納するのに十分なＰＶ３１０の本数よりも多くの本数が用いられてしまう場合がある。
【００１６】
１つの側面では、本発明は、仮想テープ装置の制御装置による論理ボリュームの書出処理における、書出先の物理ボリュームの数を最適にすることを目的とする。
【課題を解決するための手段】
【００１７】
１つの態様では、本件の制御装置は、取得部と、生成部と、書出制御部と、読出制御部と、最適化部とをそなえる。前記取得部は、第１の物理ボリュームに格納される複数の論理ボリュームのデータを複数の第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記複数の論理ボリュームの各々のデータサイズを取得する。また、前記生成部は、前記第２の物理ボリュームごとに当該第２の物理ボリュームを書出先とする論理ボリュームを割り当てた複数の書出リストであって、前記複数の論理ボリュームのうちのキャッシュ部にデータがキャッシュされている複数の論理ボリュームのそれぞれを、前記取得部で取得したデータサイズの大きい順に、記憶領域の空き容量であって割り当て済みの論理ボリュームのデータサイズを減じた後の前記空き容量が最も大きい第２の物理ボリュームに割り当てた、複数の前記書出リストを生成する。さらに、前記生成部は、前記複数の論理ボリュームのうちの前記キャッシュ部にデータがキャッシュされていない論理ボリュームを、前記取得部で取得したデータサイズの大きい順に割り当てた読出リストを生成する。さらに、前記書出制御部は、複数の前記書出リストの各々について、前記書出リストの割り当て順に従って、前記キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から前記書出先の第２の物理ボリュームへ書き出す制御を行なう。また、前記読出制御部は、前記読出リストの割り当て順に従って、前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行なう。さらに、前記最適化部は、前記読出制御部による１つの論理ボリュームの制御が完了した論理ボリュームを含む、前記複数の論理ボリュームのうちの前記キャッシュ部にデータがキャッシュされている論理ボリュームのそれぞれを、前記取得部で取得したデータサイズの大きい順に、少なくとも前記書出処理が未完了である第２の物理ボリュームのうちの前記空き容量が最も大きい第２の物理ボリュームに割り当てることで、前記複数の書出リストのうちの少なくとも前記書出処理が未完了である書出リストを再生成する。
また、他の１つの態様では、本件の制御装置は、取得部と、生成部と、書出制御部と、読出制御部と、最適化部とをそなえる。前記取得部は、第１の物理ボリュームに格納される複数の論理ボリュームのデータを複数の第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記複数の論理ボリュームの各々のデータサイズを取得する。また、前記生成部は、前記第２の物理ボリュームごとに、当該第２の物理ボリュームを書出先とする論理ボリュームを、キャッシュ部に当該論理ボリュームのデータがキャッシュされているか否かを含む情報とともに割り当てた複数の書出リストであって、前記複数の論理ボリュームのそれぞれを、前記取得部で取得したデータサイズの大きい順に、記憶領域の空き容量であって割り当て済みの論理ボリュームのデータサイズを減じた後の前記空き容量が最も大きい第２の物理ボリュームに割り当てた、複数の前記書出リストを生成する。さらに、前記生成部は、前記複数の論理ボリュームのうちの前記キャッシュ部にデータがキャッシュされていない論理ボリュームを、前記取得部で取得したデータサイズの大きい順に割り当てた読出リストを生成する。さらに、前記書出制御部は、複数の前記書出リストの各々について、前記書出リストの割り当て順に従って、前記キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から前記書出先の第２の物理ボリュームへ書き出す制御を行なう。また、前記読出制御部は、前記読出リストの割り当て順に従って、前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行なう。さらに、前記最適化部は、前記読出制御部による１つの論理ボリュームの制御の完了に応じて、前記複数の書出リストのうちの前記読出制御部による制御が完了した論理ボリュームを含む書出リストの割り当て順を、前記読出制御部による制御が完了していない論理ボリュームよりも、前記読出制御部による制御が完了した論理ボリュームの方が先となるように変更する。
【発明の効果】
【００１８】
１つの側面では、仮想テープ装置の制御装置による論理ボリュームの書出処理における、書出先の物理ボリュームの数を最適にすることができる。
【図面の簡単な説明】
【００１９】
【図１】一実施形態の一例としての仮想テープシステムの構成例を示す図である。
【図２】仮想テープシステムの機能構成例を示す図である。
【図３】仮想テープ装置のエクスポート制御に係る機能構成例について説明する。
【図４】ＬＶ情報テーブルのデータ構成例を示す図である。
【図５】ＬＶリストのデータ構成例を示す図である。
【図６】ＴＲ−ＰＶＧテーブルのデータ構成例を示す図である。
【図７】ソート済ＬＶリストのデータ構成例を示す図である。
【図８】ソート済ＬＶリストのデータ構成の他の例を示す図である。
【図９】サブＬＶリストのデータ構成例を示す図である。
【図１０】サブＬＶリストに設定されたデータの一例を示す図である。
【図１１】サブＬＶリスト（リコール）のデータ構成例を示す図である。
【図１２】エクスポート用ＰＶにＬＶが格納された状態の一例を示す図である。
【図１３】一実施形態に係る仮想テープシステムにおけるエクスポート制御の動作例を説明するフローチャートである。
【図１４】一実施形態に係る仮想テープシステムにおけるエクスポート処理の動作例を説明するフローチャートである。
【図１５】一実施形態に係る仮想テープシステムにおけるリコール処理の動作例を説明するフローチャートである。
【図１６】一実施形態に係る仮想テープシステムにおける、ＬＶリストに基づくエクスポート処理及びリコール処理の動作例を説明するフローチャートである。
【図１７】第１変形例の第１の手法に係るソート済ＬＶリストに設定されたデータの一例を示す図である。
【図１８】第１変形例の第１の手法に係るサブＬＶリストに設定されたデータの一例を示す図である。
【図１９】第２変形例に係るサブＬＶリストに設定されたデータの一例を示す図である。
【図２０】第２変形例に係る仮想テープシステムにおけるエクスポート処理の動作例を説明するフローチャートである。
【図２１】第２変形例に係る仮想テープシステムにおけるリコール処理の動作例を説明するフローチャートである。
【図２２】図１に示す仮想テープ装置がそなえるＩＣＰ、ＩＤＰ、及びＶＬＰのハードウェア構成例を示す図である。
【図２３】仮想テープシステムの構成例を示す図である。
【図２４】仮想テープシステムにおけるエクスポート処理を説明する図である。
【図２５】仮想テープシステムにおけるエクスポート処理及びリコール処理の一例を示す図である。
【図２６】エクスポート用ＰＶにＬＶが格納された状態の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００２１】
〔１〕一実施形態
〔１−１〕仮想テープシステムの構成例
図１は一実施形態の一例としての仮想テープシステム１の構成例を示す図であり、仮想テープシステム１にそなえられるハードウェアの構成及び接続関係の一例を示す。図２は仮想テープシステム１の機能構成例を示す図である。仮想テープシステム１は、ホスト装置４に対して仮想テープライブラリを提供するシステムであり、例示的に、仮想テープ装置２及びテープライブラリ３をそなえる。
【００２２】
ホスト装置４は、仮想テープ装置２の仮想ドライブ２０を介したテープライブラリ３へのアクセスを行なう情報処理装置の一例である。ホスト装置４によるアクセスには、仮想ドライブ２０からのデータの読み出し要求、仮想ドライブ２０へのデータの書き込み要求、及びエクスポート要求の発行、並びにこれらの要求に対する応答の受信が含まれてもよい。
【００２３】
なお、ホスト装置４は、例えばバックアップソフトウェア４０（図２参照）を実行するメインフレームであってもよい。バックアップソフトウェア４０は、図２に示すように、エクスポート要求を仮想テープ装置２へ発行することができる。なお、アクセス要求には、例えば論理ボリューム（ＬＶ）のデータをエクスポート用の物理ボリューム（ＰＶ）にエクスポートするエクスポート指示とＬＶリスト４１とが含まれる。
【００２４】
テープライブラリ３は、ＰＶを複数収納し、仮想テープ装置２からの指示に応じてＰＶに対するアクセスを行なうことができる。テープライブラリ３におけるＰＶのアクセスには、ＬＶのデータをＰＶにバックアップすることが含まれてもよい。なお、ＰＶはデータを記憶する記録媒体の一例である。ＰＶとしては、ＬＴＯ（Linear Tape Open）カートリッジ等の磁気テープや、光ディスクカートリッジ等が挙げられる。
【００２５】
図１に示すように、テープライブラリ３は、例示的に、複数（図１の例では４つ）のドライブ３１ａ〜３１ｄと、１つ以上（図１の例では１つ）のロボット３２とをそなえる。ドライブ３１ａ〜３１ｄはそれぞれＰＶに対するデータの記録及び再生等を行なう媒体処理装置の一例であり、ロボット３２は媒体カートリッジのピックアップ、搬送、ドライブ３１への挿入等を行なう運搬装置の一例である。なお、ドライブ３１ａ〜３１ｄの個数やロボット３２の個数は例示であり、それぞれ任意の個数がテープライブラリ３にそなえられてもよい。
【００２６】
なお、符号が数字及びアルファベットの組み合わせで表される装置のうち、数字部分が共通の装置は同様の機能をそなえることができる。以下の説明において、数字部分が共通の装置を区別しない場合には、符号として単に数字部分を用いて表記する。例えばドライブ３１ａ〜３１ｄを区別しない場合には、単にドライブ３１と表記する。
【００２７】
仮想テープ装置２は、ホスト装置４とテープライブラリ３との間に設けられ、ホスト装置４からの要求に応じてテープライブラリ３に対する種々の指示を行なうことができる。
【００２８】
図１に示すように、仮想テープ装置２は、例示的に、ＴＶＣ２１ａ及び２１ｂ、ＦＣ（Fibre Channel）スイッチ２２ａ及び２２ｂ、ＬＡＮ（Local Area Network）スイッチ２３ａ及び２３ｂ、並びにコンソール２４ａ及び２４ｂをそなえる。また、仮想テープ装置２は、例示的に、ＴＢＰ（Tie Breaker Processor）２５、並びにＳＡＳ（Service Access System）２６をそなえる。さらに、仮想テープ装置２は、例示的に、ＩＣＰ（Integrated Channel Processor）２７ａ及び２７ｂ、ＩＤＰ（Integrated Device Processor）２８ａ及び２８ｂ、並びにＶＬＰ（Virtual Library Processor）２９ａ及び２９ｂをそなえる。
【００２９】
ＴＶＣ２１は、キャッシュ部の一例であり、ホスト装置４とテープライブラリ３との間のアクセスに係るＬＶのデータを記憶するストレージ装置の一例である。なお、ＬＶはホスト装置４で認識することのできるボリュームである。
【００３０】
ＴＶＣ２１ａ及び２１ｂは、それぞれＨＤＤ（Hard Disk Drive）等の磁気ディスク装置及びＳＳＤ（Solid State Drive）等の半導体ドライブ装置の少なくとも１つ以上の記憶装置を含んでもよく、ＴＶＣ２１がそれぞれ又は協働してＲＡＩＤを構成することができる。
【００３１】
ＦＣスイッチ２２は、ＦＣケーブル等を介して接続されたＳＡＮ（Storage Area Network）等のネットワークにおける装置間の通信経路の切り替えを行ない、これらの装置を相互に通信可能に接続することができる。ＦＣを介した通信では、例えばＬＶ又はＰＶ等のデータ転送が行なわれる。なお、ＦＣ接続される区間は、図１の例では実線で示す区間となる。例示的に、ＴＶＣ２１−ＦＣスイッチ２２間、ＦＣスイッチ２２間、ＦＣスイッチ２２−ＩＣＰ２７間、並びにＦＣスイッチ２２−ＶＬＰ２９間がＦＣ接続される。また、ＩＣＰ２７−ホスト装置４間、ＩＤＰ２８−ドライブ３１間、並びにＩＤＰ２８ａ−ロボット３２間についてもＦＣ接続されてもよい。
【００３２】
ＬＡＮスイッチ２３は、ＬＡＮケーブル等を介して接続されたＬＡＮにおける装置間の通信経路の切り替えを行ない、これらの装置を相互に通信可能に接続することができる。ＬＡＮを介した通信では、例えばコマンドやデータ等の制御情報等の転送が行なわれる。なお、ＬＡＮ接続される区間は、図１の例では破線で示す区間となる。例示的に、ＴＶＣ２１、ＦＣスイッチ２２、ＴＢＰ２５、ＳＡＳ２６、ＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９の各々が、ＬＡＮスイッチ２３とＬＡＮ接続される。また、ＶＬＰ２９−ホスト装置４間についてもＬＡＮ接続されてもよい。
【００３３】
コンソール２４は、ＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９等の情報処理装置のうちの操作対象となる装置に対するユーザインタフェースを提供する。コンソール２４は、例示的に、ＣＰＵ（Central Processing Unit）等のプロセッサ及びＲＡＭ（Random Access Memory）等のメモリのほか、キーボード等の入力部及びＬＣＤ（Liquid Crystal Display）等の出力部をそなえる。コンソール２４と各装置との間は、例えばＫＶＭ（Keyboard, Video and Mouse）スイッチ等の入出力インタフェースを介して接続されてもよい。
【００３４】
なお、図１に例示するように、ＦＣスイッチ２２、ＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９等は冗長構成である。ＦＣスイッチ２２、ＩＣＰ２７、及びＩＤＰ２８については、並列処理による高速化の観点から、双方の装置がそれぞれ動作してもよい。或いは、いずれか一方（例えば符号に“ａ”が付された装置；以下０系と表記する）が運用系として動作し、他方（例えば符号に“ｂ”が付された装置；以下１系と表記する）が待機系として動作してもよい。
【００３５】
また、ＶＬＰ２９ａ及び２９ｂはいずれか一方（例えば０系のＶＬＰ２９ａ）がマスタとして動作し、他方（例えば１系のＶＬＰ２９ｂ）がスレーブとして待機してもよい。この場合、スレーブのＶＬＰ２９ｂは、マスタのＶＬＰ２９ａに異常が発生したときに自身がマスタに昇格してＶＬＰ２９ａの処理を引き継ぐことができる。
【００３６】
このような冗長構成の場合、プロセッサ間、例えば冗長化された装置間の専用通信回線が全て切断され、他方のプロセッサの状態が不明になるスプリットブレインが発生する可能性がある。スプリットブレイン状態では、冗長化された装置が互いに相手の装置の故障を検出する結果、システムの動作が不安定又は動作が困難になり得る。
【００３７】
ＴＢＰ２５は、上述した系統等のサイトごとの装置の動作を監視し、マスタ又は運用系とスレーブ又は待機系との切り替えを制御することができる。これにより、サイト間のＬＡＮ接続及びＳＡＮ接続においてスプリットプレインが発生することを抑制又は発生後に解消することができる。
【００３８】
ＳＡＳ２６は、仮想テープ装置２の診断及び保守等を行なうことができる。ＳＡＳ２６による処理対象の装置としては、ＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９等が挙げられる。
【００３９】
ＩＣＰ２７は、ホスト装置４との通信を行なうＨＢＡ（Host Bus Adapter）を搭載し、例えばＦＣ、ＦＣＬＩＮＫ（登録商標）、ＯＣＬＩＮＫ（登録商標）等のストレージ接続インタフェースを用いてホスト装置４と接続される。ＨＢＡとしては、ＦＣ等に準拠したインタフェースカードが挙げられる。
【００４０】
ＩＣＰ２７によるホスト装置４との通信には、ホスト装置４からのライト要求に係るライトデータの受信、並びにホスト装置４からのリード要求に係るリードデータの送信等が含まれてもよい。ライトデータの受信及びリードデータの送信には、ＴＶＣ２１へのライトデータの書き込み及びＴＶＣ２１からのリードデータの読み出しが含まれてもよい。
【００４１】
また、仮想ドライブ２０のエミュレーション等の機能（図２参照）は、ＩＣＰ２７により実現されてもよい。
【００４２】
ＩＤＰ２８は、ＶＬＰ２９からの指示に応じて、ＦＣを介してＴＶＣ２１及びテープライブラリ３に対する種々の制御を行なうことができる。ＩＤＰ２８による制御には、例えばテープライブラリ３に対するライブラリ制御及びドライブ制御が含まれてもよい（図２参照）。
【００４３】
ライブラリ制御では、ＩＤＰ２８は、ＶＬＰ２９からのマウント指示又はアンマウント指示に応じて、テープライブラリ３のロボット３２を制御し、指示されたＰＶのマウント処理又はアンマウント処理を実行することができる。
【００４４】
ドライブ制御には、テープライブラリ３に格納されたＰＶに対するリード制御及びライト制御が含まれてもよい。
【００４５】
リード制御では、ＩＤＰ２８は、ＶＬＰ２９からのリード指示に応じて、指示されたＬＶのデータをドライブ３１にマウントされたＰＶから読み出し、読み出したＬＶのデータをＴＶＣ２１に書き込むことができる。なお、ＴＶＣ２１に書き込まれたＬＶはオンキャッシュの状態であるといえる。
【００４６】
ライト制御では、ＩＤＰ２８は、ＶＬＰ２９からのライト指示に応じて、指示されたＬＶのデータをＴＶＣ２１から読み出し、読み出したＬＶのデータをドライブ３１にマウントされたＰＶに書き込むことができる。なお、ライト制御において、ＴＶＣ２１からＬＶのデータが読み出された後に当該データがＴＶＣ２１から削除されてもよい。ＴＶＣ２１からデータを削除されたＬＶはオフキャッシュの状態であるといえる。
【００４７】
換言すれば、ＩＤＰ２８は、ＴＶＣ２１に格納されたＬＶのデータをテープライブラリ３のドライブ３１にストアするストア処理、及び、テープライブラリ３のＰＶからＬＶのデータを読み出してＴＶＣ２１上にリストアするリストア処理を行なうことができる。
【００４８】
ＶＬＰ２９は、ＬＡＮカード等のネットワークインタフェースを介してホスト装置４と接続され、ホスト装置４との通信、及び仮想テープ装置２の資源管理等の制御を行なうことができる。
【００４９】
ＶＬＰ２９によるホスト装置４との通信には、ホスト装置４から仮想ドライブ２０に対して送信されるリード要求、ライト要求、及びエクスポート要求等のアクセス要求の受け付け、並びにアクセス要求に対する応答の送信が含まれてもよい。
【００５０】
一例として、ＶＬＰ２９は、ホスト装置４からの読み込みの要求に応じて、リード対象のＬＶのデータを仮想ドライブ２０へリストアするリストア指示をＩＤＰ２８に発行することができる。
【００５１】
他の例として、ＶＬＰ２９は、ホスト装置４からのライト要求やエクスポート要求に応じて、ライト対象又はエクスポート対象のＬＶのデータをＰＶへストアするストア指示をＩＤＰ２８に発行することができる。なお、オフキャッシュの場合、ストア指示には、事前に対象のＬＶのデータをオンキャッシュにするリストア指示が含まれ得る。
【００５２】
換言すれば、ＶＬＰ２９は、ホスト装置４に対する、テープライブラリ３のドライブ３１やロボット３２等の制御に関するインタフェースを受け持ち、ホスト装置４からの要求に応じてＩＣＰ２７が提供する仮想ドライブ２０の制御（図２参照）を行なうといえる。
【００５３】
ＶＬＰ２９による仮想テープ装置２の資源管理は、ＬＶ及びＰＶに関するデータベースの管理により行われてもよい。ＶＬＰ２９が管理するデータベースについては後述する。
【００５４】
〔１−２〕仮想テープ装置の機能構成例
次に、図３を参照して仮想テープ装置２、特にＶＬＰ２９のエクスポート制御に係る機能構成例について説明する。
【００５５】
仮想テープ装置２のエクスポート制御に着目すると、図３に示すように、ＶＬＰ２９は、例示的に、メモリ部１１及びエクスポート制御部１２をそなえる。なお、メモリ部１１はＶＬＰ２９がそなえるメモリにより実現されてもよく、エクスポート制御部１２はＶＬＰ２９がそなえるＣＰＵによりプログラムが実行されることにより実現されてもよい。
【００５６】
なお、以下の説明において、ＴＶＣ２１に格納されたオンキャッシュのＬＶをＬＶ５１と表記し、ＴＶＣ２１には格納されていないオフキャッシュのＬＶをＬＶ５２と表記し、ＬＶ５１及び５２を総称してＬＶ５０と表記する。換言すれば、ＬＶ５０は仮想テープ装置２が管理する全てのＬＶであるといえる。さらに、テープライブラリ３にそなえられ、ＬＶ５０のデータを格納する保存用（データ蓄積用）のＰＶをＰＶ６１と表記し、テープライブラリ３にそなえられたエクスポート用のＰＶをＰＶ６２と表記する。
【００５７】
メモリ部１１は、例示的に、ＬＶ情報テーブル１１１、ＬＶリスト１１２、ＴＲ−ＰＶＧ（Transfer - Physical Volume Group）テーブル１１３、ソート済ＬＶリスト１１４、サブＬＶリスト１１５、及びサブＬＶリスト（リコール）１１６の各情報を記憶する記憶領域を有する。メモリ部１１に格納される情報の説明についてはエクスポート制御部１２の説明の中で行なう。
【００５８】
エクスポート制御部１２は、例示的に、要求受付部１２１、判定処理部１２２、及び処理実行部１２３をそなえる。
【００５９】
要求受付部１２１は、ホスト装置４から受信したエクスポート要求の受付処理を行なうことができる。受付処理には、エクスポート要求に係る情報の取得処理と、後述する最適化判定部１２２による判定処理に用いられるＰＶ巻数の算出処理とが含まれてもよい。
【００６０】
取得処理では、要求受付部１２１は、例えばエクスポート対象のＬＶ５０6のデータサイズ及びＰＶ６２の１巻あたりのデータ格納サイズをそれぞれＬＶ情報テーブル１１１（図４参照）及びＴＲ−ＰＶＧテーブル１１３（図６参照）から取得することができる。
【００６１】
図４はＬＶ情報テーブル１１１のデータ構成例を示す図である。図４に示すように、ＬＶ情報テーブル１１１には、例示的に、ＬＶ５０のＬＶ名、ＬＶ５０に対応するＰＶ６１のＰＶ名、ＴＶＣ２１におけるＬＶ５０のキャッシュ状態、ＬＶ５０のデータサイズ、及びＬＶ５０の最終更新時刻が設定される。ＬＶ情報テーブル１１１は、ホスト装置４からのライト要求やリード要求等に伴いＬＶ５０やＴＶＣ２１の状態が変化する際に、ＶＬＰ２９により参照及び更新されてもよい。
【００６２】
ＬＶ名には、例えばＬＶ５０を一意に識別可能な識別子（ＩＤ；Identifier）等の識別情報が設定され、ＰＶ名には、ＬＶ５０のデータが格納されているＰＶ６１の識別情報が設定される。ＴＶＣにおけるキャッシュ状態には、例えばオンキャッシュ又はオフキャッシュを示す情報が設定される。換言すれば、ＬＶ情報テーブル１１１は、ＴＶＣ２１及びＰＶ６１のうちのＬＶ５０のデータの書出先を表す情報であるといえる。
【００６３】
要求受付部１２１は、ＬＶ５０のデータサイズの取得処理において、図４に例示するＬＶ情報テーブル１１１を参照し、ＬＶリスト４１に含まれる各ＬＶ５０について対応するデータサイズを取得することができる。このとき、要求受付部１２１により、取得したデータサイズの項目をＬＶリスト４１に付加したＬＶリスト１１２が生成され、当該ＬＶリスト１１２の情報がメモリ部１１の記憶領域に格納されてもよい。
【００６４】
図５はＬＶリスト１１２のデータ構成例を示す図である。図５に示すように、ＬＶリスト１１２には、例示的に、ＬＶ名、及びＬＶ５０のデータサイズが設定される。図５の例では、ＬＶリスト４１で指定されたＬＶ５０及び設定順序は、ＬＶ１〜ＬＶ５であり、データサイズはそれぞれ１０ＧＢ、１０ＧＢ、９０ＧＢ、７０ＧＢ、２０ＧＢ（総データサイズ２００ＧＢ）である。
【００６５】
図６はＴＲ−ＰＶＧテーブル１１３のデータ構成例を示す図である。図６に示すように、ＴＲ−ＰＶＧテーブル１１３には、例示的に、エクスポートのグループの識別情報、エクスポートに用いるＰＶ６２のＰＶ名、及び当該ＰＶ６２のデータ格納サイズが設定される。エクスポートのグループの識別情報は、例えばホスト装置４から受信するエクスポート要求又はＬＶリスト４１等と対応付けられる識別子である。データ格納サイズはＰＶ６２に格納可能なデータサイズである。図６の例では、ＰＶ１及びＰＶ２のデータ格納サイズがいずれも１００ＧＢである。
【００６６】
なお、ＴＲ−ＰＶＧテーブル１１３は、エクスポート用のＰＶ６２のプールであり、エクスポートを実施するオペレータ等により予めエクスポート用のＰＶ６２が登録されてもよい。また、ホスト装置４からのエクスポート指示には、ＴＲ−ＰＶＧテーブル１１３に登録済のグループ又はＰＶ６２がオペレータにより指定されてもよい。
【００６７】
換言すれば、要求受付部１２１は、第１のＰＶ６１に格納されるＬＶ５０のデータを第２のＰＶ６２へ書き出す書出処理の実行要求を受信した場合に、ＬＶ５０の各々のデータサイズを取得する取得部の一例である。
【００６８】
ＰＶ巻数の算出処理では、要求受付部１２１は、例えば取得処理で取得したＬＶ５０のデータサイズとＰＶ６２のデータ格納サイズとに基づき、格納容量及び格納順序のそれぞれの観点から、エクスポートで用いられるＰＶ巻数を算出することができる。
【００６９】
格納容量の観点で用いられるＰＶ巻数（Ｘ）は、ＬＶリスト４１で指定されたＬＶ５０の総データサイズを格納するのに十分なＰＶ６２の本数を示す値であり、例えば整数値である。
【００７０】
Ｘの値は、例えばＬＶリスト４１で指定された全ＬＶ５０のデータサイズの合算値を、ＰＶ６２の１巻あたりのデータ格納サイズで除算し、小数点以下を切り上げることにより求めることができる。なお、ＰＶ６２の１巻あたりのデータ格納サイズは、例えばエクスポートのグループに含まれるＰＶ６２のデータ格納サイズの平均値を算出することにより求めることができる。
【００７１】
格納順序の観点で用いられるＰＶ巻数（Ｙ）は、ＬＶリスト４１に設定されたＬＶ５０の設定順序通りにエクスポートを行なった場合に用いられるＰＶ６２の本数を示す値であり、例えば整数値である。
【００７２】
Ｙの値は、例えば以下の（ａ）〜（ｃ）の手順により求めることができる。
（ａ）ＬＶリスト４１内のＬＶ５０の設定順序に従いＬＶ５０のデータサイズを合算し、合算値がＰＶ６２の１巻あたりのデータ格納サイズを超えたときに＋１をカウントする。
（ｂ）合算値がデータ格納サイズを超えたときのＬＶ５０をスタートとして当該ＬＶ５０以降のデータサイズを合算し、合算値がデータ格納サイズを超えたときに＋１をカウントする。
（ｃ）（ｂ）をＬＶリスト４１で指定された全てのＬＶ５０について実行し、最終的なカウント値（整数値）をＰＶ巻数Ｙとして得る。
【００７３】
判定処理部１２２は、要求受付部１２１が算出したＰＶ巻数Ｘ及びＹに基づいて、エクスポートの最適化を行なうか否かの判定処理、及び最適化を行なうと判定した場合の最適化前処理を行なうことができる。
【００７４】
ここで、エクスポートの最適化には、エクスポート対象のＬＶ５０のデータサイズに基づいて、エクスポート処理で用いられるＰＶ６２の本数が最適になるように、ＬＶ５０のエクスポート処理の実行順序を制御することが含まれる。ＰＶ６２の最適な本数とは、例えば格納容量の観点でＬＶリスト４１で指定されたＬＶ５０の総データサイズを格納するのに十分なＰＶ６２の本数とすることができる。
【００７５】
上述のように、ホスト装置４から送信されるＬＶリスト４１では、エクスポート対象の複数のＬＶ５０が指定され得る。しかし、ＬＶリスト４１におけるＬＶ５０の設定順序は、ＰＶ６２への格納順序を制限するものではない。
【００７６】
換言すれば、エクスポート処理では、指定された複数個のＬＶ５０をエクスポート用のＰＶ６２に格納すればよく、エクスポートの最適化によってＬＶ５０のエクスポート処理の実行順序を制御しても、ホスト装置４から要求されたエクスポート指示に反することにはならない。
【００７７】
最適化の判定処理では、判定処理部１２２は、ＰＶ巻数ＸとＰＶ巻数Ｙとを比較し、ＹがＸよりも大きい場合に、最適化を行なうと判定することができる。
【００７８】
最適化を行なうと判定した場合、判定処理部１２２は、最適化前処理として、ＬＶリスト１１２をデータサイズに基づき降順でソートしてソート済ＬＶリスト１１４（“LVLIST-Sorted”）を作成し、当該ソート済ＬＶリスト１１４の情報をメモリ部１１の記憶領域に格納することができる。
【００７９】
図７はソート済ＬＶリスト１１４のデータ構成例を示す図である。図７の例では、ソート後のＬＶ５０は、ＬＶ３、ＬＶ４、ＬＶ５、ＬＶ１、ＬＶ２であり、データサイズはそれぞれ９０ＧＢ、７０ＧＢ、２０ＧＢ、１０ＧＢ、１０ＧＢである。なお、図８に例示するように、ＬＶ５０ごとにオンキャッシュ又はオフキャッシュを示す情報がさらに設定されたソート済ＬＶリスト１１４′が作成されてもよい。
【００８０】
判定処理において、ＹがＸ以下である場合（現実的にはＸとＹとが等しい場合）、ＬＶリスト４１又はＬＶリスト１１２で指定された順序でＬＶ５０のエクスポート処理を行なったとしても、使用されるＰＶ巻数は最小限で済む。この場合、判定処理部１２２は最適化を行なわないと判定することができる。
【００８１】
以上のように、要求受付部１２１及び判定処理部１２２は、ＬＶ５０の各々のデータサイズと、第２のＰＶ６２の各々の記憶領域の空き容量とに基づき、後述するサブＬＶリスト１１５の生成を行なうか否かを判定する判定部の一例である。この判定では、判定部は、エクスポート要求におけるＬＶ５０の設定順序で第２のＰＶ６２への書出処理を実行する場合に用いられる第２のＰＶ６２の数を算出することができる。また、判定部は、算出した数が、第２のＰＶ６２の各々の記憶領域の空き容量の合計値をＬＶ５０のデータサイズの合計値で除した値よりも大きい場合に、サブＬＶリスト１１５の生成を行なうと判定することができる。
【００８２】
処理実行部１２３は、判定処理部１２２の判定結果に応じて、ＬＶリスト１１２又はソート済ＬＶリスト１１４に基づくエクスポート処理及びリコール処理を実行することができる。このため、処理実行部１２３は、例示的に、エクスポート処理部１２４及びリコール処理部１２５をそなえる。
【００８３】
判定処理部１２２が最適化を行なわないと判定した場合、処理実行部１２３による処理では、例えばＬＶリスト４１内のＬＶ５０の設定順序に基づき、エクスポート処理部１２４によるエクスポート処理及び必要に応じてリコール処理部１２５によるリコール処理が行なわれる。
【００８４】
一例として、処理実行部１２３は、ＬＶリスト１１２に基づき、上述のように、エクスポート対象のＬＶ５０についてＰＶ６２へのストア指示をＩＤＰ２８に発行することができる。
【００８５】
エクスポート対象がオンキャッシュのＬＶ５１である場合、ストア指示には、例えばドライブ３１へのＰＶ６２のマウント指示、ＴＶＣ２１からＰＶ６２へのＬＶ５１のライト指示、及びライト後のＰＶ６２のアンマウント指示等が含まれ得る。これらのオンキャッシュに関わる指示はエクスポート処理部１２４から発行されてもよい。
【００８６】
また、ストア指示には、エクスポート対象がオフキャッシュのＬＶ５２である場合、オンキャッシュの場合のマウント指示の前に、オフキャッシュのＬＶ５２のデータをＴＶＣ２１にロードするためのリストア指示が含まれ得る。リストア指示には、リード要求の場合と同様に、ＬＶ５２のデータを格納するＰＶ６１のドライブ３１へのマウント指示、ＰＶ６１からＴＶＣ２１へのＬＶ５２のデータのリード（読み込み）指示、及びリード後のＰＶ６１のアンマウント指示等が含まれ得る。これらのオフキャッシュに関わる指示はリコール処理部１２５から発行されてもよい。
【００８７】
なお、エクスポート対象がオンキャッシュのＬＶ５１であるかオフキャッシュのＬＶ５２であるかの判断は、ＬＶ情報テーブル１１１を参照することにより可能である。また、エクスポート用のＰＶ６２の特定は、エクスポート要求で指定されたグループについてＴＲ−ＰＶＧテーブル１１３を参照することにより可能である。
【００８８】
一方、判定処理部１２２が最適化を行なうと判定した場合、処理実行部１２３による処理では、例えばソート済ＬＶリスト１１４に基づきＰＶ６２ごとのサブＬＶリスト１１５（“Sub-LVLIST-PVx”；xは整数）が生成され、サブＬＶリスト１１５に基づいてエクスポート処理が実行される。
【００８９】
サブＬＶリスト１１５の生成において、処理実行部１２３は、例えばソート済ＬＶリスト１１４で指定されたＬＶ５０の順に、複数巻のＰＶ６２に振り分けるように、ＰＶ６２ごとのサブＬＶリスト１１５を生成する。
【００９０】
一例として、処理実行部１２３は、ソート済ＬＶリスト１１４から設定順にＬＶ５０を選択し、複数巻のＰＶ６２のうちの最も空き容量の大きいＰＶ６２に対応するサブＬＶリスト１１５へ選択したＬＶ５０を登録する。
【００９１】
サブＬＶリスト１１５のデータ構成例を図９に示す。図９に示すように、サブＬＶリスト１１５には、例示的に、ＰＶ６２ごとに、ＬＶ名、ＬＶ５０のデータサイズ、ＰＶ残容量、及びエクスポート実施フラグが設定される。
【００９２】
ＬＶ名及びデータサイズは、ソート済ＬＶリスト１１４に設定されるものと同様である。ＰＶ残容量はＰＶ６２の残容量を示す値であり、データ格納サイズを初期値として、登録されたＬＶ５０のデータサイズをＰＶ６２の残容量から減じた値が設定される。ＰＶ残容量は例えばサブＬＶリスト１１５にＬＶ５０が登録される都度、処理実行部１２３により算出され設定される。エクスポート実施フラグはサブＬＶリスト１１５に基づくエクスポートの実施状態を示す情報の一例であり、例えば未実施の場合は“１”、実施中の場合は“２”、実施済の場合は“０”又は“NULL”等が設定される。
【００９３】
換言すれば、サブＬＶリスト１１５は、第２のＰＶ６２へＬＶ５０を書き出す順序と、第２のＰＶ６２のうちのＬＶ５０のデータの書出先の第２のＰＶ６２とに関する書出情報の一例である。また、処理実行部１２３は、要求受付部１２１が取得したＬＶ５０の各々のデータサイズと、第２のＰＶ６２の各々の記憶領域の空き容量とに基づき、サブＬＶリスト１１５を生成する生成部の一例である。
【００９４】
例えば図７に示すソート済ＬＶリスト１１４に基づき、ＰＶ１及びＰＶ２のサブＬＶリスト１１５が生成される場合、リストの先頭に設定されたＬＶ３から順に、以下のように登録される。
【００９５】
・ＬＶ３：ＰＶ１及びＰＶ２の残容量がともに１００ＧＢであり同一のため、例えば若番のＰＶ１のサブＬＶリスト１１５に登録される（ＰＶ１の残容量：１００ＧＢ−９０ＧＢ＝１０ＧＢ）。
【００９６】
・ＬＶ４：ＰＶ１の残容量が１０ＧＢ、ＰＶ２の残容量が１００ＧＢであるため、残容量の大きいＰＶ２のサブＬＶリスト１１５に登録される（ＰＶ２の残容量：１００ＧＢ−７０ＧＢ＝３０ＧＢ）。
【００９７】
・ＬＶ５：ＰＶ１の残容量が１０ＧＢ、ＰＶ２の残容量が３０ＧＢであるため、残容量の大きいＰＶ２のサブＬＶリスト１１５に登録される（ＰＶ２の残容量：３０ＧＢ−２０ＧＢ＝１０ＧＢ）。
【００９８】
・ＬＶ１：ＰＶ１の残容量が１０ＧＢ、ＰＶ２の残容量が１０ＧＢであり同一のため、例えば若番のＰＶ１のサブＬＶリスト１１５に登録される（ＰＶ１の残容量：１０ＧＢ−１０ＧＢ＝０ＧＢ）。
【００９９】
・ＬＶ２：ＰＶ１の残容量が０ＧＢ、ＰＶ２の残容量が１０ＧＢであるため、残容量の大きいＰＶ２のサブＬＶリスト１１５に登録される（ＰＶ２の残容量：１０ＧＢ−１０ＧＢ＝０ＧＢ）。
【０１００】
なお、図９に示すサブＬＶリスト１１５では、エクスポート対象のＬＶ５０が全てオンキャッシュの場合を想定している。この場合、リコール処理部１２５によるリコール処理は実行されず、エクスポート処理部１２４により、ＰＶ６２ごとに、サブＬＶリスト１１５に基づくエクスポート処理が実行される。
【０１０１】
一方、エクスポート対象にオフキャッシュのＬＶ５２が含まれる場合、サブＬＶリスト１１５に登録するＬＶ５０又は登録先のＰＶ６２の選択、並びにサブＬＶリスト１１５に基づくエクスポート処理及びリコール処理の実施は、複数の手法により実現することができる。以下、一例を説明する。なお、以下の説明では、図７に示すソート済ＬＶリスト１１４内の各ＬＶ５０について、例えばＬＶ１及びＬＶ５がオフキャッシュの状態である場合を想定する。
【０１０２】
（ＬＶ５０の選択手法）
一例として、ソート済ＬＶリスト１１４からのＬＶ５０の選択は、オンキャッシュのＬＶ５１を優先して行なうことができる。例えば処理実行部１２３は、ソート済ＬＶリスト１１４又はソート済ＬＶリスト１１４′に基づいて、図１０に示すように、オンキャッシュのＬＶ３、ＬＶ４、ＬＶ２をそれぞれＰＶ１、ＰＶ２、ＰＶ２に割り当てる。
【０１０３】
一方、サブＬＶリスト１１５の割当対象から除外されたオフキャッシュのＬＶ５及びＬＶ１は、例えばオフキャッシュのＬＶリストであるサブＬＶリスト（リコール）１１６（“Sub-LVLIST-recall”）に設定される。
【０１０４】
図１１はサブＬＶリスト（リコール）１１６のデータ構成例を示す図である。図１１に示すように、サブＬＶリスト（リコール）１１６には、例示的に、ＬＶ名及びリコール実施フラグが設定される。ＬＶ名はオフキャッシュのＬＶ５２の識別情報である。リコール実施フラグはサブＬＶリスト（リコール）１１６に基づくリコールの実施状態を示す情報の一例であり、例えば未実施の場合は“１”、実施済の場合は“０”又は“NULL”等が設定される。
【０１０５】
（エクスポート処理及びリコール処理の実施手法）
処理実行部１２３は、例えばサブＬＶリスト１１５を用いてエクスポート処理部１２４によるエクスポート処理を行ない、サブＬＶリスト（リコール）１１６を用いてリコール処理部１２５によるリコール処理を行なう。エクスポート処理及びリコール処理は、それぞれ複数のプロセスにより同時に進行してもよい。
【０１０６】
サブＬＶリスト（リコール）１１６内のＬＶ５２についてのリコール処理は、例えばエクスポート処理と並行して開始することができる。これにより、リコール動作中もエクスポート動作を止めずに済み、リコール処理の発生に起因するエクスポート処理の動作時間の長期化を抑制することができる。
【０１０７】
また、エクスポート処理とリコール処理との並行実施において、リコール処理部１２５は、サブＬＶリスト（リコール）１１６内のＬＶ５０（ＬＶ５２）のリコールが完了する都度、リコールが完了した（オンキャッシュになった）ＬＶ５０のＬＶ名をソート済ＬＶリスト１１４に差し戻す（再登録する）ことができる。
【０１０８】
エクスポート処理部１２４は、ソート済ＬＶリスト１１４にＬＶ５０が差し戻されたことを検出すると、エクスポート処理が未実施又は実施中のＬＶ５０の順序を見直し、サブＬＶリスト１１５を再生成（再編成）して、新たなサブＬＶリスト１１５に基づくエクスポート処理を開始することができる。
【０１０９】
このように、エクスポート処理とリコール処理との並行実施において、オフキャッシュのＬＶ５２を含む全てのＬＶ５０のエクスポート処理が完了するまで、リコールが完了したＬＶ５０の差し戻し及びサブＬＶリスト１１５の再生成が行なわれる。
【０１１０】
換言すれば、エクスポート処理部１２４は、サブＬＶリスト１１５に基づいて、ＴＶＣ２１にキャッシュされているＬＶ５０のデータをＴＶＣ２１から書出先のＰＶ６２へ書き出す制御を行なう書出制御部の一例である。また、リコール処理部１２５は、ＴＶＣ２１にキャッシュされていないＬＶ６２のデータを第１のＰＶ６１からＴＶＣ２１に読み出す制御を行なう読出制御部の一例である。さらに、エクスポート処理部１２４は、リコール処理部１２５による制御の完了に応じて、エクスポートの制御に用いられるサブＬＶリスト１１５の最適化を行なう最適化部の一例である。
【０１１１】
なお、ＬＶ５２のリコールの実施状態は、サブＬＶリスト（リコール）１１６のリコール実施フラグの値を参照することで判断可能である。
【０１１２】
また、ソート済ＬＶリスト１１４にＬＶ５０が差し戻されたことの判定は、エクスポート処理部１２４により所定のタイミングで実施される。所定のタイミングとしては、例えば１つのサブＬＶリスト１１５についてエクスポート処理が完了したタイミングが挙げられる。なお、サブＬＶリスト１１５ごとのエクスポート処理の実施状態は、エクスポート実施フラグの値を参照することで判断可能である。エクスポート実施フラグはエクスポート処理部１２４により、実施状態が変化する都度更新される。
【０１１３】
なお、エクスポートとリコールとを同時に並列して処理するために、エクスポート処理及びリコール処理でそれぞれ１つ以上の空きドライブ３１を使用できることが好ましい。ドライブ３１の空きがない場合、エクスポート処理部１２４又はリコール処理部１２５は、例えば処理の待ち合わせを行なってもよい。
【０１１４】
また、エクスポート処理及びリコール処理の動作中に優先する他のジョブによってドライブ３１の使用が要求された場合、エクスポート処理部１２４又はリコール処理部１２５は処理を中断し、ドライブ３１が解放されたら中断した時点から処理を再開してもよい。処理の中断には、例えば処理を再開できる情報のメモリへの格納、及びドライブ３１の解放が含まれる。なお、処理を再開できる情報としては、例えば中断前にドライブ３１を使用していたサブＬＶリスト１１５を示す情報やサブＬＶリスト１１５内のエクスポートを中断されたＬＶ５１を示す情報等が含まれてもよい。
【０１１５】
以上のように、処理実行部１２３によれば、ＬＶリスト４１に設定されたＬＶ５０の順序に関わらず、ＬＶ５０のデータサイズの観点からＬＶ５０を最適なＰＶ６２にエクスポートすることができる。例えば図１２に示すように、ＰＶ６２のデータ格納サイズに収まるような最適なＬＶ５０の組み合わせでＰＶ１及びＰＶ２のそれぞれのエクスポート処理が実施される。
【０１１６】
従って、エクスポートに用いるＰＶ６２の本数をＬＶ５０の総データサイズを格納するのに十分な本数に留め、必要以上のＰＶ６２の消費を抑えることができる。また、ＰＶ６２の残容量を可能な限り最小に抑えることができるため、リソースの効率的な利用を実現することができる。
【０１１７】
さらに、ＰＶ６２の空き容量とエクスポート対象のＬＶ５０のデータサイズとに基づきＬＶ５０の格納先及び格納順序を動的に調整することができるため、エクスポートの実施者は、エクスポートの実施の際にＰＶ６２の空き容量を意識せずに済み、利便性が高い。
【０１１８】
〔１−３〕仮想テープシステムの動作例
次に、上述の如く構成された仮想テープシステム１におけるエクスポート制御の動作例を、図１３〜図１６を参照して説明する。
【０１１９】
図１３に示すように、ＶＬＰ２９の要求受付部１２１は、ホスト装置４からＬＶリスト４１を含むエクスポート要求を受信すると（ステップＳ１）、受信したＬＶリスト４１で指定されたＬＶ５０のデータサイズを取得する（ステップＳ２）。このＬＶ５０のデータサイズはＬＶ情報テーブル１１１から取得される。なお、要求受付部１２１は、取得したデータサイズをＬＶリスト４１に付加して、ＬＶリスト１１２を生成し当該ＬＶリスト１１２の情報をメモリ部１１の記憶領域に格納する。
【０１２０】
また、要求受付部１２１は、エクスポートに用いるＰＶ６２の本数として、格納容量の観点から用いられる本数Ｘ、及び格納順序の観点から用いられる本数Ｙをそれぞれ算出する（ステップＳ３）。なお、エクスポート対象のＬＶ５０のデータサイズはＬＶリスト１１２から、ＰＶ６２のデータ格納サイズはＴＲ−ＰＶＧテーブル１１３から、それぞれ取得される。
【０１２１】
次いで、判定処理部１２２は、要求受付部１２１が算出したＹがＸよりも大きいか否かを判定し（ステップＳ４）、ＹがＸ以下（実際にはＹ＝Ｘ）であると判定した場合（ステップ４のＮｏルート）、処理が図１６のステップＳ４１に移行する。なお、処理がステップＳ４のＮｏルートから図１６のステップＳ４１に進む場合、ＰＶ６２へのＬＶ５０の格納は、ＬＶリスト４１又はＬＶリスト１１２に設定されたＬＶ５０の設定順序に基づき行なうことができる。図１６の説明は後述する。
【０１２２】
一方、ステップＳ４において、ＹがＸよりも大きいと判定した場合（ステップＳ４のＹｅｓルート）、判定処理部１２２は、エクスポートの最適化を行なうために、ＬＶリスト１１２内のＬＶ５０のデータサイズに基づきソートを行ない、ソート済ＬＶリスト１１４を生成する（ステップＳ５）。そして、処理実行部１２３が、ソート済ＬＶリスト１１４に基づきエクスポート処理及びリコール処理を並行して実施し（ステップＳ６）、処理が終了する。
【０１２３】
次に、図１４及び図１５を参照して、処理実行部１２３によるエクスポート処理及びリコール処理の動作例について説明する。なお、図１４に示すステップＳ１１と、図１５に示すステップＳ３１とは、異なるプロセスによって並行して開始されてよい。
【０１２４】
はじめにエクスポート処理について説明すると、図１４に示すように、処理実行部１２３は、判定処理部１２２が生成したソート済ＬＶリスト１１４内の各ＬＶ５０を所定の割当条件に基づきＰＶ６２に割り当て、サブＬＶリスト１１５を生成する（ステップＳ１１）。このとき、サブＬＶリスト１１５にはエクスポート未実施を表す情報として、例えばエクスポート実施フラグに“１”が設定される。
【０１２５】
所定の割当条件には、ＬＶ５０の選択条件及びＰＶ６２の選択条件が含まれてもよい。ＬＶ５０の選択条件としては、例えばソートＶリスト１１４でのＬＶ５０の設定順に、オンキャッシュのＬＶ５１が選択される。ＰＶ６２の選択条件としては、例えばＴＲ−ＰＶＧテーブル１１３に登録済みの最も空き容量の大きいＰＶ６２が選択される。
【０１２６】
次いで、エクスポート処理部１２４がＩＤＰ２８に対して、指定されたエクスポート用のＰＶ６２をテープライブラリ３のドライブ３１へマウントすることを指示し、ＩＤＰ２８がロボット３２に対してＰＶ６２のマウントを指示する（ステップＳ１２）。なお、ドライブ３１にマウントされるＰＶ６２は、例えば予めオペレータによりＴＲ−ＰＶＧテーブル１１３に登録されたものである。
【０１２７】
ＰＶ６２のマウントが完了すると、エクスポート処理部１２４は、ＩＤＰ２８を介しドライブ３１に対して、サブＬＶリスト１１５内のＬＶ５１を、例えば設定順に１つ選択し、対応するＰＶ６２に格納させる（ステップＳ１３）。このとき、サブＬＶリスト１１５にはエクスポート実施中を表す情報として、例えばエクスポート実施フラグに“２”が設定される。
【０１２８】
ＰＶ６２へのＬＶ５１の格納が完了すると、エクスポート処理部１２４は、サブＬＶリスト１１５内のＬＶ５１を全てＰＶ６２に格納したか否かを判定する（ステップＳ１４）。サブＬＶリスト１１５内のＬＶ５１を全てＰＶ６２に格納していない場合（ステップＳ１４のＮｏルート）、処理がステップＳ１３に移行する。
【０１２９】
一方、サブＬＶリスト１１５内のＬＶ５１を全てＰＶ６２に格納した場合（ステップＳ１４のＹｅｓルート）、エクスポート処理部１２４は、エクスポート処理を完了したサブＬＶリスト１１５にエクスポート実施済みを表す情報を設定する（ステップＳ１５）。例えばエクスポート実施済みを表す情報として、エクスポート実施済フラグに“０”又は“NULL”等が設定される。
【０１３０】
次いで、エクスポート処理部１２４は、ソート済ＬＶリスト１１４にＬＶ５１が存在するか否かを判定する（ステップＳ１６）。この判定は、リコール処理部１２５によるリコール処理でリコール完了後のＬＶ５２が差し戻されたか否かの確認に相当する。換言すれば、この判定は、リコールが完了しエクスポートが可能になったＬＶ５１が存在するか否かの確認に相当する。
【０１３１】
ステップＳ１６でソート済ＬＶリスト１１４にＬＶ５１が存在すると判定した場合（ステップＳ１６のＹｅｓルート）、エクスポート処理部１２４は、エクスポート未実施又は実施中の情報が設定されたサブＬＶリスト１１５内のＬＶ５１をソート済ＬＶリスト１１４に差し戻す（ステップＳ１７）。そして、処理がステップＳ１１に移行し、エクスポート処理部１２４は、エクスポート未実施のＰＶ６２にエクスポート未実施のＬＶ５１を振り分けて、サブＬＶリスト１１５を再生成する。
【０１３２】
このように、エクスポート処理部１２４は、リコール処理部１２５による制御が完了したＬＶ５０のデータサイズに基づき、サブＬＶリスト１１５におけるＬＶ５０の各々の書出先の再割り当てを行なうことができる。なお、再割り当ての対象となるのは、リコール処理部１２５によるリコールの制御が完了したＬＶ５０、及び、エクスポート処理部１２４によるエクスポートの制御が完了していないＬＶ５０となる。
【０１３３】
なお、エクスポート実施中のサブＬＶリスト１１５からソート済ＬＶリスト１１４に差し戻されるＬＶ５１は、サブＬＶリスト１１５内の全てのＬＶ５１でもよいし、未だＰＶ６２に格納されていないＬＶ５１に制限されてもよい。この場合、サブＬＶリスト１１５には、ＬＶ５１ごとにエクスポート実施フラグが設けられてもよい。
【０１３４】
一方、ステップＳ１６において、ソート済ＬＶリスト１１４にＬＶ５１が存在しないと判定した場合（ステップＳ１６のＮｏルート）、エクスポート処理部１２４は、エクスポート未実施のサブＬＶリスト１１５が存在するか否かを判定する（ステップＳ１８）。
【０１３５】
該当するサブＬＶリスト１１５が存在すると判定した場合（ステップＳ１８のＹｅｓルート）、エクスポート処理部１２４は、処理対象をエクスポート実施済みのサブＬＶリスト１１５からエクスポート未実施のサブＬＶリスト１１５に切り替える（ステップＳ１９）。そして、エクスポート処理部１２４は、ＩＤＰ２８を介しロボット３２に対して、エクスポートが完了したＰＶ６２をドライブ３１からアンマウントさせ（ステップＳ２０）、処理がステップＳ１２に移行する。
【０１３６】
一方、エクスポート未実施のサブＬＶリスト１１５が存在しないと判定した場合（ステップＳ１８のＮｏルート）、エクスポート処理部１２４は、サブＬＶリスト（リコール）１１６にリコール未実施のＬＶ５２が存在するか否かを判定する（ステップＳ２１）。この判定は、リコール処理が全て完了したか否かの確認に相当する。
【０１３７】
なお、ステップＳ２１の判定は、サブＬＶリスト（リコール）１１６内にリコール実施フラグが未実施を示すＬＶ５２が存在するか否かを確認することで行なわれてもよい。或いは、全てのリコール処理が完了したときにリコール処理部１２５から完了通知を受けるように設定されている場合、リコール処理部１２５からの完了通知を受信有無を確認することで行なわれてもよい。
【０１３８】
サブＬＶリスト（リコール）１１６にリコール未実施のＬＶ５２が存在すると判定した場合（ステップＳ２１のＹｅｓルート）、処理がステップＳ１６に移行する。なお、リコール未実施のＬＶ５２のうちの少なくとも１つがリコール実施済みになるまで所定時間待機（待ち合わせ）してから、処理がステップＳ１６に移行してもよい。
【０１３９】
一方、サブＬＶリスト（リコール）１１６にリコール未実施のＬＶ５２が存在しない場合（ステップＳ２１のＮｏルート）、エクスポート処理及びリコール処理が全て完了したことを意味する。そこで、エクスポート処理部１２４は、正常終了のメッセージを出力し（ステップＳ２２）、ＩＤＰ２８を介しロボット３２に対して、ＰＶ６２をドライブ３１からアンマウントさせ（ステップＳ２３）、エクスポート処理が終了する。なお、ステップＳ２２で出力されるメッセージは、例えばホスト装置４への応答であってもよい。
【０１４０】
なお、ステップＳ１６及びＳ１７の処理群、ステップＳ１８〜Ｓ２０の処理群、並びにステップＳ２１〜Ｓ２３の処理群について、これらの処理群がいずれの順序で実行されてもよい。
【０１４１】
次に、リコール処理について説明すると、図１５に示すように、処理実行部１２３は、ソート済ＬＶリスト１１４から登録順にオフキャッシュのＬＶ５２を選択し、サブＬＶリスト（リコール）１１６を作成する（ステップＳ３１）。このとき、サブＬＶリスト（リコール）１１６の各ＬＶ５２にはリコール未実施を表す情報として、例えばリコール実施フラグに“１”が設定される。
【０１４２】
次いで、リコール処理部１２５は、ＩＤＰ２８を介しロボット３２に対して、サブＬＶリスト（リコール）１１６に登録されたＬＶ５２が保存されている保存用のＰＶ６１を空きドライブ３１にマウントさせる（ステップＳ３２）。
【０１４３】
そして、リコール処理部１２５は、ＩＤＰ２８に対して、保存用のＰＶ６１に格納されているエクスポート対象のＬＶ５２をＴＶＣ２１に読み出させ（ステップＳ３３）、リコールが完了したＬＶ５２にリコール実施済みを表す情報を設定する（ステップＳ３４）。なお、リコール実施済みを表す情報として、例えばリコール実施フラグに“０”又は“NULL”が設定されてもよい。
【０１４４】
また、リコール処理部１２５は、リコールが完了したＬＶ５２をソート済ＬＶリスト１１４に差し戻し（ステップＳ３５）、ＩＤＰ２８を介しロボット３２に対して、保存用のＰＶ６１をドライブ３１からアンマウントさせる（ステップＳ３６）。
【０１４５】
次いで、リコール処理部１２５は、サブＬＶリスト（リコール）１１６の全てのＬＶ５２がリコール実施済みであるか否かを判定し（ステップＳ３７）、リコール未実施のＬＶ５２が存在すれば（ステップＳ３７のＮｏルート）、処理がステップＳ３２に移行する。
【０１４６】
一方、全てのＬＶ５２がリコール実施済みであれば（ステップＳ３７のＹｅｓルート）、リコール処理が終了する。
【０１４７】
なお、ステップＳ３４〜Ｓ３６の処理はいずれの順序で実行されてもよい。
【０１４８】
次に、図１６を参照して、図１３のステップＳ４において、判定処理部１２２によりＹがＸよりも大きいと判定された場合（ステップＳ４のＮｏルート）の処理について説明する。
【０１４９】
図１６に示すように、ステップＳ４１では、エクスポート処理部１２４が、ＩＤＰ２８を介しロボット３２に対して、エクスポート用のＰＶ６２をドライブ３１へマウントさせる。
【０１５０】
ＰＶ６２のマウントが完了すると、エクスポート処理部１２４は、ＬＶ情報テーブル１１１を参照し、ＬＶリスト１１２で指定されたＬＶ５０を１つ、例えばＬＶリスト１１２への設定順に選択し、オンキャッシュであるか否かを判定する（ステップＳ４２）。ＬＶ５０がオンキャッシュである場合（ステップＳ４２のＹｅｓルート）、処理がステップＳ４６に移行する。
【０１５１】
一方、ＬＶ５０がオフキャッシュである場合（ステップＳ４２のＮｏルート）、リコール処理部１２５は、ＩＤＰ２８を介しロボット３２に対して、オフキャッシュのＬＶ５０（ＬＶ５２）が保存されているＰＶ６１をドライブ３１にマウントさせる（ステップＳ４３）。また、リコール処理部１２５は、ＩＤＰ２８を介しドライブ３１に対して、マウントしたＰＶ６１に格納されているＬＶ５１のリードを指示し、ＩＤＰ２８はドライブ３１の制御を通じて取得したＰＶ６１内のＬＶ５１をＴＶＣ２１へロードする（ステップＳ４４）。そして、リコール処理部１２５は、ＩＤＰ２８を介しロボット３２に対して、ＰＶ６１をドライブ３１からアンマウントさせて（ステップＳ４５）、処理がステップＳ４２に移行する。
【０１５２】
ステップＳ４６では、エクスポート処理部１２４は、ＩＤＰ２８を介してドライブ３１に対して、オンキャッシュのＬＶ５１をステップＳ４１でマウントされたＰＶ６２に格納（ライト）させる。そして、エクスポート処理部１２４は、ＬＶリスト１１２に基づき、エクスポート対象のＬＶ５０を全てエクスポート用のＰＶ６２に格納したか否かを判定する（ステップＳ４７）。
【０１５３】
エクスポート対象のＬＶ５０を全てＰＶ６２に格納した場合（ステップＳ４７のＹｅｓルート）、処理実行部１２３は、正常終了のメッセージを出力し（ステップＳ４８）、処理がステップＳ５１に移行する。
【０１５４】
ステップＳ５１では、エクスポート処理部１２４は、ＩＤＰ２８を介しロボット３２に対して、ＰＶ６２をドライブ３１からアンマウントさせ、エクスポート要求に基づくエクスポート処理及びリコール処理が終了する。
【０１５５】
一方、ＰＶ６２に格納していないエクスポート対象のＬＶ５０が存在する場合（ステップＳ４７のＮｏルート）、処理実行部１２３は、例えばＬＶリスト１１２内の次のＬＶ５０のデータサイズがＰＶ６２の残容量よりも大きいか否かを判定する（ステップＳ４９）。次のＬＶ５０のデータサイズがＰＶ６２の残容量以下の場合（ステップＳ４９のＮｏルート）、処理がステップＳ４２に移行する。
【０１５６】
次のＬＶ５０のデータサイズがＰＶ６２の残容量よりも大きい場合（ステップＳ４９のＹｅｓルート）、処理実行部１２３は、異常終了のメッセージを出力し（ステップＳ５０）、処理がステップＳ５１に移行する。なお、異常終了のメッセージは、エクスポート対象のＬＶ５０が予め用意されたエクスポート用のＰＶ６２内に収まらなかったことを意味する。例えばオペレータは、異常終了のメッセージに基づき、ＴＲ−ＰＶＧテーブル１１３に新たなＰＶ６２を登録して、途中まで実行されたＬＶリスト１１２に基づくエクスポートの再開をＶＬＰ２９に指示してもよい。
【０１５７】
〔１−４〕変形例
上述したように、エクスポート対象にオフキャッシュのＬＶ５２が含まれる場合、サブＬＶリスト１１５に登録するＬＶ５０又は登録先のＰＶ６２の選択、並びにサブＬＶリスト１１５に基づくエクスポート処理及びリコール処理の実施は、複数の手法により実現することができる。以下、これらの他の例について説明する。
【０１５８】
〔１−４−１〕第１変形例
＜第１の手法＞
第１の手法では、一実施形態と同様にオンキャッシュのＬＶ５１を優先して行なうことができるが、このときのＬＶ５１の割り当て先ＰＶ６２の選択の手法が異なる。以下、図１７に例示するように、ソート済ＬＶリスト１１４又は１１４′においてＬＶ３（９０ＧＢ）がオフキャッシュである場合を想定する。
【０１５９】
処理実行部１２３は、図１８に示すように、オンキャッシュのＬＶ４、ＬＶ５、ＬＶ１、ＬＶ２を、ＰＶ６２のデータ格納サイズに収まる範囲で１つのＰＶ６２、例えば若番のＰＶ６２であるＰＶ１に割り当てることができる。図１８の例では、サブＬＶリスト１１５において、ソート済ＬＶリスト１１４の設定順に、ＬＶ４（７０ＧＢ）、ＬＶ５（２０ＧＢ）、ＬＶ１（１０ＧＢ）がＰＶ１に割り当てられ、ＰＶ１がフルになったためにＬＶ２（１０ＧＢ）がＰＶ２に割り当てられる。
【０１６０】
なお、エクスポート処理及びリコール処理の実施手法については、一実施形態で説明したものと同様の手法を採ることができる。
【０１６１】
このように、オンキャッシュのＬＶ５１を１つのＰＶ６２に優先して割り当てることで、ＰＶ１（及びＰＶ２）のエクスポート処理と、ＰＶ２に格納されるＬＶ３のリコール処理とが並行して実施されるため、一実施形態と同様の効果を奏することができる。
【０１６２】
また、オンキャッシュのＬＶ５１がデータサイズに基づき１つ以上のＰＶ６２に収まるように割り当てが行なわれる。このとき選択されるＰＶ６２は例えば若番のＰＶ６２であるため、当該ＰＶ６２のサブＬＶリスト１１５は早い段階でエクスポート処理が実施される可能性が高く、リコールが完了したＬＶ５２の差し戻しに伴うサブＬＶリスト１１５の再生成の対象になる可能性が低い。
【０１６３】
従って、オンキャッシュのＬＶ５１を優先して一部のＰＶ６２のサブＬＶリスト１１５を確定することができるため、エクスポート対象のＬＶ５０のオンキャッシュ状態及びオフキャッシュ状態の組み合わせに柔軟に対応することができる。
【０１６４】
＜第２の手法＞
第１変形例の第２の手法では、一実施形態又は第１変形例の第１の手法により生成されたサブＬＶリスト１１５及びサブＬＶリスト（リコール）１１６に基づき、以下の手法によりエクスポート処理及びリコール処理を実施することができる。
【０１６５】
例えばエクスポート処理部１２４は、図１４に示すステップＳ１７において、ソート済ＬＶリスト１１４に差し戻すＬＶ５１を、エクスポート未実施又は実施中に加えて、実施済のサブＬＶリスト１１５内のＬＶ５１を選択してもよい。なお、差し戻し対象として選択される実施済のサブＬＶリスト１１５は、残容量が所定割合以上、例えばデータ格納サイズの１０％以上（又は使用量が所定割合以下、例えばデータ格納サイズの９０％以下）のサブＬＶリスト１１５に制限されてもよい。
【０１６６】
これにより、一実施形態と同様の効果を奏することができるほか、残容量の多いエクスポート実施済みのＰＶ６２についても、エクスポート後にリコールが完了したＬＶ５２を格納することができる。従って、エクスポート対象のＬＶ５０のオンキャッシュ状態及びオフキャッシュ状態の組み合わせに柔軟に対応することができる。
【０１６７】
＜第３の手法＞
エクスポート対象のＬＶ５０のオンキャッシュ状態及びオフキャッシュ状態の組み合わせによっては、一実施形態並びに第１変形例の第１及び第２の手法のいずれかにおいて、使用されるＰＶ６２の本数がＬＶ５０の総データサイズを格納するのに十分な本数を上回る可能性もある。
【０１６８】
第３の手法では、エクスポートの最適化を行なう際に、使用されるＰＶ６２の本数がＬＶ５０の総データサイズを格納するのに十分な本数、例えば判定処理部１２２が算出する値Ｘを上回ると予測される場合の処理を提案する。
【０１６９】
例えば処理実行部１２３は、生成又は再生成した各サブＬＶリスト１１５の残容量と、サブＬＶリスト（リコール）１１６に含まれるリコール未実施のＬＶ５２のデータサイズとを対比し、使用されるＰＶ６２の本数を予測してもよい。この予測は、例えばサブＬＶリスト（リコール）１１６内のＬＶ５２の設定順に、ＬＶ５２のリコールが完了したと想定してサブＬＶリスト１１５の再生成のアルゴリズムをシミュレートすること等により行なわれてもよい。また、ＰＶ６２及びドライブ３１、並びにＴＶＣ２１のＩ／Ｏ（Input Output）性能やロボット３２のマウント及びアンマウント動作の性能が考慮されてもよい。
【０１７０】
処理実行部１２３は、予測結果に応じて以下の（ｉ）又は（ii）の処理を実行することができる。
【０１７１】
（ｉ）エクスポートの最適化を継続する。
予測の結果、使用されるＰＶ６２の本数がＸの値を上回るものの、格納順序の観点で用いられるＰＶ巻数のＹの値よりも小さい場合、処理実行部１２３は、エクスポートの最適化を継続してもよい。
【０１７２】
（ii）エクスポートの最適化を中止し、ＬＶリスト１１２内のＬＶ５０の設定順にエクスポートを実施する。
予測の結果、使用されるＰＶ６２の本数がＸの値を上回り、Ｙの値と等しい場合、処理実行部１２３は、エクスポートの最適化を中止して、図１６のステップＳ４１〜Ｓ５１の処理を実施してもよい。なお、サブＬＶリスト１１５の再生成の段階、換言すればエクスポート処理及びリコール処理の実施中の段階で上記の予測結果が得られた場合には、処理を継続してもよい（上記（ｉ）参照）。
【０１７３】
以上のように、処理実行部１２３によれば、エクスポートの実施前及び実施中の複数のタイミングで、使用されるＰＶ６２の本数を予測し、エクスポートの最適化の実施の可否を動的に判定することができる。従って、例えばエクスポート対象のＬＶ５０のデータサイズの組み合わせやオンキャッシュ状態及びオフキャッシュ状態の組み合わせ等により、使用されるＰＶ６２の本数がＸを上回る場合でも、エクスポートの最適化の継続及び中止から適切な処理を選択することができる。
【０１７４】
〔１−４−２〕第２変形例
ＬＶ５０の選択手法、並びにエクスポート処理及びリコール処理の実施手法として、上述した一実施形態並びに第１変形例の第１〜第３の手法に代えて、以下の処理が実施されてもよい。
【０１７５】
例えば処理実行部１２３は、図１９に示すサブＬＶリスト１１５′を生成してもよい。図１９に示すように、サブＬＶリスト１１５′には、例示的に、図９に示すサブＬＶリスト１１５に加えて、ＴＶＣ２１においてオンキャッシュであるか否か、及び未実施又は実施済を示すエクスポート実施フラグがさらに設定される。図１９の例では、エクスポート実施フラグはＬＶ５０ごとに設けられる。
【０１７６】
図２０及び図２１はそれぞれ第２変形例に係るエクスポート処理及びリコール処理を示すフローチャートである。図２０に示すように、処理実行部１２３は、オンキャッシュ状態及びオフキャッシュ状態に関係なく、エクスポート対象の全てのＬＶ５０について、データサイズに基づくＰＶ６２への振り分けを行ない、サブＬＶリスト１１５′を生成することができる（ステップＳ６１）。このとき、振り分けが行なわれるＬＶ５０は、ソート済ＬＶリスト１１４内の設定順に選択される。なお、サブＬＶリスト（リコール）１１６については一実施形態と同様に生成されてもよい。
【０１７７】
エクスポート処理部１２４は、図１９に示すサブＬＶリスト１１５′に基づきエクスポートを行なうことができる。一例として、エクスポート処理部１２４は、オンキャッシュのＬＶ５０の総データサイズが大きいサブＬＶリスト１１５′を優先して、対応するＰＶ６２から順にマウントし（ステップＳ６２）、オンキャッシュのＬＶ５０のエクスポートを行なう（ステップＳ６３）。
【０１７８】
また、エクスポート処理部１２４は、サブＬＶリスト１１５′に対して、エクスポート処理を完了したＬＶ５１にエクスポート実施済の情報を設定し（ステップＳ６４）、サブＬＶリスト１１５′のオンキャッシュのＬＶ５１を全てＰＶ６２に格納したか否かを判定する（ステップＳ６５）。オンキャッシュのＬＶ５１を全てＰＶ６２に格納していない場合（ステップＳ６５のＮｏルート）、処理がステップＳ６３に移行する。
【０１７９】
一方、オンキャッシュのＬＶ５１を全てＰＶ６２に格納した場合（ステップＳ６５のＹｅｓルート）、エクスポート処理部１２４は、エクスポート未実施のＬＶ５１を含むサブＬＶリスト１１５′が存在するか否かを判定する（ステップＳ６６）。
【０１８０】
エクスポート未実施のＬＶ５１を含むサブＬＶリスト１１５′が存在する場合（ステップＳ６６のＹｅｓルート）、エクスポート処理部１２４は、処理対象を当該サブＬＶリスト１１５′に切り替える（ステップＳ６７）。また、エクスポート処理部１２４は、ＩＤＰ２８を介しロボット３２に対して、ＰＶ６２をドライブ３１からアンマウントさせ（ステップＳ６８）、処理がステップＳ６２に移行する。
【０１８１】
一方、エクスポート未実施のＬＶ５１を含むサブＬＶリスト１１５′が存在しない場合（ステップＳ６６のＮｏルート）、エクスポート処理部１２４は、正常終了のメッセージを出力する（ステップＳ６９）。また、エクスポート処理部１２４は、ＩＤＰ２８を介し、ロボット３２に対してＰＶ６２をドライブ３１からアンマウントさせ（ステップＳ７０）、エクスポート処理が終了する。
【０１８２】
なお、図２１に示すリコール処理は、図１５に示すリコール処理と基本的に同様であるが、図１５に示すステップＳ３５に代えて、ステップＳ７１の処理を実行する点が異なる。ステップＳ７１では、リコール処理部１２５は、リコールが完了したＬＶ５２について、対応するサブＬＶリスト１１５′にオンキャッシュを設定する。
【０１８３】
以上のように、第２変形例に係る手法によれば、オンキャッシュ状態及びオフキャッシュ状態を含むエクスポート対象の全てのＬＶ５０が、データサイズに基づいてＰＶ６２に割り当てられ、サブＬＶリスト１１５′が生成される。また、サブＬＶリスト１１５′に基づき、オンキャッシュのＬＶ５１から優先してエクスポートが行なわれ、並行してオフキャッシュのＬＶ５２のリコールが行なわれる。さらに、オフキャッシュのＬＶ５０については、リコールが完了し、サブＬＶリスト１１５の状態がオフキャッシュからオンキャッシュに変化すると、エクスポートの実行順序が調整され、当該ＬＶ５０のエクスポートが行なわれる。
【０１８４】
換言すれば、第２変形例に係るエクスポート処理部１２４は、リコール処理部１２５による制御が完了したＬＶ５０について、サブＬＶリスト１１５における当該ＬＶ５０を書き出す順序の最適化を行なう。この最適化は、例えばオフキャッシュ状態からオンキャッシュ状態に変化したＬＶ５０を書き出す順序を、他のオフキャッシュ状態のＬＶ５０よりも早めることで、ステップＳ６３でＰＶ６２に格納される対象となるように制御することを含んでもよい。
【０１８５】
これにより、一実施形態と同様の効果を奏することができるほか、サブＬＶリスト１１５′の生成の段階で、サブＬＶリスト１１５に割り当てられるＬＶ５０が定まるため、ＬＶ５０のキャッシュ状態によらず、利用されるＰＶ６２の数を安定して最小に抑えることができる。
【０１８６】
なお、第２変形例の手法は、上述した一実施形態並びに第１変形例の第１〜第３の手法のいずれか１つ若しくは１つ以上の組み合わせに加えて実施されてもよい。
【０１８７】
〔１−５〕ハードウェア構成例
次に、図２２を参照して、図１に示す仮想テープ装置２がそなえるＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９のハードウェア構成例について説明する。なお、ＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９はいずれも同様のハードウェア構成をそなえることができるため、以下、代表してＶＬＰ２９のハードウェア構成例について説明する。
【０１８８】
図２２に示すように、ＶＬＰ２９は、例示的に、ＣＰＵ１０ａ、メモリ１０ｂ、記憶部１０ｃ、インタフェース部１０ｄ、及び入出力部１０ｅをそなえる。
【０１８９】
ＣＰＵ１０ａは、種々の制御や演算を行なうプロセッサの一例である。ＣＰＵ１０ａは、ＶＬＰ２９内の各ブロックとバスで相互に通信可能に接続されてよい。なお、プロセッサとしては、ＣＰＵ１０ａに代えて、他の演算処理装置、例えばＭＰＵ（Micro Processing Unit）等の集積回路（ＩＣ；Integrated Circuit）が用いられてもよい。
【０１９０】
メモリ１０ｂは、種々のデータやプログラムを格納するハードウェアの一例である。図３に示すメモリ部１１はメモリ１０ｂの記憶領域によって実現されてもよい。メモリ１０ｂとしては、例えばＲＡＭ等の揮発性メモリが挙げられる。
【０１９１】
記憶部１０ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。記憶部１０ｃとしては、例えばＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、フラッシュメモリやＲＯＭ（Read Only Memory）等の不揮発性メモリ等の各種記憶装置が挙げられる。
【０１９２】
例えば記憶部１０ｃは、ＶＬＰ２９の各種機能の全部若しくは一部を実現する制御プログラム７０を格納してもよい。この場合、ＣＰＵ１０ａは、記憶部１０ｃに格納された制御プログラム７０をメモリ１０ｂに展開して実行することにより、ＶＬＰ２９の機能を実現することができる。
【０１９３】
インタフェース部１０ｄは、ホスト装置４、ＦＣスイッチ２２、ＬＡＮスイッチ２３、又は図示しない管理サーバ等との間の接続及び通信の制御等を行なう通信インタフェースの一例である。インタフェース部１０としては、例えばＬＡＮカード等のネットワークインタフェースや、ＳＡＮ、ＦＣ、インフィニバンド（InfiniBand）等に準拠したインタフェースが挙げられる。
【０１９４】
また、インタフェース部１０ｄは、記録媒体１０ｆに記録されたデータやプログラムを読み出す読取部をそなえてもよい。読取部は、コンピュータ読取可能な記録媒体１０ｆを接続又は挿入可能な接続端子又は装置を含んでよい。読取部としては、例えばＵＳＢ（Universal Serial Bus）等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体１０ｆには制御プログラム７０が格納されてもよい。
【０１９５】
入出力部１０ｅは、マウス、キーボード、操作ボタン等の入力部、並びにディスプレイ等の出力部の少なくとも一部を含むことができる。例えば入力部は、オペレータ等による設定の登録や変更、システムのモード選択（切替）等の各種操作やデータの入力等の作業に用いられてもよく、出力部は、オペレータ等による設定の確認や各種通知等の出力に用いられてもよい。
【０１９６】
なお、上述したＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９のハードウェア構成は例示である。従って、ＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９間、又は、ＩＣＰ２７、ＩＤＰ２８、及びＶＬＰ２９の各々でのハードウェアの増減（例えば任意のブロックの追加や省略）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【０１９７】
〔２〕その他
上述した一実施形態並びに第１及び第２変形例に係る技術は、以下のように変形、変更して実施することができる。
【０１９８】
例えば、図３に示すＶＬＰ２９の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
【０１９９】
また、ＬＶ５０及びＰＶ６２の数、ＬＶ５０のデータサイズ及びＰＶ６２のデータ格納サイズ等は、あくまで例示であり、上述したものに限定されるものではない。これらの値としては任意の数値が用いられてよい。
【０２００】
〔３〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【０２０１】
（付記１）
第１の物理ボリュームに格納される論理ボリュームのデータを第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記論理ボリュームの各々のデータサイズを取得する取得部と、
前記取得部が取得した前記論理ボリュームの各々のデータサイズと、前記第２の物理ボリュームの各々の記憶領域の空き容量とに基づき、前記第２の物理ボリュームへ前記論理ボリュームを書き出す順序と、前記第２の物理ボリュームのうちの前記論理ボリュームのデータの書出先の第２の物理ボリュームとに関する書出情報を生成する生成部と、
前記書出情報に基づいて、キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から書出先の第２の物理ボリュームへ書き出す制御を行なう書出制御部と、
前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行なう読出制御部と、
前記読出制御部による制御の完了に応じて、前記書出制御部による制御に用いられる前記書出情報の最適化を行なう最適化部と、
をそなえることを特徴とする、制御装置。
【０２０２】
（付記２）
前記最適化部は、前記読出制御部による制御が完了した論理ボリュームのデータサイズに基づいて、前記書出情報における前記論理ボリュームの各々の書出先の再割り当てを行なうことを特徴とする、付記１記載の制御装置。
【０２０３】
（付記３）
前記再割り当ては、前記読出制御部による制御が完了した論理ボリューム、及び、前記書出制御部による制御が完了していない論理ボリュームを対象に実行されることを特徴とする、付記２記載の制御装置。
【０２０４】
（付記４）
前記書出情報は、前記キャッシュ部にデータがキャッシュされている論理ボリュームを対象に生成され、
前記生成部は、前記キャッシュ部にデータがキャッシュされていない論理ボリュームに関する読出情報を生成し、
前記読出制御部は、前記生成部が生成した前記読出情報に基づいて、前記制御を行なうことを特徴とする、付記１〜３のいずれか１項記載の制御装置。
【０２０５】
（付記５）
前記最適化部は、前記読出制御部による制御が完了した論理ボリュームについて、前記書出情報における当該論理ボリュームを書き出す順序の最適化を行なうことを特徴とする、付記１記載の制御装置。
【０２０６】
（付記６）
前記生成部は、データサイズの大きい論理ボリュームから順に、データの書出先の第２の物理ボリュームを決定することを特徴とする、付記１〜５のいずれか１項記載の制御装置。
【０２０７】
（付記７）
前記論理ボリュームの各々のデータサイズと、前記第２の物理ボリュームの各々の記憶領域の空き容量とに基づき、前記書出情報の生成を行なうか否かを判定する判定部をさらにそなえ、
前記生成部は、前記判定部が前記書出情報の生成を行なうと判定した場合に前記書出情報の生成を行なうことを特徴とする、付記１〜６のいずれか１項記載の制御装置。
【０２０８】
（付記８）
前記判定部は、前記実行要求における前記論理ボリュームの設定順序で前記第２の物理ボリュームへの書出処理を実行する場合に用いられる第２の物理ボリュームの数を算出し、前記算出した数が、前記第２の物理ボリュームの各々の記憶領域の空き容量の合計値を前記論理ボリュームのデータサイズの合計値で除した値よりも大きい場合に、前記書出情報の生成を行なうと判定することを特徴とする、付記７記載の制御装置。
【０２０９】
（付記９）
前記書出制御部による制御と、前記読出制御部による制御とが、複数のプロセスにより並行して実施されることを特徴とする、付記１〜８のいずれか１項記載の制御装置。
【０２１０】
（付記１０）
コンピュータに、
第１の物理ボリュームに格納される論理ボリュームのデータを第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記論理ボリュームの各々のデータサイズを取得し、
前記取得した前記論理ボリュームの各々のデータサイズと、前記第２の物理ボリュームの各々の記憶領域の空き容量とに基づき、前記第２の物理ボリュームへ前記論理ボリュームを書き出す順序と、前記第２の物理ボリュームのうちの前記論理ボリュームのデータの書出先の第２の物理ボリュームとに関する書出情報を生成し、
前記書出情報に基づいて、キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から書出先の第２の物理ボリュームへ書き出す制御を行ない、
前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行ない、
前記読み出す制御の完了に応じて、前記書き出す制御に用いられる前記書出情報の最適化を行なう
処理を実行させることを特徴とする、制御プログラム。
【０２１１】
（付記１１）
前記最適化において、前記読み出す制御が完了した論理ボリュームのデータサイズに基づいて、前記書出情報における前記論理ボリュームの各々の書出先の再割り当てを行なうことを特徴とする、付記１０記載の制御プログラム。
【０２１２】
（付記１２）
前記再割り当ては、前記読み出す制御が完了した論理ボリューム、及び、前記書き出す制御が完了していない論理ボリュームを対象に実行されることを特徴とする、付記１１記載の制御プログラム。
【０２１３】
（付記１３）
前記書出情報は、前記キャッシュ部にデータがキャッシュされている論理ボリュームを対象に生成され、
前記コンピュータに、
前記キャッシュ部にデータがキャッシュされていない論理ボリュームに関する読出情報を生成し、
前記生成した前記読出情報に基づいて、前記読み出す制御を行なう
処理を実行させることを特徴とする、付記１０〜１２のいずれか１項記載の制御プログラム。
【０２１４】
（付記１４）
前記最適化において、前記読み出す制御が完了した論理ボリュームについて、前記書出情報における当該論理ボリュームを書き出す順序の最適化を行なうことを特徴とする、付記１０記載の制御プログラム。
【０２１５】
（付記１５）
前記生成において、データサイズの大きい論理ボリュームから順に、データの書出先の第２の物理ボリュームを決定することを特徴とする、付記１０〜１４のいずれか１項記載の制御プログラム。
【０２１６】
（付記１６）
前記コンピュータに、
前記論理ボリュームの各々のデータサイズと、前記第２の物理ボリュームの各々の記憶領域の空き容量とに基づき、前記書出情報の生成を行なうか否かを判定し、
前記書出情報の生成を行なうと判定した場合に前記書出情報の生成を行なう
処理を実行させることを特徴とする、付記１０〜１５のいずれか１項記載の制御プログラム。
【０２１７】
（付記１７）
前記判定において、前記実行要求における前記論理ボリュームの設定順序で前記第２の物理ボリュームへの書出処理を実行する場合に用いられる第２の物理ボリュームの数を算出し、前記算出した数が、前記第２の物理ボリュームの各々の記憶領域の空き容量の合計値を前記論理ボリュームのデータサイズの合計値で除した値よりも大きい場合に、前記書出情報の生成を行なうと判定することを特徴とする、付記１６記載の制御プログラム。
【０２１８】
（付記１８）
前記書き出す制御と、前記読み出す制御とが、複数のプロセスにより並行して実施されることを特徴とする、付記１０〜１７のいずれか１項記載の制御プログラム。
【０２１９】
（付記１９）
第１の物理ボリュームに格納される論理ボリュームのデータを第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記論理ボリュームの各々のデータサイズを取得し、
前記取得した前記論理ボリュームの各々のデータサイズと、前記第２の物理ボリュームの各々の記憶領域の空き容量とに基づき、前記第２の物理ボリュームへ前記論理ボリュームを書き出す順序と、前記第２の物理ボリュームのうちの前記論理ボリュームのデータの書出先の第２の物理ボリュームとに関する書出情報を生成し、
前記書出情報に基づいて、キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から書出先の第２の物理ボリュームへ書き出す制御を行ない、
前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行ない、
前記読み出す制御の完了に応じて、前記書き出す制御に用いられる前記書出情報の最適化を行なう
ことを特徴とする、制御方法。
【０２２０】
（付記２０）
プロセッサをそなえ、
前記プロセッサが、
第１の物理ボリュームに格納される論理ボリュームのデータを第２の物理ボリュームへ書き出す書出処理の実行要求を受信した場合に、前記論理ボリュームの各々のデータサイズを取得し、
前記取得した前記論理ボリュームの各々のデータサイズと、前記第２の物理ボリュームの各々の記憶領域の空き容量とに基づき、前記第２の物理ボリュームへ前記論理ボリュームを書き出す順序と、前記第２の物理ボリュームのうちの前記論理ボリュームのデータの書出先の第２の物理ボリュームとに関する書出情報を生成し、
前記書出情報に基づいて、キャッシュ部にキャッシュされている論理ボリュームのデータを前記キャッシュ部から書出先の第２の物理ボリュームへ書き出す制御を行ない、
前記キャッシュ部にキャッシュされていない論理ボリュームのデータを前記第１の物理ボリュームから前記キャッシュ部に読み出す制御を行ない、
前記読み出す制御の完了に応じて、前記書き出す制御に用いられる前記書出情報の最適化を行なう
ことを特徴とする、制御装置。
【符号の説明】
【０２２１】
１    仮想テープシステム
１１    メモリ部
１１１    ＬＶ情報テーブル
１１２，４１    ＬＶリスト
１１３    ＴＲ−ＰＶＧテーブル
１１４，１１４′    ソート済ＬＶリスト
１１５    サブＬＶリスト
１１６    サブＬＶリスト（リコール）
１２    エクスポート制御部
１２１    要求受付部
１２２    判定処理部
１２３    処理実行部
１２４    エクスポート処理部
１２５    リコール処理部
２    仮想テープ装置
２０    仮想ドライブ
２１，２１ａ，２１ｂ    ＴＶＣ
２２，２２ａ，２２ｂ    ＦＣスイッチ
２３，２３ａ，２３ｂ    ＬＡＮスイッチ
２４，２４ａ，２４ｂ    コンソール
２５    ＴＢＰ
２６    ＳＡＳ
２７，２７ａ，２７ｂ    ＩＣＰ
２８，２８ａ，２８ｂ    ＩＤＰ
２９，２９ａ，２９ｂ    ＶＬＰ
３    テープライブラリ
３１，３１ａ〜３１ｄ    ドライブ
３２    ロボット
４    ホスト装置
４０    バックアップソフトウェア
５０〜５２    論理ボリューム（ＬＶ）
６１，６２    物理ボリューム（ＰＶ）
７０    制御プログラム
【図１】
0006617461.tif 000002
【図２】
0006617461.tif 000003
【図３】
0006617461.tif 000004
【図４】
0006617461.tif 000005
【図５】
0006617461.tif 000006
【図６】
0006617461.tif 000007
【図７】
0006617461.tif 000008
【図８】
0006617461.tif 000009
【図９】
0006617461.tif 000010
【図１０】
0006617461.tif 000011
【図１１】
0006617461.tif 000012
【図１２】
0006617461.tif 000013
【図１３】
0006617461.tif 000014
【図１４】
0006617461.tif 000015
【図１５】
0006617461.tif 000016
【図１６】
0006617461.tif 000017
【図１７】
0006617461.tif 000018
【図１８】
0006617461.tif 000019
【図１９】
0006617461.tif 000020
【図２０】
0006617461.tif 000021
【図２１】
0006617461.tif 000022
【図２２】
0006617461.tif 000023
【図２３】
0006617461.tif 000024
【図２４】
0006617461.tif 000025
【図２５】
0006617461.tif 000026
【図２６】
0006617461.tif 000027