(57)【要約】【課題】書込対象のデータを可搬型記録媒体に書き込む書込処理を効率的に実施する。【解決手段】記憶装置２１に記憶されているデータのリストをサイズに基づきソートした第１リスト３１３と、記憶されていないデータのリストをサイズに基づきソートした第２リスト３１４とを生成し、複数のデータをサイズに基づき複数のサイズ範囲のグループに分類し、前記第１リスト３１３内のデータを前記記憶装置２１から第１記録媒体４３にソート順に書き込み、前記第２リスト３１４内のデータを、当該データの格納記録媒体４３から前記記憶装置２１にソート順に読み出し、読み出されたデータの属する第１グループのサイズ範囲と書込中のデータの属する第２グループのサイズ範囲とに応じて、前記読み出されたデータの情報を前記第２リスト３１４から前記第１グループに対応するリスト３１５〜３１７に移動し、当該リスト内のデータを第２記録媒体４３に書き込む。【選択図】図７
2020197781.tif 000002
【特許請求の範囲】
【請求項１】
可搬型の記録媒体へ書き込まれる書込対象の複数のデータのうち、記憶装置に記憶されている一以上のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されていない二以上のデータのリストをデータサイズに基づきソートした第２リストと、を生成する生成部と、
前記複数のデータをデータサイズに基づき複数のサイズ範囲のグループに分類する分類部と、
前記第１リストのソート順に従って、前記第１リスト内のデータを、前記記憶装置から可搬型の第１記録媒体に書き込む制御を行なう第１書込部と、
前記第２リストのソート順に従って、前記第２リスト内のデータを、当該データを格納する格納元記録媒体から前記記憶装置に読み出す制御を行なう読出部と、
前記読出部により読み出されたデータの属する第１グループの第１サイズ範囲と、前記第１書込部による書き込み中のデータの属する第２グループの第２サイズ範囲とに応じて、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動する移動部と、
前記グループリスト内のデータを、前記グループリストごとに、前記第１記録媒体とは異なる可搬型の第２記録媒体に書き込む第２書込部と、
をそなえる、ストレージ制御装置。
【請求項２】
前記第１リストのソート順と前記第２リストのソート順とが同じソート順であり、
前記移動部は、前記第１サイズ範囲が前記第２サイズ範囲よりも前記ソート順で前となるサイズ範囲である場合、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動する、
請求項１に記載のストレージ制御装置。
【請求項３】
前記移動部は、前記第１サイズ範囲が、前記第２サイズ範囲と同じサイズ範囲である場合、又は、前記第２サイズ範囲よりも前記ソート順で後となるサイズ範囲である場合、前記読み出されたデータの情報を前記第１リストに登録する、
請求項２に記載のストレージ制御装置。
【請求項４】
前記第２書込部は、前記グループリスト内のデータの合計サイズが、前記グループリストに対応するグループに属する前記第２リスト内のデータの合計サイズ以上の場合に、前記グループリスト内のデータを、前記第２記録媒体に書き込む、
請求項１〜請求項３のいずれか１項に記載のストレージ制御装置。
【請求項５】
前記第２書込部は、前記グループリスト内のデータの合計サイズが、前記グループリストに対応するグループに属する前記第２リスト内のデータの合計サイズよりも小さい場合、前記グループリスト内のデータの前記第２記録媒体への書き込みを抑止する、
請求項１〜請求項４のいずれか１項に記載のストレージ制御装置。
【請求項６】
前記第１リスト及び前記第２リストの各々のソート順は、データサイズが大から小へと変動する順、又は、データサイズが小から大へと変動する順、である、請求項１〜請求項５のいずれか１項に記載のストレージ制御装置。
【請求項７】
前記第１書込部及び前記第２書込部は、
複数のアクセス部と、
前記複数のアクセス部のうちの書込データを可搬型の記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部と、
を有するストレージ装置の前記制御部に対して、互いに異なるアクセス部を利用した前記第１記録媒体及び前記第２記録媒体へのデータの書き込みを指示する、
請求項１〜請求項６のいずれか１項に記載のストレージ制御装置。
【請求項８】
コンピュータが、
可搬型の記録媒体へ書き込まれる書込対象の複数のデータのうち、記憶装置に記憶されている一以上のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されていない二以上のデータのリストをデータサイズに基づきソートした第２リストと、を生成し、
前記複数のデータをデータサイズに基づき複数のサイズ範囲のグループに分類し、
前記第１リストのソート順に従って、前記第１リスト内のデータを、前記記憶装置から可搬型の第１記録媒体に書き込む制御を行ない、
前記第２リストのソート順に従って、前記第２リスト内のデータを、当該データを格納する格納元記録媒体から前記記憶装置に読み出す制御を行ない、
読み出されたデータの属する第１グループの第１サイズ範囲と、書き込み中のデータの属する第２グループの第２サイズ範囲とに応じて、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動し、
前記グループリスト内のデータを、前記グループリストごとに、前記第１記録媒体とは異なる可搬型の第２記録媒体に書き込む、
ストレージ制御方法。
【請求項９】
可搬型の記録媒体へ書き込まれる書込対象の複数のデータのうち、記憶装置に記憶されている一以上のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されていない二以上のデータのリストをデータサイズに基づきソートした第２リストと、を生成し、
前記複数のデータをデータサイズに基づき複数のサイズ範囲のグループに分類し、
前記第１リストのソート順に従って、前記第１リスト内のデータを、前記記憶装置から可搬型の第１記録媒体に書き込む制御を行ない、
前記第２リストのソート順に従って、前記第２リスト内のデータを、当該データを格納する格納元記録媒体から前記記憶装置に読み出す制御を行ない、
読み出されたデータの属する第１グループの第１サイズ範囲と、書き込み中のデータの属する第２グループの第２サイズ範囲とに応じて、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動し、
前記グループリスト内のデータを、前記グループリストごとに、前記第１記録媒体とは異なる可搬型の第２記録媒体に書き込む、
処理をコンピュータに実行させる、ストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラムに関する。
【背景技術】
【０００２】
テープライブラリ装置と仮想テープ装置とをそなえる仮想テープシステムが知られている。テープライブラリ装置は磁気テープカートリッジや光ディスクカートリッジ等の物理ボリューム（Physical Volume；以下、ＰＶと表記する）を複数収納する。物理ボリュームは可搬型の記録媒体の一例である。
【０００３】
仮想テープ装置は、ホスト装置とテープライブラリ装置との間に設けられ、各種サーバと、ホスト装置において認識可能なボリュームである論理ボリューム（Logical Volume；以下、ＬＶと表記する）のデータを格納するディスクアレイ装置とをそなえる。ディスクアレイ装置は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）等の冗長化構成の記憶装置により実現されてもよく、テープボリュームキャッシュ（ＴＶＣ；Tape Volume Cache）と称されてもよい。
【０００４】
仮想テープシステムは、ホスト装置に対して、仮想テープ装置内のディスクアレイ装置や各種サーバをテープライブラリとして仮想的に見せることで、ホスト装置にテープライブラリ装置が接続されているように認識させることができる。
【０００５】
例えば、仮想テープ装置は、ホスト装置から書き込まれたデータをディスクアレイ装置に格納し、その後、ＴＶＣからテープライブラリ装置へ書き込む書込処理を行なう。このように、ホスト装置からテープライブラリへ直接書き込むよりも仮想テープライブラリを用いることで、データの書込処理をより向上させることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１８５６１８号公報
【特許文献２】特開２０１７−３３１１８号公報
【特許文献３】特開２００９−２３０２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
仮想テープ装置は、ホスト装置から、複数のＬＶを対象とした書込指示が発行されると、ディスクアレイ装置に格納されたＬＶを、テープライブラリ装置内の１本以上のＰＶに書き込む書込処理を行なう。
【０００８】
複数のＬＶの書込処理は、書込対象のＬＶのデータサイズや仮想テープ装置におけるＬＶの状態等の要因によって、トータルの書込処理時間が延び、処理効率が低下する場合がある。
【０００９】
なお、仮想テープ装置におけるＬＶの状態としては、例えば、ＬＶが仮想テープ装置のディスクアレイ装置に格納されているか否か（オンキャッシュかオフキャッシュか）を示すキャッシュ状態が挙げられる。
【００１０】
１つの側面では、本発明は、書込対象のデータを可搬型記録媒体に書き込む書込処理を効率的に実施することを目的とする。
【課題を解決するための手段】
【００１１】
１つの態様では、ストレージ制御装置は、生成部と、分類部と、第１書込部と、読出部と、移動部と、第２書込部と、をそなえてよい。前記生成部は、可搬型の記録媒体へ書き込まれる書込対象の複数のデータのうち、記憶装置に記憶されている一以上のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されていない二以上のデータのリストをデータサイズに基づきソートした第２リストと、を生成してよい。前記分類部は、前記複数のデータをデータサイズに基づき複数のサイズ範囲のグループに分類してよい。前記第１書込部は、前記第１リストのソート順に従って、前記第１リスト内のデータを、前記記憶装置から可搬型の第１記録媒体に書き込む制御を行なってよい。前記読出部は、前記第２リストのソート順に従って、前記第２リスト内のデータを、当該データを格納する格納元記録媒体から前記記憶装置に読み出す制御を行なってよい。前記移動部は、前記読出部により読み出されたデータの属する第１グループの第１サイズ範囲と、前記第１書込部による書き込み中のデータの属する第２グループの第２サイズ範囲とに応じて、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動してよい。前記第２書込部は、前記グループリスト内のデータを、前記グループリストごとに、前記第１記録媒体とは異なる可搬型の第２記録媒体に書き込んでよい。
【発明の効果】
【００１２】
１つの側面では、書込対象のデータを可搬型記録媒体に書き込む書込処理を効率的に実施することができる。
【図面の簡単な説明】
【００１３】
【図１】ＰＶのフォーマットの一例を示す図である。
【図２】仮想テープ装置が備えるディスクアレイ装置から、テープライブラリ装置のＰＶへのＬＶの書込処理の一例を示す図である。
【図３】ＰＶのデータフォーマットの一例を示す図である。
【図４】リポジショニングの有無に応じたテープマーク間のギャップを説明する図である。
【図５】一実施形態の一例としての仮想テープシステムの構成例を示すブロック図である。
【図６】図５に示す制御サーバ及びテープライブラリ装置のハードウェア構成例を示すブロック図である。
【図７】図５に示す制御サーバの機能構成例を示すブロック図である。
【図８】マスタＬＶリストの一例を示す図である。
【図９】書込対象ＬＶリストの一例を示す図である。
【図１０】オンキャッシュＬＶリストの一例を示す図である。
【図１１】オフキャッシュＬＶリストの一例を示す図である。
【図１２】ＬＶの分類処理の一例を説明する図である。
【図１３】書込モード情報の一例を示す図である。
【図１４】オンキャッシュＬＶリストに基づく書込処理の一例を説明する図である。
【図１５】リコールモード情報の一例を示す図である。
【図１６】リコール処理後のＬＶのオフキャッシュＬＶリストへの登録例を示す図である。
【図１７】リコール処理後のＬＶのＬ、Ｍ、Ｓリストへの登録例を示す図である。
【図１８】リコール対象カテゴリと追加先リストとの関係の一例を示す図である。
【図１９】Ｌリストの一例を示す図である。
【図２０】Ｍリストの一例を示す図である。
【図２１】Ｓリストの一例を示す図である。
【図２２】Ｌ、Ｍ、Ｓリストに基づく書込処理の一例を説明する図である。
【図２３】一実施形態に係る制御サーバの動作例を示すフローチャートである。
【図２４】図２３に示すＬＶ分類処理の動作例を示すフローチャートである。
【図２５】図２３に示す書込処理Ｗの動作例を示すフローチャートである。
【図２６】図２３に示すリコール処理Ｒの動作例を示すフローチャートである。
【図２７】図２３に示すリコール処理Ｒの動作例を示すフローチャートである。
【図２８】図２３に示す書込処理ＷＬの動作例を示すフローチャートである。
【図２９】図２３に示す書込処理ＷＭの動作例を示すフローチャートである。
【図３０】図２３に示す書込処理ＷＳの動作例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１５】
〔１〕一実施形態
（ＰＶの説明）
図１は、ＰＶ１００のフォーマットの一例を示す図である。仮想テープ装置において、ＰＶ１００を使用する（データを読み書きする）ために、ＰＶ１００は、フォーマットとして、ＰＶ１００のヘッダである「ＰＶ−ＨＤＲ」、複数の「ＬＶ」（図１の例ではＬＶ−Ａ、ＬＶ−Ｂ）及び「ＰＶディレクトリ」を含んでよい。「ＰＶディレクトリ」は、「ＰＶ−ＤＩＲ」と表記されてもよい。
【００１６】
「ＰＶ−ＨＤＲ」は、識別子の一例である「ＶＯＬ１」、テープ媒体名を示す「ＰＶ名」、テープ媒体のグループ名を示す「ＰＶグループ名」、仮想テープ装置固有の識別子を示す「ＶＴＬＳ」、及び、正常又は異常フラグを示す「テープ媒体ステータス」を含む。
【００１７】
「ＬＶ」は、ＬＶのヘッダである「ＬＶ−ＨＤＲ」に加えて、「ＶＯＬ１」、「ＨＤＲ１」、「ＨＤＲ２」、「Ｄａｔａ」、「ＥＯＦ１」、「ＥＯＦ２」、及び、「ＥＯＶ」を含む。
【００１８】
「ＬＶ−ＨＤＲ」は、ＬＶの更新回数を示す「世代」、論理ボリューム名を示す「ＬＶ名」、論理ボリュームグループ名を示す「ＬＶグループ名」、ＬＶデータサイズを示す「ＬＶサイズ」、及び、ＬＶを作成した日付を示す「ＬＶ作成日」を含む。
【００１９】
「ＬＶ」において、「ＶＯＬ１」（Volume）は、ボリューム名や所有者等が設定されるブロックであり、「ＨＤＲ１」（Header 1）は、ファイル名や更新日等が設定されるブロックである。「ＨＤＲ２」（Header 2）は、レコード形式やブロック長等が設定されるブロックであり、「Ｄａｔａ」は、ユーザデータが設定される可変長バイトのブロックである。「ＥＯＦ１」（End of File 1）は、ファイル名や更新日等が設定されるブロックであり、「ＥＯＦ２」（End of File 2）は、レコード形式やブロック長等が設定されるブロックである。「ＥＯＶ」（End of Volume）は、ボリュームの最後を示すマークブロックである。なお、「ＶＯＬ１」、「ＨＤＲ１」、「ＨＤＲ２」、「ＥＯＦ１」及び「ＥＯＦ２」は、例えば８０バイト程度のデータ長である。
【００２０】
図２は、仮想テープ装置が備えるディスクアレイ装置、例えばＴＶＣ２００から、テープライブラリ装置のＰＶ１００へのＬＶの書込処理の一例を示す図である。
【００２１】
図２の上段に示すように、ＴＶＣ２００には、３つのＬＶ（図２では「ＬＶ−Ａ」、「ＬＶ−Ｂ」、「ＬＶ−Ｃ」と表記する）が作成されており、３つのＬＶが更新された場合を想定する。なお、ＰＶ１００には、ＰＶ−ＨＤＲが書き込まれている。
【００２２】
ホスト装置がジョブを実行し、ホスト装置は、図２の中段に示すように、ＴＶＣ２００において更新されたＬＶをＰＶ１００へ書き込む書込処理を行なう。ＰＶ１００には、ＬＶ−Ａ、ＬＶ−Ｂ、ＬＶ−Ｃ、ＰＶ−ＤＩＲが書き込まれる。
【００２３】
さらに時間が経過し、ＬＶ−Ａが更新された場合を想定する。この場合、図２の下段に示すように、以前にＰＶ１００に書き込まれたＬＶ−Ａは無効となり、ＰＶ１００の末尾にＬＶ−Ａが書き込まれる。
【００２４】
（スピードマッチング機能の説明）
ところで、テープライブラリ装置においてＰＶ１００に対するデータの書き込み及び読み出しを行なうドライブ或いはコントローラは、「スピードマッチング」機能を有することがある。
【００２５】
「スピードマッチング」機能とは、データパターンに合わせてドライブの動作速度を最適化する機能である。例えば、スピードマッチング機能では、「リポジショニング」を考慮し、ドライブが、書込処理で使用されるＰＶ１００に対して、サイズの大きいデータを高速で書き込み、サイズの小さいデータを低速で書き込む。
【００２６】
まず、「リポジショニング」について説明する。図３は、仮想テープシステムで使用されるＰＶ１００のデータフォーマットの一例を示す図である。図３の例では、ＰＶ１００には、ＰＶ１００の先頭に設定されるＰＶヘッダ、ＬＶの区切りを示すテープマーク（ＴＭ）、ＬＶごとに設定されるＬＶヘッダ、及びＬＶのデータを所定サイズ（図３の例では２５６バイト）で区切った１以上のＬＶブロックが含まれる。
【００２７】
ドライブは、各ＬＶのデータの終端にデータの書き込み完了を示すテープマークを書き込むと書き込み動作を停止する。
【００２８】
また、ドライブは、モータ等の駆動機構によりＰＶ１００のテープを送りながら、ヘッドによりテープにデータを書き込むが、駆動機構の動作速度、換言すればテープの走行速度が規定値になるまでは、ＰＶ１００へのデータの書き込みを開始しない。
【００２９】
このため、ドライブがデータを書き終えて駆動機構の動作が停止すると、次のデータの書き込みを開始するまでに、駆動機構の動作速度を規定値まで上げる助走期間が発生する。従って、図４（ａ）に示すように、ＰＶ１００に書き込まれるＬＶのデータ間に助走期間分の「隙間」が発生することがある。
【００３０】
「リポジショニング」は、このような「隙間」を最小限に抑えるために、次のデータの書き込みを開始する前に、駆動機構によりテープを書込方向とは逆の巻戻方向に戻す（換言すればヘッドの位置を巻き戻し方向へ戻す）処理である（図４（ｂ）参照）。ドライブを高速で動作させる場合、長い助走期間を取ることになるため、リポジショニングにかかる時間は長くなる。
【００３１】
例えば、小さいサイズの複数のＬＶを連続して書き込む場合のように、小さいサイズが連続するデータパターンでドライブを高速動作させた場合、長いリポジショニングが頻繁に発生する状態となり、トータルの書き込み性能が低下する。そこで、スピードマッチング機能は、小さいサイズが連続するデータパターンの場合、ドライブを低速動作させる。
【００３２】
一方、大きいサイズの複数のＬＶを連続して書き込む場合のように、大きいサイズが連続するデータパターンでドライブを低速動作させた場合、リポジショニングは短時間で済むが、書込時間が長くなる。そこで、スピードマッチング機能は、大きいサイズが連続するデータパターンの場合、ドライブを高速動作させる。
【００３３】
なお、書込処理では、仮想テープ装置は、ホスト装置から命令された書込対象のＬＶの指定順序（例えば書込対象のＬＶを指定するリストにおける記載順）に従って、テープライブラリ装置に対して、排出対象のＬＶをＰＶ１００に書き込む指示を行なう。また、スピードマッチング機能による書き込み速度の切り替えをＬＶのデータサイズに応じて変更することは困難である。
【００３４】
このため、ＰＶ１００に対して、サイズの大きい第１データを書き込んだ後にサイズの小さい複数の第２データを数回に亘って書き込む場合、第１データの高速書き込み後、第２データの複数の書き込みが高速になる。これにより、長いリポジショニング処理が発生することがある。
【００３５】
また、ＰＶ１００に対して、サイズの小さい第２データを書き込んだ後にサイズの大きい第１データを数回に亘って書き込む場合、第２データの低速書き込み後、第１データの複数の書き込みが低速になり、書き込み時間が長くなってしまう。
【００３６】
（キャッシュ状態別の動作の説明）
仮想テープ装置は、書込処理の実行中に、書込対象となったＬＶがディスクアレイ装置上に存在しないオフキャッシュ状態の場合、書込対象のＬＶのデータをディスクアレイ装置上に格納するオンキャッシュ処理の実行後に、書込用ＰＶに書き込む処理を行なう。オンキャッシュ処理では、仮想テープ装置は、書込対象のＬＶのデータを格納するテープライブラリ装置上のＰＶからＬＶのデータを読み出し、ディスクアレイ装置上に格納することで、書込対象のＬＶをオンキャッシュ状態にする。オンキャッシュ処理は、「リコール処理」と称されてもよい。
【００３７】
このため、オフキャッシュ状態のＬＶに対してオンキャッシュ処理を実行する間、書込用ＰＶに対する当該ＬＶの書き込み処理が停滞してしまう。
【００３８】
また、書込用ＰＶへの書き込みが停滞した場合、一時的に書込用ＰＶがアンマウントされ、ＬＶのオンキャッシュ処理完了後に再度書込用ＰＶのマウントが実行される。このため、書込用ＰＶに対するＬＶの書き込みを、オンキャッシュ処理の完了後にスムーズに再開することが困難になることがある。
【００３９】
（比較例の説明）
そこで、仮想テープ装置により、スピードマッチング機能を搭載したドライブを経由して、ＴＶＣからテープライブラリ装置へ書き込みを行なう書込処理を、以下の手法を用いて効率よく実行させることが考えられる。なお、以下、書込処理の一例であるＬＶの排出（ＥＸＰＯＲＴ；エクスポート）処理に適用される場合を説明する。
【００４０】
・仮想テープ装置は、データサイズ（以下、「ＬＶサイズ」と表記する場合がある）順にＬＶをＰＶに排出することで、連続して書き込まれるＬＶサイズ間の変動を抑え、リポジショニングの影響を最小化する。
【００４１】
・仮想テープ装置は、オンキャッシュＬＶの排出処理とオフキャッシュＬＶのリコール処理とを別々のドライブを利用し並行して実施することで、オンキャッシュ（リコール）待ちによる排出用ＰＶのアンマウントを回避する。
【００４２】
・仮想テープ装置は、オフキャッシュＬＶの合計ＬＶサイズがオンキャッシュＬＶの合計ＬＶサイズよりも大きい場合、予めオンキャッシュＬＶを増やすことで、オンキャッシュ待ちによる排出用ＰＶのアンマウントを回避する。
【００４３】
このように、比較例においては、仮想テープ装置は、リコール処理と書込処理とを並行処理させる際にリコール処理を優先させる。換言すれば、仮想テープ装置は、書込対象のＬＶに対するオンキャッシュＬＶの割合をオフキャッシュＬＶの割合よりも大きい状態に制御することで処理を継続させる。
【００４４】
一方で、ＬＶサイズごとに、オンキャッシュＬＶの割合とオフキャッシュＬＶの割合とにバラツキがある場合がある。例えば、比較的大サイズのＬＶ数はオフキャッシュＬＶの方が多く、比較的小サイズのＬＶ数はオンキャッシュＬＶの方が多く、且つ、比較的大サイズの合計ＬＶサイズよりも比較的小サイズの合計ＬＶサイズの方が大きい場合がある。
【００４５】
この場合、ＬＶの処理がサイズ順にならなくなるため、ドライブによるＰＶへの書込速度が最適とならない場合がある。例えば、大サイズのＬＶのリコール処理完了までに時間がかかった結果、ドライブが中サイズ又は小サイズのＬＶをＰＶに書き込んでいる場合、書込対象のＬＶは不適切な速度（例えば中速度又は低速度）で処理され、スループットが低下することになる。
【００４６】
そこで、一実施形態では、ＬＶサイズごとに、オンキャッシュＬＶの割合とオフキャッシュＬＶの割合とのバラツキがある場合においても、ＰＶに対するＬＶの書込処理時間を短縮する手法を説明する。
【００４７】
〔１−１〕仮想テープシステムの構成例
図５は一実施形態の一例としての仮想テープシステム１の構成例を示すブロック図である。仮想テープシステム１は、ストレージシステムの一例であり、図５に示すように、例示的に、仮想テープ装置２及びテープライブラリ装置４をそなえてよい。仮想テープ装置２には、ホスト装置５が接続されてよい。なお、仮想テープシステム１は、複数のテープライブラリ装置４をそなえてもよい。
【００４８】
仮想テープ装置２は、テープライブラリ装置４とホスト装置５との間に介設され、ホスト装置５からの要求に応じてテープライブラリ装置４に対する種々の制御を行なう。
【００４９】
図５に示すように、仮想テープ装置２は、例示的に、ディスクアレイ装置２１と、複数（図５の例では２台）の制御サーバ３−１及び３−２と、をそなえてよい。なお、以下の説明において、制御サーバ３−１及び３−２を区別しない場合には、単に制御サーバ３と表記する。
【００５０】
制御サーバ３は、制御装置の一例であり、仮想テープ装置２において種々の制御を行なう。一実施形態において、制御サーバ３は、ホスト装置５からＬＶ２２を指定した書込指示を受信すると、ディスクアレイ装置２１及びテープライブラリ装置４に対する書込処理の制御を行なう。
【００５１】
なお、制御サーバ３−１及び３−２のうちの一方（図５の例では制御サーバ３−１）はプライマリとして動作し、他方（図５の例では制御サーバ３−２）はプライマリに障害が発生した場合に動作するセカンダリ（スタンバイ）として待機してよい。例えば、セカンダリの制御サーバ３−２は、プライマリの制御サーバ３−１に異常が発生したときに自身がプライマリに昇格して制御サーバ３の処理を引き継いでよい。
【００５２】
ディスクアレイ装置２１は、複数のＰＶ４３に格納されるデータを記憶する記憶装置の一例であり、ホスト装置５とテープライブラリ装置４との間のアクセスに係るＬＶ２２のデータを記憶する。
【００５３】
ディスクアレイ装置（「ＴＶＣ」と称されてもよい）２１は、複数の記憶部を含んでよく、これらの記憶部によりＲＡＩＤ等のディスクグループを構成してよい。また、ディスクアレイ装置２１は、ディスクグループを用いてファイルシステムを提供してもよい。記憶部としては、ＨＤＤ（Hard Disk Drive）等の磁気ディスク装置、或いは、ＳＳＤ（Solid State Drive）等の半導体ドライブ装置等が挙げられる。
【００５４】
なお、図５において、便宜上図示を省略しているが、仮想テープ装置２は、上述した装置に加えて、例えば、制御サーバ３とは異なる機能を有するサーバ、通信装置、及び電源装置等の種々の装置をそなえてよい。
【００５５】
仮想テープ装置２内の少なくとも一部の装置間、及び、仮想テープ装置２とテープライブラリ装置４との間は、ＦＣ（Fibre Channel）ケーブル等を介したＳＡＮ（Storage Area Network）等のネットワークにより相互に通信可能に接続されてよい。また、仮想テープ装置２内の他の装置間は、ＬＡＮ（Local Area Network）等のネットワークにより相互に通信可能に接続されてよい。
【００５６】
テープライブラリ装置４は、ストレージ装置の一例であり、ＰＶ４３を複数収納し、仮想テープ装置２からの指示に応じてＰＶ４３に対するアクセスを行なう。なお、ＰＶ４３はデータを記憶する記録媒体の一例である。ＰＶ４３としては、ＬＴＯ（Linear Tape Open）カートリッジ等の磁気テープや、光ディスクカートリッジ等が挙げられる。
【００５７】
図５に示すように、テープライブラリ装置４は、例示的に、複数（図５の例では３台以上）のドライブ４１、２台以上（図５の例では２台）のロボット４２、及び、コントローラ４４をそなえてよい。
【００５８】
複数のドライブ４１は、可搬型記録媒体の一例としてのＰＶ４３に対するデータの記録及び再生等を行なう媒体処理装置の一例であり、ＰＶ４３にアクセスする複数のアクセス部の一例である。ロボット４２は、ＰＶ４３の媒体カートリッジのピックアップ、搬送、ドライブ４１への挿入等を行なう運搬装置の一例である。なお、ドライブ４１の台数やロボット４２の台数は例示であり、それぞれ任意の台数がテープライブラリ装置４にそなえられてよい。
【００５９】
コントローラ４４は、テープライブラリ装置４における種々の制御を行なう。例えば、コントローラ４４は、仮想テープ装置２から受信した指示（例えばコマンド）に応じて、ドライブ４１及びロボット４２の動作を制御してよく、コマンドに対する応答を仮想テープ装置２に送信してよい。
【００６０】
一例として、コントローラ４４は、制御サーバ３からＰＶ４３に対するＬＶ２２のデータの書込指示（マイグレーション指示）を受信すると、ロボット４２を制御して、指定された又は空き記憶容量のあるＰＶ４３をドライブ４１に挿入する。そして、コントローラ４４は、ドライブ４１にＬＶ２２のデータを書き込み、制御サーバ３に応答する。
【００６１】
他の例として、コントローラ４４は、制御サーバ３からＰＶ４３に対するＬＶ２２のデータの読出指示（オンキャッシュ指示）を受信すると、ロボット４２を制御して、当該ＬＶ２２を格納するＰＶ４３をドライブ４１に挿入する。そして、コントローラ４４は、ドライブ４１からＬＶ２２のデータを読み出し、制御サーバ３に応答する。
【００６２】
なお、一実施形態において、テープライブラリ装置４は複数のドライブ４１をそなえるため、コントローラ４４は、仮想テープ装置２からの指示に応じて、ＰＶ４３への書き込み及び読み出しが並行して実行されるように、複数のドライブ４１を制御してよい。
【００６３】
例えば、コントローラ４４は、互いに異なるＰＶ４３に対する複数の書込指示、複数の読出指示、又は、１以上の書込指示及び１以上の読出指示を受信した場合、空き状態である（利用されていない）複数のドライブ４１を利用してよい。
【００６４】
また、一実施形態において、コントローラ４４及びドライブ４１は、「リポジショニング」を考慮した「スピードマッチング」機能を有する（図４（ｂ）参照）。すなわち、コントローラ４４は、書込処理で使用されるＰＶ４３に対して、サイズの大きいＬＶ２２のデータについてはドライブ４１を高速動作させ、サイズの小さいＬＶ２２のデータについてはドライブ４１を低速動作させるように制御する。なお、ＰＶ４３のデータフォーマットは図１及び図３に例示するものと同様であってよい。
【００６５】
このように、コントローラ４４は、複数のドライブ４１のうちの書込データをＰＶ４３に書き込むドライブ４１の書込速度を、当該書込データのサイズに応じて制御する制御部の一例である。
【００６６】
ホスト装置５は、仮想テープ装置２を介したテープライブラリ装置４へのアクセスを行なう情報処理装置の一例である。ホスト装置５としては、例えば、ＰＣ（Personal Computer）、サーバ、或いはメインフレーム等の種々のコンピュータが挙げられる。
【００６７】
ホスト装置５では、例えば、仮想テープシステム１の運用に関する種々の制御を行なうソフトウェアが実行されてよい。当該ソフトウェアによる制御には、例えば、仮想テープ装置２におけるＬＶ２２のマウント・アンマウントに関する制御や、ＬＶ２２の書き込みに関する制御等が含まれてよい。ホスト装置５と仮想テープ装置２との間は、例えば、ＬＡＮ等のネットワークにより相互に通信可能に接続されてよい。
【００６８】
図５に示す仮想テープシステム１において、ホスト装置５からデータの書込指示又は読出指示を受信すると、仮想テープ装置２は、ホスト装置５に対して、「従来のテープライブラリ装置」として振る舞う。例えば、仮想テープ装置２は、ディスクアレイ装置２１に対してＬＶ２２のデータの書き込み又は読み出しを行なう。
【００６９】
このように、仮想テープ装置２は、ＰＶ４３よりもデータアクセスの速いディスクアレイ装置２１を用いて、ホストに対して応答を返すため、「従来のテープライブラリ装置」を使用するよりも高速に処理を行なうことが可能である。
【００７０】
仮想テープ装置２は、ホスト装置５への応答後、ホスト装置５を介さずにバックグラウンドで、換言すれば、ホスト装置５からの書込指示に応じて、非同期で、ディスクアレイ装置２１に書き込まれたＬＶ２２をＰＶ４３へ保存する。以下、ディスクアレイ装置２１からＰＶ４３へＬＶ２２を書き込む書込処理を「マイグレーション処理」と表記する場合がある。
【００７１】
なお、仮想テープ装置２は、ディスクアレイ装置２１に書き込まれたＬＶ２２によって容量が圧迫されるのを防ぐために、頻繁にＬＶ２２の更新がなく、且つ、マイグレーション済である大容量のＬＶ２２を、ディスクアレイ装置２１から削除してよい。
【００７２】
〔１−２〕ハードウェア構成例
次に、図６を参照して、図５に示す仮想テープシステム１における制御サーバ３及びテープライブラリ装置４のハードウェア構成例について説明する。
【００７３】
図６に示すように、制御サーバ３は、例示的に、プロセッサ３ａ、メモリ３ｂ、記憶部３ｃ、テープＩＦ（Interface）３ｄ−１、入出力ＩＦ３ｄ−２、ホストＩＦ３ｄ−３、ディスクＩＦ３ｄ−４、及び読取部３ｅをそなえてよい。
【００７４】
プロセッサ３ａは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ３ａは、各ブロック３ｂ〜３ｅとバス３ｉで相互に通信可能に接続されてよい。プロセッサ３ａとしては、種々の集積回路（ＩＣ；Integrated Circuit）、例えば、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（例えばＦＰＧＡ）等のうちのいずれか１つ、又は、これらの２以上の組み合わせが挙げられる。なお、ＣＰＵはCentral Processing Unitの略称であり、ＭＰＵはMicro Processing Unitの略称であり、ＤＳＰはDigital Signal Processorの略称である。また、ＡＳＩＣはApplication Specific Integrated Circuitの略称であり、ＰＬＤはProgrammable Logic Deviceの略称であり、ＦＰＧＡはField Programmable Gate Arrayの略称である。
【００７５】
メモリ３ｂは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ３ｂとしては、揮発性メモリ、例えば、ＤＲＡＭ（Dynamic RAM）等のＲＡＭが挙げられる。なお、ＲＡＭはRandom Access Memoryの略称である。
【００７６】
記憶部３ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部３ｃは、制御サーバ３の二次記憶装置として使用されてよく、ＯＳ（Operating System）やファームウェア、アプリケーション等のプログラム、及び各種データが格納されてよい。記憶部３ｃとしては、例えば、ＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、ＳＣＭ（Storage Class Memory）、ＲＯＭ（Read Only Memory）等が挙げられる。記憶部３ｃは、制御サーバ３の各種機能の全部若しくは一部を実現するプログラム３ｆを格納してもよい。
【００７７】
テープＩＦ３ｄ−１、入出力ＩＦ３ｄ−２、ホストＩＦ３ｄ−３、及びディスクＩＦ３ｄ−４は、それぞれ、テープライブラリ装置４、入出力装置３ｇ、ホスト装置５、及びディスクアレイ装置２１との間の接続及び通信の制御等を行なう通信ＩＦの一例である。なお、入出力装置３ｇは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力部、及び、ディスプレイやプリンタ等の出力部、の一方又は双方を含んでよい。
【００７８】
なお、制御サーバ３は、管理者の管理端末との間の接続及び通信の制御等を行なう通信ＩＦをそなえてもよく、当該通信ＩＦを用いて、図示しないネットワークからプログラム３ｆをダウンロードしてもよい。
【００７９】
読取部３ｅは、記録媒体３ｈに記録されたデータやプログラムを読み出し、プロセッサ３ａに出力するリーダの一例である。読取部３ｅは、記録媒体３ｈを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部３ｅとしては、例えばＵＳＢ（Universal Serial Bus）等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体３ｈにはプログラム３ｆが格納されてもよい。
【００８０】
記録媒体３ｈとしては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等の半導体メモリが挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００８１】
上述した制御サーバ３のハードウェア構成は例示である。従って、制御サーバ３内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【００８２】
また、仮想テープ装置２がそなえる他の装置は、図６に示す制御サーバ３と同様のハードウェア構成をそなえてもよい。
【００８３】
図６に示すように、テープライブラリ装置４は、例示的に、上述した複数のドライブ４１（図６の例では４１−１〜４１−ｎ；ｎは２以上の整数）、複数のロボット４２、及びコントローラ４４に加えて、ＰＶ４３を格納する格納部４５をそなえてよい。
【００８４】
なお、コントローラ４４は、例えば、プロセッサ、メモリ、記憶部等のハードウェア構成をそなえてよく、これらの少なくとも一部が集積回路として実装されてもよい。
【００８５】
〔１−３〕機能構成例
次に、一実施形態に係る制御サーバ３の機能構成例を説明する。一実施形態に係る機能に着目すると、図７に示すように、制御サーバ３は、例示的に、メモリ部３１、分類処理部３２、書込処理部３３、及び読出処理部３４をそなえてよい。
【００８６】
なお、メモリ部３１は、制御サーバ３のメモリ３ｂ及び記憶部３ｃ（図６参照）の少なくとも一方により実現されてよい。また、分類処理部３２、書込処理部３３、及び読出処理部３４は、制御サーバ３のプロセッサ３ａがプログラム３ｆをメモリ３ｂに展開して実行することにより実現されてよい。
【００８７】
メモリ部３１は、マスタＬＶリスト３１１、書込対象ＬＶリスト３１２、オンキャッシュＬＶリスト３１３、オフキャッシュＬＶリスト３１４、Ｌリスト３１５、Ｍリスト３１６、Ｓリスト３１７、書込モード情報３１８、及びリコールモード情報３１９の各情報を記憶する記憶領域を有してよい。上記リスト３１１〜３１７、書込モード情報３１８、及びリコールモード情報３１９の詳細については後述する。
【００８８】
なお、以下の説明において、書込対象ＬＶリスト３１２、オンキャッシュＬＶリスト３１３、及びオフキャッシュＬＶリスト３１４を、それぞれ「リストＬｗ」、「リストＬｏｎ」、及び「リストＬｏｆｆ」と表記する場合がある。また、以下の説明において、Ｌリスト３１５、Ｍリスト３１６、及びＳリスト３１７を、それぞれ「リストＬ」、「リストＭ」、及び「リストＳ」と表記する場合がある。
【００８９】
図８にマスタＬＶリスト３１１の一例を示す。図８に示すように、マスタＬＶリスト３１１は、例示的に、「ＬＶ名」、「キャッシュ状態」、「ＬＶデータ格納先ＰＶ名」、及び「ＬＶサイズ」の項目を含んでよい。なお、マスタＬＶリスト３１１は、図８に示す項目以外にも、例えばエクスポートの実行時刻や回数等、ＬＶ２２に関連する種々の項目を含んでよい。
【００９０】
ＬＶ名には、ホスト装置５が認識するＬＶ２２の名称が設定されてよい。キャッシュ状態には、オンキャッシュ状態を示す“ＯＮ”又はオフキャッシュを示す“ＯＦＦ”が設定されてよい。ＬＶデータ格納先ＰＶ名には、ＬＶ２２のデータを格納するＰＶ４３の名称が設定されてよい。ＬＶサイズには、当該ＬＶ２２のデータサイズが設定されてよい。
【００９１】
マスタＬＶリスト３１１は、後述する分類処理部３２、書込処理部３３、及び読出処理部３４による各処理によって、ＬＶ２２に関する情報が変化する都度、制御サーバ３により更新されてよい。
【００９２】
なお、図８では、マスタＬＶリスト３１１を、便宜上、テーブル形式として示すが、これに限定されるものではない。例えば、マスタＬＶリスト３１１は、ＤＢ（Database）形式やＸＭＬ（eXtensible Markup Language）形式、配列等の種々の形態であってよい。上記リスト３１２〜３１７についても同様である。
【００９３】
分類処理部３２は、ホスト装置５から書込指示又は読出指示を受信すると、書込処理又は読出処理の実施のための処理を行なう。当該処理には、書込処理又は読出処理の対象となるＬＶ２２の分類が含まれてよい。
【００９４】
書込処理部３３は、分類処理部３２が受信した書込指示に基づき、書込対象のＬＶ２２のキャッシュ状態に応じた書込処理を行なう。
【００９５】
図７に示すように、書込処理部３３は、例示的に、Ｌｏｎ処理部３３ａ及びＬＭＳ処理部３３ｂをそなえてよい。Ｌｏｎ処理部３３ａは、後述するリストＬｏｎに基づく書込処理を行なう。ＬＭＳ処理部３３ｂは、後述するリストＬ、リストＭ、及びリストＳに基づく書込処理を行なう。
【００９６】
読出処理部３４は、分類処理部３２が受信した読出指示、又は、書込処理部３３から発行された読出指示（オンキャッシュ指示）、に基づき、読出対象のＬＶ２２のキャッシュ状態に応じた読出処理を行なう。
【００９７】
図７に示すように、読出処理部３４は、例示的に、Ｌｏｆｆ処理部３４ａをそなえてよい。Ｌｏｆｆ処理部３４ａは、後述するリストＬｏｆｆに基づく読出処理、並びに、リストＬ、リストＭ、及びリストＳの作成及び更新処理を行なう。
【００９８】
分類処理部３２、書込処理部３３、及び読出処理部３４の詳細は後述する。
【００９９】
ここで、ディスクアレイ装置２１がＬＶ２２のデータを記憶する場合、当該ＬＶ２２は「オンキャッシュ」の状態である。ホスト装置５からのアクセスに係るＬＶ２２がオンキャッシュの場合、書込処理部３３は、ディスクアレイ装置２１上のオンキャッシュのＬＶ２２に対して処理を行ない、ホスト装置５に応答を返してよい。
【０１００】
例えば、書込処理部３３は、書込指示に係る書込対象のＬＶ２２がオンキャッシュの場合、ディスクアレイ装置２１内のＬＶ２２に対してデータを書き込む。また、読出処理部３４は、読出指示に係る読出対象のＬＶ２２がオンキャッシュの場合、ディスクアレイ装置２１内のＬＶ２２からデータを読み出す。
【０１０１】
一方、ディスクアレイ装置２１に存在しないＬＶ２２は「オフキャッシュ」の状態である。書込指示又は読出指示に係るＬＶ２２がオフキャッシュの場合、読出処理部３４は、書込指示又は読出指示で指定されたＬＶ２２が書き込み（マイグレーション）済みであるＰＶ４３から、当該ＬＶ２２のデータをディスクアレイ装置２１上に読み出すオンキャッシュ処理（リコール処理）を行なう。
【０１０２】
オンキャッシュ処理によりＬＶ２２がオンキャッシュになると、書込処理部３３又は読出処理部３４は、ホスト装置５に応答を返してよい。また、オンキャッシュになったＬＶ２２に対して、書込処理部３３又は読出処理部３４は、ホスト装置５からの書込指示又は読出指示に係る書込処理又は読出処理を行なう。
【０１０３】
〔１−４〕書込処理の説明
以下、一実施形態に係る書込処理について説明する。以下の説明では、書込処理は、複数のドライブ４１を利用して、複数のＰＶ４３に対するＬＶ２２の書き込み、並びに、１以上のＰＶ４３からのリコール、が並行して実行される場合を想定する。このため、書込処理は、便宜上、エクスポート処理とは異なる、マイグレーション処理等の書き込み動作であるものとする。なお、書込処理からエクスポート処理を除外する意図はない。
【０１０４】
また、以下の説明では、読出（リコール）対象となるオフキャッシュ状態のＬＶ２２及び書込対象となるオンキャッシュ状態のＬＶ２２は、書込処理部３３及び読出処理部３４により、ＬＶサイズ順に処理が実行されるものとする。また、テープライブラリ装置４におけるドライブ４１及びＰＶ４３の数、並びに、ディスクアレイ装置２１の空き記憶領域は、それぞれ、一実施形態に係る処理のために十分に足りており、且つ、使用可能であるものとする。
【０１０５】
〔１−４−１〕ＬＶ分類処理
分類処理部３２は、書込指示をホスト装置５から受信すると、書込対象ＬＶリスト３１２を作成する。なお、書込指示は、少なくとも、書込対象のＬＶ２２を指定する情報を含んでよく、例えば、ＰＶ４３への書込対象のＬＶ２２のリストをパラメータとして含んでもよい。
【０１０６】
例えば、分類処理部３２は、書込指示に含まれる書込対象（処理対象）の全てのＬＶ２２について、マスタＬＶリスト３１１からＬＶサイズ及び状態（オンキャッシュ又はオフキャッシュ）の取得を行ない、書込対象ＬＶリスト３１２を生成する。
【０１０７】
図９は、書込対象ＬＶリスト３１２の一例を示す図である。図９に示すように、リストＬｗは、例示的に、書込対象のＬＶ２２の「ＬＶ名」、当該ＬＶ２２の「キャッシュ状態」、「ＬＶデータ格納先ＰＶ名」、及び「ＬＶサイズ」の項目を含んでよい。
【０１０８】
分類処理部３２は、マスタＬＶリスト３１１から、書込対象のＬＶ名に対応するエントリの情報、例えば「キャッシュ状態」、「ＬＶデータ格納先ＰＶ名」及び「ＬＶサイズ」を抽出することで、リストＬｗを作成してよい。
【０１０９】
また、分類処理部３２は、書込対象のＬＶ２２を分類し、分類結果に基づいて、オンキャッシュＬＶリスト３１３及びオフキャッシュＬＶリスト３１４を生成する。分類処理部３２による分類には、キャッシュ状態による分類と、ＬＶサイズによる分類とが含まれてよい。
【０１１０】
図１０及び図１１は、それぞれ、オンキャッシュＬＶリスト３１３及びオフキャッシュＬＶリスト３１４の一例を示す図である。図１０に例示するように、リストＬｏｎは、リストＬｗのうちのキャッシュ状態が“ＯＮ”であるＬＶ２２のエントリを抽出したリストであってよい。また、図１１に例示するように、リストＬｏｆｆは、リストＬｗのうちのキャッシュ状態が“ＯＦＦ”であるＬＶ２２のエントリを抽出したリストであってよい。
【０１１１】
また、リストＬｏｎ及びＬｏｆｆは、それぞれ、分類処理部３２によりＬＶサイズに基づき分類された「カテゴリ」の項目を含んでよい。
【０１１２】
「カテゴリ」には、分類処理部３２により決定される、ＬＶサイズに応じたＬＶの分類、例えば「大」、「中」、「小」等の段階的な複数のサイズ範囲のグループ（区分、種類）が設定されてよい。
【０１１３】
図１０及び図１１では、分類処理部３２は、例えば、５０ＭＢ（メガバイト）以上を大サイズ、１ＭＢ以上且つ５０ＭＢ未満を中サイズ、１ＭＢ未満を小サイズとして、ＬＶサイズに基づきＬＶ２２を分類する例を示すが、これに限定されるものではない。
【０１１４】
例えば、大サイズの下限且つ中サイズの上限である第１の閾値、並びに、中サイズの下限且つ小サイズの上限である第２の閾値は、それぞれ、ドライブ４１の書込性能及び／又は読出性能に基づき、予め決定されてよい。なお、第１及び第２の閾値は、例えば、書込対象ＬＶリスト３１２に含まれるＬＶ２２のＬＶサイズの分布（分散）や、最大サイズ及び最小サイズの少なくとも１つに基づき、決定されてもよい。
【０１１５】
ここで、書込処理において、書込対象のＰＶ４３に対するＬＶ２２の書込順序は、便宜上、ホスト装置５からの命令順となる場合が多いが、ＰＶ４３に対する書込順序が当該命令順に制限されるわけではない。換言すれば、命令順に書き込むことは必須ではない。
【０１１６】
そこで、分類処理部３２は、リストＬｏｎ及びＬｏｆｆを、それぞれ、ＬＶサイズをキーとしてソートしてよい。図１０及び図１１は、ＬＶサイズをキーに降順でソートしたリストＬｏｎ及びＬｏｆｆを示す。
このように、リストＬｏｎは、ＰＶ４３へ書き込まれる書込対象の複数のデータのうち、ディスクアレイ装置２１に記憶されている一以上のデータのリストをデータサイズに基づきソートした第１リストの一例である。また、リストＬｏｆｆは、ＰＶ４３へ書き込まれる書込対象の複数のデータのうち、ディスクアレイ装置２１に記憶されていない二以上のデータのリストをデータサイズに基づきソートした第２リストの一例である。
【０１１７】
なお、図１０及び図１１の例では、ＬＶサイズが大から小へと変動する順（すなわち降順）でエントリがソートされているが、これに限定されるものではなく、エントリは、ＬＶサイズが小から大へと変動する順（すなわち昇順）でソートされてもよい。
【０１１８】
このように、分類処理部３２は、リストＬｏｎ及びＬｏｆｆの各々に対して、ＬＶサイズが緩やかに変化するようにソートを行なう。これにより、後述するように、リストＬｏｎに基づくＰＶ４３へのＬＶ２２の書込処理において、ＬＶサイズによるＰＶ４３へのＬＶ２２の書込速度の大きな変動を抑止できる。このため、書込速度を緩やかに変化させることができ、リポジショニングによる書込処理の遅延を最小限に抑えることができる。
【０１１９】
なお、分類処理部３２は、リストＬｏｎ及びＬｏｆｆのソートに上記のいずれのソート規則を用いてもよく、リストＬｏｎとリストＬｏｆｆとで同じソート規則を用いてよい。リストＬｏｎとリストＬｏｆｆとで同じソート規則を用いることにより、リストＬｏｆｆに基づきオンキャッシュ処理が実施されたＬＶ２２のＬＶサイズと、リストＬｏｎ内のＬＶ２２のＬＶサイズとの間の差分を小さくできる。このため、オンキャッシュ処理が実施された後にも、書込速度の大きな変動を抑止することができる。
【０１２０】
以上のように、分類処理部３２は、図１２に例示するように、処理対象となるＬＶ２２を、ＬＶサイズ及びキャッシュ状態の２つの観点によって分類するといえる。
【０１２１】
従って、分類処理部３２は、データがディスクアレイ装置２１に記憶されているか否かに応じたリストＬｏｎと、リストＬｏｆｆと、を生成する生成部の一例である。また、分類処理部３２は、複数のデータをデータサイズに基づき複数のサイズ範囲のグループに分類する分類部の一例である。
【０１２２】
〔１−４−２〕ＬＶ２２の書込処理及びリコール処理
分類処理部３２により、ＬＶ２２が分類されると、書込処理部３３及び読出処理部３４は、以下の（ｉ）〜（ｖ）の処理を互いに独立して実行する。
【０１２３】
（ｉ）リストＬｏｎに基づくＬＶ２２の書込処理
（ii）リストＬｏｆｆに基づくＬＶ２２のリコール処理
（iii）リストＬに基づくＬＶ２２の書込処理
（iv）リストＭに基づくＬＶ２２の書込処理
（ｖ）リストＳに基づくＬＶ２２の書込処理
【０１２４】
例えば、上記（ｉ）〜（ｖ）の各処理は、他の処理の完了を待たずに（換言すれば、非同期に）実行されてもよく、少なくとも１つの処理が並行して実行されてもよい。また、上記（ｉ）〜（ｖ）の各処理は、互いに異なるドライブ４１を利用して、互いに異なるＰＶ４３に対して、並行して実行されてよい。
【０１２５】
（ｉ）リストＬｏｎに基づくＬＶ２２の書込処理
書込処理部３３のＬｏｎ処理部３３ａは、リストＬｏｎに基づき、リストＬｏｎの登録順（換言すればＬＶサイズ順）に、書込処理を行なう。
【０１２６】
例えば、Ｌｏｎ処理部３３ａは、リストＬｏｎのサイズ順に、順次、ディスクアレイ装置２１からテープライブラリ装置４のＰＶ４３にＬＶ２２を書き込み、ＬＶ２２の書き込み完了後、書き込みを行なった対象のＬＶ２２のエントリをリストＬｏｎから削除する。
【０１２７】
なお、リストＬｏｎには、並行して実行されるリコール処理が完了したＬＶ２２のエントリが適宜追加（登録）される。このため、書込処理部３３は、ＬＶ２２のエントリがリストＬｏｎの末尾に登録される場合には、書込処理を実行する前に、リストＬｏｎをサイズ順にソートし直してもよい。
【０１２８】
ここで、Ｌｏｎ処理部３３ａは、書き込みを行なっているＬＶ２２のカテゴリを、書込モード情報３１８に設定してよい。例えば、Ｌｏｎ処理部３３ａは、書込対象のＬＶ２２のカテゴリが直前に書込処理を行なったＬＶ２２から変化した場合に、書込モード情報３１８を変更してよい。
【０１２９】
図１３は、書込モード情報３１８の一例を示す図である。書込モード情報３１８には、書込モードに応じた値が設定されてよい。書込モードは、書込処理を行なっているＬＶ２２のカテゴリを示す情報であり、例えば、大サイズは「３」、中サイズは「２」、小サイズは「１」、リストＬｏｎに基づく書込処理が完了した場合は「０」、が設定されてよい。
【０１３０】
上述のように、リストＬｏｎは、ＬＶサイズに応じてソートされている。このため、例えば、図１４に示すように、リストＬｏｎのサイズ順に（リストの先頭から順に）ＬＶ２２の書込処理を行なうと、同一カテゴリに属するＬＶ２２のグループ順に、リストＬｏｎの書込処理用のＰＶ４３への書込処理が進行する。
【０１３１】
このように、書込モード情報３１８は、書込処理実行中のカテゴリを示す、換言すれば、書込処理のフェーズを示す情報であるといえる。
【０１３２】
なお、Ｌｏｎ処理部３３ａは、テープライブラリ装置４に対して、ＰＶ４３を書き込むための制御を行なってよい。例えば、Ｌｏｎ処理部３３ａは、書込処理を行なう前に、テープライブラリ装置４のコントローラ４４に対して、ドライブ４１の確保、及び、リストＬｏｎの書込対象となるＰＶ４３のマウントを指示してよい。また、Ｌｏｎ処理部３３ａは、書込処理の完了後に、コントローラ４４に対して、ドライブ４１の解放、及び、書込対象のＰＶ４３のアンマウントを指示してよい。
【０１３３】
以上のように、Ｌｏｎ処理部３３ａは、リストＬｏｎのソート順に従って、リストＬｏｎ内のデータを、ディスクアレイ装置２１から第１ＰＶ４３に書き込む制御を行なう第１書込部の一例である。
【０１３４】
（ii）リストＬｏｆｆに基づくＬＶ２２のリコール処理
読出処理部３４のＬｏｆｆ処理部３４ａは、リストＬｏｆｆに基づき、リストＬｏｆｆの登録順（換言すればＬＶサイズ順）に、リコール処理を行なう。
【０１３５】
例えば、Ｌｏｆｆ処理部３４ａは、リストＬｏｆｆのサイズ順に、順次、テープライブラリ装置４のＰＶ４３からディスクアレイ装置２１にＬＶ２２を読み出す。
【０１３６】
ここで、Ｌｏｆｆ処理部３４ａは、読み出しを行なっているＬＶ２２のカテゴリを、リコールモード情報３１９に設定してよい。例えば、リコールモード情報３１９は、リコール対象のＬＶ２２のカテゴリが直前にリコール処理を行なったＬＶ２２から変化した場合に、リコールモード情報３１９を変更してよい。
【０１３７】
図１５は、リコールモード情報３１９の一例を示す図である。リコールモード情報３１９には、リコールモードに応じた値が設定されてよい。リコールモードは、リコール処理を行なっているＬＶ２２のカテゴリを示す情報であり、例えば、大サイズは「３」、中サイズは「２」、小サイズは「１」、リストＬｏｆｆに基づくリコール処理が完了した場合は「０」、が設定されてよい。
【０１３８】
上述のように、リストＬｏｆｆは、ＬＶサイズに応じてソートされている。このため、例えば、リストＬｏｆｆのサイズ順に（リストの先頭から順に）ＬＶ２２のリコール処理を行なうと、同一カテゴリに属するＬＶ２２のグループ順にリコール処理が進行する。
【０１３９】
このように、リコールモード情報３１９は、リコール処理実行中のカテゴリを示す、換言すれば、リコール処理のフェーズを示す情報であるといえる。
【０１４０】
なお、書込モード情報３１８及びリコールモード情報３１９は、それぞれ、フラグ等の情報として管理されてもよいし、フラグ以外の制御情報として管理されてもよい。また、書込モード情報３１８及びリコールモード情報３１９は、個別に又はまとめて、配列、ＸＭＬ、又はＤＢ等の種々の形態でメモリ部３１に格納されてよい。
【０１４１】
一実施形態に係るＬｏｆｆ処理部３４ａは、リコール処理完了後のＬＶ２２のエントリを、リストＬｏｆｆから削除するとともに、リストＬｏｎ、リストＬ、リストＭ、及びリストＳのうちのいずれかに登録する。
【０１４２】
例えば、Ｌｏｆｆ処理部３４ａは、ＬＶ２２ごとのリコール処理完了後、書込モード情報３１８とリコールモード情報３１９とを比較し、書込モード情報３１８の示すカテゴリがリコールモード情報３１９の示すカテゴリよりも小さいか否かを判定する。換言すれば、Ｌｏｆｆ処理部３４ａは、リコール処理に係るＬＶ２２のＬＶサイズが、書込処理に係るＬＶ２２のＬＶサイズよりも大きいか否かを判定する。
【０１４３】
書込モード情報３１８の示すカテゴリがリコールモード情報３１９の示すカテゴリよりも大きい又は同じ場合、換言すれば、リコール処理に係るＬＶサイズが書込処理に係るＬＶサイズ以下の場合、登録先リストは、リストＬｏｎとなる。
【０１４４】
この場合、図１６に例示するように、Ｌｏｆｆ処理部３４ａは、リストＬｏｆｆのリコール処理用のＰＶ４３からのリコールが完了したＬＶ２２のエントリを、リストＬｏｆｆからリストＬｏｎへ移動させる。
【０１４５】
一方、書込モード情報３１８の示すカテゴリがリコールモード情報３１９の示すカテゴリよりも小さい場合、換言すれば、リコール処理に係るＬＶサイズが書込処理に係るＬＶサイズよりも大きい場合、登録先リストは、リストＬ、Ｍ又はＳとなる。
【０１４６】
この場合、図１７に例示するように、Ｌｏｆｆ処理部３４ａは、リコール処理用のＰＶ４３からのリコールが完了したＬＶ２２のエントリを、リストＬｏｆｆから、リコールが完了したＬＶ２２のカテゴリに基づき、リストＬ、Ｍ又はＳへ移動させる。
【０１４７】
ＬＶ２２のエントリの追加先は、図１８に例示するように、リコール対象のＬＶ２２のカテゴリ（換言すればＬＶサイズ）に対応するリストＬ、Ｍ又はＳとなる。
【０１４８】
例えば、Ｌｏｆｆ処理部３４ａは、大サイズのＬＶ２２のリコール処理中の場合、且つ、中サイズ又は小サイズのＬＶ２２の書込処理中の場合又はリストＬｏｎの書込処理が完了した場合、リコール処理が完了した大サイズのＬＶ２２を、リストＬに登録する。
【０１４９】
また、Ｌｏｆｆ処理部３４ａは、中サイズのＬＶ２２のリコール処理中の場合、且つ、小サイズのＬＶ２２の書込処理中の場合又はリストＬｏｎの書込処理が完了した場合、リコール処理が完了した中サイズのＬＶ２２を、リストＭに登録する。
【０１５０】
さらに、Ｌｏｆｆ処理部３４ａは、小サイズのＬＶ２２のリコール処理中の場合、且つ、リストＬｏｎの書込処理が完了した場合、リコール処理が完了した小サイズのＬＶ２２を、リストＳに登録する。
【０１５１】
図１９〜図２１は、それぞれ、リストＬ、Ｍ及びＳの一例を示す図である。リストＬ、Ｍ及びＳは、リストグループリストの一例である。図１９〜図２１に例示するように、リストＬ、Ｍ及びＳは、それぞれ、リストＬｏｆｆのうちの、Ｌｏｆｆ処理部３４ａにより抽出された、リストＬ、Ｍ又はＳに対応するカテゴリ（“大”、“中”又は“小”）であるＬＶ２２のエントリを含んでよい。なお、図１９〜図２１に示すように、リストＬ、Ｍ、及びＳには、それぞれカテゴリ別のＬＶ２２が登録されているため、リストＬｏｆｆの「カテゴリ」の項目は省略されてよい。
【０１５２】
Ｌｏｆｆ処理部３４ａは、上述したリコール処理を、リストＬｏｆｆに登録された全てのＬＶ２２について実行するまで、ＬＶ２２単位で実行する。
【０１５３】
ここで、大サイズのＬＶ２２のリコール処理が完了したときに、書込処理では中サイズ又は小サイズのＬＶ２２の書き込みが実行中である場合を想定する。この場合、リストＬｏｎには、中サイズ又は小サイズのＬＶ２２に続いて、リコール処理が完了した大サイズのＬＶ２２が追加される。このため、当該大サイズのＬＶ２２は、ドライブ４１のスピードマッチング機能によって、不適切な速度（例えば中速度又は低速度）で処理され、スループットが低下することになる。
【０１５４】
そこで、一実施形態に係るＬｏｆｆ処理部３４ａは、リストＬｏｆｆのリコール処理の対象ＬＶサイズが書込処理の対象ＬＶサイズよりも大きい場合、処理完了後のＬＶ２２を、リストＬｏｎではなくリストＬ、Ｍ又はＳに追加するのである。
【０１５５】
なお、リストＬｏｎ及びＬｏｆｆのソート順が昇順の場合、Ｌｏｆｆ処理部３４ａは、リストＬｏｆｆのリコール処理の対象ＬＶサイズが書込処理の対象ＬＶサイズよりも小さい場合に、処理完了後のＬＶ２２をリストＬ、Ｍ又はＳに追加してよい。
【０１５６】
このように、Ｌｏｆｆ処理部３４ａは、読み出したデータの属する第１グループの第１サイズ範囲と、書き込み中のデータの属する第２グループの第２サイズ範囲とに応じて、読み出したデータの情報を、リストＬｏｆｆから、当該データの属するグループに対応するリストＬ、Ｍ又はＳに移動する移動部の一例である。例えば、移動部としてのＬｏｆｆ処理部３４ａは、第１サイズ範囲が第２サイズ範囲よりもソート順で前となる（換言すれば、ソート順とは逆順方向の）サイズ範囲である場合に、リストＬ、Ｍ又はＳへの移動を行なってよい。この場合、Ｌｏｆｆ処理部３４ａは、第１サイズ範囲が、第２サイズ範囲と同じサイズ範囲である場合、又は、第２サイズ範囲よりもソート順で後となる（換言すれば、ソート順方向の）サイズ範囲である場合、読み出したデータの情報をリストＬｏｎに登録してよい。
【０１５７】
これにより、ＬＶサイズごとに、オンキャッシュ状態のＬＶ２２の割合とオフキャッシュ状態のＬＶ２２の割合とのバラツキがある場合においても、ＰＶ４３に対するＬＶ２２の書込処理時間を短縮することが可能となる。換言すれば、書込対象のＬＶ２２のデータをＰＶ４３に書き込む書込処理を効率的に実施することが可能となる。
【０１５８】
なお、Ｌｏｆｆ処理部３４ａは、リストＬｏｆｆから移動するＬＶ２２のエントリを、リストＬｏｎ、Ｌ、Ｍ又はＳの末尾に登録してもよい。或いは、Ｌｏｆｆ処理部３４ａは、移動するエントリを、リストＬｏｎ、Ｌ、Ｍ又はＳにおいてサイズ順となる位置に登録してもよいし、末尾への登録後にリストＬｏｎ、Ｌ、Ｍ又はＳをサイズ順にソートし直してもよい。
【０１５９】
また、Ｌｏｆｆ処理部３４ａは、テープライブラリ装置４に対して、ＰＶ４３からリコールするための制御を行なってよい。例えば、Ｌｏｆｆ処理部３４ａは、リコール処理を行なう前に、テープライブラリ装置４のコントローラ４４に対して、ドライブ４１の確保、及び、リストＬｏｆｆのリコール対象となるＰＶ４３のマウントを指示してよい。また、読出処理部３４は、リコール処理の完了後に、コントローラ４４に対して、ドライブ４１の解放、及び、リコール対象のＰＶ４３のアンマウントを指示してよい。
【０１６０】
以上のように、Ｌｏｆｆ処理部３４ａは、リストＬｏｆｆのソート順に従って、リストＬｏｆｆ内のデータを、当該データを格納する格納元ＰＶ４３からディスクアレイ装置２１に読み出す制御を行なう読出部の一例である。
【０１６１】
（iii）〜（ｖ）リストＬ、Ｍ、Ｓに基づくＬＶ２２の書込処理
書込処理部３３のＬＭＳ処理部３３ｂは、リストＬ、Ｍ、及びＳに基づき、リストＬ、Ｍ、Ｓの登録順（換言すればＬＶサイズ順）に、書込処理を行なう。
【０１６２】
例えば、Ｌｏｎ処理部３３ａは、リストＬ、Ｍ、Ｓの各々について、サイズ順に、順次、ディスクアレイ装置２１からＰＶ４３にＬＶ２２を書き込み、ＬＶ２２の書き込み完了後、書き込みを行なった対象のＬＶ２２のエントリをリストＬ、Ｍ、Ｓから削除する。
【０１６３】
なお、リストＬ、Ｍ、Ｓには、それぞれ、並行して実行されるリコール処理が完了したＬＶ２２のエントリが適宜追加（登録）される。このため、書込処理部３３は、ＬＶ２２のエントリがリストＬ、Ｍ又はＳの末尾に登録される場合には、書込処理を実行する前に、リストＬ、Ｍ又はＳをサイズ順にソートし直してもよい。
【０１６４】
ここで、ＬＭＳ処理部３３ｂは、分類処理部３２によりリストＬｏｎ及びＬｏｆｆが作成されると、リストＬ、Ｍ及びＳの各々について、以下の実行条件の判定（監視）を行ない、実行条件を満たすリストＬ、Ｍ又はＳに基づき、書込処理の実行を開始する。
【０１６５】
実行条件としては、例えば、書込処理未実行のリストＬ、Ｍ又はＳに所属するＬＶ２２のＬＶサイズの合計値が、リストＬｏｆｆにおけるリストＬ、Ｍ又はＳに対応するカテゴリのＬＶサイズの合計値よりも大きくなった場合が挙げられる。
【０１６６】
一例として、ＬＭＳ処理部３３ｂは、リストＬのＬＶ２２について、リストＬのＬＶサイズの合計値がリストＬｏｆｆのうちのカテゴリが“大”のＬＶサイズの合計値よりも大きくなった場合に、リストＬに基づく書込処理を開始する。
【０１６７】
また、ＬＭＳ処理部３３ｂは、リストＭのＬＶ２２について、リストＭのＬＶサイズの合計値がリストＬｏｆｆのうちのカテゴリが“中”のＬＶサイズの合計値よりも大きくなった場合に、リストＭに基づく書込処理を開始する。
【０１６８】
さらに、ＬＭＳ処理部３３ｂは、リストＳのＬＶ２２について、リストＳのＬＶサイズの合計値がリストＬｏｆｆのうちのカテゴリが“小”のＬＶサイズの合計値よりも大きくなった場合に、リストＳに基づく書込処理を開始する。
【０１６９】
なお、ＬＭＳ処理部３３ｂは、実行条件を満たさないリストＬ、Ｍ又はＳについては、当該リストＬ、Ｍ又はＳ内のデータのＰＶ４３への書き込みを抑止する。
【０１７０】
ＬＭＳ処理部３３ｂは、図２２に例示するように、上述したリストＬ、Ｍ又はＳ別の書込処理を、リストＬ、Ｍ又はＳに登録された全てのＬＶ２２について実行するまで、ＬＶ２２単位で実行する。
【０１７１】
なお、ＬＭＳ処理部３３ｂは、リストＬ、Ｍ及びＳにそれぞれ対応するＰＶ４３にデータを書き込むため、ＰＶ４３間でのカテゴリの混在が回避される。
【０１７２】
また、上述した実行条件により、リストＬ、Ｍ又はＳの書込処理が開始した場合、当該リストＬ、Ｍ又はＳの全ての書込処理が完了する前に、リストＬｏｆｆのリコール処理が終了することが期待できる。従って、オンキャッシュ処理中（ＰＶ４３からＬＶ２２のデータの読出処理中）に、リストＬ、Ｍ又はＳの書込対象のＰＶ４３への書込処理において、オンキャッシュ処理待ちによる書込処理の停滞が発生することを抑制できる。
【０１７３】
ＬＭＳ処理部３３ｂは、リストＬ、Ｍ又はＳ別の書込処理を行なう前に、テープライブラリ装置４のコントローラ４４に対して、ドライブ４１の確保、及び、リストＬ、Ｍ又はＳの書込対象となるＰＶ４３のマウントを指示してよい。また、ＬＭＳ処理部３３ｂは、リストＬ、Ｍ又はＳの書込処理の完了後に、コントローラ４４に対して、ドライブ４１の解放、及び、書込対象のＰＶ４３のアンマウントを指示してよい。
【０１７４】
以上のように、一実施形態に係る仮想テープ装置２は、オフキャッシュ状態のＬＶ２２のリコール処理と、オンキャッシュ状態のＬＶ２２の書込処理とを並行して実行する。また、オンキャッシュ状態の書込処理は、ＬＶサイズが緩やかな変化となるリストＬｏｎ、並びに、ＬＶサイズが同一のカテゴリ内に制限されるリストＬ、Ｍ、及びＳ、のそれぞれに基づき、並行して実行される。
【０１７５】
このように、仮想テープ装置２は、複数の書込処理とリコール処理とを並列で実行させることにより、ドライブ４１等のリソースの有効活用や、書込処理及びリコール処理の最適化を行なうことができる。これにより、複数の書込処理及びリコール処理におけるそれぞれのドライブ４１の書込速度又は読出速度を安定させることができる。従って、複数のＰＶ４３に対する、リコール処理を含む書込処理における書込処理時間の短縮を可能とすることができ、スループットを向上させることができる。
【０１７６】
例えば、マイグレーション処理の場合は、ディスクアレイ装置２１にのみＬＶ２２が存在し、テープライブラリ装置４のＰＶ４３には存在しないマイグレーション未完了の状態、すなわちダーティ（Ｄｉｒｔｙ）状態をより速く解消することができる。これにより、データロストのリスクを減少させることができる。
【０１７７】
以上のように、ＬＭＳ処理部３３ｂは、リストＬ、Ｍ又はＳ内のデータを、リストＬ、Ｍ又はＳごとに、第１ＰＶ４３とは異なる第２ＰＶ４３に書き込む第２書込部の一例である。
【０１７８】
〔１−５〕動作例
次に、図２３〜図３０を参照して、上述の如く構成された仮想テープシステム１（制御サーバ３）の動作例を説明する。
【０１７９】
〔１−５−１〕全体の動作例
図２３に例示するように、制御サーバ３の分類処理部３２は、ホスト装置５から書込指示を受信すると、マスタＬＶリスト３１１に基づき書込対象ＬＶリスト３１２を生成し、分類処理を実行する（ステップＳ１）。
【０１８０】
書込処理部３３のＬｏｎ処理部３３ａは、分類処理で生成されたリストＬｏｎに基づき、書込処理Ｗを開始する（ステップＳ２）。
【０１８１】
読出処理部３４のＬｏｆｆ処理部３４ａは、分類処理で生成されたリストＬｏｆｆに基づき、リコール処理Ｒを開始する（ステップＳ３）。
【０１８２】
書込処理部３３のＬＭＳ処理部３３ｂは、リコール処理において生成されるリストＬのＬＶサイズ合計値がリストＬｏｆｆの“大”カテゴリのＬＶサイズ合計値以上、且つ、ステップＳ５が未実行、という実行条件を満たすか否かを判定する（ステップＳ４）。
【０１８３】
実行条件を満たすと判定した場合（ステップＳ４でＹｅｓ）、ＬＭＳ処理部３３ｂは、リストＬに基づく書込処理ＷＬを開始し（ステップＳ５）、処理がステップＳ６に移行する。なお、実行条件を満たさないと判定した場合（ステップＳ４でＮｏ）、処理がステップＳ６に移行する。
【０１８４】
ステップＳ６において、ＬＭＳ処理部３３ｂは、リコール処理において生成されるリストＭのＬＶサイズ合計値がリストＬｏｆｆの“中”カテゴリのＬＶサイズ合計値以上、且つ、ステップＳ７が未実行、という実行条件を満たすか否かを判定する。
【０１８５】
実行条件を満たすと判定した場合（ステップＳ６でＹｅｓ）、ＬＭＳ処理部３３ｂは、リストＭに基づく書込処理ＷＭを開始し（ステップＳ７）、処理がステップＳ８に移行する。なお、実行条件を満たさないと判定した場合（ステップＳ６でＮｏ）、処理がステップＳ８に移行する。
【０１８６】
ステップＳ８において、ＬＭＳ処理部３３ｂは、リコール処理において生成されるリストＳのＬＶサイズ合計値がリストＬｏｆｆの“小”カテゴリのＬＶサイズ合計値以上、且つ、ステップＳ９が未実行、という実行条件を満たすか否かを判定する。
【０１８７】
実行条件を満たすと判定した場合（ステップＳ８でＹｅｓ）、ＬＭＳ処理部３３ｂは、リストＳに基づく書込処理ＷＳを開始し（ステップＳ９）、処理がステップＳ１０に移行する。なお、実行条件を満たさないと判定した場合（ステップＳ８でＮｏ）、処理がステップＳ１０に移行する。
【０１８８】
ステップＳ１０において、ＬＭＳ処理部３３ｂは、処理Ｗ及びＲがいずれも完了し、且つ、処理ＷＬ、ＷＭ及びＷＳがいずれも非実行中（すなわち、未実行又は完了済）であり、且つ、リストＬ、Ｍ及びＳがいずれも空か否かを判定する。少なくとも１つの条件を満たさないと判定した場合（ステップＳ１０でＮｏ）、処理がステップＳ４に移行する。全ての条件を満たすと判定した場合（ステップＳ１０でＹｅｓ）、処理が終了する。
【０１８９】
なお、ステップＳ２、ステップＳ３、ステップＳ４及びＳ５、ステップＳ６及びＳ７、並びに、ステップＳ８及びＳ９の実行順序は、図２３に示す順序に限定されるものではない。また、これらの処理が、複数のプロセスにより並行して実行されてもよい。
【０１９０】
〔１−５−２〕ＬＶ分類処理の動作例
図２４に例示するように、図２３のステップＳ１の分類処理において、分類処理部３２は、リストＬｗに含まれる書込対象のＬＶ２２にオフキャッシュ状態のＬＶ２２があるか否かを判定する（ステップＳ１１）。
【０１９１】
オフキャッシュ状態のＬＶ２２があると判定した場合（ステップＳ１１でＹｅｓ）、分類処理部３２は、オフキャッシュ状態のＬＶ２２を抽出し（ステップＳ１２）、リストＬｏｆｆに抽出した全てのＬＶ２２を挿入する（ステップＳ１３）。また、分類処理部３２は、リストＬｏｆｆの全てのＬＶ２２をＬＶサイズに基づくカテゴリに分類し（ステップＳ１４）、処理がステップＳ１５に移行する。なお、オフキャッシュ状態のＬＶ２２がないと判定した場合（ステップＳ１１でＮｏ）、処理がステップＳ１５に移行する。
【０１９２】
ステップＳ１５において、分類処理部３２は、リストＬｗに含まれる書込対象のＬＶ２２からオンキャッシュ状態のＬＶ２２を抽出する。また、分類処理部３２は、リストＬｏｎに抽出したオンキャッシュ状態の全てのＬＶ２２を挿入し（ステップＳ１６）、リストＬｏｎの全てのＬＶ２２をＬＶサイズに基づくカテゴリに分類し（ステップＳ１７）、処理が終了する。
【０１９３】
〔１−５−３〕リストＬｏｎに基づく書込処理の動作例
図２５に例示するように、図２３のステップＳ２で開始した書込処理Ｗにおいて、Ｌｏｎ処理部３３ａは、書込モード情報３１８の書込モードを“大”（例えば値“３”）に設定する（ステップＳ２１）。
【０１９４】
Ｌｏｎ処理部３３ａは、処理中の書込モードのカテゴリでリストＬｏｎに存在する最大サイズのＬＶ２２をＰＶ４３に書き込み（ステップＳ２２）、書き込みを行なった対象ＬＶ２２をリストＬｏｎから削除する（ステップＳ２３）。
【０１９５】
Ｌｏｎ処理部３３ａは、処理中の書込モードのカテゴリに属するＬＶ２２がリストＬｏｎにあるか否かを判定する（ステップＳ２４）。リストＬｏｎにあると判定した場合（ステップＳ２４でＹｅｓ）、処理がステップＳ２２に移行する。
【０１９６】
一方、リストＬｏｎにないと判定した場合（ステップＳ２４でＮｏ）、Ｌｏｎ処理部３３ａは、書込モード情報３１８を参照し、処理中の書込モードが“大”か否かを判定する（ステップＳ２５）。書込モードが“大”であると判定した場合（ステップＳ２５でＹｅｓ）、Ｌｏｎ処理部３３ａは、書込モード情報３１８に対して、書込モードを“中”（例えば値“２”）に設定し（ステップＳ２６）、処理がステップＳ２２に移行する。
【０１９７】
書込モードが“大”ではないと判定した場合（ステップＳ２５でＮｏ）、Ｌｏｎ処理部３３ａは、処理中の書込モードが“中”か否かを判定する（ステップＳ２７）。書込モードが“中”であると判定した場合（ステップＳ２７でＹｅｓ）、Ｌｏｎ処理部３３ａは、書込モード情報３１８に対して、書込モードを“小”（例えば値“１”）に設定し（ステップＳ２８）、処理がステップＳ２２に移行する。
【０１９８】
書込モードが“中”ではないと判定した場合（ステップＳ２７でＮｏ）、Ｌｏｎ処理部３３ａは、書込モード情報３１８に対して、書込モードを“完了”（例えば値“０”）に設定し（ステップＳ２９）、処理が終了する。
【０１９９】
〔１−５−４〕リストＬｏｆｆに基づくリコール処理の動作例
図２６に例示するように、図２３のステップＳ３で開始したリコール処理Ｒにおいて、Ｌｏｆｆ処理部３４ａは、リコールモード情報３１９のリコールモードを“大”（例えば値“３”）に設定する（ステップＳ３１）。
【０２００】
Ｌｏｆｆ処理部３４ａは、処理中のリコールモードのカテゴリでリストＬｏｆｆに存在する最大サイズのＬＶ２２をリコールする（ステップＳ３２）。
【０２０１】
リコール後、Ｌｏｆｆ処理部３４ａは、書込モード情報３１８及びリコールモード情報３１９を参照し、処理中の書込モードがリコールモードよりも小さいか否かを判定する（ステップＳ３３）。
【０２０２】
小さいと判定した場合（ステップＳ３３でＹｅｓ）、Ｌｏｆｆ処理部３４ａは、処理中のリコールモードが“大”か否かを判定する（ステップＳ３４）。リコールモードが“大”であると判定した場合（ステップＳ３４でＹｅｓ）、Ｌｏｆｆ処理部３４ａは、リコールを行なった対象ＬＶ２２をリストＬに追加し（ステップＳ３５）、処理がステップＳ４１に移行する。
【０２０３】
リコールモードが“大”ではないと判定した場合（ステップＳ３４でＮｏ）、Ｌｏｆｆ処理部３４ａは、処理中のリコールモードが“中”か否かを判定する（ステップＳ３６）。リコールモードが“中”であると判定した場合（ステップＳ３６でＹｅｓ）、Ｌｏｆｆ処理部３４ａは、対象ＬＶ２２をリストＭに追加し（ステップＳ３７）、処理がステップＳ４１に移行する。
【０２０４】
リコールモードが“中”ではないと判定した場合（ステップＳ３６でＮｏ）、Ｌｏｆｆ処理部３４ａは、対象ＬＶ２２をリストＳに追加し（ステップＳ３８）、処理がステップＳ４１に移行する。
【０２０５】
ステップＳ３３において、処理中の書込モードがリコールモード以上であると判定した場合（ステップＳ３３でＮｏ）、Ｌｏｆｆ処理部３４ａは、対象ＬＶ２２をリストＬｏｎに追加する（ステップＳ３９）。また、Ｌｏｆｆ処理部３４ａは、リストＬｏｎに対して、対象ＬＶ２２をＬＶサイズに基づくカテゴリに分類する（ステップＳ４０）。
【０２０６】
次いで、Ｌｏｆｆ処理部３４ａは、対象ＬＶ２２をリストＬｏｆｆから削除し（ステップＳ４１）、処理中のリコールモードのカテゴリに属するＬＶ２２がリストＬｏｆｆにあるか否かを判定する（ステップＳ４２）。リストＬｏｆｆにあると判定した場合（ステップＳ４２でＹｅｓ）、処理がステップＳ３２に移行する。
【０２０７】
一方、リストＬｏｆｆにないと判定した場合（ステップＳ４２でＮｏ）、図２７に例示するように、Ｌｏｆｆ処理部３４ａは、処理中のリコールモードが“大”か否かを判定する（ステップＳ４３）。リコールモードが“大”であると判定した場合（ステップＳ４３でＹｅｓ）、Ｌｏｆｆ処理部３４ａは、リコールモード情報３１９に対して、リコールモードを“中”（例えば値“２”）に設定し（ステップＳ４４）、処理が図２６のステップＳ３２に移行する。
【０２０８】
リコールモードが“大”ではないと判定した場合（ステップＳ４３でＮｏ）、Ｌｏｆｆ処理部３４ａは、処理中のリコールモードが“中”か否かを判定する（ステップＳ４５）。リコールモードが“中”であると判定した場合（ステップＳ４５でＹｅｓ）、Ｌｏｆｆ処理部３４ａは、リコールモード情報３１９に対して、リコールモードを“小”（例えば値“１”）に設定し（ステップＳ４６）、処理がステップＳ３２に移行する。
【０２０９】
リコールモードが“中”ではないと判定した場合（ステップＳ４５でＮｏ）、Ｌｏｆｆ処理部３４ａは、リコールモード情報３１９に対して、リコールモードを“完了”（例えば値“０”）に設定し（ステップＳ４７）、処理が終了する。
【０２１０】
〔１−５−５〕リストＬに基づく書込処理の動作例
図２８に例示するように、図２３のステップＳ５で開始した書込処理ＷＬにおいて、ＬＭＳ処理部３３ｂは、リストＬに存在する最大サイズのＬＶ２２をＰＶ４３に書き込み（ステップＳ５１）、対象ＬＶ２２をリストＬから削除する（ステップＳ５２）。
【０２１１】
ＬＭＳ処理部３３ｂは、リストＬにＬＶ２２があるか否かを判定し（ステップＳ５３）、あると判定した場合（ステップＳ５３でＹｅｓ）、処理がステップＳ５１に移行する。一方、ＬＶ２２がないと判定した場合（ステップＳ５３でＮｏ）、処理が終了する。
【０２１２】
〔１−５−６〕リストＭに基づく書込処理の動作例
図２９に例示するように、図２３のステップＳ７で開始した書込処理ＷＭにおいて、ＬＭＳ処理部３３ｂは、リストＭに存在する最大サイズのＬＶ２２をＰＶ４３に書き込み（ステップＳ６１）、対象ＬＶ２２をリストＭから削除する（ステップＳ６２）。
【０２１３】
ＬＭＳ処理部３３ｂは、リストＭにＬＶ２２があるか否かを判定し（ステップＳ６３）、あると判定した場合（ステップＳ６３でＹｅｓ）、処理がステップＳ６１に移行する。一方、ＬＶ２２がないと判定した場合（ステップＳ６３でＮｏ）、処理が終了する。
【０２１４】
〔１−５−７〕リストＳに基づく書込処理の動作例
図３０に例示するように、図２３のステップＳ９で開始した書込処理ＷＳにおいて、ＬＭＳ処理部３３ｂは、リストＳに存在する最大サイズのＬＶ２２をＰＶ４３に書き込み（ステップＳ７１）、対象ＬＶ２２をリストＳから削除する（ステップＳ７２）。
【０２１５】
ＬＭＳ処理部３３ｂは、リストＳにＬＶ２２があるか否かを判定し（ステップＳ７３）、あると判定した場合（ステップＳ７３でＹｅｓ）、処理がステップＳ７１に移行する。一方、ＬＶ２２がないと判定した場合（ステップＳ７３でＮｏ）、処理が終了する。
【０２１６】
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０２１７】
例えば、図７に示す制御サーバ３の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
【０２１８】
また、分類処理部３２は、書込指示に応じて、書込対象ＬＶリスト３１２を作成するものとして説明したが、これに限定されるものではない。例えば、分類処理部３２は、書込指示に含まれる書込対象のＬＶ２２のリストと、マスタＬＶリスト３１１とに基づき、リストＬｏｎ及びＬｏｆｆを作成してもよく、この場合、書込対象ＬＶリスト３１２の作成は省略されてもよい。
【０２１９】
さらに、分類処理部３２、書込処理部３３及び読出処理部３４は、ＬＶ２２の各リスト３１２〜３１７を、ＬＶサイズの降順にソートするものとして説明したが、これに限定されるものではない。ＬＶサイズの昇順にソートする場合、リストＬｏｎ及びＬｏｆｆに基づく処理、換言すれば、書込モード及びリコールモードの遷移は、カテゴリが“小”、“中”、“大”、“完了”の順で行なわれてよい。
【０２２０】
また、カテゴリは、“大”、“中”、“小”の３つであるものとしたが、これに限定されるものではなく、２つ、又は、４つ以上であってもよい。
【０２２１】
〔３〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【０２２２】
（付記１）
可搬型の記録媒体へ書き込まれる書込対象の複数のデータのうち、記憶装置に記憶されている一以上のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されていない二以上のデータのリストをデータサイズに基づきソートした第２リストと、を生成する生成部と、
前記複数のデータをデータサイズに基づき複数のサイズ範囲のグループに分類する分類部と、
前記第１リストのソート順に従って、前記第１リスト内のデータを、前記記憶装置から可搬型の第１記録媒体に書き込む制御を行なう第１書込部と、
前記第２リストのソート順に従って、前記第２リスト内のデータを、当該データを格納する格納元記録媒体から前記記憶装置に読み出す制御を行なう読出部と、
前記読出部により読み出されたデータの属する第１グループの第１サイズ範囲と、前記第１書込部による書き込み中のデータの属する第２グループの第２サイズ範囲とに応じて、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動する移動部と、
前記グループリスト内のデータを、前記グループリストごとに、前記第１記録媒体とは異なる可搬型の第２記録媒体に書き込む第２書込部と、
をそなえる、ストレージ制御装置。
【０２２３】
（付記２）
前記第１リストのソート順と前記第２リストのソート順とが同じソート順であり、
前記移動部は、前記第１サイズ範囲が前記第２サイズ範囲よりも前記ソート順で前となるサイズ範囲である場合、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動する、
付記１に記載のストレージ制御装置。
【０２２４】
（付記３）
前記移動部は、前記第１サイズ範囲が、前記第２サイズ範囲と同じサイズ範囲である場合、又は、前記第２サイズ範囲よりも前記ソート順で後となるサイズ範囲である場合、前記読み出されたデータの情報を前記第１リストに登録する、
付記２に記載のストレージ制御装置。
【０２２５】
（付記４）
前記第２書込部は、前記グループリスト内のデータの合計サイズが、前記グループリストに対応するグループに属する前記第２リスト内のデータの合計サイズ以上の場合に、前記グループリスト内のデータを、前記第２記録媒体に書き込む、
付記１〜付記３のいずれか１項に記載のストレージ制御装置。
【０２２６】
（付記５）
前記第２書込部は、前記グループリスト内のデータの合計サイズが、前記グループリストに対応するグループに属する前記第２リスト内のデータの合計サイズよりも小さい場合、前記グループリスト内のデータの前記第２記録媒体への書き込みを抑止する、
付記１〜付記４のいずれか１項に記載のストレージ制御装置。
【０２２７】
（付記６）
前記第１リスト及び前記第２リストの各々のソート順は、データサイズが大から小へと変動する順、又は、データサイズが小から大へと変動する順、である、付記１〜付記５のいずれか１項に記載のストレージ制御装置。
【０２２８】
（付記７）
前記第１書込部、前記第２書込部、及び、前記読出部は、互いに異なる記録媒体に対して、並行して処理を行なう、
付記１〜付記６のいずれか１項に記載のストレージ制御装置。
【０２２９】
（付記８）
前記第１書込部及び前記第２書込部は、
複数のアクセス部と、
前記複数のアクセス部のうちの書込データを可搬型の記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部と、
を有するストレージ装置の前記制御部に対して、互いに異なるアクセス部を利用した前記第１記録媒体及び前記第２記録媒体へのデータの書き込みを指示する、
付記１〜付記７のいずれか１項に記載のストレージ制御装置。
【０２３０】
（付記９）
コンピュータが、
可搬型の記録媒体へ書き込まれる書込対象の複数のデータのうち、記憶装置に記憶されている一以上のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されていない二以上のデータのリストをデータサイズに基づきソートした第２リストと、を生成し、
前記複数のデータをデータサイズに基づき複数のサイズ範囲のグループに分類し、
前記第１リストのソート順に従って、前記第１リスト内のデータを、前記記憶装置から可搬型の第１記録媒体に書き込む制御を行ない、
前記第２リストのソート順に従って、前記第２リスト内のデータを、当該データを格納する格納元記録媒体から前記記憶装置に読み出す制御を行ない、
読み出されたデータの属する第１グループの第１サイズ範囲と、書き込み中のデータの属する第２グループの第２サイズ範囲とに応じて、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動し、
前記グループリスト内のデータを、前記グループリストごとに、前記第１記録媒体とは異なる可搬型の第２記録媒体に書き込む、
ストレージ制御方法。
【０２３１】
（付記１０）
可搬型の記録媒体へ書き込まれる書込対象の複数のデータのうち、記憶装置に記憶されている一以上のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されていない二以上のデータのリストをデータサイズに基づきソートした第２リストと、を生成し、
前記複数のデータをデータサイズに基づき複数のサイズ範囲のグループに分類し、
前記第１リストのソート順に従って、前記第１リスト内のデータを、前記記憶装置から可搬型の第１記録媒体に書き込む制御を行ない、
前記第２リストのソート順に従って、前記第２リスト内のデータを、当該データを格納する格納元記録媒体から前記記憶装置に読み出す制御を行ない、
読み出されたデータの属する第１グループの第１サイズ範囲と、書き込み中のデータの属する第２グループの第２サイズ範囲とに応じて、前記読み出されたデータの情報を、前記第２リストから前記第１グループに対応するグループリストに移動し、
前記グループリスト内のデータを、前記グループリストごとに、前記第１記録媒体とは異なる可搬型の第２記録媒体に書き込む、
処理をコンピュータに実行させる、ストレージ制御プログラム。
【符号の説明】
【０２３２】
１    仮想テープシステム
１００    ＰＶ
２    仮想テープ装置
２００    ＴＶＣ
２１    ディスクアレイ装置
２２    ＬＶ
３、３−１、３−２    制御サーバ
３ａ  プロセッサ
３ｂ  メモリ
３ｃ  記憶部
３ｄ−１  テープＩＦ（Interface）
３ｄ−２  入出力ＩＦ
３ｄ−３  ホストＩＦ
３ｄ−４  ディスクＩＦ
３ｅ  読取部
３ｆ  プログラム
３ｇ  入出力装置
３ｈ  記録媒体
３ｉ  バス
３１    メモリ部
３１１    マスタＬＶリスト
３１２    書込対象ＬＶリスト
３１３    オンキャッシュＬＶリスト
３１４    オフキャッシュＬＶリスト
３１５    Ｌリスト
３１６    Ｍリスト
３１７    Ｓリスト
３１８    書込モード情報
３１９    リコールモード情報
３２    分類処理部
３３    書込処理部
３３ａ    Ｌｏｎ処理部
３３ｂ    ＬＭＳ処理部
３４    読出処理部
３４ａ    Ｌｏｆｆ処理部
４    テープライブラリ装置
４１、４１−１〜４１−ｎ    ドライブ
４２    ロボット
４３、４３−１、４３−２    ＰＶ
４４    コントローラ
４５    格納部
５    ホスト装置
【図１】
2020197781.tif 000003
【図２】
2020197781.tif 000004
【図３】
2020197781.tif 000005
【図４】
2020197781.tif 000006
【図５】
2020197781.tif 000007
【図６】
2020197781.tif 000008
【図７】
2020197781.tif 000009
【図８】
2020197781.tif 000010
【図９】
2020197781.tif 000011
【図１０】
2020197781.tif 000012
【図１１】
2020197781.tif 000013
【図１２】
2020197781.tif 000014
【図１３】
2020197781.tif 000015
【図１４】
2020197781.tif 000016
【図１５】
2020197781.tif 000017
【図１６】
2020197781.tif 000018
【図１７】
2020197781.tif 000019
【図１８】
2020197781.tif 000020
【図１９】
2020197781.tif 000021
【図２０】
2020197781.tif 000022
【図２１】
2020197781.tif 000023
【図２２】
2020197781.tif 000024
【図２３】
2020197781.tif 000025
【図２４】
2020197781.tif 000026
【図２５】
2020197781.tif 000027
【図２６】
2020197781.tif 000028
【図２７】
2020197781.tif 000029
【図２８】
2020197781.tif 000030
【図２９】
2020197781.tif 000031
【図３０】
2020197781.tif 000032