(57)【要約】【課題】端末管理者のトークンやアーカイブ，トークン用パスワードの管理に要する工数を軽減し、又、端末装置のセキュリティレベルを更に向上させる。【解決手段】複数の論理ボリュームを格納するキャッシュメモリと、複数の論理ボリューム２１０のそれぞれに対するアクセス時間情報を含むマウント情報３２を管理する管理部１０と、キャッシュメモリに格納された複数の論理ボリューム２１０の中から、キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリューム２１０を選択する選択部２０とを備え、選択部２０が、追い出し順位付けされた論理ボリュームのうち、直近に物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、キャッシュアウト対象論理ボリュームとして優先して選択する。【選択図】図３
2020197897.tif 000002
【特許請求の範囲】
【請求項１】
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを管理する仮想テープ装置であって、
前記複数の論理ボリュームを格納するキャッシュメモリと、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、
前記選択部が、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、仮想テープ装置。
【請求項２】
前記選択部が、
直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームが無い場合には、前記追い出し順位に従って前記キャッシュアウト対象論理ボリュームを選択する
ことを特徴とする、請求項１記載の仮想テープ装置。
【請求項３】
前記選択部が、
前記物理ドライブにマウントされた前記物理ボリュームに格納される前記論理ボリュームが複数ある場合に、前記物理ボリューム上における格納位置と、前記物理ドライブの物理ヘッドの位置との距離が短い論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、請求項１記載の仮想テープ装置。
【請求項４】
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを格納するキャッシュメモリを制御するキャッシュ制御装置であって、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、
前記選択部が、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、キャッシュ制御装置。
【請求項５】
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを格納するキャッシュメモリを制御するキャッシュ制御装置のプロセッサに、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理し、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択し、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
処理を実行させる、キャッシュ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想テープ装置，キャッシュ制御装置およびキャッシュ制御プログラムに関する。
【背景技術】
【０００２】
仮想テープ装置は、テープドライブ装置及びカートリッジテープを仮想化するシステムである。仮想テープ装置は、仮想テープ装置に接続されたホストコンピュータのＯＳ（Operating System）からテープ装置として認識される。ホストコンピュータにおいては、この仮想化したテープ（仮想テープ）を通常のテープ装置と同様に使用することができ、これにより、ホストコンピュータは、仮想テープ装置を、あたかもそこに実テープがマウントされているように使用することができる。
【０００３】
仮想テープ装置は、バックエンドライブラリを接続する。バックエンドライブラリには、テープドライブ装置（物理ドライブ）と、複数のテープ（物理ボリューム）と、テープドライブ装置にテープを搬送する搬送機構とが備えられる。
【０００４】
また、仮想テープ装置は、テープボリュームキャッシュを備え、このテープボリュームキャッシュにテープ（物理ボリューム）を仮想化した仮想テープボリュームが格納される。
【０００５】
仮想テープ装置において、データは、テープボリュームキャッシュ内の仮想テープボリュームに格納された後に、バックエンドライブラリのテープにもコピーされ、これにより、データは二重管理される。
【０００６】
仮想テープ装置において、テープボリュームキャッシュがフルとなった状態において、このテープボリュームキャッシュに新規に仮想テープボリュームを追加する必要が生じる場合がある。このような場合には、テープボリュームキャッシュ内の古い仮想テープボリュームをテープボリュームキャッシュからキャッシュアウトした後に、このテープボリュームキャッシュに新規の仮想テープボリュームを格納する。
【０００７】
従来の仮想テープ装置においては、テープボリュームキャッシュからキャッシュアウトする対象の仮想テープボリュームは、ＬＲＵ（Least Recently Used）論理により、最も古いデータから優先して選択される。
【０００８】
また、キャッシュアウトした仮想テープボリュームを再度使用したい場合には、バックエンドライブラリから仮想テープボリュームをテープボリュームキャッシュに戻すリコール処理を行なう必要がある。
【０００９】
このようなリコール処理には、バックエンドライブラリにおいて、テープドライブ装置におけるテープ送りやテープ交換等の機械的動作が必要となるために、ホストコンピュータに処理開始を長時間待たせることになる。
【００１０】
従来の仮想テープ装置においては、このようなリコール処理に要する時間を短縮するために、例えば、物理ドライブにマウントされている物理ボリューム（テープ）内に最終更新データが存在する仮想テープボリュームを優先してオフキャッシュの対象とする。これにより、リコール要求が発生した場合に、使用中の物理ボリュームにリコール対象の仮想テープボリュームのデータが存在する確率が高くなり、リコール時間を短縮させる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１３−１６１２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、このような従来の仮想テープ装置においても、物理ドライブにマウントされている物理ボリューム内に最終更新データが存在する仮想テープボリュームを決定するために、物理ボリュームに対する検索に伴うテープ送り等の機械的動作が必要とされる。すなわち、物理ボリュームに対する検索のための機械的動作による、ホストコンピュータの待ち時間を無くすことができない。
【００１３】
１つの側面では、本発明は、ホストコンピュータに対する応答時間を短縮することを目的とする。
【課題を解決するための手段】
【００１４】
このため、この仮想テープ装置は、物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを管理する仮想テープ装置であって、前記複数の論理ボリュームを格納するキャッシュメモリと、複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、選択部が、追い出し順位付けされた論理ボリュームのうち、前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、キャッシュアウト対象論理ボリュームとして優先して選択する。
【発明の効果】
【００１５】
一実施形態によれば、ホストコンピュータに対する応答時間を短縮することができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態の一例としての仮想テープシステムの構成を模式的に示す図である。
【図２】実施形態の一例としての仮想テープ装置のＶＬＰのハードウェア構成を示すブロック図である。
【図３】実施形態の一例としての仮想テープ装置のＶＬＰの機能構成を示す図である。
【図４】実施形態の一例としての仮想テープ装置におけるＬＲＵ管理テーブルを例示する図である。
【図５】実施形態の一例としての仮想テープ装置における物理ドライブ管理テーブルを例示する図である。
【図６】実施形態の一例としての仮想テープ装置における物理ドライブ管理テーブルを例示する図である。
【図７】実施形態の一例としての仮想テープ装置における物理ドライブ管理テーブルを例示する図である。
【図８】物理ボリューム上の仮想ボリュームに対する物理ヘッドの位置を説明するための図である。
【図９】物理ボリューム上の仮想ボリュームに対する物理ヘッドの位置を説明するための図である。
【図１０】実施形態の一例としての仮想テープ装置における、キャッシュアウト対象の仮想ボリュームの選択方法を説明するためのフローチャートである。
【図１１】実施形態の一例としての仮想テープ装置における、キャッシュアウト対象の仮想ボリュームの選択方法を説明するためのフローチャートである。
【図１２】実施形態の一例としての仮想テープ装置における、キャッシュアウト対象の仮想ボリュームの選択方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本仮想テープ装置，キャッシュ制御装置およびキャッシュ制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態および各変形例を組み合わせる等）して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１８】
（Ａ）構成
図１は実施形態の一例としての仮想テープシステムの構成を模式的に示す図である。
本仮想テープシステム１は、図１に示すように、ホスト装置（上位装置）２００，仮想テープ装置１００およびバックエンドライブラリ３００をそなえる。
【００１９】
ホスト装置２００は、仮想テープ装置１００によって仮想化された仮想テープ（仮想ボリューム，論理ボリューム）２１０にアクセスして、バックエンドライブラリ３００のカートリッジテープデータの書き込みや読み出しを行なう。図１においては、ホスト装置２００がメインフレームホストである例を示している。
【００２０】
ホスト装置２００は、例えば、図示しないＦＣ（Fibre Channel）スイッチを介して、ＩＣＰ（Integrated Channel Processor）１５０−０，１５０−１やテープボリュームキャッシュ１６０，ＩＤＰ（Integrated Device Processor）１７０−０，１７０−１，バックエンドライブラリ３００と通信可能に接続されている（図１中の二重線参照）。また、ホスト装置２００は、ＬＡＮＣ（Local Area Network Controller）１３１を介して、ＶＬＰ（Virtual Library Processor）１１０やＰＬＰ（Physical Library Processor）１２０，ＩＣＰ１５０−０，１５０−１，ＩＤＰ１７０−０，１７０−１，バックエンドライブラリ３００と通信可能に接続されている（図１中の一点鎖線参照）。
【００２１】
ホスト装置２００は、仮想ボリューム２１０やカートリッジテープ（物理ボリューム，物理テープ）へのＩ／Ｏ処理要求（読み取り要求／書き込み要求）を発行する。ホスト装置２００は、例えば、仮想ボリュームへのＩ／Ｏ処理要求を、図示しないＣＰＵ（Central Processing Unit）によりＶＴＣＰ（Virtual Tape Control Program）を実行することにより実現する。
【００２２】
ホスト装置２００は、例えば、図示しないストレージ装置に格納された業務等に用いられるデータを、定期もしくは不定期に仮想ボリューム２１０やカートリッジテープに転送してコピーすることにより、データのバックアップを行なう。
【００２３】
このデータのバックアップは、例えば、データを格納する仮想ボリューム２１０もしくはカートリッジテープを指定することにより行なわれる。
【００２４】
バックエンドライブラリ３００は、カートリッジテープ（メディア，物理ボリューム）に対するデータの書き込みや読み取りを行なう。バックエンドライブラリ３００は、１つ以上のテープドライブ（物理ドライブ）をそなえる他、複数のカートリッジテープを格納する格納棚やカートリッジテープを搬送する搬送機構（ロボット；図示省略）をそなえる。搬送機構は、搬送棚に格納された複数の物理ボリュームのうち任意の物理ボリュームを物理ドライブに搬送する。なお、カートリッジテープや収納棚及び搬送機構の図示は省略する。又、バックエンドライブラリ３００の構成は既知の種々の手法を用いて実現することができ、便宜上、その説明は省略する。
【００２５】
そして、バックエンドライブラリ３００においては、搬送機構により物理ボリュームが物理ドライブへ出し入れされ、この物理ドライブにロード（マウント）された物理ボリュームに対してデータのライト／リードが行なわれる。
【００２６】
仮想テープ装置１００は、テープＩ／Ｏ（Input/Output）をエミュレーションする。
仮想テープ装置１００は、ホスト装置２００とバックエンドライブラリ３００との間に介在し、これらのホスト装置２００とバックエンドライブラリ３００との間で送受信されるデータを仮想的なテープボリュームとして記憶する。以下、この仮想的なテープボリュームを仮想ボリュームといい、符号２１０を付して図示する。
【００２７】
仮想テープ装置１００は、ホスト装置２００から仮想ボリューム２１０に対するアクセスに基づき、ディスクに高速アクセスを行なう。
【００２８】
テープボリュームキャッシュ１６０の仮想ボリューム２１０のデータは、バックエンドライブラリ３００のカートリッジテープ（物理ボリューム）にまとめ書きされる。
【００２９】
仮想テープ装置１００は、図１に示すように、ＶＬＰ１１０，ＰＬＰ１２０，ＩＣＰ１５０−０，１５０−１，テープボリュームキャッシュ１６０，ＩＤＰ１７０−０，１７０−１およびＬＡＮＣ１３１を備える。
【００３０】
ＶＬＰ１１０およびＰＬＰ１２０はＬＡＮＣ１３１を介して相互に通信可能に接続されている。これらのＶＬＰ１１０およびＰＬＰ１２０には、ＩＣＰ１５０−０，１５０−１，テープボリュームキャッシュ１６０およびＩＤＰ１７０−０，１７０−１の少なくとも一部が通信可能に接続されてもよい。
【００３１】
ＬＡＮＣ１３１には、ホスト装置２００及びバックエンドライブラリ３００も接続されている。
【００３２】
また、ＩＣＰ１５０−０，１５０−１，ＩＤＰ１７０−０，１７０−１，ＶＬＰ１１０，テープボリュームキャッシュ１６０は図示しないＦＣスイッチを介して相互に通信可能に接続されている。更に、ＦＣスイッチには、ホスト装置２００，及びバックエンドライブラリ３００も接続されている。これにより、例えば、ＩＣＰ１５０−０，１５０−１とテープボリュームキャッシュ１６０との間やテープボリュームキャッシュ１６０とＩＤＰ１７０−０，１７０−１との間，ＩＤＰ１７０−０，１７０−１とバックエンドライブラリ３００に格納された各テープドライブとの間等でデータの送受信を行なうことができる。
【００３３】
そして、仮想テープ装置１００においては、ＩＣＰ１５０−０，１５０−１，ＩＤＰ１７０−０，１７０−１，ＶＬＰ１１０の各サーバ上で複数のプロセスがパイプあるいはソケットを用いて通信を行ない、仮想テープシステムを実現している。
【００３４】
また、これらのＩＣＰ１５０−０，１５０−１，テープボリュームキャッシュ１６０，ＩＤＰ１７０−０，１７０−１，ＶＬＰ１１０，ＰＬＰ１２０，ＬＡＮＣ１３１およびバックエンドライブラリ３００は、同一のラック（図示省略）内にそなえて構成することができる。
【００３５】
ＦＣスイッチは、ＩＣＰ１５０−０〜１５０−１，ＩＤＰ１７０−０，１７０−１，ＶＬＰ１１０およびテープボリュームキャッシュ１６０が接続される光ファイバチャネル通信経路上において、データ等の中継や経路の切り替えを行なう。この光ファイバチャネル通信経路においては、例えば、仮想テープ装置１００で処理する論理ボリュームのデータが伝送される。
【００３６】
ＬＡＮＣ１３１は、ＩＣＰ１５０−０，１５０−１，ＩＤＰ１７０−０，１７０−１，ＶＬＰ１１０，ＰＬＰ１２０およびＦＣスイッチが接続されるＬＡＮ経路上において、データの中継や経路の切り替えを行なう。このＬＡＮ経路においては、例えば、ＩＣＰ１５０−０，１５０−１及びＩＤＰ１７０−０，１７０−１の各処理ユニットの動作状態参照および動作指示に関する通信が行なわれる。ＬＡＮＣ１３１は、その通信を全処理ユニットに分配接続する。
【００３７】
テープボリュームキャッシュ１６０は、カートリッジテープの仮想的な情報である仮想テープボリューム（仮想ボリューム，論理ボリューム）が格納される記憶媒体（キャッシュメモリ）であり、ＩＣＰ１５０−０，１５０−１やＩＤＰ１７０−０，１７０−１に対して仮想的なストレージを提供する。このテープボリュームキャッシュ１６０は、後述するＩＣＰ１５０−０，１５０−１によって受信されたデータや、バックエンドライブラリ３００のカートリッジテープから読み取られたデータを記憶する仮想記憶部として機能する。このテープボリュームキャッシュ１６０には、論理ボリュームである仮想ボリューム（仮想テープボリューム）２１０が格納される。なお、仮想ボリュームは、ホスト装置２００からデータをアクセスするときの論理的なアクセス単位のデータを示す。テープボリュームキャッシュ１６０は、例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置として構成されている。
【００３８】
テープボリュームキャッシュ１６０に格納される仮想ボリューム２１０の実データは、後述するバックエンドライブラリ３００のカートリッジテープ（物理ボリューム）に格納される。以下、バックエンドライブラリ３００のカートリッジテープに格納される仮想ボリューム２１０の実データを、物理ボリューム上の仮想ボリュームもしくは単に、仮想ボリュームという場合がある。
【００３９】
ＩＤＰ１７０−０，１７０−１は、バックエンドライブラリ３００のテープドライブとの接続をつかさどるサーバコンピュータ（処理ユニット）である。本仮想テープシステム１においては、仮想テープ装置１００に１つ以上（図１に示す例では２つ）のＩＤＰ１７０−０，１７０−１がそなえられ、それぞれバックエンドライブラリ３００の物理ドライブを制御する。これらのＩＤＰ１７０−０，１７０−１は同様の構成をそなえる。
【００４０】
なお、以下、ＩＤＰを示す符号としては、複数のＩＤＰのうち１つを特定する必要があるときには符号１７０−０，１７０−１を用いるが、任意のＩＤＰを指すときには符号１７０を用いる。
【００４１】
ＩＤＰ１７０は、ＶＬＰ１１０からの指示を受けて、テープボリュームキャッシュ１６０上の論理ボリュームのデータをバックエンドライブラリ３００の物理ドライブを用いて物理ボリュームに書き込む。同様に、ＩＤＰ１７０は、ＶＬＰ１１０からの指示を受けて、バックエンドライブラリ３００の物理ドライブを用いて物理ボリュームから論理ボリュームのデータを読み出して、テープボリュームキャッシュ１６０に格納する。
【００４２】
ＩＤＰ１７０は、ホスト装置２００からのデータアクセス要求に応じて、バックエンドライブラリ３００の物理ボリュームからデータを読み出したり、又、データの書き込みを行なう。
【００４３】
ＩＤＰ１７０は、ＰＤＳ（Physical Driver Server）としての機能をそなえる。ＰＤＳは、バックエンドライブラリ３００のテープドライブに挿入されたカートリッジテープとのデータのやり取りをするプロセスであって、例えば、物理ボリュームからデータを読み取り、その読み取ったデータをテープボリュームキャッシュ１６０の所定の領域に書き込む。これにより、ＩＤＰ１７０はバックエンドライブラリ３００の物理ドライブを制御する物理ドライブ制御部としての機能を実現する。
【００４４】
ＩＣＰ１５０−０，１５０−１は、ホスト装置２００のドライブパスとの接続をつかさどるサーバコンピュータ（処理ユニット）である。本仮想テープシステム１においては、仮想テープ装置１００に１つ以上（図１に示す例では２つ）のＩＣＰ１５０−０，１５０−１がそなえられ、ホスト装置２００からのデータを受信する受信手段として機能する。これらのＩＣＰ１５０−０，１５０−１は同様の構成をそなえる。なお、以下、ＩＣＰを示す符号としては、複数のＩＣＰのうち１つを特定する必要があるときには符号１５０−０，１５０−１を用いるが、任意のＩＣＰを指すときには符号１５０を用いる。
【００４５】
ＩＣＰ１５０は、ホスト装置２００とＦＣスイッチを介して接続され、テープボリュームキャッシュ１６０上の仮想テープボリュームのデータをホスト装置２００との間で送受信する制御を行なう。ＩＣＰ１５０は、仮想ドライブ（論理ドライブ装置）１５１を介してテープボリュームキャッシュ１６０の仮想テープボリュームのデータにアクセスし、データの読み出しや書き込みを行なう。すなわち、ＩＣＰ１５０は、仮想ドライブ装置に対するデータアクセスを制御する処理ユニットとして機能する。
【００４６】
このＩＣＰ１５０は、例えば、ＩＡ（Intel Architecture）サーバにより構成され、ＥＭＴＡＰＥ（Virtual Emulation Tape）としての機能を実現する。ＥＭＴＡＰＥは、バックエンドライブラリ３００のテープドライブを仮想的にホスト装置２００にみせるプロセスであって、仮想ドライブ１５１を実現する。ＥＭＴＡＰＥは、バックエンドライブラリ３００の物理的なテープドライブのエミュレーションを行なう。これによりＩＣＰ１５０は仮想ドライブ１５１を制御する物理ドライブ制御部としての機能を実現する。仮想ドライブ１５１を論理ドライブといってもよい。図１においては、仮想テープ装置１００において５つの仮想ドライブ１５１が備えられている例を示す。
【００４７】
なお、以下、ＩＣＰを示す符号としては、複数のＩＣＰのうち１つを特定する必要があるときには符号１５０−０，１５０−１を用いるが、任意のＩＣＰを指すときには符号１５０を用いる。
【００４８】
ＰＬＰ１２０は、バックエンドライブラリ３００を動作させる制御を行なうサーバコンピュータ（処理ユニット）である。ＰＬＰ１２０は、後述するＶＬＰ１１０から受け付けたバックエンドライブラリ３００の制御依頼に従って、バックエンドライブラリ３００の搬送機構を制御することで、物理ドライブ（図示省略）にカートリッジテープ（物理ボリューム）を装填させたり、物理ドライブから物理ボリュームを取り外させる。
【００４９】
ＶＬＰ１１０は、ＩＣＰ１５０−０，１５０−１やＩＤＰ１７０−０，１７０−１等と連携して、システムとして仮想テープ環境を実現するための各種プロセスを実行（動作）させるサーバコンピュータ（処理ユニット）である。このＶＬＰ１１０は、ホスト装置２００からＬＡＮＣ１３１経由でマウント要求を受け、仮想ドライブ１５１に論理ボリュームをマウントしたり、テープドライブの物理ボリュームのマウント処理やアンマウント処理を行なう。
【００５０】
ＶＬＰ１１０は、ホスト装置２００とＬＡＮＣ１３１を介して接続され、ホスト装置２００からのデータの書き込み要求などを受け付ける。そして、ＶＬＰ１１０は、ＰＬＰ１２０，ＩＣＰサーバ１５０およびＩＤＰ１７０に対してデータの読み書きや、バックエンドライブラリ３００の制御を依頼する。
【００５１】
ＶＬＰ１１０は、テープボリュームキャッシュ１６０に対するデータアクセスの制御を行なう。ＶＬＰ１１０は、バックエンドライブラリ３００の物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリューム（仮想ボリューム２１０）を格納するキャッシュメモリ（テープボリュームキャッシュ１６０）を制御するキャッシュ制御装置に相当する。
【００５２】
図２は実施形態の一例としての仮想テープ装置１００のＶＬＰ１１０のハードウェア構成を示すブロック図、図３はその機能構成を示す図である。
【００５３】
ＶＬＰ１１０は、図２に例示するように、プロセッサ１１，メモリ１２，記憶装置１３，グラフィック処理装置１４，入力インタフェース１５，光学ドライブ装置１６，機器接続インタフェース１７およびネットワークインタフェース１８を構成要素として有する。これらの構成要素１１〜１８は、バス１９を介して相互に通信可能に構成される。
【００５４】
プロセッサ（処理部）１１は、ＶＬＰ１１０全体を制御する。プロセッサ１１は、マルチプロセッサであってもよい。プロセッサ１１は、例えばＣＰＵ，ＭＰＵ（Micro Processing Unit），ＤＳＰ（Digital Signal Processor），ＡＳＩＣ（Application Specific Integrated Circuit），ＰＬＤ（Programmable Logic Device），ＦＰＧＡ（Field Programmable Gate Array）のいずれか一つであってもよい。また、プロセッサ１１は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００５５】
そして、プロセッサ１１がＶＬＰ１１０用の制御プログラム（キャッシュ制御プログラム；図示省略）を実行することにより、図３を用いて後述する、仮想ボリューム管理部１０，仮想ボリューム選択部２０および仮想ボリューム削除部４０としての機能が実現される。
【００５６】
仮想ボリューム管理部１０，仮想ボリューム選択部２０および仮想ボリューム削除部４０としての機能は、例えば、ＯＳ（Operating System）プログラム上で動作する機能として実装されてもよく、また、ＯＳプログラムの機能として実装されてもよい。
【００５７】
なお、ＶＬＰ１１０は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム（キャッシュ制御プログラムやＯＳプログラム）を実行することにより、図３に示す仮想ボリューム管理部１０，仮想ボリューム選択部２０および仮想ボリューム削除部４０としての機能を実現する。
【００５８】
ＶＬＰ１１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ＶＬＰ１１０に実行させるキャッシュ制御プログラムを記憶装置１３に格納しておくことができる。プロセッサ１１は、記憶装置１３内のプログラムの少なくとも一部をメモリ（ＲＡＭ）１２にロードし、ロードしたプログラムを実行する。
【００５９】
また、ＶＬＰ１１０（プロセッサ１１）に実行させるプログラム（キャッシュ制御プログラム）を、光ディスク１６ａ，メモリ装置１７ａ，メモリカード１７ｃ等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１１からの制御により、記憶装置１３にインストールされた後、実行可能になる。また、プロセッサ１１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００６０】
メモリ１２は、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）を含む記憶メモリである。メモリ１２のＲＡＭはＶＬＰ１１０の主記憶装置として使用される。ＲＡＭには、プロセッサ１１に実行させるＯＳプログラムや制御プログラム（キャッシュ制御プログラム）の少なくとも一部が一時的に格納される。また、メモリ１２には、プロセッサ１１による処理に必要な各種データが格納される。
【００６１】
記憶装置１３は、ハードディスクドライブ（Hard Disk Drive：ＨＤＤ）、ＳＳＤ（Solid State Drive）、ストレージクラスメモリ（Storage Class Memory：ＳＣＭ）等の記憶装置であって、種々のデータを格納するものである。記憶装置１３は、ＶＬＰ１１０の補助記憶装置として使用される。記憶装置１３には、ＯＳプログラム，制御プログラムおよび各種データが格納される。制御プログラムには監視ソフトウェアが含まれる。
【００６２】
なお、補助記憶装置としては、ＳＣＭやフラッシュメモリ等の半導体記憶装置を使用することもできる。また、複数の記憶装置１３を用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成してもよい。
【００６３】
また、記憶装置１３には、後述するＬＲＵ管理テーブル３１および物理ドライブ管理テーブル３２を構成するデータが格納される。
【００６４】
グラフィック処理装置１４には、モニタ１４ａが接続されている。グラフィック処理装置１４は、プロセッサ１１からの命令に従って、画像をモニタ１４ａの画面に表示させる。モニタ１４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置等が挙げられる。
【００６５】
入力インタフェース１５には、キーボード１５ａおよびマウス１５ｂが接続されている。入力インタフェース１５は、キーボード１５ａやマウス１５ｂから送られてくる信号をプロセッサ１１に送信する。なお、マウス１５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル，タブレット，タッチパッド，トラックボール等が挙げられる。
【００６６】
光学ドライブ装置１６は、レーザ光等を利用して、光ディスク１６ａに記録されたデータの読み取りを行なう。光ディスク１６ａは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク１６ａには、ＤＶＤ（Digital Versatile Disc），ＤＶＤ−ＲＡＭ，ＣＤ−ＲＯＭ（Compact Disc Read Only Memory），ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００６７】
機器接続インタフェース１７は、ＶＬＰ１１０に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース１７には、メモリ装置１７ａやメモリリーダライタ１７ｂを接続することができる。メモリ装置１７ａは、機器接続インタフェース１７との通信機能を搭載した非一時的な記録媒体、例えばＵＳＢ（Universal Serial Bus）メモリである。メモリリーダライタ１７ｂは、メモリカード１７ｃへのデータの書き込み、またはメモリカード１７ｃからのデータの読み出しを行なう。メモリカード１７ｃは、カード型の非一時的な記録媒体である。
【００６８】
ネットワークインタフェース１８は、ネットワークに接続される。ネットワークインタフェース１８は、光ファイバチャネルネットワークに接続されるインタフェース（ＦＣインタフェース）とＬＡＮに接続されるＬＡＮインタフェースとを備えてよい。ＶＬＰ１１０は、このネットワークインタフェース１８を介して、ＰＬＰ１２０やホスト装置２００，テープボリュームキャッシュ１６０，ＩＣＰ１５０，ＩＤＰ１７０等との間でデータの送受信を行なう。ネットワークには他の情報処理装置や通信機器等が接続されてもよい。
【００６９】
次に、ＶＬＰ１１０の機能構成について説明する。ＶＬＰ１１０は、図３に示すように、仮想ボリューム管理部１０，仮想ボリューム選択部２０および仮想ボリューム削除部４０としての機能を備える。
【００７０】
仮想ボリューム管理部１０は、本仮想テープ装置１００における仮想ボリューム２１０を管理する。仮想ボリューム管理部１０は、ＬＲＵ管理テーブル３１および物理ドライブ管理テーブル３２を用いて、仮想ボリューム２１０の管理を行なう。
【００７１】
図４は実施形態の一例としての仮想テープ装置１００におけるＬＲＵ管理テーブル３１を例示する図である。
【００７２】
ＬＲＵ管理テーブル３１は、仮想ボリューム２１０を管理する仮想ボリューム管理情報であり、データアクセスが行なわれた仮想ボリューム２１０を、ＬＲＵ論理に従って順位付けをして管理する。すなわち、ＬＲＵ管理テーブル３１は、仮想ボリューム２１０を、最後にアクセスが行なわれた時刻からの経過時間に応じて並べることで構成されている。
【００７３】
図４に例示するＬＲＵ管理テーブル３１は、仮想ボリューム名，仮想ボリュームマウント有無，格納するボリューム，大きさおよび仮想ボリュームに最後にアクセスしたタイムスタンプをカラムとして備えるテーブルとして構成されている。
【００７４】
仮想ボリューム名は仮想ボリューム２１０を特定する識別情報である。大きさは、仮想ボリューム２１０のデータサイズである。仮想ボリュームに最後にアクセスしたタイムスタンプは、当該仮想ボリューム２１０に最後にデータアクセスが行なわれた時刻を示す。ＬＲＵ管理テーブル３１においては、この仮想ボリュームに最後にアクセスしたタイムスタンプの時刻が最も古い仮想ボリューム２１０が先頭（図４においては最上位置）となるようにソートされている。
【００７５】
仮想ボリュームマウント有無は、当該仮想ボリューム２１０に対応する実データを格納するカートリッジテープ（物理ボリューム）が、バックエンドライブラリ３００の物理ドライブにマウントされているか否かを示す情報である。バックエンドライブラリ３００の物理ドライブにマウントされている物理ボリュームに当該仮想ボリューム２１０が格納されている場合には、仮想ボリュームマウント有無に、例えば、“1”が設定される。一方、バックエンドライブラリ３００の物理ドライブにマウントされている物理ボリュームに当該仮想ボリューム２１０が格納されていない場合には、仮想ボリュームマウント有無に、例えば、“0”が設定される。
【００７６】
格納するボリュームは、当該仮想ボリューム２１０に対応する実データを格納するカートリッジテープ（物理ボリューム）を特定する識別情報である。
【００７７】
従って、ＬＲＵ管理テーブル３１において、仮想ボリュームマウント有無に“1”が設定されている仮想ボリューム２１０は、格納する物理ボリュームによって特定されるカートリッジテープに、その対応する実データが格納されている。仮想ボリューム２１０に対応する実データに、当該仮想ボリューム２１０を実現するためのデータを含む。
【００７８】
仮想ボリューム管理部１０は、ＬＲＵ管理テーブル３１への情報の記録や更新を行なう。
【００７９】
また、仮想ボリューム管理部１０は、物理ドライブ管理テーブル３２を用いて、バックエンドライブラリ３００の物理ドライブにマウントされているカートリッジテープ（物理ボリューム）と、当該物理ボリュームに格納されている仮想ボリュームを管理する。
【００８０】
図５〜図７は実施形態の一例としての仮想テープ装置１００における物理ドライブ管理テーブル３２を例示する図であり、一の物理ドライブ管理テーブル３２を分割して図５〜図７に分けて示している。
【００８１】
図５〜図７に例示する物理ドライブ管理テーブル３２は、物理ドライブNo.，物理ボリュームマウント有無，マウントされた時間タイムスタンプ，物理ボリューム，物理ボリュームに最後にアクセスしたタイムスタンプ，Headの位置，仮想ボリューム数，仮想ボリュームNo.，仮想ボリューム名および容量をカラムとして備えるテーブルとして構成されている。
【００８２】
なお、図中、記述のカラム名と同じカラム名は同様の内容を示しているので、その説明は省略する。
【００８３】
物理ドライブNo.は物理ドライブを特定する識別情報である。物理ボリュームマウント有無は、当該物理ドライブにカートリッジテープ（物理ボリューム）がマウントされているか否かを示す情報である。当該物理ドライブに物理ボリュームがマウントされている場合には、物理ボリュームマウント有無に、例えば、“1”が設定される。一方、当該物理ドライブに物理ボリュームがマウントされていない場合には、物理ボリュームマウント有無に、例えば、“0”が設定される。
【００８４】
マウントされた時間タイムスタンプは、当該物理ドライブに物理ボリュームがマウントされている場合に、その物理ボリュームがマウントされた時刻を示す。
【００８５】
物理ボリュームは、当該物理ドライブにマウントされた物理ボリュームを識別する識別情報である。物理ボリュームに最後にアクセスしたタイムスタンプは、当該物理ドライブにマウントされた物理ボリュームに最後にデータアクセスが行なわれた時刻を示す。
【００８６】
Headの位置は、当該物理ドライブにマウントされた物理ボリュームに対する当該物理ドライブのヘッド（物理ヘッド，磁気ヘッド）の位置を示す。
【００８７】
本仮想テープ装置１００においては、物理ボリュームに仮想ボリューム２１０のデータがシーケンシャルに格納されるものとする。以下、便宜上、物理ボリュームにおける仮想ボリューム２１０のデータを、単に、物理ボリュームにおける仮想ボリュームという場合がある。
【００８８】
図６に示す例においては、Headの位置を、物理ボリュームにおける仮想ボリュームに対する位置で表している。すなわち、仮想ボリュームNo.を表す符号“VV No.n”（nは自然数）と、物理ドライブの物理ヘッドが仮想ボリューム２１０のデータの末尾位置にあることを示す“後”とを組み合わせることでHeadの位置を示す。
【００８９】
例えば、物理ボリュームにおいて、仮想ボリュームNo.が“1”の仮想ボリューム２１０のデータの末尾位置を、“VV No.1後”と表す。すなわち、Headの位置を、物理ボリュームにおける仮想ボリュームの仮想ボリュームNo.を用いて表す。
【００９０】
なお、Headの位置の表現方法は、これに限定されるものではなく、適宜変形して実施することができる。例えば、物理ドライブの物理ヘッドが物理ボリュームにおける仮想ボリューム２１０のデータの先頭位置にある場合に、“VV No.n前”と表してもよい。
【００９１】
また、Headの位置を、カートリッジテープの先頭からの長さや座標、またはこれらに類する値を用いて表してもよい。
【００９２】
仮想ボリューム数は、当該物理ドライブにマウントされた物理ボリュームに格納されている仮想ボリュームの数である。
【００９３】
仮想ボリュームNo.は、当該物理ドライブにマウントされた物理ボリュームに格納されている仮想ボリュームを特定するための識別番号である。
【００９４】
なお、物理ボリュームに複数の仮想ボリューム２１０のデータが格納されている場合には、物理ドライブ管理テーブル３２おいて、当該物理ボリュームに対応付けて、これらの複数の仮想ボリュームの仮想ボリュームNo.，仮想ボリューム名および容量が記録される。
【００９５】
仮想ボリューム管理部１０は、物理ドライブ管理テーブル３２への情報の記録や更新も行なう。仮想ボリューム管理部１０は、例えば、カートリッジテープに記録されたディレクトリ情報（構成情報）を参照することで、物理ドライブ管理テーブル３２に記録する情報を取得してもよい。
【００９６】
仮想ボリューム選択部２０は、テープボリュームキャッシュ１６０がフルとなった状態において、このテープボリュームキャッシュ１６０に新たな仮想ボリュームを格納するための空き容量を作るために、テープボリュームキャッシュ１６０から追い出す（キャッシュアウトさせる）仮想ボリューム２１０を選択する。すなわち、仮想ボリューム選択部２０は、テープボリュームキャッシュ１６０におけるキャッシュアウト対象の仮想ボリューム２１０を選択する。
【００９７】
仮想ボリューム選択部２０は、テープボリュームキャッシュ１６０に格納されている仮想ボリューム２１０のうち、対応する物理ボリュームがバックエンドライブラリ３００において物理ドライブにマウントされている全ての仮想ボリューム２１０をキャッシュアウト対象の候補として選択する。
【００９８】
テープボリュームキャッシュ１６０にキャッシュアウト対象の仮想ボリュームの候補が複数あり、バックエンドライブラリ３００において、これらの仮想ボリューム２１０を格納する物理ボリュームが複数ある場合には、仮想ボリューム選択部２０は、最後にアセスが行なわれた時刻が最も新しい物理ボリュームを選択する。
【００９９】
すなわち、仮想ボリューム選択部２０は、物理ドライブ管理テーブル３２を参照して、物理ボリュームに最後にアクセスしたタイムスタンプの値を比較し、タイムスタンプの値（時刻）が最も新しい物理ボリュームを選択する。
【０１００】
そして、仮想ボリューム選択部２０は、この選択した物理ボリュームに実データが格納されている仮想ボリューム２１０をキャッシュアウト対象の候補として選択する。
【０１０１】
仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１に登録された追い出し順位付けされた複数の仮想ボリューム２１０について、これの仮想ボリューム２１０のうち、直近に物理ドライブにマウントされた物理ボリュームに格納される仮想ボリューム２１０を、キャッシュアウト対象の仮想ボリューム（キャッシュアウト対象論理ボリューム２１０）として優先して選択する。
【０１０２】
仮想テープシステムにおいては、物理ドライブにマウントされた物理ボリュームに所定期間データアクセスがない場合に、物理ボリュームを強制的にアンマウントする機能を有するものが知られている。このような機能を有する仮想テープシステムにおいては、物理ドライブから強制的にアンマウントされた物理ボリュームが選択されることとなる。これにより、例えば、キャッシュアウトされた仮想ボリューム２１０がリコールされて再度使用される場合に、物理ボリュームからの仮想ボリュームの復元をより短時間で実現することができる。
【０１０３】
物理ボリュームに最後にアクセスしたタイムスタンプの値（時刻）が最も新しい物理ボリュームは、最近にデータアクセスが行なわれた物理ボリュームであり、データアクセスが発生する確率が高いと考えられる。
【０１０４】
また、仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１において仮想ボリュームマウント有無に“1”（有）が設定されている仮想ボリューム２１０をキャッシュアウト対象の候補として選択する。
【０１０５】
すなわち、仮想ボリューム選択部２０は、バックエンドライブラリ３００の物理ドライブにマウントされている物理ボリュームに実データが格納されている仮想ボリューム２１０をキャッシュアウト対象の候補として選択する。
【０１０６】
また、仮想ボリューム選択部２０は、キャッシュアウト対象候補の仮想ボリューム２１０が複数あり、それらの実データが同一の物理ボリュームに格納されている場合に、この物理ボリュームにおいて、物理ドライブの物理ヘッドの位置に一番近い仮想ボリュームをキャッシュアウト対象として選択する。
【０１０７】
仮想ボリューム選択部２０は、物理ボリューム上における各仮想ボリュームの位置を特定し、物理ドライブの物理ヘッドの位置に対する仮想ボリュームが格納される物理ボリューム上の位置までの距離を算出し、物理ヘッドの位置に一番近い仮想ボリュームを選択する。すなわち、仮想ボリューム選択部２０は、物理ボリュームにおいて、少ない物理ヘッドの移動量（移動時間）でアクセス可能な位置に実データがある仮想ボリューム２１０を、キャッシュアウト対象として選択する。
【０１０８】
図８および図９は、それぞれ、物理ボリューム上の仮想ボリュームに対する物理ヘッドの位置を説明するための図である。
【０１０９】
図８に示す例においては、物理ボリューム上に複数の仮想ボリューム（ＶＶ−１〜ＶＶ−６）が格納された状態を示している。図中、左側が物理ボリュームの先頭側であり、右側が物理ボリュームの末尾側である。従って、物理ボリュームにおいては、仮想ボリュームＶＶ−１を先頭に、この仮想ボリュームＶＶ−１に後続して、仮想ボリュームＶＶ−２〜ＶＶ−６が順番に並んで格納されている。また、物理ドライブの物理ヘッドが仮想ボリュームＶＶ−３の末尾位置にある。
【０１１０】
また、この図８に示す例において、仮想ボリュームＶＶ−１，ＶＶ−２の各容量が、100MB，200MBであり、仮想ボリュームＶＶ−３〜ＶＶ−６の各容量が300MBである。
【０１１１】
この図８に例示する状態において、テープボリュームキャッシュ１６０に900MBの空き領域が必要な場合には、物理ヘッドの移動が最小となる仮想ボリュームＶＶ−４を先頭に連続する仮想ボリュームＶＶ−４〜ＶＶ−６を、キャッシュアウト対象として選択することが望ましい。これにより、キャッシュアウトさせる仮想ボリューム２１０のデータを物理ボリュームに迅速に書き込むことができ、キャッシュアウトに要する時間を短縮することができる。
【０１１２】
図９に示す例においては、物理ボリューム上に複数の仮想ボリューム（ＶＶ−１〜ＶＶ−７）が格納された状態を示している。図中、左側が物理ボリュームの先頭側であり、右側が物理ボリュームの末尾側である。従って、物理ボリュームにおいては、仮想ボリュームＶＶ−１を先頭に、この仮想ボリュームＶＶ−１に後続して、仮想ボリュームＶＶ−２〜ＶＶ−７が順番に並んで格納されている。また、物理ドライブの物理ヘッドが仮想ボリュームＶＶ−４の末尾位置にある。
【０１１３】
この図９に示す例において、仮想ボリュームＶＶ−１，ＶＶ−２，ＶＶ−４の各容量が、100MB，200MB，900MBであり、仮想ボリュームＶＶ−３，ＶＶ−５〜ＶＶ−７の各容量が300MBである。
【０１１４】
この図９に例示する状態において、テープボリュームキャッシュ１６０に900MBの空き領域が必要な場合には、仮想ボリュームＶＶ−５を先頭に連続する仮想ボリュームＶＶ−５〜ＶＶ−７を、キャッシュアウト対象として選択することが考えられる（案Ａ）。また、900MBの容量を有するＶＶ−４を、キャッシュアウト対象として選択することも考えられる（案Ｂ）。
【０１１５】
ただし、案Ｂにおいては、物理ヘッドを仮想ボリュームＶＶ−４の先頭に移動させるための機械的動作（物理ボリュームの巻き戻し）が発生するので、このような機械的動作を伴わない案Ａを採用することが望ましい。
【０１１６】
すなわち、仮想ボリューム選択部２０は、物理ボリューム上における物理ヘッドよりも下流側（末尾方向）の位置に実データが格納される仮想ボリューム２１０を優先して決定することが望ましい。
【０１１７】
これによっても、キャッシュアウトさせる仮想ボリューム２１０のデータを物理ボリュームに迅速に書き込むことができ、キャッシュアウトに要する時間を短縮することができる。
【０１１８】
また、仮想ボリューム選択部２０は、キャッシュアウト対象の仮想ボリューム２１０を選択するに際して、物理ヘッドの位置決めを行なうための物理ボリュームの巻き戻しに要する時間を考慮してもよい。物理ヘッドよりも下流側（末尾方向）の位置に実データが格納される仮想ボリューム２１０へのデータアクセスに比べて、物理ヘッドよりも上流側（先頭方向）の位置に実データが格納される仮想ボリューム２１０へのデータアクセスが短時間でできる場合には、この上流側位置に実データが格納された仮想ボリューム２１０をキャッシュアウト対象としてもよい。
【０１１９】
これによっても、キャッシュアウトさせる仮想ボリューム２１０のデータを物理ボリュームに迅速に書き込むことができ、キャッシュアウトに要する時間を短縮することができる。
【０１２０】
仮想ボリューム選択部２０は、バックエンドライブラリ３００の物理ドライブに物理ボリュームがマウントされていない場合には、ＬＲＵ論理に従って、テープボリュームキャッシュ１６０に格納された複数の仮想ボリューム２１０の中から、キャッシュアウト対象の仮想ボリューム２１０を選択する。
【０１２１】
すなわち、仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１を参照して、仮想ボリュームに最後にアクセスしたタイムスタンプが最も古い仮想ボリューム２１０をキャッシュアウト対象として選択する。仮想ボリューム選択部２０は、図４に例示するＬＲＵ管理テーブル３１の先頭（図中の最上位置）にエントリされている仮想ボリューム２１０をキャッシュアウト対象として選択する。
【０１２２】
仮想ボリューム選択部２０は、キャッシュアウト対象として選択した仮想ボリューム２１０を仮想ボリューム削除部４０に通知する。
【０１２３】
また、仮想ボリューム選択部２０は、キャッシュアウト対象として選択した仮想ボリューム２１０の削除後に、テープボリュームキャッシュ１６０に必要な空き容量が確保されたかを確認する。確認の結果、テープボリュームキャッシュ１６０に必要な空き容量が確保されていない場合には、再度、キャッシュアウト対象の仮想ボリューム２１０の選択および仮想ボリューム削除部４０への通知を行なう。
【０１２４】
仮想ボリューム削除部４０は、仮想ボリューム選択部２０によってキャッシュアウト対象として選択された仮想ボリューム２１０をテープボリュームキャッシュ１６０から削除する。
【０１２５】
テープボリュームキャッシュ１６０からの仮想ボリューム２１０の削除は既知の手法で実現することができ、その詳細な説明は省略する。例えば、仮想ボリューム削除部４０は、テープボリュームキャッシュ１６０に格納される仮想ボリューム２１０を管理する管理テーブル（図示省略）から、キャッシュアウトする仮想ボリューム２１０のエントリを削除することで、仮想ボリューム２１０のキャッシュアウトを実現する。
【０１２６】
（Ｂ）動作
上述の如く構成された実施形態の一例としての仮想テープ装置１００における、キャッシュアウト対象の仮想ボリューム２１０の選択方法を、図１０〜図１２に示すフローチャート（ステップＡ１〜Ａ１７，Ｂ１〜Ｂ２）に従って説明する。なお、図１０はステップＡ１〜Ａ６の処理を示し、図１１はステップＡ７〜Ａ１７の処理を示す。また、図１２はステップＢ１〜Ｂ２の処理を示す。
【０１２７】
以下の処理においては、変数“キャッシュアウト対象の仮想ボリューム容量の合計”を用いる。
【０１２８】
ステップＡ１において、仮想ボリューム選択部２０は、変数“キャッシュアウト対象の仮想ボリューム容量の合計”を初期化して0を設定する。
【０１２９】
ステップＡ２において、仮想ボリューム選択部２０は、物理ドライブにマウントされている物理ボリューム（カートリッジテープ）の数を確認し、物理ドライブにマウントされている物理ボリュームの数が0であるかを判断する。
【０１３０】
確認の結果、物理ドライブにマウントされている物理ボリュームの数が0である場合（ステップＡ２のＹＥＳルート参照）、すなわち、物理ドライブに物理ボリュームがマウントされていない場合には、ステップＡ１４に移行する。
【０１３１】
ステップＡ１４において、仮想ボリューム選択部２０は、ＬＲＵ論理に従って、テープボリュームキャッシュ１６０に格納された複数の仮想ボリューム２１０の中から、キャッシュアウト対象の仮想ボリューム２１０を選択する。
【０１３２】
すなわち、仮想ボリューム選択部２０は、仮想ボリュームに最後にアクセスしたタイムスタンプが最も古い仮想ボリューム２１０をキャッシュアウト対象として選択する。具体的には、仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１を参照して、ＬＲＵ管理テーブル３１の先頭（上位：図中の最上位置）にエントリされている仮想ボリューム２１０をキャッシュアウト対象として選択する。
【０１３３】
ステップＡ１５において、仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１を参照して、ステップＡ１４で選択したキャッシュアウト対象の仮想ボリューム２１０の大きさを取得する。仮想ボリューム選択部２０は、取得した仮想ボリューム２１０の大きさを、変数“キャッシュアウト対象の仮想ボリューム容量の合計”に加算する。
【０１３４】
ステップＡ１６において、仮想ボリューム削除部４０は、ステップＡ１４で選択したキャッシュアウト対象の仮想ボリューム２１０をテープボリュームキャッシュ１６０から削除する。また、仮想ボリューム削除部４０は、ＬＲＵ管理テーブル３１から、当該キャッシュアウト対象の仮想ボリューム２１０の登録を削除する。すなわち、ＬＲＵ管理テーブル３１の更新を行なう。
【０１３５】
ステップＡ１７において、仮想ボリューム選択部２０は、変数“キャッシュアウト対象の仮想ボリューム容量の合計”の値を、テープボリュームキャッシュ１６０において必要とされている容量と比較し、必要とされている容量以上であるかを確認する。
【０１３６】
確認の結果、変数“キャッシュアウト対象の仮想ボリューム容量の合計”が、テープボリュームキャッシュ１６０において必要とされている容量以上である場合（ステップＡ１７のＹＥＳルート参照）、処理を終了する。
【０１３７】
一方、ステップＡ１７における確認の結果、変数“キャッシュアウト対象の仮想ボリューム容量の合計”が、テープボリュームキャッシュ１６０において必要とされている容量未満の場合（ステップＡ１７のＮＯルート参照）、ステップＡ１４に戻る。
【０１３８】
また、ステップＡ２における確認の結果、物理ドライブにマウントされている物理ボリュームの数が0でない場合（ステップＡ２のＮＯルート参照）、すなわち、物理ドライブに１つ以上の物理ボリュームがマウントされている場合には、ステップＡ３に移行する。
【０１３９】
ステップＡ３において、仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１を参照して、仮想ボリュームマウント有無に“1（有）”が設定されている全ての仮想ボリューム２１０をキャッシュアウト対象候補として選択する。
【０１４０】
ステップＡ４において、仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１を参照して、ステップＡ３において選択したキャッシュアウト対象候補の仮想ボリューム２１０の全てが、仮想ボリュームマウント有無に“0（無）”が設定されているかを確認する。
【０１４１】
選択されたキャッシュアウト対象候補の仮想ボリューム２１０の全てにおいて、仮想ボリュームマウント有無に“0（無）”が設定されている場合は（ステップＡ４のＹＥＳルート参照）、例えば、物理ドライブに物理ボリュームがマウントされているが、当該物理ボリュームは仮想ボリューム２１０と関係の無い物理ボリュームである場合である。このような場合には、ステップＡ１４に移行する。
【０１４２】
一方、ステップＡ４における確認の結果、選択されたキャッシュアウト対象候補の仮想ボリューム２１０の少なくとも一部において、仮想ボリュームマウント有無に“1（有）”が設定されている場合は（ステップＡ４のＮＯルート参照）、ステップＡ５に移行する。
【０１４３】
ステップＡ５において、仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１を参照して、ステップＡ３において選択したキャッシュアウト対象候補の仮想ボリューム２１０の実データを格納する物理ボリュームの数を計数する。
【０１４４】
ステップＡ６において、仮想ボリューム選択部２０は、ステップＡ５において計数した物理ボリュームの数が複数であるかを確認する。確認の結果、キャッシュアウト対象候補の仮想ボリューム２１０の実データを格納する物理ボリュームの数が複数である場合、すなわち、キャッシュアウト対象候補の仮想ボリューム２１０が複数の物理ボリュームに亘って格納されている場合には（ステップＡ６のＹＥＳルート参照）、ステップＡ７に移行する。
【０１４５】
ステップＡ７において、仮想ボリューム選択部２０は、物理ドライブ管理テーブル３２を参照して、物理ボリュームに最後にアクセスしたタイムスタンプが最も新しい物理ボリュームを選択する。
【０１４６】
ステップＡ８において、仮想ボリューム選択部２０は、物理ドライブ管理テーブル３２を参照して、ステップＡ７において選択された物理ボリュームに格納される仮想ボリュームであり、且つ、仮想ボリュームマウント有無が“1（有）”である仮想ボリューム２１０をキャッシュアウト対象候補として選択する。
【０１４７】
ステップＡ９において、仮想ボリューム選択部２０は、ステップＡ８で選択したキャッシュアウト対象候補の仮想ボリューム２１０が複数あるかを確認する。キャッシュアウト対象候補の仮想ボリューム２１０が複数ある場合には（ステップＡ９のＹＥＳルート参照）、ステップＡ１０に移行する。
【０１４８】
ステップＡ１０において、仮想ボリューム選択部２０は、物理ドライブにマウントされる物理ボリュームに実データ格納される仮想ボリューム２１０の中から、物理ボリュームにおいて実データの格納位置が物理ヘッドの位置に最も近い仮想ボリューム２１０を選択する。
【０１４９】
このステップＡ１０の処理の詳細を、図１２に示すフローチャートを用いて説明する。この図１２に示すフローチャートにおいて、入力値はステップＡ８において選択されたキャッシュアウト対象候補の仮想ボリューム２１０である。
【０１５０】
ステップＢ１において、仮想ボリューム選択部２０は、キャッシュアウト対象候補の仮想ボリューム２１０の実データを格納する物理ボリュームがマウントされる物理ドライブにおいて、物理ヘッドの位置と物理ボリューム上の各仮想ボリューム２１０の実データ位置との距離をそれぞれ算出する。
【０１５１】
ステップＢ２において、仮想ボリューム選択部２０は、算出した、物理ヘッドの位置と物理ボリューム上の各仮想ボリューム２１０の実データ位置との距離が最短の仮想ボリューム２１０をキャッシュアウト対象の仮想ボリューム２１０として決定する。その後、処理は図１１のステップＡ１１に移行する。
【０１５２】
ステップＡ１１において、仮想ボリューム選択部２０は、ＬＲＵ管理テーブル３１を参照して、ステップＡ１０で選択したキャッシュアウト対象の仮想ボリューム２１０の大きさを取得する。仮想ボリューム選択部２０は、取得した仮想ボリューム２１０の大きさを、変数“キャッシュアウト対象の仮想ボリューム容量の合計”に加算する。また、ステップＡ９における確認の結果、キャッシュアウト対象候補の仮想ボリューム２１０が複数ない場合にも（ステップＡ９のＮＯルート参照）、このステップＡ１１に移行する。
【０１５３】
ステップＡ１２において、仮想ボリューム削除部４０は、ステップＡ１０で選択したキャッシュアウト対象の仮想ボリューム２１０をテープボリュームキャッシュ１６０から削除する。また、仮想ボリューム削除部４０は、ＬＲＵ管理テーブル３１から、当該キャッシュアウト対象の仮想ボリューム２１０の登録を削除する。すなわち、ＬＲＵ管理テーブル３１の更新を行なう。
【０１５４】
ステップＡ１３において、仮想ボリューム選択部２０は、変数“キャッシュアウト対象の仮想ボリューム容量の合計”の値を、テープボリュームキャッシュ１６０において必要とされている容量と比較し、必要とされている容量以上であるかを確認する。
【０１５５】
確認の結果、変数“キャッシュアウト対象の仮想ボリューム容量の合計”が、テープボリュームキャッシュ１６０において必要とされている容量以上である場合（ステップＡ１３のＹＥＳルート参照）、処理を終了する。
【０１５６】
一方、確認の結果、変数“キャッシュアウト対象の仮想ボリューム容量の合計”が、テープボリュームキャッシュ１６０において必要とされている容量未満の場合（ステップＡ１３のＮＯルート参照）、ステップＡ３に戻る。
【０１５７】
（Ｃ）効果
このように、本発明の一実施形態としての仮想テープシステム１によれば、テープボリュームキャッシュ１６０に新たに仮想ボリューム２１０を追加するために空き容量を確保するに際して、仮想ボリューム選択部２０が、ＬＲＵ管理テーブル３１において追い出し順位付けされた仮想ボリューム２１０のうち、直近に物理ドライブにマウントされた物理ボリュームに格納される仮想ボリューム２１０を、キャッシュアウト対象として優先して選択する。従って、物理ドライブにマウントされている物理ボリュームに格納されている仮想ボリュームが選択される確率が高くなる。
【０１５８】
これにより、キャッシュアウトした仮想ボリュームを再度使用するために、バックエンドライブラリ３００から仮想ボリュームをテープボリュームキャッシュ１６０に戻すリコール処理を短時間で実現できる可能性を高くすることができる。すなわち、ホスト装置２００に対する応答時間を短縮することができる。
【０１５９】
キャッシュアウト対象の仮想ボリュームの候補が複数あり、それらの仮想ボリュームを格納する物理ボリュームが複数ある場合に、仮想ボリューム選択部２０が、最後にアクセスされた物理ボリュームに格納される仮想ボリュームを選択する。これにより、使用される仮想ボリュームを格納する物理ボリュームが物理ドライブにマウントされている時間が他の物理ボリュームより長くなるので、キャッシュアウトした仮想ボリュームを再度使用する場合に、マウントされている物理ボリュームから仮想ボリュームを呼び戻す機会が多くなり、結果として仮想ボリュームのテープボリュームキャッシュ１６０へのリコール処理を短時間で行なうことができる。これによっても、ホスト装置２００に対する応答時間を短縮することができる。
【０１６０】
また、仮想ボリューム選択部２０が、同一の物理ボリュームに複数のキャッシュアウト対象の候補の仮想ボリュームの実データが格納されている場合に、物理ドライブにおいて、物理ヘッドに近い位置に実データが格納されている仮想ボリュームを優先して選択する。
【０１６１】
これによりキャッシュアウトした仮想ボリュームが再度使用される場合に、仮想ボリュームへのヘッドの位置付けを最短で行なうことができる。このため、仮想ボリュームのテープボリュームキャッシュ１６０へのリコール処理を、物理ドライブにマウントされていない物理ボリュームから仮想ボリュームを呼び戻すのに比べて短い時間で行なうことできる。これによっても、ホスト装置２００に対する応答時間を短縮することができる。
【０１６２】
（Ｄ）その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１６３】
例えば、仮想テープ装置１００において、搭載されるＩＣＰ１５０やＩＤＰ１７０の数は２つに限定されるものではなく、種々変形して実施することができる。
【０１６４】
また、ＬＲＵ管理テーブル３１や物理ドライブ管理テーブル３２は、テーブル状のデータ構成に限定されるものではなく、種々変形して実施することができる。
【０１６５】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１６６】
（Ｅ）付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１６７】
（付記１）
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを管理する仮想テープ装置であって、
前記複数の論理ボリュームを格納するキャッシュメモリと、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、
前記選択部が、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、仮想テープ装置。
【０１６８】
（付記２）
前記選択部が、
直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームが無い場合には、前記追い出し順位に従って前記キャッシュアウト対象論理ボリュームを選択する
ことを特徴とする、付記１記載の仮想テープ装置。
【０１６９】
（付記３）
前記選択部が、
前記物理ドライブにマウントされた前記物理ボリュームに格納される前記論理ボリュームが複数ある場合に、前記物理ボリューム上における格納位置と、前記物理ドライブの物理ヘッドの位置との距離が短い論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、付記１記載の仮想テープ装置。
【０１７０】
（付記４）
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを格納するキャッシュメモリを制御するキャッシュ制御装置であって、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、
前記選択部が、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、キャッシュ制御装置。
【０１７１】
（付記５）
前記選択部が、
直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームが無い場合には、前記追い出し順位に従って前記キャッシュアウト対象論理ボリュームを選択する
ことを特徴とする、付記４記載のキャッシュ制御装置。
【０１７２】
（付記６）
前記選択部が、
前記物理ドライブにマウントされた前記物理ボリュームに格納される前記論理ボリュームが複数ある場合に、前記物理ボリューム上における格納位置と、前記物理ドライブの物理ヘッドの位置との距離が短い論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、付記４記載のキャッシュ制御装置。
【０１７３】
（付記７）
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを格納するキャッシュメモリを制御するキャッシュ制御装置のプロセッサに、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理し、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択し、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
処理を実行させる、キャッシュ制御プログラム。
【０１７４】
（付記８）
直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームが無い場合には、前記追い出し順位に従って前記キャッシュアウト対象論理ボリュームを選択する
処理を、前記プロセッサに実行させる、付記７記載のキャッシュ制御プログラム。
【０１７５】
（付記９）
前記物理ドライブにマウントされた前記物理ボリュームに格納される前記論理ボリュームが複数ある場合に、前記物理ボリューム上における格納位置と、前記物理ドライブの物理ヘッドの位置との距離が短い論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
処理を、前記プロセッサに実行させる、付記７記載のキャッシュ制御プログラム。
ことを特徴とする、付記４記載のキャッシュ制御装置。
【符号の説明】
【０１７６】
１    仮想テープシステム
１０    仮想ボリューム管理部
２０    仮想ボリューム選択部
３０    記憶部
４０    仮想ボリューム削除部
３１    ＬＲＵ管理テーブル
３２    物理ドライブ管理テーブル
１００    仮想テープ装置
１１０    ＶＬＰ
１２０    ＰＬＰ
１３１    ＬＡＮＣ
１５０−０，１５０−１，１５０    ＩＣＰ
１６０    テープボリュームキャッシュ
１７０−０，１７０−１，１７０    ＩＤＰ
２００    ホスト装置
２１０    仮想ボリューム
３００    バックエンドライブラリ
【図１】
2020197897.tif 000003
【図２】
2020197897.tif 000004
【図３】
2020197897.tif 000005
【図４】
2020197897.tif 000006
【図５】
2020197897.tif 000007
【図６】
2020197897.tif 000008
【図７】
2020197897.tif 000009
【図８】
2020197897.tif 000010
【図９】
2020197897.tif 000011
【図１０】
2020197897.tif 000012
【図１１】
2020197897.tif 000013
【図１２】
2020197897.tif 000014