(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-29
(45)【発行日】2023-06-06
(54)【発明の名称】仮想テープ装置,キャッシュ制御装置およびキャッシュ制御プログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20230530BHJP
G06F 12/0866 20160101ALI20230530BHJP
G06F 12/123 20160101ALI20230530BHJP
【FI】
G06F3/06 302A
G06F3/06 301Z
G06F3/06 303Z
G06F12/0866
G06F12/123
(21)【出願番号】P 2019103531
(22)【出願日】2019-06-03
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100092978
【氏名又は名称】真田 有
(72)【発明者】
【氏名】西 英俊
(72)【発明者】
【氏名】平島 伸幸
(72)【発明者】
【氏名】栗原 拓弥
(72)【発明者】
【氏名】榎原 勝男
(72)【発明者】
【氏名】塚田 茂
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2013-161256(JP,A)
【文献】米国特許出願公開第2009/0248974(US,A1)
【文献】国際公開第2010/035617(WO,A1)
【文献】国際公開第2013/046342(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
G06F 12/0866
G06F 12/123
(57)【特許請求の範囲】
【請求項1】
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを管理する仮想テープ装置であって、
前記複数の論理ボリュームを格納するキャッシュメモリと、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、
前記物理ボリュームに最新の内容が反映されていない論理ボリュームを、当該論理ボリュームの格納先として設定されている前記物理ボリュームに書き込み、その後、前記キャッシュメモリから当該論理ボリュームを削除する一方で、前記物理ボリュームに最新の内容が反映されている論理ボリュームを、当該物理ボリュームに書き込むことなく、前記キャッシュメモリから削除する、キャッシュアウトを行なうために、前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、
前記選択部が、
追い出し順位付けされた前記論理ボリュームのうち
、前記物理ドライブにマウントされた
時刻が最も遅い物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、仮想テープ装置。
【請求項2】
前記選択部が、
前記物理ドライブに
最も遅くマウントされた物理ボリュームに格納される論理ボリュームが無い場合には、前記追い出し順位に従って前記キャッシュアウト対象論理ボリュームを選択する
ことを特徴とする、請求項1記載の仮想テープ装置。
【請求項3】
前記選択部が、
前記物理ドライブにマウントされた前記物理ボリュームに格納される前記論理ボリュームが複数ある場合に、前記物理ボリューム上における格納位置と、前記物理ドライブの物理ヘッドの位置との距離が短い論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、請求項1記載の仮想テープ装置。
【請求項4】
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを格納するキャッシュメモリを制御するキャッシュ制御装置であって、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、
前記物理ボリュームに最新の内容が反映されていない論理ボリュームを、当該論理ボリュームの格納先として設定されている前記物理ボリュームに書き込み、その後、前記キャッシュメモリから当該論理ボリュームを削除する一方で、前記物理ボリュームに最新の内容が反映されている論理ボリュームを、当該物理ボリュームに書き込むことなく、前記キャッシュメモリから削除する、キャッシュアウトを行なうために、前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、
前記選択部が、
追い出し順位付けされた前記論理ボリュームのうち
、前記物理ドライブにマウントされた
時刻が最も遅い物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、キャッシュ制御装置。
【請求項5】
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを格納するキャッシュメモリを制御するキャッシュ制御装置のプロセッサに、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理し、
前記物理ボリュームに最新の内容が反映されていない論理ボリュームを、当該論理ボリュームの格納先として設定されている前記物理ボリュームに書き込み、その後、前記キャッシュメモリから当該論理ボリュームを削除する一方で、前記物理ボリュームに最新の内容が反映されている論理ボリュームを、当該物理ボリュームに書き込むことなく、前記キャッシュメモリから削除する、キャッシュアウトを行なうために、前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択し、
追い出し順位付けされた前記論理ボリュームのうち
、前記物理ドライブにマウントされた
時刻が最も遅い物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
処理を実行させる、キャッシュ制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想テープ装置,キャッシュ制御装置およびキャッシュ制御プログラムに関する。
【背景技術】
【0002】
仮想テープ装置は、テープドライブ装置及びカートリッジテープを仮想化するシステムである。仮想テープ装置は、仮想テープ装置に接続されたホストコンピュータのOS(Operating System)からテープ装置として認識される。ホストコンピュータにおいては、この仮想化したテープ(仮想テープ)を通常のテープ装置と同様に使用することができ、これにより、ホストコンピュータは、仮想テープ装置を、あたかもそこに実テープがマウントされているように使用することができる。
【0003】
仮想テープ装置は、バックエンドライブラリを接続する。バックエンドライブラリには、テープドライブ装置(物理ドライブ)と、複数のテープ(物理ボリューム)と、テープドライブ装置にテープを搬送する搬送機構とが備えられる。
【0004】
また、仮想テープ装置は、テープボリュームキャッシュを備え、このテープボリュームキャッシュにテープ(物理ボリューム)を仮想化した仮想テープボリュームが格納される。
【0005】
仮想テープ装置において、データは、テープボリュームキャッシュ内の仮想テープボリュームに格納された後に、バックエンドライブラリのテープにもコピーされ、これにより、データは二重管理される。
【0006】
仮想テープ装置において、テープボリュームキャッシュがフルとなった状態において、このテープボリュームキャッシュに新規に仮想テープボリュームを追加する必要が生じる場合がある。このような場合には、テープボリュームキャッシュ内の古い仮想テープボリュームをテープボリュームキャッシュからキャッシュアウトした後に、このテープボリュームキャッシュに新規の仮想テープボリュームを格納する。
【0007】
従来の仮想テープ装置においては、テープボリュームキャッシュからキャッシュアウトする対象の仮想テープボリュームは、LRU(Least Recently Used)論理により、最も古いデータから優先して選択される。
【0008】
また、キャッシュアウトした仮想テープボリュームを再度使用したい場合には、バックエンドライブラリから仮想テープボリュームをテープボリュームキャッシュに戻すリコール処理を行なう必要がある。
【0009】
このようなリコール処理には、バックエンドライブラリにおいて、テープドライブ装置におけるテープ送りやテープ交換等の機械的動作が必要となるために、ホストコンピュータに処理開始を長時間待たせることになる。
【0010】
従来の仮想テープ装置においては、このようなリコール処理に要する時間を短縮するために、例えば、物理ドライブにマウントされている物理ボリューム(テープ)内に最終更新データが存在する仮想テープボリュームを優先してオフキャッシュの対象とする。これにより、リコール要求が発生した場合に、使用中の物理ボリュームにリコール対象の仮想テープボリュームのデータが存在する確率が高くなり、リコール時間を短縮させる。
【先行技術文献】
【特許文献】
【0011】
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、このような従来の仮想テープ装置においても、物理ドライブにマウントされている物理ボリューム内に最終更新データが存在する仮想テープボリュームを決定するために、物理ボリュームに対する検索に伴うテープ送り等の機械的動作が必要とされる。すなわち、物理ボリュームに対する検索のための機械的動作による、ホストコンピュータの待ち時間を無くすことができない。
【0013】
1つの側面では、本発明は、ホストコンピュータに対する応答時間を短縮することを目的とする。
【課題を解決するための手段】
【0014】
このため、この仮想テープ装置は、物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを管理する仮想テープ装置であって、前記複数の論理ボリュームを格納するキャッシュメモリと、複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、前記物理ボリュームに最新の内容が反映されていない論理ボリュームを、当該論理ボリュームの格納先として設定されている前記物理ボリュームに書き込み、その後、前記キャッシュメモリから当該論理ボリュームを削除する一方で、前記物理ボリュームに最新の内容が反映されている論理ボリュームを、当該物理ボリュームに書き込むことなく、前記キャッシュメモリから削除する、キャッシュアウトを行なうために、キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、選択部が、追い出し順位付けされた論理ボリュームのうち、前記物理ドライブにマウントされた時刻が最も遅い物理ボリュームに格納される論理ボリュームを、キャッシュアウト対象論理ボリュームとして優先して選択する。
【発明の効果】
【0015】
一実施形態によれば、ホストコンピュータに対する応答時間を短縮することができる。
【図面の簡単な説明】
【0016】
【
図1】実施形態の一例としての仮想テープシステムの構成を模式的に示す図である。
【
図2】実施形態の一例としての仮想テープ装置のVLPのハードウェア構成を示すブロック図である。
【
図3】実施形態の一例としての仮想テープ装置のVLPの機能構成を示す図である。
【
図4】実施形態の一例としての仮想テープ装置におけるLRU管理テーブルを例示する図である。
【
図5】実施形態の一例としての仮想テープ装置における物理ドライブ管理テーブルを例示する図である。
【
図6】実施形態の一例としての仮想テープ装置における物理ドライブ管理テーブルを例示する図である。
【
図7】実施形態の一例としての仮想テープ装置における物理ドライブ管理テーブルを例示する図である。
【
図8】物理ボリューム上の仮想ボリュームに対する物理ヘッドの位置を説明するための図である。
【
図9】物理ボリューム上の仮想ボリュームに対する物理ヘッドの位置を説明するための図である。
【
図10】実施形態の一例としての仮想テープ装置における、キャッシュアウト対象の仮想ボリュームの選択方法を説明するためのフローチャートである。
【
図11】実施形態の一例としての仮想テープ装置における、キャッシュアウト対象の仮想ボリュームの選択方法を説明するためのフローチャートである。
【
図12】実施形態の一例としての仮想テープ装置における、キャッシュアウト対象の仮想ボリュームの選択方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して本仮想テープ装置,キャッシュ制御装置およびキャッシュ制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態および各変形例を組み合わせる等)して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0018】
(A)構成
図1は実施形態の一例としての仮想テープシステムの構成を模式的に示す図である。
本仮想テープシステム1は、
図1に示すように、ホスト装置(上位装置)200,仮想テープ装置100およびバックエンドライブラリ300をそなえる。
【0019】
ホスト装置200は、仮想テープ装置100によって仮想化された仮想テープ(仮想ボリューム,論理ボリューム)210にアクセスして、バックエンドライブラリ300のカートリッジテープデータの書き込みや読み出しを行なう。
図1においては、ホスト装置200がメインフレームホストである例を示している。
【0020】
ホスト装置200は、例えば、図示しないFC(Fibre Channel)スイッチを介して、ICP(Integrated Channel Processor)150-0,150-1やテープボリュームキャッシュ160,IDP(Integrated Device Processor)170-0,170-1,バックエンドライブラリ300と通信可能に接続されている(
図1中の二重線参照)。また、ホスト装置200は、LANC(Local Area Network Controller)131を介して、VLP(Virtual Library Processor)110やPLP(Physical Library Processor)120,ICP150-0,150-1,IDP170-0,170-1,バックエンドライブラリ300と通信可能に接続されている(
図1中の一点鎖線参照)。
【0021】
ホスト装置200は、仮想ボリューム210やカートリッジテープ(物理ボリューム,物理テープ)へのI/O処理要求(読み取り要求/書き込み要求)を発行する。ホスト装置200は、例えば、仮想ボリュームへのI/O処理要求を、図示しないCPU(Central Processing Unit)によりVTCP(Virtual Tape Control Program)を実行することにより実現する。
【0022】
ホスト装置200は、例えば、図示しないストレージ装置に格納された業務等に用いられるデータを、定期もしくは不定期に仮想ボリューム210やカートリッジテープに転送してコピーすることにより、データのバックアップを行なう。
【0023】
このデータのバックアップは、例えば、データを格納する仮想ボリューム210もしくはカートリッジテープを指定することにより行なわれる。
【0024】
バックエンドライブラリ300は、カートリッジテープ(メディア,物理ボリューム)に対するデータの書き込みや読み取りを行なう。バックエンドライブラリ300は、1つ以上のテープドライブ(物理ドライブ)をそなえる他、複数のカートリッジテープを格納する格納棚やカートリッジテープを搬送する搬送機構(ロボット;図示省略)をそなえる。搬送機構は、搬送棚に格納された複数の物理ボリュームのうち任意の物理ボリュームを物理ドライブに搬送する。なお、カートリッジテープや収納棚及び搬送機構の図示は省略する。又、バックエンドライブラリ300の構成は既知の種々の手法を用いて実現することができ、便宜上、その説明は省略する。
【0025】
そして、バックエンドライブラリ300においては、搬送機構により物理ボリュームが物理ドライブへ出し入れされ、この物理ドライブにロード(マウント)された物理ボリュームに対してデータのライト/リードが行なわれる。
【0026】
仮想テープ装置100は、テープI/O(Input/Output)をエミュレーションする。
仮想テープ装置100は、ホスト装置200とバックエンドライブラリ300との間に介在し、これらのホスト装置200とバックエンドライブラリ300との間で送受信されるデータを仮想的なテープボリュームとして記憶する。以下、この仮想的なテープボリュームを仮想ボリュームといい、符号210を付して図示する。
【0027】
仮想テープ装置100は、ホスト装置200から仮想ボリューム210に対するアクセスに基づき、ディスクに高速アクセスを行なう。
【0028】
テープボリュームキャッシュ160の仮想ボリューム210のデータは、バックエンドライブラリ300のカートリッジテープ(物理ボリューム)にまとめ書きされる。
【0029】
仮想テープ装置100は、
図1に示すように、VLP110,PLP120,ICP150-0,150-1,テープボリュームキャッシュ160,IDP170-0,170-1およびLANC131を備える。
【0030】
VLP110およびPLP120はLANC131を介して相互に通信可能に接続されている。これらのVLP110およびPLP120には、ICP150-0,150-1,テープボリュームキャッシュ160およびIDP170-0,170-1の少なくとも一部が通信可能に接続されてもよい。
【0031】
LANC131には、ホスト装置200及びバックエンドライブラリ300も接続されている。
【0032】
また、ICP150-0,150-1,IDP170-0,170-1,VLP110,テープボリュームキャッシュ160は図示しないFCスイッチを介して相互に通信可能に接続されている。更に、FCスイッチには、ホスト装置200,及びバックエンドライブラリ300も接続されている。これにより、例えば、ICP150-0,150-1とテープボリュームキャッシュ160との間やテープボリュームキャッシュ160とIDP170-0,170-1との間,IDP170-0,170-1とバックエンドライブラリ300に格納された各テープドライブとの間等でデータの送受信を行なうことができる。
【0033】
そして、仮想テープ装置100においては、ICP150-0,150-1,IDP170-0,170-1,VLP110の各サーバ上で複数のプロセスがパイプあるいはソケットを用いて通信を行ない、仮想テープシステムを実現している。
【0034】
また、これらのICP150-0,150-1,テープボリュームキャッシュ160,IDP170-0,170-1,VLP110,PLP120,LANC131およびバックエンドライブラリ300は、同一のラック(図示省略)内にそなえて構成することができる。
【0035】
FCスイッチは、ICP150-0~150-1,IDP170-0,170-1,VLP110およびテープボリュームキャッシュ160が接続される光ファイバチャネル通信経路上において、データ等の中継や経路の切り替えを行なう。この光ファイバチャネル通信経路においては、例えば、仮想テープ装置100で処理する論理ボリュームのデータが伝送される。
【0036】
LANC131は、ICP150-0,150-1,IDP170-0,170-1,VLP110,PLP120およびFCスイッチが接続されるLAN経路上において、データの中継や経路の切り替えを行なう。このLAN経路においては、例えば、ICP150-0,150-1及びIDP170-0,170-1の各処理ユニットの動作状態参照および動作指示に関する通信が行なわれる。LANC131は、その通信を全処理ユニットに分配接続する。
【0037】
テープボリュームキャッシュ160は、カートリッジテープの仮想的な情報である仮想テープボリューム(仮想ボリューム,論理ボリューム)が格納される記憶媒体(キャッシュメモリ)であり、ICP150-0,150-1やIDP170-0,170-1に対して仮想的なストレージを提供する。このテープボリュームキャッシュ160は、後述するICP150-0,150-1によって受信されたデータや、バックエンドライブラリ300のカートリッジテープから読み取られたデータを記憶する仮想記憶部として機能する。このテープボリュームキャッシュ160には、論理ボリュームである仮想ボリューム(仮想テープボリューム)210が格納される。なお、仮想ボリュームは、ホスト装置200からデータをアクセスするときの論理的なアクセス単位のデータを示す。テープボリュームキャッシュ160は、例えば、RAID(Redundant Arrays of Inexpensive Disks)装置として構成されている。
【0038】
テープボリュームキャッシュ160に格納される仮想ボリューム210の実データは、後述するバックエンドライブラリ300のカートリッジテープ(物理ボリューム)に格納される。以下、バックエンドライブラリ300のカートリッジテープに格納される仮想ボリューム210の実データを、物理ボリューム上の仮想ボリュームもしくは単に、仮想ボリュームという場合がある。
【0039】
IDP170-0,170-1は、バックエンドライブラリ300のテープドライブとの接続をつかさどるサーバコンピュータ(処理ユニット)である。本仮想テープシステム1においては、仮想テープ装置100に1つ以上(
図1に示す例では2つ)のIDP170-0,170-1がそなえられ、それぞれバックエンドライブラリ300の物理ドライブを制御する。これらのIDP170-0,170-1は同様の構成をそなえる。
【0040】
なお、以下、IDPを示す符号としては、複数のIDPのうち1つを特定する必要があるときには符号170-0,170-1を用いるが、任意のIDPを指すときには符号170を用いる。
【0041】
IDP170は、VLP110からの指示を受けて、テープボリュームキャッシュ160上の論理ボリュームのデータをバックエンドライブラリ300の物理ドライブを用いて物理ボリュームに書き込む。同様に、IDP170は、VLP110からの指示を受けて、バックエンドライブラリ300の物理ドライブを用いて物理ボリュームから論理ボリュームのデータを読み出して、テープボリュームキャッシュ160に格納する。
【0042】
IDP170は、ホスト装置200からのデータアクセス要求に応じて、バックエンドライブラリ300の物理ボリュームからデータを読み出したり、又、データの書き込みを行なう。
【0043】
IDP170は、PDS(Physical Driver Server)としての機能をそなえる。PDSは、バックエンドライブラリ300のテープドライブに挿入されたカートリッジテープとのデータのやり取りをするプロセスであって、例えば、物理ボリュームからデータを読み取り、その読み取ったデータをテープボリュームキャッシュ160の所定の領域に書き込む。これにより、IDP170はバックエンドライブラリ300の物理ドライブを制御する物理ドライブ制御部としての機能を実現する。
【0044】
ICP150-0,150-1は、ホスト装置200のドライブパスとの接続をつかさどるサーバコンピュータ(処理ユニット)である。本仮想テープシステム1においては、仮想テープ装置100に1つ以上(
図1に示す例では2つ)のICP150-0,150-1がそなえられ、ホスト装置200からのデータを受信する受信手段として機能する。これらのICP150-0,150-1は同様の構成をそなえる。なお、以下、ICPを示す符号としては、複数のICPのうち1つを特定する必要があるときには符号150-0,150-1を用いるが、任意のICPを指すときには符号150を用いる。
【0045】
ICP150は、ホスト装置200とFCスイッチを介して接続され、テープボリュームキャッシュ160上の仮想テープボリュームのデータをホスト装置200との間で送受信する制御を行なう。ICP150は、仮想ドライブ(論理ドライブ装置)151を介してテープボリュームキャッシュ160の仮想テープボリュームのデータにアクセスし、データの読み出しや書き込みを行なう。すなわち、ICP150は、仮想ドライブ装置に対するデータアクセスを制御する処理ユニットとして機能する。
【0046】
このICP150は、例えば、IA(Intel Architecture)サーバにより構成され、EMTAPE(Virtual Emulation Tape)としての機能を実現する。EMTAPEは、バックエンドライブラリ300のテープドライブを仮想的にホスト装置200にみせるプロセスであって、仮想ドライブ151を実現する。EMTAPEは、バックエンドライブラリ300の物理的なテープドライブのエミュレーションを行なう。これによりICP150は仮想ドライブ151を制御する物理ドライブ制御部としての機能を実現する。仮想ドライブ151を論理ドライブといってもよい。
図1においては、仮想テープ装置100において5つの仮想ドライブ151が備えられている例を示す。
【0047】
なお、以下、ICPを示す符号としては、複数のICPのうち1つを特定する必要があるときには符号150-0,150-1を用いるが、任意のICPを指すときには符号150を用いる。
【0048】
PLP120は、バックエンドライブラリ300を動作させる制御を行なうサーバコンピュータ(処理ユニット)である。PLP120は、後述するVLP110から受け付けたバックエンドライブラリ300の制御依頼に従って、バックエンドライブラリ300の搬送機構を制御することで、物理ドライブ(図示省略)にカートリッジテープ(物理ボリューム)を装填させたり、物理ドライブから物理ボリュームを取り外させる。
【0049】
VLP110は、ICP150-0,150-1やIDP170-0,170-1等と連携して、システムとして仮想テープ環境を実現するための各種プロセスを実行(動作)させるサーバコンピュータ(処理ユニット)である。このVLP110は、ホスト装置200からLANC131経由でマウント要求を受け、仮想ドライブ151に論理ボリュームをマウントしたり、テープドライブの物理ボリュームのマウント処理やアンマウント処理を行なう。
【0050】
VLP110は、ホスト装置200とLANC131を介して接続され、ホスト装置200からのデータの書き込み要求などを受け付ける。そして、VLP110は、PLP120,ICPサーバ150およびIDP170に対してデータの読み書きや、バックエンドライブラリ300の制御を依頼する。
【0051】
VLP110は、テープボリュームキャッシュ160に対するデータアクセスの制御を行なう。VLP110は、バックエンドライブラリ300の物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリューム(仮想ボリューム210)を格納するキャッシュメモリ(テープボリュームキャッシュ160)を制御するキャッシュ制御装置に相当する。
【0052】
図2は実施形態の一例としての仮想テープ装置100のVLP110のハードウェア構成を示すブロック図、
図3はその機能構成を示す図である。
【0053】
VLP110は、
図2に例示するように、プロセッサ11,メモリ12,記憶装置13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11~18は、バス19を介して相互に通信可能に構成される。
【0054】
プロセッサ(処理部)11は、VLP110全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCPU,MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0055】
そして、プロセッサ11がVLP110用の制御プログラム(キャッシュ制御プログラム;図示省略)を実行することにより、
図3を用いて後述する、仮想ボリューム管理部10,仮想ボリューム選択部20および仮想ボリューム削除部40としての機能が実現される。
【0056】
仮想ボリューム管理部10,仮想ボリューム選択部20および仮想ボリューム削除部40としての機能は、例えば、OS(Operating System)プログラム上で動作する機能として実装されてもよく、また、OSプログラムの機能として実装されてもよい。
【0057】
なお、VLP110は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(キャッシュ制御プログラムやOSプログラム)を実行することにより、
図3に示す仮想ボリューム管理部10,仮想ボリューム選択部20および仮想ボリューム削除部40としての機能を実現する。
【0058】
VLP110に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、VLP110に実行させるキャッシュ制御プログラムを記憶装置13に格納しておくことができる。プロセッサ11は、記憶装置13内のプログラムの少なくとも一部をメモリ(RAM)12にロードし、ロードしたプログラムを実行する。
【0059】
また、VLP110(プロセッサ11)に実行させるプログラム(キャッシュ制御プログラム)を、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ11からの制御により、記憶装置13にインストールされた後、実行可能になる。また、プロセッサ11が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0060】
メモリ12は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ12のRAMはVLP110の主記憶装置として使用される。RAMには、プロセッサ11に実行させるOSプログラムや制御プログラム(キャッシュ制御プログラム)の少なくとも一部が一時的に格納される。また、メモリ12には、プロセッサ11による処理に必要な各種データが格納される。
【0061】
記憶装置13は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。記憶装置13は、VLP110の補助記憶装置として使用される。記憶装置13には、OSプログラム,制御プログラムおよび各種データが格納される。制御プログラムには監視ソフトウェアが含まれる。
【0062】
なお、補助記憶装置としては、SCMやフラッシュメモリ等の半導体記憶装置を使用することもできる。また、複数の記憶装置13を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
【0063】
また、記憶装置13には、後述するLRU管理テーブル31および物理ドライブ管理テーブル32を構成するデータが格納される。
【0064】
グラフィック処理装置14には、モニタ14aが接続されている。グラフィック処理装置14は、プロセッサ11からの命令に従って、画像をモニタ14aの画面に表示させる。モニタ14aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等が挙げられる。
【0065】
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をプロセッサ11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
【0066】
光学ドライブ装置16は、レーザ光等を利用して、光ディスク16aに記録されたデータの読み取りを行なう。光ディスク16aは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク16aには、DVD(Digital Versatile Disc),DVD-RAM,CD-ROM(Compact Disc Read Only Memory),CD-R(Recordable)/RW(ReWritable)等が挙げられる。
【0067】
機器接続インタフェース17は、VLP110に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
【0068】
ネットワークインタフェース18は、ネットワークに接続される。ネットワークインタフェース18は、光ファイバチャネルネットワークに接続されるインタフェース(FCインタフェース)とLANに接続されるLANインタフェースとを備えてよい。VLP110は、このネットワークインタフェース18を介して、PLP120やホスト装置200,テープボリュームキャッシュ160,ICP150,IDP170等との間でデータの送受信を行なう。ネットワークには他の情報処理装置や通信機器等が接続されてもよい。
【0069】
次に、VLP110の機能構成について説明する。VLP110は、
図3に示すように、仮想ボリューム管理部10,仮想ボリューム選択部20および仮想ボリューム削除部40としての機能を備える。
【0070】
仮想ボリューム管理部10は、本仮想テープ装置100における仮想ボリューム210を管理する。仮想ボリューム管理部10は、LRU管理テーブル31および物理ドライブ管理テーブル32を用いて、仮想ボリューム210の管理を行なう。
【0071】
図4は実施形態の一例としての仮想テープ装置100におけるLRU管理テーブル31を例示する図である。
【0072】
LRU管理テーブル31は、仮想ボリューム210を管理する仮想ボリューム管理情報であり、データアクセスが行なわれた仮想ボリューム210を、LRU論理に従って順位付けをして管理する。すなわち、LRU管理テーブル31は、仮想ボリューム210を、最後にアクセスが行なわれた時刻からの経過時間に応じて並べることで構成されている。
【0073】
図4に例示するLRU管理テーブル31は、仮想ボリューム名,仮想ボリュームマウント有無,格納するボリューム,大きさおよび仮想ボリュームに最後にアクセスしたタイムスタンプをカラムとして備えるテーブルとして構成されている。
【0074】
仮想ボリューム名は仮想ボリューム210を特定する識別情報である。大きさは、仮想ボリューム210のデータサイズである。仮想ボリュームに最後にアクセスしたタイムスタンプは、当該仮想ボリューム210に最後にデータアクセスが行なわれた時刻を示す。LRU管理テーブル31においては、この仮想ボリュームに最後にアクセスしたタイムスタンプの時刻が最も古い仮想ボリューム210が先頭(
図4においては最上位置)となるようにソートされている。
【0075】
仮想ボリュームマウント有無は、当該仮想ボリューム210に対応する実データを格納するカートリッジテープ(物理ボリューム)が、バックエンドライブラリ300の物理ドライブにマウントされているか否かを示す情報である。バックエンドライブラリ300の物理ドライブにマウントされている物理ボリュームに当該仮想ボリューム210が格納されている場合には、仮想ボリュームマウント有無に、例えば、“1”が設定される。一方、バックエンドライブラリ300の物理ドライブにマウントされている物理ボリュームに当該仮想ボリューム210が格納されていない場合には、仮想ボリュームマウント有無に、例えば、“0”が設定される。
【0076】
格納するボリュームは、当該仮想ボリューム210に対応する実データを格納するカートリッジテープ(物理ボリューム)を特定する識別情報である。
【0077】
従って、LRU管理テーブル31において、仮想ボリュームマウント有無に“1”が設定されている仮想ボリューム210は、格納する物理ボリュームによって特定されるカートリッジテープに、その対応する実データが格納されている。仮想ボリューム210に対応する実データに、当該仮想ボリューム210を実現するためのデータを含む。
【0078】
仮想ボリューム管理部10は、LRU管理テーブル31への情報の記録や更新を行なう。
【0079】
また、仮想ボリューム管理部10は、物理ドライブ管理テーブル32を用いて、バックエンドライブラリ300の物理ドライブにマウントされているカートリッジテープ(物理ボリューム)と、当該物理ボリュームに格納されている仮想ボリュームを管理する。
【0080】
図5~
図7は実施形態の一例としての仮想テープ装置100における物理ドライブ管理テーブル32を例示する図であり、一の物理ドライブ管理テーブル32を分割して
図5~
図7に分けて示している。
【0081】
図5~
図7に例示する物理ドライブ管理テーブル32は、物理ドライブNo.,物理ボリュームマウント有無,マウントされた時間タイムスタンプ,物理ボリューム,物理ボリュームに最後にアクセスしたタイムスタンプ,Headの位置,仮想ボリューム数,仮想ボリュームNo.,仮想ボリューム名および容量をカラムとして備えるテーブルとして構成されている。
【0082】
なお、図中、記述のカラム名と同じカラム名は同様の内容を示しているので、その説明は省略する。
【0083】
物理ドライブNo.は物理ドライブを特定する識別情報である。物理ボリュームマウント有無は、当該物理ドライブにカートリッジテープ(物理ボリューム)がマウントされているか否かを示す情報である。当該物理ドライブに物理ボリュームがマウントされている場合には、物理ボリュームマウント有無に、例えば、“1”が設定される。一方、当該物理ドライブに物理ボリュームがマウントされていない場合には、物理ボリュームマウント有無に、例えば、“0”が設定される。
【0084】
マウントされた時間タイムスタンプは、当該物理ドライブに物理ボリュームがマウントされている場合に、その物理ボリュームがマウントされた時刻を示す。
【0085】
物理ボリュームは、当該物理ドライブにマウントされた物理ボリュームを識別する識別情報である。物理ボリュームに最後にアクセスしたタイムスタンプは、当該物理ドライブにマウントされた物理ボリュームに最後にデータアクセスが行なわれた時刻を示す。
【0086】
Headの位置は、当該物理ドライブにマウントされた物理ボリュームに対する当該物理ドライブのヘッド(物理ヘッド,磁気ヘッド)の位置を示す。
【0087】
本仮想テープ装置100においては、物理ボリュームに仮想ボリューム210のデータがシーケンシャルに格納されるものとする。以下、便宜上、物理ボリュームにおける仮想ボリューム210のデータを、単に、物理ボリュームにおける仮想ボリュームという場合がある。
【0088】
図6に示す例においては、Headの位置を、物理ボリュームにおける仮想ボリュームに対する位置で表している。すなわち、仮想ボリュームNo.を表す符号“VV No.n”(nは自然数)と、物理ドライブの物理ヘッドが仮想ボリューム210のデータの末尾位置にあることを示す“後”とを組み合わせることでHeadの位置を示す。
【0089】
例えば、物理ボリュームにおいて、仮想ボリュームNo.が“1”の仮想ボリューム210のデータの末尾位置を、“VV No.1後”と表す。すなわち、Headの位置を、物理ボリュームにおける仮想ボリュームの仮想ボリュームNo.を用いて表す。
【0090】
なお、Headの位置の表現方法は、これに限定されるものではなく、適宜変形して実施することができる。例えば、物理ドライブの物理ヘッドが物理ボリュームにおける仮想ボリューム210のデータの先頭位置にある場合に、“VV No.n前”と表してもよい。
【0091】
また、Headの位置を、カートリッジテープの先頭からの長さや座標、またはこれらに類する値を用いて表してもよい。
【0092】
仮想ボリューム数は、当該物理ドライブにマウントされた物理ボリュームに格納されている仮想ボリュームの数である。
【0093】
仮想ボリュームNo.は、当該物理ドライブにマウントされた物理ボリュームに格納されている仮想ボリュームを特定するための識別番号である。
【0094】
なお、物理ボリュームに複数の仮想ボリューム210のデータが格納されている場合には、物理ドライブ管理テーブル32おいて、当該物理ボリュームに対応付けて、これらの複数の仮想ボリュームの仮想ボリュームNo.,仮想ボリューム名および容量が記録される。
【0095】
仮想ボリューム管理部10は、物理ドライブ管理テーブル32への情報の記録や更新も行なう。仮想ボリューム管理部10は、例えば、カートリッジテープに記録されたディレクトリ情報(構成情報)を参照することで、物理ドライブ管理テーブル32に記録する情報を取得してもよい。
【0096】
仮想ボリューム選択部20は、テープボリュームキャッシュ160がフルとなった状態において、このテープボリュームキャッシュ160に新たな仮想ボリュームを格納するための空き容量を作るために、テープボリュームキャッシュ160から追い出す(キャッシュアウトさせる)仮想ボリューム210を選択する。すなわち、仮想ボリューム選択部20は、テープボリュームキャッシュ160におけるキャッシュアウト対象の仮想ボリューム210を選択する。
【0097】
仮想ボリューム選択部20は、テープボリュームキャッシュ160に格納されている仮想ボリューム210のうち、対応する物理ボリュームがバックエンドライブラリ300において物理ドライブにマウントされている全ての仮想ボリューム210をキャッシュアウト対象の候補として選択する。
【0098】
テープボリュームキャッシュ160にキャッシュアウト対象の仮想ボリュームの候補が複数あり、バックエンドライブラリ300において、これらの仮想ボリューム210を格納する物理ボリュームが複数ある場合には、仮想ボリューム選択部20は、最後にアセスが行なわれた時刻が最も新しい物理ボリュームを選択する。
【0099】
すなわち、仮想ボリューム選択部20は、物理ドライブ管理テーブル32を参照して、物理ボリュームに最後にアクセスしたタイムスタンプの値を比較し、タイムスタンプの値(時刻)が最も新しい物理ボリュームを選択する。
【0100】
そして、仮想ボリューム選択部20は、この選択した物理ボリュームに実データが格納されている仮想ボリューム210をキャッシュアウト対象の候補として選択する。
【0101】
仮想ボリューム選択部20は、LRU管理テーブル31に登録された追い出し順位付けされた複数の仮想ボリューム210について、これの仮想ボリューム210のうち、直近に物理ドライブにマウントされた物理ボリュームに格納される仮想ボリューム210を、キャッシュアウト対象の仮想ボリューム(キャッシュアウト対象論理ボリューム210)として優先して選択する。
【0102】
仮想テープシステムにおいては、物理ドライブにマウントされた物理ボリュームに所定期間データアクセスがない場合に、物理ボリュームを強制的にアンマウントする機能を有するものが知られている。このような機能を有する仮想テープシステムにおいては、物理ドライブから強制的にアンマウントされた物理ボリュームが選択されることとなる。これにより、例えば、キャッシュアウトされた仮想ボリューム210がリコールされて再度使用される場合に、物理ボリュームからの仮想ボリュームの復元をより短時間で実現することができる。
【0103】
物理ボリュームに最後にアクセスしたタイムスタンプの値(時刻)が最も新しい物理ボリュームは、最近にデータアクセスが行なわれた物理ボリュームであり、データアクセスが発生する確率が高いと考えられる。
【0104】
また、仮想ボリューム選択部20は、LRU管理テーブル31において仮想ボリュームマウント有無に“1”(有)が設定されている仮想ボリューム210をキャッシュアウト対象の候補として選択する。
【0105】
すなわち、仮想ボリューム選択部20は、バックエンドライブラリ300の物理ドライブにマウントされている物理ボリュームに実データが格納されている仮想ボリューム210をキャッシュアウト対象の候補として選択する。
【0106】
また、仮想ボリューム選択部20は、キャッシュアウト対象候補の仮想ボリューム210が複数あり、それらの実データが同一の物理ボリュームに格納されている場合に、この物理ボリュームにおいて、物理ドライブの物理ヘッドの位置に一番近い仮想ボリュームをキャッシュアウト対象として選択する。
【0107】
仮想ボリューム選択部20は、物理ボリューム上における各仮想ボリュームの位置を特定し、物理ドライブの物理ヘッドの位置に対する仮想ボリュームが格納される物理ボリューム上の位置までの距離を算出し、物理ヘッドの位置に一番近い仮想ボリュームを選択する。すなわち、仮想ボリューム選択部20は、物理ボリュームにおいて、少ない物理ヘッドの移動量(移動時間)でアクセス可能な位置に実データがある仮想ボリューム210を、キャッシュアウト対象として選択する。
【0108】
図8および
図9は、それぞれ、物理ボリューム上の仮想ボリュームに対する物理ヘッドの位置を説明するための図である。
【0109】
図8に示す例においては、物理ボリューム上に複数の仮想ボリューム(VV-1~VV-6)が格納された状態を示している。図中、左側が物理ボリュームの先頭側であり、右側が物理ボリュームの末尾側である。従って、物理ボリュームにおいては、仮想ボリュームVV-1を先頭に、この仮想ボリュームVV-1に後続して、仮想ボリュームVV-2~VV-6が順番に並んで格納されている。また、物理ドライブの物理ヘッドが仮想ボリュームVV-3の末尾位置にある。
【0110】
また、この
図8に示す例において、仮想ボリュームVV-1,VV-2の各容量が、100MB,200MBであり、仮想ボリュームVV-3~VV-6の各容量が300MBである。
【0111】
この
図8に例示する状態において、テープボリュームキャッシュ160に900MBの空き領域が必要な場合には、物理ヘッドの移動が最小となる仮想ボリュームVV-4を先頭に連続する仮想ボリュームVV-4~VV-6を、キャッシュアウト対象として選択することが望ましい。これにより、キャッシュアウトさせる仮想ボリューム210のデータを物理ボリュームに迅速に書き込むことができ、キャッシュアウトに要する時間を短縮することができる。
【0112】
図9に示す例においては、物理ボリューム上に複数の仮想ボリューム(VV-1~VV-7)が格納された状態を示している。図中、左側が物理ボリュームの先頭側であり、右側が物理ボリュームの末尾側である。従って、物理ボリュームにおいては、仮想ボリュームVV-1を先頭に、この仮想ボリュームVV-1に後続して、仮想ボリュームVV-2~VV-7が順番に並んで格納されている。また、物理ドライブの物理ヘッドが仮想ボリュームVV-4の末尾位置にある。
【0113】
この
図9に示す例において、仮想ボリュームVV-1,VV-2,VV-4の各容量が、100MB,200MB,900MBであり、仮想ボリュームVV-3,VV-5~VV-7の各容量が300MBである。
【0114】
この
図9に例示する状態において、テープボリュームキャッシュ160に900MBの空き領域が必要な場合には、仮想ボリュームVV-5を先頭に連続する仮想ボリュームVV-5~VV-7を、キャッシュアウト対象として選択することが考えられる(案A)。また、900MBの容量を有するVV-4を、キャッシュアウト対象として選択することも考えられる(案B)。
【0115】
ただし、案Bにおいては、物理ヘッドを仮想ボリュームVV-4の先頭に移動させるための機械的動作(物理ボリュームの巻き戻し)が発生するので、このような機械的動作を伴わない案Aを採用することが望ましい。
【0116】
すなわち、仮想ボリューム選択部20は、物理ボリューム上における物理ヘッドよりも下流側(末尾方向)の位置に実データが格納される仮想ボリューム210を優先して決定することが望ましい。
【0117】
これによっても、キャッシュアウトさせる仮想ボリューム210のデータを物理ボリュームに迅速に書き込むことができ、キャッシュアウトに要する時間を短縮することができる。
【0118】
また、仮想ボリューム選択部20は、キャッシュアウト対象の仮想ボリューム210を選択するに際して、物理ヘッドの位置決めを行なうための物理ボリュームの巻き戻しに要する時間を考慮してもよい。物理ヘッドよりも下流側(末尾方向)の位置に実データが格納される仮想ボリューム210へのデータアクセスに比べて、物理ヘッドよりも上流側(先頭方向)の位置に実データが格納される仮想ボリューム210へのデータアクセスが短時間でできる場合には、この上流側位置に実データが格納された仮想ボリューム210をキャッシュアウト対象としてもよい。
【0119】
これによっても、キャッシュアウトさせる仮想ボリューム210のデータを物理ボリュームに迅速に書き込むことができ、キャッシュアウトに要する時間を短縮することができる。
【0120】
仮想ボリューム選択部20は、バックエンドライブラリ300の物理ドライブに物理ボリュームがマウントされていない場合には、LRU論理に従って、テープボリュームキャッシュ160に格納された複数の仮想ボリューム210の中から、キャッシュアウト対象の仮想ボリューム210を選択する。
【0121】
すなわち、仮想ボリューム選択部20は、LRU管理テーブル31を参照して、仮想ボリュームに最後にアクセスしたタイムスタンプが最も古い仮想ボリューム210をキャッシュアウト対象として選択する。仮想ボリューム選択部20は、
図4に例示するLRU管理テーブル31の先頭(図中の最上位置)にエントリされている仮想ボリューム210をキャッシュアウト対象として選択する。
【0122】
仮想ボリューム選択部20は、キャッシュアウト対象として選択した仮想ボリューム210を仮想ボリューム削除部40に通知する。
【0123】
また、仮想ボリューム選択部20は、キャッシュアウト対象として選択した仮想ボリューム210の削除後に、テープボリュームキャッシュ160に必要な空き容量が確保されたかを確認する。確認の結果、テープボリュームキャッシュ160に必要な空き容量が確保されていない場合には、再度、キャッシュアウト対象の仮想ボリューム210の選択および仮想ボリューム削除部40への通知を行なう。
【0124】
仮想ボリューム削除部40は、仮想ボリューム選択部20によってキャッシュアウト対象として選択された仮想ボリューム210をテープボリュームキャッシュ160から削除する。
【0125】
テープボリュームキャッシュ160からの仮想ボリューム210の削除は既知の手法で実現することができ、その詳細な説明は省略する。例えば、仮想ボリューム削除部40は、テープボリュームキャッシュ160に格納される仮想ボリューム210を管理する管理テーブル(図示省略)から、キャッシュアウトする仮想ボリューム210のエントリを削除することで、仮想ボリューム210のキャッシュアウトを実現する。
【0126】
(B)動作
上述の如く構成された実施形態の一例としての仮想テープ装置100における、キャッシュアウト対象の仮想ボリューム210の選択方法を、
図10~
図12に示すフローチャート(ステップA1~A17,B1~B2)に従って説明する。なお、
図10はステップA1~A6の処理を示し、
図11はステップA7~A17の処理を示す。また、
図12はステップB1~B2の処理を示す。
【0127】
以下の処理においては、変数“キャッシュアウト対象の仮想ボリューム容量の合計”を用いる。
【0128】
ステップA1において、仮想ボリューム選択部20は、変数“キャッシュアウト対象の仮想ボリューム容量の合計”を初期化して0を設定する。
【0129】
ステップA2において、仮想ボリューム選択部20は、物理ドライブにマウントされている物理ボリューム(カートリッジテープ)の数を確認し、物理ドライブにマウントされている物理ボリュームの数が0であるかを判断する。
【0130】
確認の結果、物理ドライブにマウントされている物理ボリュームの数が0である場合(ステップA2のYESルート参照)、すなわち、物理ドライブに物理ボリュームがマウントされていない場合には、ステップA14に移行する。
【0131】
ステップA14において、仮想ボリューム選択部20は、LRU論理に従って、テープボリュームキャッシュ160に格納された複数の仮想ボリューム210の中から、キャッシュアウト対象の仮想ボリューム210を選択する。
【0132】
すなわち、仮想ボリューム選択部20は、仮想ボリュームに最後にアクセスしたタイムスタンプが最も古い仮想ボリューム210をキャッシュアウト対象として選択する。具体的には、仮想ボリューム選択部20は、LRU管理テーブル31を参照して、LRU管理テーブル31の先頭(上位:図中の最上位置)にエントリされている仮想ボリューム210をキャッシュアウト対象として選択する。
【0133】
ステップA15において、仮想ボリューム選択部20は、LRU管理テーブル31を参照して、ステップA14で選択したキャッシュアウト対象の仮想ボリューム210の大きさを取得する。仮想ボリューム選択部20は、取得した仮想ボリューム210の大きさを、変数“キャッシュアウト対象の仮想ボリューム容量の合計”に加算する。
【0134】
ステップA16において、仮想ボリューム削除部40は、ステップA14で選択したキャッシュアウト対象の仮想ボリューム210をテープボリュームキャッシュ160から削除する。また、仮想ボリューム削除部40は、LRU管理テーブル31から、当該キャッシュアウト対象の仮想ボリューム210の登録を削除する。すなわち、LRU管理テーブル31の更新を行なう。
【0135】
ステップA17において、仮想ボリューム選択部20は、変数“キャッシュアウト対象の仮想ボリューム容量の合計”の値を、テープボリュームキャッシュ160において必要とされている容量と比較し、必要とされている容量以上であるかを確認する。
【0136】
確認の結果、変数“キャッシュアウト対象の仮想ボリューム容量の合計”が、テープボリュームキャッシュ160において必要とされている容量以上である場合(ステップA17のYESルート参照)、処理を終了する。
【0137】
一方、ステップA17における確認の結果、変数“キャッシュアウト対象の仮想ボリューム容量の合計”が、テープボリュームキャッシュ160において必要とされている容量未満の場合(ステップA17のNOルート参照)、ステップA14に戻る。
【0138】
また、ステップA2における確認の結果、物理ドライブにマウントされている物理ボリュームの数が0でない場合(ステップA2のNOルート参照)、すなわち、物理ドライブに1つ以上の物理ボリュームがマウントされている場合には、ステップA3に移行する。
【0139】
ステップA3において、仮想ボリューム選択部20は、LRU管理テーブル31を参照して、仮想ボリュームマウント有無に“1(有)”が設定されている全ての仮想ボリューム210をキャッシュアウト対象候補として選択する。
【0140】
ステップA4において、仮想ボリューム選択部20は、LRU管理テーブル31を参照して、ステップA3において選択したキャッシュアウト対象候補の仮想ボリューム210の全てが、仮想ボリュームマウント有無に“0(無)”が設定されているかを確認する。
【0141】
選択されたキャッシュアウト対象候補の仮想ボリューム210の全てにおいて、仮想ボリュームマウント有無に“0(無)”が設定されている場合は(ステップA4のYESルート参照)、例えば、物理ドライブに物理ボリュームがマウントされているが、当該物理ボリュームは仮想ボリューム210と関係の無い物理ボリュームである場合である。このような場合には、ステップA14に移行する。
【0142】
一方、ステップA4における確認の結果、選択されたキャッシュアウト対象候補の仮想ボリューム210の少なくとも一部において、仮想ボリュームマウント有無に“1(有)”が設定されている場合は(ステップA4のNOルート参照)、ステップA5に移行する。
【0143】
ステップA5において、仮想ボリューム選択部20は、LRU管理テーブル31を参照して、ステップA3において選択したキャッシュアウト対象候補の仮想ボリューム210の実データを格納する物理ボリュームの数を計数する。
【0144】
ステップA6において、仮想ボリューム選択部20は、ステップA5において計数した物理ボリュームの数が複数であるかを確認する。確認の結果、キャッシュアウト対象候補の仮想ボリューム210の実データを格納する物理ボリュームの数が複数である場合、すなわち、キャッシュアウト対象候補の仮想ボリューム210が複数の物理ボリュームに亘って格納されている場合には(ステップA6のYESルート参照)、ステップA7に移行する。
【0145】
ステップA7において、仮想ボリューム選択部20は、物理ドライブ管理テーブル32を参照して、物理ボリュームに最後にアクセスしたタイムスタンプが最も新しい物理ボリュームを選択する。
【0146】
ステップA8において、仮想ボリューム選択部20は、物理ドライブ管理テーブル32を参照して、ステップA7において選択された物理ボリュームに格納される仮想ボリュームであり、且つ、仮想ボリュームマウント有無が“1(有)”である仮想ボリューム210をキャッシュアウト対象候補として選択する。
【0147】
ステップA9において、仮想ボリューム選択部20は、ステップA8で選択したキャッシュアウト対象候補の仮想ボリューム210が複数あるかを確認する。キャッシュアウト対象候補の仮想ボリューム210が複数ある場合には(ステップA9のYESルート参照)、ステップA10に移行する。
【0148】
ステップA10において、仮想ボリューム選択部20は、物理ドライブにマウントされる物理ボリュームに実データ格納される仮想ボリューム210の中から、物理ボリュームにおいて実データの格納位置が物理ヘッドの位置に最も近い仮想ボリューム210を選択する。
【0149】
このステップA10の処理の詳細を、
図12に示すフローチャートを用いて説明する。この
図12に示すフローチャートにおいて、入力値はステップA8において選択されたキャッシュアウト対象候補の仮想ボリューム210である。
【0150】
ステップB1において、仮想ボリューム選択部20は、キャッシュアウト対象候補の仮想ボリューム210の実データを格納する物理ボリュームがマウントされる物理ドライブにおいて、物理ヘッドの位置と物理ボリューム上の各仮想ボリューム210の実データ位置との距離をそれぞれ算出する。
【0151】
ステップB2において、仮想ボリューム選択部20は、算出した、物理ヘッドの位置と物理ボリューム上の各仮想ボリューム210の実データ位置との距離が最短の仮想ボリューム210をキャッシュアウト対象の仮想ボリューム210として決定する。その後、処理は
図11のステップA11に移行する。
【0152】
ステップA11において、仮想ボリューム選択部20は、LRU管理テーブル31を参照して、ステップA10で選択したキャッシュアウト対象の仮想ボリューム210の大きさを取得する。仮想ボリューム選択部20は、取得した仮想ボリューム210の大きさを、変数“キャッシュアウト対象の仮想ボリューム容量の合計”に加算する。また、ステップA9における確認の結果、キャッシュアウト対象候補の仮想ボリューム210が複数ない場合にも(ステップA9のNOルート参照)、このステップA11に移行する。
【0153】
ステップA12において、仮想ボリューム削除部40は、ステップA10で選択したキャッシュアウト対象の仮想ボリューム210をテープボリュームキャッシュ160から削除する。また、仮想ボリューム削除部40は、LRU管理テーブル31から、当該キャッシュアウト対象の仮想ボリューム210の登録を削除する。すなわち、LRU管理テーブル31の更新を行なう。
【0154】
ステップA13において、仮想ボリューム選択部20は、変数“キャッシュアウト対象の仮想ボリューム容量の合計”の値を、テープボリュームキャッシュ160において必要とされている容量と比較し、必要とされている容量以上であるかを確認する。
【0155】
確認の結果、変数“キャッシュアウト対象の仮想ボリューム容量の合計”が、テープボリュームキャッシュ160において必要とされている容量以上である場合(ステップA13のYESルート参照)、処理を終了する。
【0156】
一方、確認の結果、変数“キャッシュアウト対象の仮想ボリューム容量の合計”が、テープボリュームキャッシュ160において必要とされている容量未満の場合(ステップA13のNOルート参照)、ステップA3に戻る。
【0157】
(C)効果
このように、本発明の一実施形態としての仮想テープシステム1によれば、テープボリュームキャッシュ160に新たに仮想ボリューム210を追加するために空き容量を確保するに際して、仮想ボリューム選択部20が、LRU管理テーブル31において追い出し順位付けされた仮想ボリューム210のうち、直近に物理ドライブにマウントされた物理ボリュームに格納される仮想ボリューム210を、キャッシュアウト対象として優先して選択する。従って、物理ドライブにマウントされている物理ボリュームに格納されている仮想ボリュームが選択される確率が高くなる。
【0158】
これにより、キャッシュアウトした仮想ボリュームを再度使用するために、バックエンドライブラリ300から仮想ボリュームをテープボリュームキャッシュ160に戻すリコール処理を短時間で実現できる可能性を高くすることができる。すなわち、ホスト装置200に対する応答時間を短縮することができる。
【0159】
キャッシュアウト対象の仮想ボリュームの候補が複数あり、それらの仮想ボリュームを格納する物理ボリュームが複数ある場合に、仮想ボリューム選択部20が、最後にアクセスされた物理ボリュームに格納される仮想ボリュームを選択する。これにより、使用される仮想ボリュームを格納する物理ボリュームが物理ドライブにマウントされている時間が他の物理ボリュームより長くなるので、キャッシュアウトした仮想ボリュームを再度使用する場合に、マウントされている物理ボリュームから仮想ボリュームを呼び戻す機会が多くなり、結果として仮想ボリュームのテープボリュームキャッシュ160へのリコール処理を短時間で行なうことができる。これによっても、ホスト装置200に対する応答時間を短縮することができる。
【0160】
また、仮想ボリューム選択部20が、同一の物理ボリュームに複数のキャッシュアウト対象の候補の仮想ボリュームの実データが格納されている場合に、物理ドライブにおいて、物理ヘッドに近い位置に実データが格納されている仮想ボリュームを優先して選択する。
【0161】
これによりキャッシュアウトした仮想ボリュームが再度使用される場合に、仮想ボリュームへのヘッドの位置付けを最短で行なうことができる。このため、仮想ボリュームのテープボリュームキャッシュ160へのリコール処理を、物理ドライブにマウントされていない物理ボリュームから仮想ボリュームを呼び戻すのに比べて短い時間で行なうことできる。これによっても、ホスト装置200に対する応答時間を短縮することができる。
【0162】
(D)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0163】
例えば、仮想テープ装置100において、搭載されるICP150やIDP170の数は2つに限定されるものではなく、種々変形して実施することができる。
【0164】
また、LRU管理テーブル31や物理ドライブ管理テーブル32は、テーブル状のデータ構成に限定されるものではなく、種々変形して実施することができる。
【0165】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0166】
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0167】
(付記1)
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを管理する仮想テープ装置であって、
前記複数の論理ボリュームを格納するキャッシュメモリと、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、
前記選択部が、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、仮想テープ装置。
【0168】
(付記2)
前記選択部が、
直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームが無い場合には、前記追い出し順位に従って前記キャッシュアウト対象論理ボリュームを選択する
ことを特徴とする、付記1記載の仮想テープ装置。
【0169】
(付記3)
前記選択部が、
前記物理ドライブにマウントされた前記物理ボリュームに格納される前記論理ボリュームが複数ある場合に、前記物理ボリューム上における格納位置と、前記物理ドライブの物理ヘッドの位置との距離が短い論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、付記1記載の仮想テープ装置。
【0170】
(付記4)
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを格納するキャッシュメモリを制御するキャッシュ制御装置であって、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理する管理部と、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択する選択部とを備え、
前記選択部が、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、キャッシュ制御装置。
【0171】
(付記5)
前記選択部が、
直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームが無い場合には、前記追い出し順位に従って前記キャッシュアウト対象論理ボリュームを選択する
ことを特徴とする、付記4記載のキャッシュ制御装置。
【0172】
(付記6)
前記選択部が、
前記物理ドライブにマウントされた前記物理ボリュームに格納される前記論理ボリュームが複数ある場合に、前記物理ボリューム上における格納位置と、前記物理ドライブの物理ヘッドの位置との距離が短い論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
ことを特徴とする、付記4記載のキャッシュ制御装置。
【0173】
(付記7)
物理ドライブにマウントされた物理ボリュームのデータに基づいて作成される複数の論理ボリュームを格納するキャッシュメモリを制御するキャッシュ制御装置のプロセッサに、
前記複数の論理ボリュームのそれぞれに対するアクセス時間情報を含むマウント情報を管理し、
前記キャッシュメモリに格納された前記複数の論理ボリュームの中から、前記キャッシュメモリからキャッシュアウトさせるキャッシュアウト対象論理ボリュームを選択し、
追い出し順位付けされた前記論理ボリュームのうち、直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
処理を実行させる、キャッシュ制御プログラム。
【0174】
(付記8)
直近に前記物理ドライブにマウントされた物理ボリュームに格納される論理ボリュームが無い場合には、前記追い出し順位に従って前記キャッシュアウト対象論理ボリュームを選択する
処理を、前記プロセッサに実行させる、付記7記載のキャッシュ制御プログラム。
【0175】
(付記9)
前記物理ドライブにマウントされた前記物理ボリュームに格納される前記論理ボリュームが複数ある場合に、前記物理ボリューム上における格納位置と、前記物理ドライブの物理ヘッドの位置との距離が短い論理ボリュームを、前記キャッシュアウト対象論理ボリュームとして優先して選択する
処理を、前記プロセッサに実行させる、付記7記載のキャッシュ制御プログラム。
ことを特徴とする、付記4記載のキャッシュ制御装置。
【符号の説明】
【0176】
1 仮想テープシステム
10 仮想ボリューム管理部
20 仮想ボリューム選択部
30 記憶部
40 仮想ボリューム削除部
31 LRU管理テーブル
32 物理ドライブ管理テーブル
100 仮想テープ装置
110 VLP
120 PLP
131 LANC
150-0,150-1,150 ICP
160 テープボリュームキャッシュ
170-0,170-1,170 IDP
200 ホスト装置
210 仮想ボリューム
300 バックエンドライブラリ