(57)【特許請求の範囲】
【請求項１】
論理ボリュームの識別子と、前記論理ボリュームの更新時間と、前記論理ボリュームがキャッシュ部に割り当てられているか否かを示す情報と、前記論理ボリュームのデータを格納する物理ボリュームの識別子と、前記物理ボリュームが物理ドライブにマウントされているか否を示す情報とを対応付けた論理ボリューム情報を記憶する記憶部と、
前記キャッシュ部からのオフキャッシュを禁止する所定の期間を設定する設定部と、
論理ボリュームを前記キャッシュ部にキャッシュする要求を受付けた場合に、前記キャッシュ部に空き容量がないとき、前記論理ボリューム情報に基づいて、物理ドライブにマウントされている物理ボリューム内に更新済みである論理ボリュームで、かつ、前記キャッシュ部に割り当てられた論理ボリュームが存在するか否かを判定するキャッシュ判定部と、
前記キャッシュ判定部により物理ドライブにマウントされている物理ボリューム内に更新済みである論理ボリュームで、かつ、前記キャッシュ部に割り当てられた論理ボリュームが複数存在すると判定された場合、前記論理ボリューム情報を参照し、該複数の論理ボリュームの中から更新時刻が最も古い論理ボリュームを選択し、該選択した論理ボリュームが前記所定の期間内であるか否かを判定し、前記所定の期間内ではない場合に、該選択した論理ボリュームを前記キャッシュ部からオフキャッシュするオフキャッシュ対象論理ボリュームとして選択する選択部と、
前記選択部により選択されたオフキャッシュ対象論理ボリュームを前記キャッシュ部からオフキャッシュするキャッシュ制御部と、
を有することを特徴とする仮想テープ装置。
【請求項２】
論理ボリュームの識別子と、前記論理ボリュームの更新時間と、前記論理ボリュームがキャッシュ部に割り当てられているか否かを示す情報と、前記論理ボリュームのデータを格納する物理ボリュームの識別子と、前記物理ボリュームが物理ドライブにマウントされているか否を示す情報とを対応付けた論理ボリューム情報を記憶する記憶部と、
論理ボリュームを前記キャッシュ部にキャッシュする要求を受付けた場合に、前記キャッシュ部に空き容量がないとき、前記論理ボリューム情報に基づいて、物理ドライブにマウントされている物理ボリューム内に更新済みである論理ボリュームで、かつ、前記キャッシュ部に割り当てられた論理ボリュームが存在するか否かを判定するキャッシュ判定部と、
物理ボリュームが前記物理ドライブからアンマウントされることなく、かつ、前記物理ボリュームから論理ボリュームが所定の回数前記キャッシュ部に読出されたか否かを判定する読出判定部と、
前記キャッシュ判定部の判定結果に基づいて、該論理ボリュームを前記キャッシュ部からオフキャッシュするオフキャッシュ対象論理ボリュームとして選択し、前記読出判定部により、物理ボリュームが前記物理ドライブからアンマウントされることなく、かつ、該選択したオフキャッシュ対象論理ボリュームが前記物理ボリュームから所定の回数前記キャッシュ部に読出されたと判定された場合、前記キャッシュ部に存在する論理ボリュームの中で更新時刻が最も古い論理ボリュームをオフキャッシュ対象論理ボリュームとして選択する選択部と、
前記選択部により選択されたオフキャッシュ対象論理ボリュームを前記キャッシュ部からオフキャッシュするキャッシュ制御部と、
を有することを特徴とする仮想テープ装置。
【請求項３】
論理ボリュームの識別子と、前記論理ボリュームの更新時間と、前記論理ボリュームがキャッシュ部に割り当てられているか否かを示す情報と、前記論理ボリュームのデータを格納する物理ボリュームの識別子と、前記物理ボリュームが物理ドライブにマウントされているか否を示す情報とを対応付けた論理ボリューム情報を記憶する記憶部と、
論理ボリュームを前記キャッシュ部にキャッシュする要求を受付けた場合に、前記キャッシュ部に空き容量がないとき、前記論理ボリューム情報に基づいて、物理ドライブにマウントされている物理ボリューム内に更新済みである論理ボリュームで、かつ、前記キャッシュ部に割り当てられた論理ボリュームが存在するか否かを判定するキャッシュ判定部と、
前記キャッシュ判定部の判定結果に基づいて、該論理ボリュームを前記キャッシュ部からオフキャッシュするオフキャッシュ対象論理ボリュームとして選択する選択部と、
物理ドライブにマウントされている物理ボリュームの空き容量が所定の閾値を下回ったか否かを判定する閾値判定部と、
前記閾値判定部により、前記物理ボリュームの空き容量が所定の閾値を下回ったと判定された場合、情報処理装置に対して、前記物理ボリュームが格納する論理ボリュームのうち、前記キャッシュ部にオンキャッシュにさせる論理ボリュームを示すオンキャッシュ情報を自装置に送信する旨を要求する要求部と、
前記情報処理装置から前記オンキャッシュ情報を受信する受信部と、
前記選択部により選択されたオフキャッシュ対象論理ボリュームを前記キャッシュ部からオフキャッシュするとともに、前記物理ボリュームが格納する論理ボリュームのうち、前記オンキャッシュ情報に指定された論理ボリュームをオンキャッシュにするキャッシュ制御部と、
を有することを特徴とする仮想テープ装置。
【請求項４】
前記要求部は、更に、物理ドライブにマウントされている物理ボリュームがアンマウントされた場合、ホストに対して前記オンキャッシュ情報を自装置に送信する旨を要求する
ことを特徴とする請求項３に記載の仮想テープ装置。
【請求項５】
仮想テープ装置が、
データをキャッシュ部にキャッシュする要求を受付けた場合に、前記キャッシュ部に空き容量がないとき、論理ボリュームの識別子と、前記論理ボリュームの更新時間と、前記論理ボリュームがキャッシュ部に割り当てられているか否かを示す情報と、前記論理ボリュームとしてデータを格納する物理ボリュームの識別子と、前記物理ボリュームが物理ドライブにマウントされているか否を示す情報とを対応付けた論理ボリューム情報を記憶部から読出し、前記論理ボリューム情報に基づいて、物理ドライブにマウントされている物理ボリューム内に更新済みである論理ボリュームで、かつ、前記キャッシュ部に割り当てられている論理ボリュームが存在するか否かを判定し、
物理ドライブにマウントされている物理ボリューム内に更新済みである論理ボリュームで、かつ、前記キャッシュ部に割り当てられた論理ボリュームが複数存在すると判定した場合、前記論理ボリューム情報を参照し、該複数の論理ボリュームの中から更新時刻が最も古い論理ボリュームを選択し、該選択した論理ボリュームが前記キャッシュ部からのオフキャッシュを禁止する所定の期間内であるか否かを判定し、前記所定の期間内ではない場合に、該選択した論理ボリュームを前記キャッシュ部からオフキャッシュするオフキャッシュ対象論理ボリュームとして選択し、
選択したオフキャッシュ対象論理ボリュームを前記キャッシュ部からオフキャッシュする
各処理を含んだことを特徴とする仮想テープ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想テープ装置及び仮想テープ装置の制御方法に関する。
【背景技術】
【０００２】
仮想テープシステムは、テープライブラリと、仮想テープ装置とを有する。テープライブラリは、データを格納する磁気テープなどの物理ボリューム（Physical  Volume、以下ＰＶと記す）を有する。仮想テープ装置は、ＴＶＣ（Tape  Volume  Cache）を有し、ホストとテープライブラリとの間に設けられる。なお、ＴＶＣは、ＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）により実現される。
【０００３】
そして、仮想テープ装置は、テープライブラリが有するＰＶから読出したデータを論理ボリューム（Logical  Volume、以下ＬＶと記す）としてＴＶＣにキャッシュする。このようにして、仮想テープシステムは、ＴＶＣにＬＶのデータをキャッシュし、テープライブラリによるＰＶのマウント処理やＰＶのアンマウント処理などの動作を減らすことで、ホストによるデータへのアクセスを高速化する。
【０００４】
また、仮想テープ装置は、ホストからＬＶへのアクセスを受付けた際に、ＴＶＣ上にＬＶが存在しない場合、オフキャッシュ状態のＬＶをオンキャッシュにするリコール処理を実行する。この場合、ディスクキャッシュがフル状態ならば、仮想テープ装置は、新たに対象のＬＶをディスクキャッシュ上に展開するための領域を確保する。
【０００５】
例えば、仮想テープ装置は、オンキャッシュとなっているＬＶの中からアクセスされた時刻が最も古いＬＶから順次オフキャッシュとすることでディスクキャッシュに空き領域を作成する。そして、仮想テープ装置は、作成した空き領域を新たにオンキャッシュとするＬＶに割り当てる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１２３８３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来の技術では、リコール処理の時間が長くなる場合があるという課題がある。
【０００８】
仮想テープ装置は、ＬＶをリコールする際に、リコール対象のＬＶを格納するＰＶがテープライブラリにある物理テープドライブにマウントされていない場合、リコール対象のＬＶを格納するＰＶを物理テープドライブにマウントすることになる。
【０００９】
そして、ＰＶを物理テープドライブにマウントする場合、テープライブラリでは、ロボット操作により以下の処理が行われる。まず、ロボットは、現在マウント中のＰＶを巻き戻してからアンマウントする。続いて、ロボットは、リコール対象のＬＶを格納するＰＶを格納用スロットから取り出して、物理テープドライブのいずれかにマウントする。そして、ロボットは、リコール対象のＬＶが書き込まれた位置までテープヘッドを移動する。
【００１０】
また、リコール対象のＬＶが複数あり、それぞれのＬＶが異なるＰＶに格納されている場合には、テープライブラリでは、上述した処理と同様のロボット操作が繰り返し行われることになる。
【００１１】
１つの側面では、リコール処理の時間を短縮することができる仮想テープ装置及び仮想テープ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本件の仮想テープ装置は、記憶部に論理ボリューム情報を記憶する。論理ボリューム情報には、論理ボリュームの識別子と、論理ボリュームの更新時間と、論理ボリュームがキャッシュ部に割り当てられているか否かを示す情報とが対応付けられる。さらに、論理ボリューム情報には、論理ボリュームのデータを格納する物理ボリュームの識別子と、物理ボリュームが物理ドライブにマウントされているか否を示す情報とが対応付けられる。また、仮想テープ装置は、論理ボリュームをキャッシュ部にキャッシュする要求を受付けた場合に、キャッシュ部に空き容量がないとき、以下の処理を実行する。すなわち、仮想テープ装置は、論理ボリューム情報に基づいて、物理ドライブにマウントされている物理ボリューム内に更新済みである論理ボリュームで、かつ、キャッシュ部に割り当てられた論理ボリュームが存在するか否かを判定する。続いて、仮想テープ装置は、物理ドライブにマウントされている物理ボリューム内に更新済みである論理ボリュームで、かつ、キャッシュ部に割り当てられた論理ボリュームが複数存在すると判定した場合、以下の処理を実行する。すなわち、仮想テープ装置は、論理ボリューム情報を参照し、複数の論理ボリュームの中から更新時刻が最も古い論理ボリュームを選択し、該選択した論理ボリュームがキャッシュ部からのオフキャッシュを禁止する所定の期間内であるか否かを判定する。そして、仮想テープ装置は、所定の期間内ではない場合に、該選択した論理ボリュームをキャッシュ部からオフキャッシュするオフキャッシュ対象論理ボリュームとして選択する。そして、仮想テープ装置は、選択したオフキャッシュ対象論理ボリュームをキャッシュ部からオフキャッシュする。
【発明の効果】
【００１３】
リコール処理の時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係る仮想テープシステムの構成の一例を示す図である。
【図２】図２は、実施例１に係るＶＬＰの機能構成の一例を示す機能ブロック図である。
【図３】図３は、実施例１に係る論理ボリューム情報テーブルが記憶する情報の一例を示す図である。
【図４】図４は、実施例１に係る仮想テープ装置による処理の処理手順を示すフローチャートである。
【図５】図５は、実施例１に係る仮想テープ装置によるリコール時間を短縮する一例を示す図である。
【図６Ａ】図６Ａは、頻繁にキャッシュの入れ替えが発生する一例を示す図である。
【図６Ｂ】図６Ｂは、頻繁にキャッシュの入れ替えが発生する別の一例を示す図である。
【図７】図７は、実施例２に係るＶＬＰの機能構成の一例を示す機能ブロック図である。
【図８】図８は、実施例２に係る対象外期間テーブルが記憶する情報の一例を示す図である。
【図９】図９は、ＰＶ内ＬＶオフキャッシュ優先論理の対象外期間の一例を示す図である。
【図１０】図１０は、実施例２に係る仮想テープ装置による処理の処理手順を示すフローチャートである。
【図１１】図１１は、実施例３に係るＶＬＰの機能構成の一例を示す機能ブロック図である。
【図１２】図１２は、実施例３に係るオフキャッシュ優先理論テーブルが記憶する情報の一例を示す図である。
【図１３】図１３は、実施例３に係る仮想テープ装置による処理の処理手順を示すフローチャートである。
【図１４】図１４は、実施例４に係るＶＬＰの機能構成の一例を示す機能ブロック図である。
【図１５Ａ】図１５Ａは、実施例４に係る仮想テープ装置によるＰＶの空き容量が所定の閾値を下回った場合の処理動作を示す図ある。
【図１５Ｂ】図１５Ｂは、実施例４に係る仮想テープ装置によるＰＶの空き容量が所定の閾値を下回った場合の処理動作を示す図ある。
【図１５Ｃ】図１５Ｃは、実施例４に係る仮想テープ装置によるＰＶの空き容量が所定の閾値を下回った場合の処理動作を示す図ある。
【図１５Ｄ】図１５Ｄは、実施例４に係る仮想テープ装置によるＰＶの空き容量が所定の閾値を下回った場合の処理動作を示す図ある。
【図１６】図１６は、実施例４に係る仮想テープ装置によるＰＶがアンマウントされた場合の処理動作を示す図である。
【図１７】図１７は、実施例４に係る仮想テープ装置によるＰＶの空き容量が所定の閾値を下回った場合の処理の処理手順を示すフローチャートである。
【図１８】図１８は、実施例４に係る仮想テープ装置によるＰＶがアンマウントされた場合の処理の処理手順の別例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する仮想テープ装置及び仮想テープ装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１６】
実施例１では、仮想テープ装置を含んだ仮想テープシステムを例にする。また、以下では、図１から図６を用いて、仮想テープシステムの構成、仮想テープ装置による処理動作、仮想テープ装置による処理手順などについて説明する。
【００１７】
［実施例１に係る仮想テープシステムの構成］
図１を用いて、実施例１に係る仮想テープシステムの構成について説明する。図１は、実施例１に係る仮想テープシステムの構成の一例を示す図である。図１に示すように、実施例１に係る仮想テープシステム１０は、物理テープライブラリ装置２０及び物理テープライブラリ装置３０と、仮想テープ装置４０とを有する。
【００１８】
仮想テープシステム１０では、仮想テープ装置４０は、物理テープライブラリ装置２０及び物理テープライブラリ装置３０と接続される。なお、物理テープライブラリの数は、図示に限定されるものではなく、変更可能である。また、図１に示すように、仮想テープシステム１０では、仮想テープ装置４０は、ホスト１及び２と接続される。なお、ホストの数は、図示に限定されるものではなく、変更可能である。
【００１９】
ホスト１及びホスト２は、例えば、メインフレームであり、仮想テープ装置４０に対して、論理ボリューム（Logical  Volume、以下ＬＶと記す）のマウントを要求する。そして、ホスト１及び２は、仮想テープ装置４０に対して、マウントされたＬＶの読出し及びＬＶの書込みを要求する。また、ホスト１及び２は、仮想テープ装置４０に対して、ＬＶのアンマウントを要求する。
【００２０】
物理テープライブラリ装置２０は、物理テープ格納用スロット２１（以下、スロット２１と記す）と、物理テープドライブ２２及び物理テープドライブ２３と、物理テープ移動用ロボット２４（以下、ロボット２４と記す）とを有する。なお、物理テープライブラリ装置２０が有するスロット、物理ドライブ、ロボットの数は図示したものに限定されるものではなく、変更可能である。
【００２１】
スロット２１は、物理テープを格納する。例えば、物理テープは、ＬＴＯ（Linear  Tape  Open）カートリッジなどの磁気テープである。なお、以下の説明では、物理テープを物理ボリューム（Physical  Volume、以下ＰＶと記す）と適宜記載する。
【００２２】
物理テープドライブ２２及び物理テープドライブ２３は、セットされた各ＰＶに対してデータの書込みや、セットされた各ＰＶを走行させて格納されるデータの読み出しを行う。ロボット２４は、スロット２１内に格納されているＰＶを取り出し、物理テープドライブ２２または物理テープドライブ２３のいずれかにセットする。
【００２３】
物理テープライブラリ装置３０は、物理テープ格納用スロット３１（以下、スロット３１と記す）と、物理テープドライブ３２及び物理テープドライブ３３と、物理テープ移動用ロボット３４（以下、ロボット３４と記す）とを有する。スロット３１は、スロット２１と等価である。また、物理テープドライブ３２及び物理テープドライブ３３は、物理テープドライブ２２及び物理テープドライブ２３と等価である。また、ロボット３４は、ロボット２４と等価である。
【００２４】
仮想テープ装置４０は、ＴＶＣ(Tape  Volume  Cache)４１、ＩＣＰ（Integrated  Channel  Processor）４２及びＩＣＰ４３、ＩＤＰ（Integrated  Device  Processor）４４及びＩＤＰ４５、ＶＬＰ（Virtual  Library  Processor）４６を有する。なお、仮想テープ装置が有するＴＶＣ、ＩＣＰ、ＩＤＰ、ＶＬＰの数は図示に限定されるものではない。
【００２５】
ＴＶＣ４１は、ＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）ストレージとファイルシステムとを有し、複数のＬＶを保存する。
【００２６】
ＩＣＰ４２は、ＣＰＵ(Central  Processing  Unit)と主記憶装置とを有する。ＩＣＰ４２は、チャネルインターフェースカードを搭載し、ＦＣＬＩＮＫ（登録商標）やＯＣＬＩＮＫ（登録商標）などのストレージ接続インターフェースを用いてホスト１と接続される。
【００２７】
ＩＣＰ４２は、ホスト１からＬＶのマウント要求を受付ける。ここで、ＩＣＰ４２は、要求されたＬＶがＴＶＣ４１に存在する場合、ホスト１にマウント完了を通知する。また、ＩＣＰ４２は、要求されたＬＶがＴＶＣ４１に存在しない場合、後述するＶＬＰ４６に、物理テープライブラリ装置２０または物理テープライブラリ装置３０からＬＶの読出しを要求する。
【００２８】
ＩＣＰ４２は、ＴＶＣ４１にキャッシュされたＬＶを読出す要求やＴＶＣ４１にＬＶを書込む要求をホスト１から受付ける。また、ＩＣＰ４２は、ホスト１から要求されたＬＶの書込みが終了後、ＬＶのアンマウントを受付けた場合、ＶＬＰ４６に物理テープライブラリ装置２０または物理テープライブラリ装置３０へＬＶの書込みを依頼する。
【００２９】
また、ＩＣＰ４３は、ＣＰＵと主記憶装置とを有する。ＩＣＰ４３は、チャネルインターフェースカードを搭載し、ＦＣＬＩＮＫ（登録商標）やＯＣＬＩＮＫ（登録商標）などのストレージ接続インターフェースを用いてホスト２と接続される。
【００３０】
ＩＣＰ４３は、ホスト２からＬＶのマウント要求を受付ける。ここで、ＩＣＰ４３は、要求されたＬＶがＴＶＣ４１に存在する場合、ホスト２にマウント完了を通知する。また、ＩＣＰ４３は、要求されたＬＶがＴＶＣ４１に存在しない場合、後述するＶＬＰ４６に、物理テープライブラリ装置２０または物理テープライブラリ装置３０からＬＶの読出しを要求する。
【００３１】
ＩＣＰ４３は、ＴＶＣ４１にキャッシュされたＬＶを読出す要求やＴＶＣ４１にＬＶを書込む要求をホスト２から受付ける。また、ＩＣＰ４３は、ホスト２から要求されたＬＶの書込みが終了後、ＬＶのアンマウントを受付けた場合、ＶＬＰ４６に物理テープライブラリ装置２０または物理テープライブラリ装置３０へＬＶの書込みを依頼する。
【００３２】
ＩＤＰ４４は、ＣＰＵと主記憶装置とを有する。ＩＤＰ４４は、物理テープライブラリ装置２０の物理テープドライブ２２及び物理テープドライブ２３に対するデータパスを有する。ＩＤＰ４４は、ＰＶのマウント処理やアンマウント処理を後述するＶＬＰ４６から受け付けた場合、ロボット２４を制御してＰＶのマウント処理やアンマウント処理を実行する。
【００３３】
また、ＩＤＰ４４は、マウントしたＰＶからＬＶの読み出しをＶＬＰ４６から受け付けた場合、物理テープドライブ２２または物理テープドライブ２３のいずれかを制御して各ＰＶに格納されているＬＶを読み出す。そして、ＩＤＰ４４は、読み出したＬＶをＴＶＣ４１に書き込む。言い換えると、ＩＤＰ４４は、ＬＶをＴＶＣ４１にオンキャッシュにする。また、ＩＤＰ４４は、マウントしたＰＶへのＬＶの書込みをＶＬＰ４６から受け付けた場合、物理テープドライブ２２または物理テープドライブ２３のいずれかを制御して各ＰＶにＬＶを書き込む。
【００３４】
ＩＤＰ４５は、ＣＰＵと主記憶装置とを有する。ＩＤＰ４５は、物理テープライブラリ装置３０の物理テープドライブ３２及び物理テープドライブ３３に対するデータパスを有する。ＩＤＰ４５は、ＰＶのマウント処理やアンマウント処理を後述するＶＬＰ４６から受け付けた場合、ロボット３４を制御してＰＶのマウント処理やアンマウント処理を実行する。
【００３５】
また、ＩＤＰ４５は、マウントしたＰＶからＬＶの読み出しをＶＬＰ４６から受け付けた場合、物理テープドライブ３２または物理テープドライブ３３のいずれかを制御して各ＰＶに格納されているＬＶを読み出す。そして、ＩＤＰ４５は、読み出したＬＶをＴＶＣ４１に書き込む。言い換えると、ＩＤＰ４５は、ＬＶをＴＶＣ４１にオンキャッシュにする。また、ＩＤＰ４５は、マウントしたＰＶへのＬＶの書込みをＶＬＰ４６から受け付けた場合、物理テープドライブ３２または物理テープドライブ３３のいずれかを制御して各ＰＶにＬＶを書き込む。
【００３６】
ＶＬＰ４６は、ＣＰＵと主記憶装置とを有する。ＶＬＰ４６は、物理テープライブラリ装置２０または物理テープライブラリ装置３０からＬＶを読出す要求をＩＣＰ４２またはＩＣＰ４３から受付けた場合、以下の処理を実行する。すなわち、ＶＬＰ４６は、ＩＤＰ４４またはＩＤＰ４５に、ＰＶのマウント処理やマウントしたＰＶからＬＶを読み出す処理を依頼する。
【００３７】
また、ＶＬＰ４６は、物理テープライブラリ装置２０または物理テープライブラリ装置３０へＬＶを書込む要求をＩＣＰ４２またはＩＣＰ４３から受付けた場合、以下の処理を実行する。すなわち、ＶＬＰ４６は、ＩＤＰ４４またはＩＤＰ４５に、ＰＶのマウント処理、マウントしたＰＶへＬＶを書込む処理、ＰＶのアンマウント処理を依頼する。
【００３８】
また、ＶＬＰ４６は、記憶部に論理ボリューム情報テーブルを有する。この論理ボリューム情報テーブルは、ＬＶの識別子と、ＬＶの更新時間と、ＬＶがＴＶＣ４１に割り当てられているか否かを示す情報とを対応付けた情報を記憶する。また、この論理ボリューム情報テーブルは、ＬＶを格納するＰＶの識別子と、ＰＶが物理ドライブにマウントされているか否を示す情報とを対応付けた情報を記憶する。そして、ＶＬＰ４６は、ＬＶをＴＶＣ４１にキャッシュする要求を受付けた場合に、ＴＶＣ４１に空き容量がないとき、以下の処理を実行する。すなわち、ＶＬＰ４６は、論理ボリューム情報テーブルに基づいて、物理テープドライブにマウントされているＰＶに対して更新済みであり、かつ、ＴＶＣ４１に割り当てられたＬＶが存在するか否かを判定する。そして、ＶＬＰ４６は、判定結果に基づいて、ＬＶをＴＶＣ４１からオフキャッシュするオフキャッシュ対象ＬＶとして選択する。そして、ＶＬＰ４６は、選択したオフキャッシュ対象論理ボリュームをＴＶＣ４１からオフキャッシュする。
【００３９】
このようにして、仮想テープ装置４０において、ＶＬＰ４６は、リコール要求が発生した場合でも、現在使用中のＰＶにリコール対象のＬＶが存在する確率を高める。この結果、仮想テープ装置４０は、リコール処理の時間を短縮することができる。
【００４０】
［実施例１に係るＶＬＰの機能構成］
次に図２を用いて、実施例１に係るＶＬＰの機能構成について説明する。図２は、実施例１に係るＶＬＰの機能構成の一例を示す機能ブロック図である。実施例１に係るＶＬＰ４６は、記憶部１１０と制御部１２０とを有する。
【００４１】
記憶部１１０は、例えば、半導体メモリ素子などの記憶装置であり、論理ボリューム情報テーブル１１１を有する。論理ボリューム情報テーブル１１１は、ＬＶの識別子と、ＬＶの更新時間と、ＬＶがＴＶＣ４１に存在するか否かを示す情報と、ＬＶとしてデータを格納するＰＶの識別子と、ＰＶが物理ドライブにマウントされているか否を示す情報とを対応付けた情報を記憶する。
【００４２】
図３を用いて、論理ボリューム情報テーブル１１１が記憶する情報を説明する。図３は、実施例１に係る論理ボリューム情報テーブルが記憶する情報の一例を示す図である。例えば、論理ボリューム情報テーブル１１１は、図３に示すように、「ＬＶ」と「書込み時刻」と「有効」と「ＰＶ」と「マウント」と「オフキャッシュ優先度」とを対応付けて記憶する。
【００４３】
ここで、論理ボリューム情報テーブル１１１が記憶する「ＬＶ」は、ＬＶの識別子を示す。例えば、「ＬＶ」には、「Ａ」、「Ｂ」などが格納される。なお、以下の説明では、「Ａ」で識別されるＬＶのことを、例えば、ＬＶ（Ａ）として表記する。
【００４４】
また、論理ボリューム情報テーブル１１１が記憶する「書込み時刻」は、ＬＶが最終更新された時間を示す。例えば、「書込み時刻」には、ＬＶが最終更新された年月日と日時と時刻として「２０１０／１０／１２  １２:５４:３８」、「２０１１／０７／２２  ２０:４２:５４」などが格納される。
【００４５】
また、論理ボリューム情報テーブル１１１が記憶する「有効」は、ＬＶがＴＶＣ４１にキャッシュされているか否かを示す。例えば、「有効」には、ＬＶがＴＶＣ４１にキャッシュされていることを示す「１」、ＬＶがＴＶＣ４１にキャッシュされていないことを示す「０」などが格納される。
【００４６】
また、論理ボリューム情報テーブル１１１が記憶する「ＰＶ」は、ＬＶのデータを格納するＰＶの識別子を示す。例えば、「ＰＶ」には、「ＰＶ（Ａ）」、「ＰＶ（Ｂ）」などが格納される。
【００４７】
また、論理ボリューム情報テーブル１１１が記憶する「マウント」は、ＰＶが物理テープドライブにマウントされているか否を示す。例えば、「マウント」には、ＰＶが物理テープドライブにマウントされていることを示す「１」、ＰＶが物理ドライブにマウントされていないことを示す「０」などが格納される。
【００４８】
また、論理ボリューム情報テーブル１１１が記憶する「オフキャッシュ優先度」は、ＴＶＣ４１からオフキャッシュにするＬＶの優先順位を示す。例えば、「オフキャッシュ優先度」には、「１」、「２」などが格納される。なお、ＴＶＣ４１にキャッシュされていないＬＶについては、オフキャッシュ優先度の対象外であることを示す「０」が格納される。
【００４９】
一例を挙げると、図３は、「Ａ」で識別されるＬＶは、「２０１０年１０月１２日１２時５４分３８秒」に最終更新されており、ＴＶＣ４１にはキャッシュされていないことを示す。また、「Ａ」で識別されるＬＶは、「ＰＶ（Ａ）」で識別されるＰＶに格納されており、このＰＶ（Ａ）がマウントされていることを示す。また、この「Ａ」で識別されるＬＶは、オフキャッシュ優先度の値が「０」であるので、対象外であることを示す。
【００５０】
同様に、図３は、「Ａ２」で識別されるＬＶは、「２０１１年７月２２日１８時３８分１９秒」に最終更新されており、ＴＶＣ４１にキャッシュされていることを示す。また、「Ａ２」で識別されるＬＶは、「ＰＶ（Ａ）」で識別されるＰＶに格納されており、このＰＶ（Ａ）がマウントされていることを示す。また、この「Ａ２」で識別されるＬＶは、のオフキャッシュ優先度は「３」であることを示す。
【００５１】
図２に戻り、制御部１２０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）などの電子回路であり、キャッシュ判定部１２１と、選択部１２２と、キャッシュ制御部１２３と、マウント制御部１２４とを有する。
【００５２】
キャッシュ判定部１２１は、ＬＶをＴＶＣ４１にキャッシュする要求をホスト１またはホスト２から受付けた場合に、要求されたＬＶがＴＶＣ４１上に存在するか否かを判定する。ここで、キャッシュ判定部１２１は、要求されたＬＶがＴＶＣ４１上に存在すると判定した場合、処理を終了する。
【００５３】
また、キャッシュ判定部１２１は、要求されたＬＶがＴＶＣ４１上に存在しないと判定した場合、ＴＶＣ４１上に空きがあるか否かを判定する。ここで、キャッシュ判定部１２１は、ＴＶＣ４１上に空きがあると判定した場合、要求されたＬＶを格納するＰＶが物理テープドライブにマウントされているか否かをマウント制御部１２４に判定させる。
【００５４】
また、キャッシュ判定部１２１は、ＴＶＣ４１上に空きがないと判定した場合、以下の処理を実行する。すなわち、キャッシュ判定部１２１は、論理ボリューム情報テーブル１１１に基づいて、物理テープドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１に存在するＬＶが存在するか否かを判定する。
【００５５】
図３に示す論理ボリューム情報テーブル１１１を例にすると、キャッシュ判定部１２１は、物理ドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１に存在するＬＶとして、「Ｄ、Ｅ、Ａ２、Ｂ１、Ｃ１」が存在すると判定する。そして、キャッシュ判定部１２１は、判定結果を選択部１２２に出力する。
【００５６】
選択部１２２は、キャッシュ判定部１２１により、物理テープドライブにマウントされているＰＶに対して、更新済みであり、かつ、ＴＶＣ４１割り当てられたＬＶが存在すると判定された場合、以下の処理を実行する。すなわち、選択部１２２は、該ＬＶをＴＶＣ４１からオフキャッシュするオフキャッシュ対象ＬＶとして選択する。なお、以下の説明では、選択部１２２がオフキャッシュ対象ＬＶとして、物理テープドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１存在するＬＶを選択する論理のことを「ＰＶ内ＬＶオフキャッシュ優先論理」と称して説明する。
【００５７】
ここで、選択部１２２は、キャッシュ判定部１２１により物理テープドライブにマウントされている同一のＰＶに対して、更新済みであり、かつ、ＴＶＣ４１に割り当てられたＬＶが複数存在すると判定された場合、以下の処理を実行する。すなわち、選択部１２２は、論理ボリューム情報テーブル１１１を参照し、該複数のＬＶの中から更新時刻が最も古いＬＶをオフキャッシュ対象ＬＶとして選択する。
【００５８】
図３に示す論理ボリューム情報テーブル１１１を例にすると、選択部１２２は、「Ｄ、Ｅ、Ａ２、Ｂ１、Ｃ１」で識別されるＬＶのうち、更新時刻が最も古いＬＶである「Ｄ」をオフキャッシュ対象ＬＶに選択する。
【００５９】
選択部１２２は、キャッシュ判定部１２１により物理テープドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１に存在するＬＶが存在しないと判定された場合、以下の処理を実行する。すなわち、選択部１２２は、ＴＶＣ４１に存在するＬＶの中で更新時刻が最も古いＬＶをオフキャッシュ対象ＬＶとして選択する。
【００６０】
キャッシュ制御部１２３は、ホスト１またはホスト２から要求されたＬＶを読み込んでＴＶＣ４１上に展開する旨をＩＤＰ４４またはＩＤＰ４５に依頼する。また、キャッシュ制御部１２３は、選択部１２２により選択されたオフキャッシュ対象ＬＶをＴＶＣ４１からオフキャッシュする旨をＩＤＰ４４またはＩＤＰ４５に依頼する。
【００６１】
マウント制御部１２４は、要求されたＬＶを格納するＰＶが物理テープドライブにマウントされているか否かを判定する。ここで、マウント制御部１２４は、要求されたＬＶを格納するＰＶが物理テープドライブにマウントされていないと判定した場合、要求されたＬＶを格納するＰＶを物理テープドライブにマウントする旨をＩＤＰ４４またはＩＤＰ４５に依頼する。
【００６２】
また、マウント制御部１２４は、要求されたＬＶを格納するＰＶが物理テープドライブにマウントされていると判定した場合、または、要求されたＬＶを格納するＰＶを物理テープドライブにマウント完了後、以下の処理を実行する。すなわち、マウント制御部１２４は、キャッシュ制御部１２３にホスト１またはホスト２から要求されたＬＶを読み込んでＴＶＣ４１上に展開させる。
【００６３】
また、マウント制御部１２４は、ＴＶＣ４１上で更新されたＬＶをＰＶに書込む旨をＩＤＰ４４またはＩＤＰ４５に依頼する。また、マウント制御部１２４は、ＰＶの空き容量がなくなった場合には、新たなＰＶをマウントする旨をＩＤＰ４４またはＩＤＰ４５に依頼する。すなわち、マウント制御部１２４は、空き容量がなくなったＰＶをアンマウントし、新たなＰＶをマウントする旨をＩＤＰ４４またはＩＤＰ４５に依頼する。
【００６４】
［実施例１に係る仮想テープ装置による処理の処理手順］
次に、図４を用いて、実施例１に係る仮想テープ装置４０による処理の処理手順を説明する。図４は、実施例１に係る仮想テープ装置による処理の処理手順を示すフローチャートである。なお、仮想テープ装置４０は、ホスト１またはホスト２からＬＶを読出す要求であるＬＶのマウント要求を受付けた場合に、以下の処理を実行する。
【００６５】
キャッシュ判定部１２１は、要求されたＬＶがＴＶＣ４１上に存在するか否かを判定する（ステップＳ１０１）。ここで、キャッシュ判定部１２１は、要求されたＬＶがＴＶＣ４１上に存在すると判定した場合（ステップＳ１０１、Ｙｅｓ）、処理を終了する。
【００６６】
一方、キャッシュ判定部１２１は、要求されたＬＶがＴＶＣ４１上に存在しないと判定した場合（ステップＳ１０１、Ｎｏ）、ＴＶＣ４１上に空きがあるか否かを判定する（ステップＳ１０２）。ここで、キャッシュ判定部１２１は、ＴＶＣ４１上に空きがあると判定した場合（ステップＳ１０２、Ｙｅｓ）、ステップＳ１０７に移行する。
【００６７】
一方、キャッシュ判定部１２１は、ＴＶＣ４１上に空きがないと判定した場合（ステップＳ１０２、Ｎｏ）、以下の処理を実行する。すなわち、キャッシュ判定部１２１は、論理ボリューム情報テーブル１１１に基づいて、物理テープドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１に存在するＬＶが存在するか否かを判定する（ステップＳ１０３）。
【００６８】
キャッシュ判定部１２１により物理テープドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１に存在するＬＶが存在すると判定された場合（ステップＳ１０３、Ｙｅｓ）、選択部１２２は、以下の処理を実行する。すなわち、選択部１２２は、ＰＶ内ＬＶオフキャッシュ優先論理に基づいて、該論理ボリュームをＴＶＣ４１からオフキャッシュするオフキャッシュ対象ＬＶとして選択する（ステップＳ１０４）。
【００６９】
一方、キャッシュ判定部１２１により物理ドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１に存在するＬＶが存在しないと判定された場合（ステップＳ１０３、Ｎｏ）、選択部１２２は、以下の処理を実行する。すなわち、選択部１２２は、ＴＶＣ４１に存在するＬＶの中で更新時刻が最も古いＬＶをオフキャッシュ対象ＬＶとして選択する（ステップＳ１０５）。
【００７０】
ステップＳ１０４、またはステップＳ１０５の処理の終了後、キャッシュ制御部１２３は、選択部１２２により選択されたオフキャッシュ対象論理ボリュームをＴＶＣ４１からオフキャッシュする（ステップＳ１０６）。
【００７１】
ステップＳ１０７では、マウント制御部１２４は、要求されたＬＶを格納するＰＶが物理テープドライブにマウントされているか否かを判定する（ステップＳ１０７）。ここで、マウント制御部１２４は、要求されたＬＶを格納するＰＶが物理テープドライブにマウントされていないと判定した場合（ステップＳ１０７、Ｎｏ）、要求されたＬＶを格納するＰＶを物理テープドライブにマウントさせる（ステップＳ１０８）。
【００７２】
マウント制御部１２４は、要求されたＬＶを格納するＰＶが物理テープドライブにマウントされていると判定した場合（ステップＳ１０７、Ｙｅｓ）、ステップＳ１０９に移行する。
【００７３】
ステップＳ１０９では、キャッシュ制御部１２３は、ＬＶを読み込んでＴＶＣ４１上に展開する（ステップＳ１０９）。このステップＳ１０９の処理が終了後、仮想テープ装置４０は、処理を終了する。
【００７４】
［実施例１の効果］
上述してきたように、実施例１に係る仮想テープ装置は、現在物理ドライプにマウントされているＰＶ内にＬＶの最終更新データが存在するものを優先してオフキャッシュの対象とする。これによって、実施例１に係る仮想テープ装置は、リコール要求が発生した場合でも、現在使用中のＰＶにリコール対象のＬＶデータが存在する確率を高くする。
【００７５】
次に、図５を用いて、仮想テープ装置が、現在使用中のＰＶにリコール対象のＬＶデータが存在する確率を高くすることにより得られる効果について説明する。図５は、実施例１に係る仮想テープ装置によるリコール時間を短縮する一例を示す図である。なお、図５では、仮想テープシステム１０が、ホスト１からＬＶのマウント要求を受付ける場合を例に説明する。
【００７６】
仮想テープシステム１０において、仮想テープ装置４０は、ホスト１からＬＶのマウント要求を受付ける（ステップＳ１２１）。そして、仮想テープ装置４０は、ＬＶのリコールを要求する（ステップＳ１２２）。ここで、仮想テープシステム１０では、現在使用中のＰＶにリコール対象のＬＶが存在する確率が高くなっている。すなわち、仮想テープシステム１０では、リコール対象のＬＶを格納するＰＶをスロットから取り出さなくてもよい。
【００７７】
このため、仮想テープ装置４０は、現在使用中のＰＶからリコール対象のＬＶをＴＶＣ４１にキャッシュする（ステップＳ１２３）。続いて、ホスト１は、仮想テープ装置４０からＬＶを読み出す（ステップＳ１２４）。このようにして、実施例１に係る仮想テープ装置は、リコール時間を短縮することができる。
【００７８】
また、現在物理ドライブにマウントされているＰＶ内に最終更新データが存在するＬＶは、比較的最近使用されたＬＶである。これらをオフキャシュ状態とするとかえって頻繁にキャッシュの入れ替えが発生し、トータルでのリコール時間を増やしてしまう可能性がある。
【００７９】
図６Ａ及び図６Ｂを用いて、頻繁にキャッシュの入れ替えが発生する一例を説明する。図６Ａは、頻繁にキャッシュの入れ替えが発生する一例を示す図であり、図６Ｂは、頻繁にキャッシュの入れ替えが発生する別の一例を示す図である。
【００８０】
図６Ａでは、スロット２１に、ＰＶ（Ｂ）、ＰＶ（Ｃ）が格納されており、物理テープドライブ２２にＰＶ（Ａ）がマウントされている場合を例に示す。また、図６Ａに示す例では、ＰＶ（Ａ）からＬＶ（Ａ）、ＬＶ（Ｂ）、ＬＶ（Ｃ）の順でＴＶＣ４１にオンキャッシュして使用するものとする。
【００８１】
図６Ａに示すように、ＬＶ（Ｂ）をオンキャッシュにする場合には、ＬＶ（Ａ）がオフキャッシュされる。また、ＬＶ（Ｃ）をオンキャッシュにする場合には、ＬＶ（Ｂ）がオフキャッシュされる。このように、直前に使用したＬＶがオフキャッシュ対象ＬＶになってしまう。
【００８２】
また、図６Ｂでは、ＴＶＣ４１がキャッシュフル状態であり、ＰＶ内にあるＬＶ（Ａ）とＬＶ（Ｂ）とを交互にアクセスする場合を例に説明する。図６Ｂに示すように、ＬＶ（Ａ）にアクセスした後、ＬＶ（Ｂ）にアクセスする場合には、ＬＶ（Ａ）がオフキャッシュされる。また、ＬＶ（Ｂ）にアクセスした後、ＬＶ（Ａ）にアクセスする場合には、ＬＶ（Ｂ）がオフキャッシュされる。このように、直前に使用したＬＶがオフキャッシュ対象ＬＶになることが繰り返し発生してしまう危険性がある。すなわち、頻繁にキャッシュの入れ替えが発生してしまう。
【００８３】
これに対して、実施例１に係る仮想テープ装置は、同一ＰＶ内に最終更新データが存在するＬＶが複数存在した場合、それらの中から最もタイムスタンプが古いものからオフキャッシュの対象とする。これにより、実施例１に係る仮想テープ装置は、現在使用されていないＬＶがオフキャッシュになる確率を上げ、リコールの発生率を下げる。すなわち、実施例１に係る仮想テープ装置は、頻繁にキャッシュの入れ替えが発生することを防止できる。
【実施例２】
【００８４】
ところで、仮想テープ装置において、直近に使われたＬＶが読み出しのみで更新が行われずにアンマウントされてしまった場合や、ＰＶ内に直近にアクセスしたＬＶしか存在しなかった場合は、使用頻度が高いＬＶがオフキャッシュ対象とされる場合がある。この結果、仮想テープ装置では、使用頻度が高いＬＶのリコールが多発する可能性が発生する場合もある。
【００８５】
このようなことから、仮想テープ装置は、使用頻度の高いＬＶについては、所定の期間オフキャッシュ対象ＬＶとして選択しないようにしてもよいものである。そこで、実施例２では、仮想テープ装置は、ＰＶ内ＬＶオフキャッシュ優先論理の対象外期間を設け、使用頻度の高いＬＶのリコールの多発を抑止する例について説明する。
【００８６】
［実施例２に係る仮想テープシステムの構成］
実施例２に係る仮想テープシステムの構成は、ＶＬＰの機能構成が一部異なる点を除いて、実施例１に係る仮想テープ装置の構成と同様である。このため、実施例２では、実施例１に係るＶＬＰ４６をＶＬＰ４６ａに置き換えて説明する。
【００８７】
［実施例２に係るＶＬＰの機能構成］
次に、図７を用いて、実施例２に係るＶＬＰ４６ａの機能構成を説明する。図７は、実施例２に係るＶＬＰの機能構成の一例を示す機能ブロック図である。実施例２に係るＶＬＰ４６ａは、記憶部２１０と制御部２２０とを有する。なお、ここでは、図２に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
【００８８】
記憶部２１０は、半導体メモリ素子などの記憶装置であり、論理ボリューム情報テーブル１１１と対象外期間テーブル２１１とを有する。対象外期間テーブル２１１は、ＰＶ内ＬＶオフキャッシュ優先論理の対象外期間を記憶する。
【００８９】
図８を用いて、対象外期間テーブル２１１が記憶する情報を説明する。図８は、実施例２に係る対象外期間テーブルが記憶する情報の一例を示す図である。例えば、対象外期間テーブル２１１は、図８に示すように、「ＬＶ」と「マウント時刻」と「アンマウント時刻」と「対象外期間」とを対応付けて記憶する。
【００９０】
ここで、対象外期間テーブル２１１が記憶する「ＬＶ」は、ＬＶの識別子を示す。例えば、「ＬＶ」には、「Ａ」、「Ｂ」などが格納される。
【００９１】
また、対象外期間テーブル２１１が記憶する「マウント時刻」は、ＬＶがＴＶＣ４１にマウントされた時刻を示す。言い換えると、「マウント時刻」は、ＬＶが使用され始めた時刻を示す。例えば、「マウント時刻」には、「２０１１／０８／２２  ０１:１０:２５」、「２０１１／０８２２  ０１:１０:２６」などが格納される。
【００９２】
また、対象外期間テーブル２１１が記憶する「アンマウント時刻」は、ＬＶがＴＶＣ４１にマウントされる前にアンマウントされた時刻を示す。言い換えると、「アンマウント時刻」は、ＬＶの使用が終了した時刻を示す。例えば、「アンマウント時刻」には、「２０１１／０４／１８  ０１:１０:２５」、「２０１１／０４／１８  ０１:１０:２６」などが格納される。
【００９３】
また、対象外期間テーブル２１１が記憶する「対象外期間」は、ＰＶ内ＬＶオフキャッシュ優先論理の対象外期間を示す。例えば、「対象外期間」には、「２０ｍｉｎ」などが格納される。なお、「対象外期間」が設定されていない場合には、「−」が格納される。
【００９４】
一例をあげると、図８は、「Ａ」で識別されるＬＶは、「２０１１年４月１８日１時１０分２５秒」にアンマウントされた後に、「２０１１年８月２２日１時１０分２５秒」にマウントされたことを示す。なお、「Ａ」で識別されるＬＶには、「対象外期間」が設定されていないことを示す。
【００９５】
同様に、図８は、「Ｃ」で識別されるＬＶは、「２０１１年８月２２日１８時２８分１９秒」にアンマウントされた後に、「２０１１年８月２２日１８時３８分１９秒」にマウントされたことを示す。また、「Ｃ」で識別されるＬＶの「対象外期間」は、「２０ｍｉｎ」であることを示す。
【００９６】
図７に戻り、制御部２２０は、ＣＰＵやＭＰＵなどの電子回路であり、キャッシュ判定部１２１と、選択部２２２と、キャッシュ制御部１２３と、設定部２２１と、マウント制御部１２４とを有する。
【００９７】
設定部２２１は、ＴＶＣ４１からのオフキャッシュを禁止する所定の対象外期間を設定する。図９を用いて、ＰＶ内ＬＶオフキャッシュ優先論理の対象外期間について説明する。図９は、ＰＶ内ＬＶオフキャッシュ優先論理の対象外期間の一例を示す図である。
【００９８】
図９に示すように、設定部２２１は、ＬＶが最後にマウントされたときのアンマウントからの時間ｔ１を記録する。そして、設定部２２１は、この時間の例えば倍の時間ｔ２をこのＬＶに対するＰＶ内ＬＶオフキャッシュ優先論理の対象外期間として対象外期間テーブル２１１の「対象外期間」に設定する。例えば、対象のＬＶが最後にマウントされたときのアンマウントからマウントまでの時間が１０分であった場合、設定部２２１は、アンマウントから２０分間をＰＶ内ＬＶオフキャッシュ優先論理の対象外期間に設定する。なお、「対象外期間」は、ｔ１の２倍に限定されるものではない。例えば、「対象外期間」は、ｔ１の３倍に設定されてもよく、また、ｔ１に所定の時間を加算した時間に設定されてもよい。
【００９９】
また、設定部２２１は、マウントからアンマウントまでの時間が一定でない場合、平均値を算出して、対象外期間を設定するようにしてもよい。また、殆ど使用されていないＬＶの場合はアンマウントからマウントまでの時間が非常に長くなる。このため、設定部２２１は、オフキャッシュ優先処理対処外時間の最大値を例えば２４ｈ（１日）などに設定してもよい。
【０１００】
選択部２２２は、実施例１に係る選択部１２２が有する機能に加えて、以下の機能を有する。すなわち、選択部２２２は、「ＰＶ内ＬＶオフキャッシュ優先論理」に基づいて選択したオフキャッシュ対象ＬＶが対象外期間内であるか否かを更に判定する。図８に示す例では、選択部２２２は、「ＰＶ内ＬＶオフキャッシュ優先論理」に基づいて選択したオフキャッシュ対象ＬＶがＬＶ（Ｃ）あった場合、ＬＶ（Ｃ）のアンマウント後、２０分を経過したか否かを判定する。
【０１０１】
ここで、選択部２２２は、オフキャッシュ対象ＬＶが対象外期間内ではない場合に、このＬＶをオフキャッシュ対象ＬＶとして選択する。一方、選択部２２２は、オフキャッシュ対象ＬＶが対象外期間内である場合に、ＴＶＣ４１に存在するＬＶの中で更新時刻が最も古いＬＶをオフキャッシュ対象ＬＶとして選択する。
【０１０２】
［実施例２に係る仮想テープ装置による処理の処理手順］
次に、図１０を用いて、実施例２に係る仮想テープ装置４０による処理の処理手順を説明する。図１０は、実施例２に係る仮想テープ装置による処理の処理手順を示すフローチャートである。なお、仮想テープ装置４０は、ホスト１またはホスト２からＬＶのマウント要求を受付けた場合に、以下の処理を実行する。なお、ここでは、図４に示した実施例１に係る仮想テープ装置による処理のうち、ステップＳ１０４からステップＳ１０６までの処理において異なる処理についてのみ説明する。
【０１０３】
選択部２２２は、物理ドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１に存在するＬＶをＰＶ内ＬＶオフキャッシュ優先論理に基づいて、オフキャッシュ対象ＬＶとして選択する（ステップＳ２０１）。ここで、選択部２２２は、オフキャッシュ対象ＬＶが複数存在する場合、オフキャッシュ対象ＬＶのうち更新時刻が最も古いＬＶをオフキャッシュ対象ＬＶとして選択する。続いて、選択部２２２は、選択したオフキャッシュ対象ＬＶが所定の対象外期間内であるか否かを判定する（ステップＳ２０２）。
【０１０４】
選択部２２２は、選択したオフキャッシュ対象ＬＶが所定の対象外期間内ではないと判定した場合（ステップＳ２０２、Ｎｏ）、このＬＶをオフキャッシュ対象ＬＶとして選択する（ステップＳ２０３）。
【０１０５】
一方、選択部２２２は、選択したオフキャッシュ対象ＬＶが所定の対象外期間内であると判定した場合（ステップＳ２０２、Ｙｅｓ）、以下の処理を実行する。すなわち、選択部２２２は、ＴＶＣ４１に存在するＬＶの中で更新時刻が最も古いＬＶをオフキャッシュ対象ＬＶとして選択する（ステップＳ２０４）。
【０１０６】
続いて、キャッシュ制御部１２３は、オフキャッシュ対象ＬＶをオフキャッシュする（ステップＳ２０５）。ステップＳ２０５の処理が終了後、仮想テープ装置は、処理を終了する。
【０１０７】
［実施例２の効果］
上述してきたように、実施例２に係る仮想テープ装置は、ＰＶ内ＬＶオフキャッシュ優先論理の対象外期間を設けることで、使用頻度の高いＬＶのリコールの多発を抑止することができる。
【０１０８】
また、実施例２に係る仮想テープ装置は、複数存在するオフキャッシュ対象ＬＶのうち、更新時刻が最も古いＬＶが対象外期間内である場合、複数存在するオフキャッシュ対象ＬＶのうち対象外期間内ではないＬＶを選択するようにしてもよい。
【実施例３】
【０１０９】
ところで、仮想テープ装置において、オフキャッシュ優先論理に基づいてＬＶのオフキャッシュ処理をした場合、現在物理テープドライブにマウントされているＰＶ内に無いＬＶで、オンキャッシュ状態のまま使用されないＬＶが発生する場合が起こりうる。
【０１１０】
また、オフキャッシュ優先処理論理によってオフキャッシュされたＬＶが、再度リコールされるケースが多い場合には、現在使用されているＰＶにデータが無いＬＶの中でオンキャッシュ状態のＬＶをオフキャッシュにしたほうが有効な場合もある。
【０１１１】
そこで、実施例３では、仮想テープ装置は、オフキャッシュ優先処理論理によってオフキャッシュされたＬＶが、再度リコールされるケースが多い場合には、オンキャッシュ状態のまま使用されなくなっているＬＶをオフキャッシュにする場合を説明する。
【０１１２】
［実施例３に係る仮想テープシステムの構成］
実施例３に係る仮想テープシステムの構成は、ＶＬＰの機能構成が一部異なる点を除いて、実施例１及び実施例２に係る仮想テープ装置の構成と同様である。このため、実施例３では、実施例１に係るＶＬＰ４６をＶＬＰ４６ｂに置き換えて説明する。
【０１１３】
［実施例３に係るＶＬＰの機能構成］
次に、図１１を用いて、実施例３に係るＶＬＰ４６ｂの機能構成を説明する。図１１は、実施例３に係るＶＬＰの機能構成の一例を示す機能ブロック図である。実施例３に係るＶＬＰ４６ｂは、記憶部３１０と制御部３２０とを有する。なお、ここでは、図２または図７に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
【０１１４】
記憶部３１０は、半導体メモリ素子などの記憶装置であり、論理ボリューム情報テーブル１１１と対象外期間テーブル２１１とオフキャッシュ優先理論テーブル３１１とを有する。
【０１１５】
図１２を用いて、実施例３に係るオフキャッシュ優先理論テーブル３１１が記憶する情報を説明する。図１２は、実施例３に係るオフキャッシュ優先理論テーブルが記憶する情報の一例を示す図である。例えば、オフキャッシュ優先理論テーブル３１１は、図１２に示すように、「要求ＩＤ」と「要求ＬＶ」と「オンキャッシュ状態のＬＶ」とを対応付けて記憶する。また、オフキャッシュ優先理論テーブル３１１は、図１２に示すように、「物理テープドライブにマウントされたＰＶ」と「物理テープドライブにマウントされたＰＶに格納されているＬＶ」と「リコール回数」とを対応付けて記憶する。
【０１１６】
ここで、オフキャッシュ優先理論テーブル３１１が記憶する「要求ＩＤ」は、ホストからＬＶのマウント要求がされた順序を示す。例えば、「要求ＩＤ」には、１番目にＬＶのマウント要求がされたことを示す「１」、２番目にＬＶのマウント要求がされたことを示す「２」などが格納される。
【０１１７】
また、オフキャッシュ優先理論テーブル３１１が記憶する「要求ＬＶ」は、ホストからオンキャッシュを要求されたＬＶの識別子を示す。例えば、「ＬＶ」には、「Ｎ１」、「Ａ１」などが格納される。
【０１１８】
また、オフキャッシュ優先理論テーブル３１１が記憶する「オンキャッシュ状態のＬＶ」は、ＴＶＣ４１上に存在するＬＶの識別子を示す。例えば、「オンキャッシュ状態のＬＶ」には、「Ｂ１」、「Ａ１」などが格納される。なお、ここでは、左から右への順に、タイムスタンプが古いものから新しいものへとＬＶの識別子が格納されるものとする。
【０１１９】
また、オフキャッシュ優先理論テーブル３１１が記憶する「物理テープドライブにマウントされたＰＶ」は、物理テープドライブにマウントされているＰＶの識別子を示す。例えば、「物理テープドライブにマウントされたＰＶ」には、「ＰＶ（Ａ）」などが格納される。
【０１２０】
また、オフキャッシュ優先理論テーブル３１１が記憶する「物理テープドライブにマウントされたＰＶに格納されているＬＶ」は、物理テープドライブにマウントされているＰＶに格納されるＬＶの識別子を示す。例えば、「物理テープドライブにマウントされたＰＶに格納されているＬＶ」には、「Ａ１」、「Ａ２」などが格納される。
【０１２１】
また、オフキャッシュ優先理論テーブル３１１が記憶する「リコール回数」は、ＰＶ内ＬＶオフキャッシュ優先論理に基づいて選択されたオフキャッシュ対象ＬＶが、オフキャッシュされた後に、リコールされた回数を示す。例えば、「リコール回数」には、「１」、「２」などが格納される。例えば、図１２に示す要求ＩＤが「３」で、ＬＶ「Ａ１」が要求される。この「Ａ１」は、要求ＩＤが「１」でオフキャッシュされたものである。すなわち、要求ＩＤが「３」に対応するリコール回数に「１」が格納される。
【０１２２】
一例をあげると、図１２は、１番目にオンキャッシュ要求されたＬＶは、Ｎ１で識別されるＬＶであり、ＴＶＣ４１には、「Ｂ１、Ｂ２、Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６」で識別されるＬＶが存在することを示す。また、図１２は、ＰＶ（Ａ）がマウントされており、このＰＶ（Ａ）には、「Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６」で識別されるＬＶが格納されることを示す。
【０１２３】
また、図１２は、２番目にオンキャッシュ要求されたＬＶは、Ｎ２で識別されるＬＶであり、ＴＶＣ４１には、「Ｂ１、Ｂ２、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ｎ１」で識別されるＬＶが存在することを示す。また、図１２は、ＰＶ（Ａ）がマウントされており、このＰＶ（Ａ）には、「Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ｎ１」で識別されるＬＶが格納されることを示す。さらに、図１２は、１番目にオンキャッシュ要求されたＮ１で識別されるＬＶをオンキャッシュする際に、ＴＶＣ４１からＡ１で識別されるＬＶがオフキャッシュされたことを示す。
【０１２４】
図１１に戻り、制御部３２０は、例えば、ＣＰＵやＭＰＵなどの電子回路であり、キャッシュ判定部２１と、読出判定部３２１と、選択部３２２と、キャッシュ制御部１２３と、設定部２２１と、マウント制御部１２４とを有する。
【０１２５】
読出判定部３２１は、ＰＶが物理ドライブからアンマウントされることなく、かつ、ＰＶからＬＶが所定の回数ＴＶＣ４１に読出されたか否かを判定する。例えば、読出判定部３２１は、オフキャッシュ優先理論テーブル３１１を参照して、「ＰＶ内ＬＶオフキャッシュ優先論理」に基づいて選択したオフキャッシュ対象ＬＶが、オフキャッシュされた後に、所定の回数を超えてリコールされたか否かを判定する。
【０１２６】
図１２に示す例において、所定の回数が３回に設定されているものとして説明する。読出判定部３２１は、要求ＩＤが「５」である場合、リコール回数が３回であるので、所定の回数を超えてリコールされていないと判定する。また、読出判定部３２１は、要求ＩＤが「６」である場合、リコール回数が４回であるので、所定の回数を超えてリコールされたと判定する。そして、読出判定部３２１は、判定結果を選択部３２２に出力する。
【０１２７】
選択部３２２は、実施例２に係る選択部２２２が有する機能に加えて、以下の機能を有する。例えば、選択部３２２は、読出判定部３２１によりＰＶが物理ドライブからアンマウントされることなく、かつ、ＰＶからＬＶが所定の回数ＴＶＣ４１に読出されたと判定された場合、以下の処理を実行する。すなわち、選択部３２２は、ＴＶＣ４１に存在するＬＶの中で更新時刻が最も古いＬＶをオフキャッシュ対象ＬＶとして選択する。図１２に示す例において、要求ＩＤが「６」である場合、選択部３２２は、例えば、「オンキャッシュ状態のＬＶ」のうち、タイムスタンプが最も古い「Ｂ１」をオフキャッシュ対象ＬＶとして選択する。
【０１２８】
なお、選択部３２２は、読出判定部３２１によりＰＶが物理ドライブからアンマウントされることなく、かつ、ＰＶからＬＶが所定の回数ＴＶＣ４１に読出されていないと判定された場合、以下の処理を実行する。選択部３２２は、オフキャッシュ対象ＬＶとして選択したＬＶが所定の禁止期間内であるか否かを判定する。
【０１２９】
［実施例３に係る仮想テープ装置による処理の処理手順］
次に、図１３を用いて、実施例３に係る仮想テープ装置４０による処理の処理手順を説明する。図１３は、実施例３に係る仮想テープ装置による処理の処理手順を示すフローチャートである。なお、仮想テープ装置４０は、ホスト１またはホスト２からＬＶのマウント要求を受付けた場合に、以下の処理を実行する。なお、ここでは、図１０に示した実施例２に係る仮想テープ装置による処理のうち、ステップＳ２０１からステップＳ２０４までの処理において異なる処理についてのみ説明する。
【０１３０】
選択部３２２は、物理ドライブにマウントされているＰＶ内に更新済みであり、かつ、ＴＶＣ４１に存在するＬＶをＴＶＣ４１からオフキャッシュするオフキャッシュ対象ＬＶとして選択する（ステップＳ３０１）。
【０１３１】
続いて、読出判定部３２１は、ＰＶ内ＬＶオフキャッシュ優先論理に基づいて、同一のＰＶからＮ回連続でリコールが動作したか否かを判定する（ステップＳ３０２）。ここで、選択部３２２は、読出判定部３２１によりＰＶ内ＬＶオフキャッシュ優先論理に基づいて、同一のＰＶからＮ回連続でリコールが動作したと判定された場合（ステップＳ３０２、Ｙｅｓ）、ステップＳ３０５に移行する。
【０１３２】
読出判定部３２１によりＰＶ内ＬＶオフキャッシュ優先論理に基づいて、同一のＰＶからＮ回連続でリコールが動作していないと判定された場合（ステップＳ３０２、Ｎｏ）、選択部３２２は、以下の処理を実行する。すなわち、選択部３２２は、選択したオフキャッシュ対象ＬＶが所定の禁止期間内であるか否かを判定する（ステップＳ３０３）。
【０１３３】
選択部３２２は、選択したオフキャッシュ対象ＬＶが所定の禁止期間内ではないと判定した場合（ステップＳ３０３、Ｎｏ）、オフキャッシュ対象ＬＶとして選択する（ステップＳ３０４）。
【０１３４】
一方、選択部３２２は、選択したオフキャッシュ対象ＬＶが所定の禁止期間内であると判定した場合（ステップＳ３０３、Ｙｅｓ）、ステップＳ３０５に移行する。すなわち、選択部３２２は、ＴＶＣ４１に存在するＬＶの中で更新時刻が最も古いＬＶをオフキャッシュ対象ＬＶとして選択する（ステップＳ３０５）。
【０１３５】
続いて、キャッシュ制御部１２３は、オフキャッシュ対象ＬＶをオフキャッシュする（ステップＳ３０６）。ステップＳ３０６の処理が終了後、仮想テープ装置は、処理を終了する。
【０１３６】
［実施例３の効果］
上述してきたように、実施例３に係る仮想テープ装置は、ディスクキャッシュをより有効に使用することができる。
【実施例４】
【０１３７】
ところで、仮想テープ装置において、ＰＶがフル状態になったことでＰＶが切り替わる場合がある。このような場合、仮想テープ装置における「ＰＶ内ＬＶオフキャッシュ優先論理」に基づいたリコール性能の優位性は失われてしまう。すなわち、仮想テープ装置は、リコール処理に時間が掛かる状態になってしまう。
【０１３８】
このようなことから、仮想テープ装置は、ＰＶがフル状態になる前に、マウント中のＰＶに格納されるＬＶのうち使用予定のＬＶについては、予めＴＶＣ４１にキャッシュしておいてもよいものである。そこで、実施例４では、仮想テープ装置が、ＰＶがフル状態になる前に、使用予定のＬＶをホストに要求し、使用予定のＬＶをＴＶＣ４１にキャッシュする場合について説明する。
【０１３９】
［実施例４に係る仮想テープシステムの構成］
実施例４に係る仮想テープシステムの構成は、ＶＬＰの機能構成が一部異なる点を除いて、実施例１に係る仮想テープ装置の構成と同様である。このため、実施例４では、実施例１に係るＶＬＰ４６をＶＬＰ４６ｃに置き換えて説明する。
【０１４０】
［実施例４に係るＶＬＰの機能構成］
次に、図１４を用いて、実施例４に係るＶＬＰの機能構成を説明する。図１４は、実施例４に係るＶＬＰの機能構成の一例を示す機能ブロック図である。実施例４に係るＶＬＰ４６ｃは、記憶部４１０と制御部４２０とを有する。なお、ここでは、図２に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
【０１４１】
記憶部４１０は、半導体メモリ素子などの記憶装置であり、論理ボリューム情報テーブル１１１と閾値テーブル４１１とを有する。
【０１４２】
閾値テーブル４１１は、物理ドライブにマウントされているＰＶがフル状態に近づいていると判定するＰＶの使用量を記憶する。言い換えると、閾値テーブル４１１は、ＰＶの空き容量が所定の閾値を下回ったことを示す値を記憶する。例えば、閾値テーブル４１１には、「８０％」が記憶される。なお、この値は一例であり、変更可能である。
【０１４３】
図１４に戻り、制御部４２０は、例えば、ＣＰＵやＭＰＵなどの電子回路であり、キャッシュ判定部１２１と、選択部１２２と、マウント制御部１２４と、閾値判定部４２１と、要求部４２２と、受信部４２３と、キャッシュ制御部４２４とを有する。
【０１４４】
閾値判定部４２１は、物理ドライブにマウントされているＰＶの空き容量が所定の閾値を下回ったか否かを判定する。例えば、閾値判定部４２１は、現在の物理ドライブにマウントされているＰＶの使用量を読出して、読出したＰＶの使用量が閾値テーブル４１１に記憶される閾値を超えたか否かを判定する。
【０１４５】
例えば、閾値判定部４２１は、読出したＰＶの使用量が閾値テーブル４１１に記憶される閾値を超えていた場合、ＰＶの空き容量が所定の閾値を下回ったと判定する。そして、閾値判定部４２１は、ＰＶの空き容量が所定の閾値を下回った旨を要求部４２２に通知する。
【０１４６】
要求部４２２は、閾値判定部４２１により、ＰＶの空き容量が所定の閾値を下回ったと判定された場合、ホスト１またはホスト２に対して、ＰＶが格納するＬＶのうちＴＶＣ４１にオンキャッシュにさせるＬＶを示すオンキャッシュ情報を自装置に送信する旨を要求する。なお、オンキャッシュ情報には、オンキャッシュさせるＬＶの識別子が含まれる。
【０１４７】
また、要求部４２２は、更に、物理ドライブにマウントされているＰＶがアンマウントされた場合、ホスト１またはホスト２に対してオンキャッシュ情報を自装置に送信する旨を要求する。例えば、要求部４２２は、アンマウントされたＰＶに格納されたＬＶのうち、ＰＶ内ＬＶオフキャッシュ優先論理に基づいて、オフキャッシュにしたＬＶが存在する場合、ホスト１またはホスト２に対してオンキャッシュ情報を自装置に送信する旨を要求する。
【０１４８】
受信部４２３は、ホスト１またはホスト２からオンキャッシュ情報を受信する。受信部４２３は、受信したオンキャッシュ情報をキャッシュ制御部４２４に出力する。
【０１４９】
キャッシュ制御部４２４は、実施例１に係るキャッシュ制御部１２３が有する機能に加えて、以下の機能を有する。すなわち、キャッシュ制御部１２３は、ＰＶが格納するＬＶうち、オンキャッシュ情報に指定されたＬＶをオンキャッシュにする。
【０１５０】
［実施例４に係る仮想テープ装置による処理動作］
次に、図１５Ａから図１５Ｄ及び図１６を用いて、実施例４に係る仮想テープ装置４０による処理動作を説明する。図１５Ａから図１５Ｄは、実施例４に係る仮想テープ装置によるＰＶの空き容量が所定の閾値を下回った場合の処理動作を示す図ある。また、図１６は、実施例４に係る仮想テープ装置によるＰＶがアンマウントされた場合の処理動作を示す図である。
【０１５１】
（ＰＶの空き容量が所定の閾値を下回った場合の処理動作）
図１５Ａから図１５Ｄでは、仮想テープシステム１０が、ホスト１からＬＶのマウント要求を受付ける場合を例に説明する。図１５Ａに示すように、仮想テープシステム１０では、閾値判定部４２１は、マウント状態のＰＶの閾値を下回ったと判定する（ステップＳ４０１）。そして、要求部４２２は、ＰＶの閾値が超えた旨をホスト１に通知し、ＴＶＣ４１にオンキャッシュにさせるＬＶを示すオンキャッシュ情報を自装置に送信する旨を要求する（ステップＳ４０２）。
【０１５２】
続いて、図１５Ｂに示すように、ホスト１は、仮想テープ装置４０の状態を取得する（ステップＳ４０３）。例えば、ホスト１は、仮想テープ装置４０に対し、現在のオンキャッシュ状態のＬＶの情報やＰＶに対する書き込み状況を取得するためのコマンドを発行し、仮想テープ装置の状態を把握する。すなわち、ホスト１は、ＴＶＣ４１にオンキャッシュであるＬＶの識別子を取得する。続いて、ホスト１は、オンキャッシュで使用予定のＬＶのリストと取得したＴＶＣ４１にオンキャッシュであるＬＶとを比較する（ステップＳ４０４）。
【０１５３】
そして、図１５Ｃに示すように、ホスト１は、オンキャッシュで使用予定のＬＶのリストのうち、ＴＶＣ４１にオンキャッシュではないＬＶを示すオンキャッシュ情報を仮想テープ装置４０に通知する（ステップＳ４０５）。そして、仮想テープ装置４０では、受信部４２３がオンキャッシュ情報を受信する。続いて、キャッシュ制御部４２４は、ＰＶが格納するＬＶのうち、オンキャッシュ情報に指定されたＬＶをオンキャッシュにする（ステップＳ４０６）。
【０１５４】
その後、図１５Ｄに示すように、仮想テープシステム１０では、ＰＶが入れ替えられる（ステップＳ４０７）。そして、ホスト１は、オンキャッシュ状態である使用予定のＬＶにアクセスする（ステップＳ４０８）。このように、ホスト１は、ＰＶが入れ替えられた場合でも、使用予定のＬＶがオンキャッシュ状態であるので、アクセスを継続できる。
【０１５５】
なお、ホスト１は、オンキャッシュで使用予定のＬＶのリストをオンキャッシュ情報として仮想テープ装置に送信するようにしてもよい。この場合、仮想テープ装置は、オンキャッシュ情報に指定されたＬＶがオンキャッシュであるか否かを判定し、オンキャッシュではないＬＶをリコールする。
【０１５６】
（ＰＶがアンマウントされた場合の処理動作）
図１６に示すように、仮想テープシステム１０では、マウント制御部１２４が、ＬＶ（Ａ）、ＬＶ（Ｂ）、ＬＶ（Ｃ）の格納されるＰＶ（Ａ）をアンマウントする（ステップＳ４１１）。続いて、仮想テープシステム１０では、マウント制御部１２４が、ＰＶ（Ｂ）をマウントする（ステップＳ４１２）。
【０１５７】
また、仮想テープシステム１０は、要求部４２２は、ＬＶ（Ａ）、ＬＶ（Ｂ）、ＬＶ（Ｃ）がＴＶＣ４１からオフキャッシュされていると判定する（ステップＳ４１３）。そして、要求部４２２は、ホストに対してオンキャッシュ情報を自装置に送信する旨を要求する（ステップＳ４１４）。
【０１５８】
［実施例４に係る仮想テープ装置による処理の処理手順］
次に、図１７から図１８を用いて、実施例４に係る仮想テープ装置４０による処理の処理手順を説明する。図１７は、実施例４に係る仮想テープ装置によるＰＶの空き容量が所定の閾値を下回った場合の処理の処理手順を示すフローチャートである。図１８は、実施例４に係る仮想テープ装置によるＰＶがアンマウントされた場合の処理の処理手順の別例を示すフローチャートである。
【０１５９】
（ＰＶの空き容量が所定の閾値を下回った場合の処理手順）
仮想テープ装置４０は、ホスト１またはホスト２からマイグレーション要求を受付けた場合に、以下の処理を実行する。なお、ここでは、仮想テープ装置がオンキャッシュ情報に指定されたＬＶがオンキャッシュであるか否かを判定し、オンキャッシュではないＬＶをリコールする場合を例に説明する。また、マイグレーション要求とは、ＬＶをＰＶへ書込む要求のことである。
【０１６０】
マウント制御部１２４は、ＴＶＣ４１上で更新されたＬＶをＰＶに書込む（ステップＳ４２１）。そして、閾値判定部４２１は、物理ドライブにマウントされている物理ボリュームの空き容量が所定の閾値を下回ったか否かを判定する（ステップＳ４２２）。ここで、閾値判定部４２１は、物理ドライブにマウントされている物理ボリュームの空き容量が所定の閾値を下回っていないと判定した場合（ステップＳ４２２、Ｎｏ）、処理を終了する。
【０１６１】
ここで、閾値判定部４２１により物理ドライブにマウントされているＰＶの空き容量が所定の閾値を下回ったと判定された場合（ステップＳ４２２、Ｙｅｓ）、要求部４２２は、以下の処理を実行する。すなわち、要求部４２２は、ホストに対して、ＰＶが格納するＬＶのうち、ＴＶＣ４１にオンキャッシュにさせるＬＶを示すオンキャッシュ情報を自装置に送信する旨を要求する（ステップＳ４２３）。
【０１６２】
続いて、受信部４２３は、ホストからオンキャッシュ情報を受信する（ステップＳ４２４）。そして、キャッシュ制御部４２４は、オンキャッシュ情報に指定されたＬＶがオンキャッシュであるか否かを判定する（ステップＳ４２５）。ここで、キャッシュ制御部４２４は、オンキャッシュ情報に指定されたＬＶがオンキャッシュであると判定した場合（ステップＳ４２５、Ｙｅｓ）、ステップＳ４２７に移行にする。
【０１６３】
一方、キャッシュ制御部４２４は、オンキャッシュ情報に指定されたＬＶがオンキャッシュでないと判定した場合（ステップＳ４２５、Ｎｏ）、指定されたＬＶをオンキャッシュにする（ステップＳ４２６）。続いて、マウント制御部１２４は、ＰＶを切り替える（ステップＳ４２７）。ステップＳ４２７の処理が終了後、仮想テープ装置は、処理を終了する。
【０１６４】
（ＰＶがアンマウントされた場合の処理手順）
仮想テープ装置４０は、ホスト１またはホスト２からＰＶのアンマウント要求を受付けた場合に、以下の処理を実行する。図１８に示すように、マウント制御部１２４は、ＰＶを切り替える（ステップＳ５０１）。
【０１６５】
そして、要求部４２２は、アンマウントされたＰＶに格納されたＬＶのうち、ＰＶ内ＬＶオフキャッシュ優先論理に基づいて、オフキャッシュにしたＬＶが存在するか否かを判定する（ステップＳ５０２）。ここで、要求部４２２は、アンマウントされたＰＶに格納されたＬＶのうち、ＰＶ内ＬＶオフキャッシュ優先論理に基づいて、オフキャッシュにしたＬＶが存在しないと判定した場合（ステップＳ５０２、Ｎｏ）、ステップＳ５０７に移行する。
【０１６６】
要求部４２２は、アンマウントされたＰＶに格納されたＬＶのうち、ＰＶ内ＬＶオフキャッシュ優先論理に基づいて、オフキャッシュにしたＬＶが存在すると判定した場合（ステップＳ５０２、Ｙｅｓ）、以下の処理を実行する。すなわち、要求部４２２は、ホストに対してオンキャッシュ情報を自装置に送信する旨を要求する（ステップＳ５０３）。
【０１６７】
続いて、受信部４２３は、ホストからオンキャッシュ情報を受信する。そして、キャッシュ制御部４２４は、オンキャッシュ情報に指定されたＬＶをリコールしてオンキャッシュにする（ステップＳ５０４）。このステップＳ５０４の処理の後、マウント制御部１２４は、物理ドライブ内のＰＶを元のＰＶに入れ替える（ステップＳ５０５）。
【０１６８】
そして、仮想テープ装置は、ステップＳ５０６において、切り替えられる前のＰＶで処理を継続して実行する（ステップＳ５０６）。また、仮想テープ装置は、ステップＳ５０７において、切り替えられた後のＰＶで処理を継続して実行する（ステップＳ５０７）。なお、ステップＳ５０６、ステップＳ５０７の処理の終了後、仮想テープ装置は、処理を終了する。
【０１６９】
［実施例４の効果］
上述してきたように、実施例４に係る仮想テープ装置は、現在物理テープドライブにマウントされているＰＶがＬＶの更新データによってフル状態になり、ＰＶの切り替えが発生する場合、この切り替えを閾値テーブル４１１に基づいて予め予測する。そして、仮想テープ装置は、ＰＶがフル状態となる手前で、ホストに対してオンキャッシュ情報を自装置に送信する旨を要求する。続いて、仮想テープ装置は、オンキャッシュ情報に指定されたＬＶをオンキャッシュにする。このため、ＰＶ切り替え時にはオンキャッシュ状態が維持される。
【０１７０】
例えば、実施例４に係る仮想テープ装置は、ＰＶ切り替え時にホストに割り込むことによって、重要度が高いＬＶをそのＬＶの最終更新データを持つＰＶがマウントされている間にリコール処理を行わせる。この結果、実施例４に係る仮想テープ装置は、ＰＶ切り替え前と同じようにリコールに対して優位な状態で処理が継続することができる。
【０１７１】
また、実施例４に係る仮想テープ装置は、割り込みをＰＶ切り替え後に発行することで、ホスト側が要求するＬＶがオンキャッシュ状態に無ければ、再度対象のＬＶをオンキャッシュ状態にするためにマウント指示またはプリロードが行われる。このため、一旦アンマウント状態となったＰＶが再び物理テープドライブにマウントされ、ＰＶ切り替え前と同じようにリコールに対して優位な状態で処理が継続することができる。
【０１７２】
また、ホスト１またはホスト２は、プリロード機能により対象のＬＶをオンキャッシュ状態に移行させ、一部のデータを更新させて対象のＬＶのタイムスタンプを更新させるようにしてもよい。なお、この処理によりＰＶに対象ＬＶの最終更新データが最新のタイムスタンプで書き込まれるが、無駄な書き込みを行いたくない場合は、タイムスタンプのみを更新させオフキャッシュの優先度のみを落とすコマンドを追加してもよい。このような処理により、オンキャッシュ状態になったＬＶは、タイムスタンプが最新となる。このため、ＰＶ切り替え時にはオンキャッシュ状態が維持される。そして、次に対象のＬＶが更新されると、新たにマウント状態となったＰＶに最終更新データが書き込まれる。このため、以降はそのＰＶ内のＬＶとして処理を継続できる。
【実施例５】
【０１７３】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例５では、本発明に含まれる他の実施例について説明する。
【０１７４】
（システム構成等）
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
【０１７５】
また、図示した記憶部が格納する情報は一例に過ぎず、必ずしも図示のごとく情報が格納される必要はない。また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、ＶＬＰ４６では、選択部１２２とキャッシュ制御部１２３とが統合されてもよい。
【０１７６】
さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【符号の説明】
【０１７７】
１、２  ホスト
１０  仮想テープシステム
２０、３０  物理テープライブラリ装置
２１、３１  物理テープ格納用スロット
２２、２３、３２、３３  物理テープドライブ
２４、３４  物理テープ移動用ロボット
４０  仮想テープ装置
４１  ＴＶＣ
４２、４３  ＩＣＰ
４４、４５  ＩＤＰ
４６  ＶＬＰ
１１０  記憶部
１１１  論理ボリューム情報テーブル
１２０  制御部
１２１  キャッシュ判定部
１２２  選択部
１２３  キャッシュ制御部
１２４  マウント制御部
【図１】
0005910128.tif 000002
【図２】
0005910128.tif 000003
【図３】
0005910128.tif 000004
【図４】
0005910128.tif 000005
【図５】
0005910128.tif 000006
【図６Ａ】
0005910128.tif 000007
【図６Ｂ】
0005910128.tif 000008
【図７】
0005910128.tif 000009
【図８】
0005910128.tif 000010
【図９】
0005910128.tif 000011
【図１０】
0005910128.tif 000012
【図１１】
0005910128.tif 000013
【図１２】
0005910128.tif 000014
【図１３】
0005910128.tif 000015
【図１４】
0005910128.tif 000016
【図１５Ａ】
0005910128.tif 000017
【図１５Ｂ】
0005910128.tif 000018
【図１５Ｃ】
0005910128.tif 000019
【図１５Ｄ】
0005910128.tif 000020
【図１６】
0005910128.tif 000021
【図１７】
0005910128.tif 000022
【図１８】
0005910128.tif 000023