説明

仮想テープ装置および仮想テープ装置における物理テープ選択方法

【課題】テープライブラリ装置のキャッシュとして用いる仮想テープ装置で、適切なリコール処理を行なう。
【解決手段】リコール指示の発生時、仮想テープ装置101内のロボット移動時間算出部202は、リコール対象論理ボリュームが存在する物理テープごとに、テープライブラリ装置102内で、リコール対象論理ボリュームが記録される物理テープをセル110からドライブ109まで移動するロボット208の移動時間を算出する。テープ位置づけ時間算出部203は、リコール対象論理ボリュームが存在する物理テープごとに、物理テープ上のリコール対象論理ボリュームへのテープ位置づけのための時間を算出する。物理テープ選択判定部206は、ロボットの移動時間とテープ位置づけのための時間とに基づいて、リコール指示が発生してから物理テープの読み取りが開始されるまでの時間を算出し、その時間が短い物理テープをリコール処理の対象とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホストに接続されるテープライブラリ装置のキャッシュとして用いる仮想テープ装置に関する。
【背景技術】
【0002】
仮想テープ装置は、テープ運用をハードディスク等の大規模記憶装置上で仮想的に行う装置である。テープイメージデータが論理ボリューム(LV:Logical Volume)として大規模記憶装置上に配置されることによって、テープマウント、ロード/アンロードなどの機械的な動作を無くし、高速処理を図っている。
【0003】
仮想テープ装置には、バックエンドでテープライブラリ装置が接続されている。このテープライブラリ装置を仮想ボリューム化するための装置として、例えばRAID(Redundant Arrays of Inexpensive Disks)装置が使用される。RAID装置は、複数台のハードディスクが組み合わせられることで仮想的な1台のハードディスクとして運用される装置であり、信頼性の向上と高速化が可能となる。仮想テープ装置では、このRAID装置は、テープボリュームキャッシュ(TVC:Tape Volume Cache)として用いられる。なお、TVCは、複数のハードディスクから構成される必要は必ずしもなく、SSD(Solid State Drive)装置等の大規模記憶装置によって構成されてもよい。ホスト装置からアクセスされるテープボリュームは、TVCに置かれる。このようなボリュームデータは、論理ボリュームと呼ばれる。そして、TVC上に空きスペースが無くなると、アクセスが一番古いテープボリュームが追い出されて、テープライブラリ装置内のテープカートリッジにセーブされることで、TVCから削除される。TVC上から追い出された論理ボリュームへのアクセスが発生した場合には、テープライブラリ装置からTVCにその論理ボリュームに対応する物理ボリュームが読み込まれる。TVC上から追い出された論理ボリュームデータを磁気テープから読み取りTVCに反映すること動作は、リコールと呼ばれる。
【0004】
ホスト装置のオペレーティングシステム(OS:Operating System)上では、仮想テープ装置は、通常のテープデバイスとして定義され、テープライブラリ装置を意識する必要がない。
【0005】
テープライブラリ装置では、複数のテープカートリッジが、セルと呼ばれる収納庫に格納されている。仮想テープ装置において、TVC上に無い論理ボリュームへのアクセスが発生した場合、次のような動作が実行される。すなわちまず、テープライブラリ装置内の媒体搬送機構であるロボットが、その論理ボリュームに対応する物理ボリュームが記憶されたテープカートリッジをセルからテープライブラリ装置内のドライブに投入する。そして、そのテープカートリッジ内のデータがTVCにロードされる。
【0006】
ホスト装置より書込み指示された論理ボリュームデータは、一度、TVCに記録され、その後、テープライブラリ装置のテープカートリッジ内の物理テープ(磁気テープ)に反映される。ここで従来、2つの物理テープに同じデータを書き込む、デュアルセーブと呼ばれる機能を有するテープライブラリ装置が知られている。デュアルセーブ機能は、データ記録を二重化することにより、テープカートリッジやテープライブラリ装置の故障からデータを保護するための機能である。
【0007】
デュアルセーブ機能によって異なる2つのテープライブラリ装置にそれぞれ書き込まれたデータを物理テープから読み取る(リコール)際、従来は、最初に無条件に、第1番目のテープライブラリ装置内の物理テープから読み取りを行っていた。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2004−86251号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ここで、異なる2つのテープライブラリ装置内の各物理テープに書き込まれたデータの各セクタ位置は、それぞれ異なる場合がある。また、2つのテープライブラリ装置内の各物理テープのテープカートリッジが収納されているセル位置は、それぞれ異なる場合がある。更に、2つのテープライブラリ装置の各ロボットがリコール時に停止している位置も、異なる場合がある。このため、リコール時に、第1番目のテープライブラリ装置内のリコールされるデータが記憶されている物理テープからよりも、第2番目のテープライブラリ装置内の同じデータが記憶されている物理テープからのほうが、短時間でリコールを実行できる場合がある。
【0010】
したがって、従来のように、常に一方のテープライブラリ装置のみから物理テープを読み込むリコール処理では、アクセス効率が悪くなってしまう場合があるという問題点を有していた。
【0011】
そこで、本発明の課題は、リコール処理におけるアクセス効率を向上することである。
【課題を解決するための手段】
【0012】
本発明の態様の一例では、ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして大規模記憶装置に格納する仮想テープ装置であって、異なるまたは同一のテープライブラリ装置内の2つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記大規模記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記テープライブラリ装置内で、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を算出するロボット移動時間算出部と、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を算出するテープ位置づけ時間算出部と、前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する物理テープ選択判定部とを備えることを特徴とする仮想テープ装置を提供する。
【発明の効果】
【0013】
本出願により開示する構成及び方法によれば、リコール指示の発生時に、リコール処理対象の物理テープのうち早く読みとれる物理テープを選択することが可能となる。これにより、リコール処理におけるアクセス効率が向上する。
【図面の簡単な説明】
【0014】
【図1】実施形態のシステム構成図である。
【図2】実施形態による仮想テープ装置のブロック図である。
【図3】ボリュームグループを説明する図である。
【図4】物理ボリュームへの保存を説明する図である。
【図5】論理ボリュームの復元を説明する図である。
【図6】物理ボリュームのリオーガニゼーションを説明する図である。
【図7】デュアルセーブとマルチライブラリを説明する図である。
【図8】シングルセーブとデュアルセーブの例を説明する図である。
【図9】仮想テープ装置のデュアルセーブを説明する図である。
【図10】仮想テープ装置のリコールを説明する図である。
【図11】#0のテープライブラリ装置102のTape−Aのロボット移動時間(Time−1)の算出動作を説明する図である。
【図12】#1のテープライブラリ装置102のTape−Bのロボット移動時間(Time−1)の算出動作を説明する図である。
【図13】#0のテープライブラリ装置102のTape−Aのテープ位置づけ時間(Time−2)の算出動作を説明する図である。
【図14】#1のテープライブラリ装置102のTape−Bのテープ位置づけ時間(Time−2)の算出動作を説明する図である。
【図15】カートリッジメモリに格納されるデータ例を示す図である。
【図16】#0のテープライブラリ装置102のエラーリトライ回数テーブルのデータ構成の例を示す図である。
【図17】#1のテープライブラリ装置102のエラーリトライ回数テーブルのデータ構成の例を示す図である。
【図18】閾値テーブルのデータ構成の例を示す図である。
【図19】実施形態による仮想テープ装置のフローチャートを示す図である。
【図20】VLP106のハードウェア構成例を示す図である。
【図21】テープカートリッジの構成例を示す図である。
【図22】カートリッジメモリの構成例を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図1は、本実施形態が適用される仮想テープ装置とその周辺装置のシステム構成を示す図である。
【0016】
仮想テープ装置101は、TVC104と、ICP105、VLP106、IDP107、PLP108を、構成要素として含む。
TVC(Tape Volume Cache)104は、例えばRAID(Redundant Arrays of Inexpensive Disks)装置によって構成される。なお、TVC104はSSD等の大規模記憶装置から構成されてもよい。ICP105、VLP106、IDP107、およびPLP108はそれぞれ、サーバコンピュータモジュールによって構成される。
【0017】
ICP(Integrated Channel Processor)105は、ストレージ接続用のインタフェースを用いてホスト装置であるサーバ103と接続され、TVC104上の論理ボリュームのデータの送受信を制御する。仮想テープドライブの機能はこのサーバにより行なわれる。このインタフェースは、最大転送速度が例えば17メガバイト/秒の光ファイバーを使用したストレージデータ転送用の高速リンクである。
【0018】
VLP(Virtual Library Processor)106は、サーバ103からのマウント要求を受信し、仮想テープドライブに論理ボリュームをマウントする処理を受け持つ。また、VLP106は、TVC104上の論理ボリュームとテープカートリッジ111上の物理ボリュームとの対応関係を記憶するデータベース(後述する図2の論理物理対応関係情報データベース207)を管理する処理、物理テープへのストア処理等を受け持つ。
【0019】
IDP(Integrated Device Processor)107は、VLP106からの指示を受ける。そして、TVC104上の論理ボリュームのデータを、テープライブラリ装置102内のテープ駆動装置であるドライブ109にセットされたテープカートリッジ111にストアする。逆に、IDP107は、テープライブラリ装置102内のセル110に収納されたテープカートリッジ111をドライブ109にマウントする。そして、そのテープカートリッジ110内の物理ボリュームから、論理ボリュームのデータを読み出して、TVC104上にリコールする。
【0020】
PLP(Physical Library Processor)108は、VLP106からの指示を受け、テープライブラリ装置102内のライブラリコントローラ(図2の209参照)を介して、テープライブラリ装置102内の媒体搬送機構であるロボット(図2の208参照)を制御する。
【0021】
仮想テープ装置101は、TVC104に対して、例えば2つのグループにグループ化することができる。それぞれのグループは、#1および#2のテープライブラリ装置102(図2参照)を個別に制御できる。VLP106は例えば、2つのグループのそれぞれに対して、#0および#1というように1台ずつ設置できる。また、ICP105は例えば、2つのグループのそれぞれに対して、#0と#2および#1と#3というように2台ずつまで設置できる。ICP105の設置数が増加すると、サーバ103がアクセスできる論理ボリュームの数が増加する。IDP107は例えば、2つのグループのそれぞれに対して、#0と#2および#1と#3というように2台ずつまで設置できる。IDP107の設置数が増加すると、制御できるテープライブラリ装置102内のドライブ109の数が増加する。PLP108は例えば、#1および#2の各テープライブラリ装置102内のライブラリコントローラに対応して、2つのグループのそれぞれにおいて#0と#1というように1台ずつ設置できる(後述する図2参照)。
【0022】
TVC104、各ICP105、各VLP106、および各IDP107間、各IDP107と各テープライブラリ装置102内の各ドライブ109、各PLP108と各テープドライブ装置102内の各ライブラリコントローラは、相互に専用のインタフェースで接続される。このインタフェースは、最大転送速度が例えば200メガバイト/秒の光ファイバーまたは同軸ケーブルを使用したストレージデータ転送用の高速リンクである。このとき、このインタフェースを用いた特には図示しないスイッチ装置が、各グループ内、並びに2つのグループ間の上記各部分の相互接続を制御する。
【0023】
TVC104、各ICP105、各VLP106、各IDP107、および各PLP108は、LAN(Local Area Network)ケーブル117により、複数のハブ装置を介して相互に接続され、制御信号を通信する。
【0024】
VTCP(Virtual Tape Control Program)113は、LANC(LAN Controller)112を介して、仮想テープ装置101内のVLP106に対し、論理ボリュームのマウントを要求する。
【0025】
テープライブラリ装置102には、物理テープドライブ装置である1台以上のドライブ109が設置される。仮想テープ装置101内の1台のIDP107は、例えば2台のドライブ109を駆動できる。テープライブラリ装置102においては、テープカートリッジ110を収納するセル110から必要なセル110がロボット(図2の208参照)によりドライブ109に搬送されてマウントされる。そして、このテープカートリッジ110に、仮想テープ装置101内のIDP107がアクセスする。
【0026】
図2は、本実施形態による仮想テープ装置101のブロック図である。図2にはまた、仮想テープ装置101によって制御されるテープライブラリ装置102の構成も示されている。図2において、図1と同じ部分は同じ番号を付してある。
【0027】
図2では、仮想テープ装置101内のVLP106内に設定されるリコール制御部201が、テープライブラリ装置102(#0または#1)を制御して、デュアルセーブされた論理ボリュームのリコール処理を実行するための構成が示されている。
【0028】
図2において、#0および#1の各テープライブラリ装置102は、媒体搬送機構であるロボット208と、ロボット208によって各テープカートリッジ111が出し入れされる複数の収納庫であるセル110が設置される。図2では、#0〜#6のセル110が搭載されている。#0および#1の各テープライブラリ装置102内の各ロボット208は、仮想テープ装置101内の#0および#1のPLP108によって制御される。また図2では、説明を簡単にするため、#0および#1の各テープライブラリ装置102には、仮想テープ装置101内の#0および#1の各IDP107によって制御される#0と#1のドライブ109の組のみが示されている。各テープライブラリ装置102内のライブラリコントローラ209は、ロボット208の動作を制御する。
【0029】
仮想テープ装置101に設けられるVLP106(図1参照)内のリコール制御部201は、ロボット移動時間算出部202、テープ位置づけ時間算出部203、および物理テープ選択判定部206を備える。これに加えて、リコール制御部201は、エラーリトライ回数テーブル記憶部204およびエラー判定部205を備える。このほか、VLP106は、論理物理対応関係情報データベース記憶部207を備える。
【0030】
リコール制御部201において、ロボット移動時間算出部202は、VLP106内にてリコール指示が発生したときに、リコール対象となる物理テープが存在するテープライブラリ装置102内のロボット208の移動時間、すなわちロボット移動時間を算出する。
【0031】
このロボット移動時間は、ロボット208が、リコール対象となる物理テープのテープカートリッジ111を、それが収納されているセル110からドライブ109まで移動するのに要する時間である。
【0032】
より具体的には、このロボット移動時間は、次の第1および第2の移動時間を加算した時間である。すなわち、第1の移動時間は、リコール指示発生時のロボット208の位置から、対象となるテープカートリッジ111が収納されているセル110の位置までの、ロボット208の移動時間である。また、第2の移動時間は、そのセル110の位置からドライブ109の位置までの、ロボット208の移動時間である。
【0033】
第1,第2の移動時間を算出するために、ロボット移動時間算出部202は、リコール指示の発生時に、#0および#1のPLP108を介して各テープライブラリ装置102内の各ライブラリコントローラ209から、次の4つの情報を取得する。すなわち、ロボット移動時間算出部202は、ロボット208の現在位置と、対象のテープカートリッジ111が収納されているセル110の位置と、そのテープカートリッジ111がマウントされる先のドライブ109の位置を、それぞれ3次元座標値として取得する。また、ロボット移動時間算出部202は、3次元座標の各軸方向のロボット208の移動速度(または移動時間)を取得する。ロボット移動時間算出部202は、これらの4つの情報に基づいて、VLP106内にてリコール指示が発生したときに、リコール対象となる各物理テープが存在するテープライブラリ装置102内のロボット移動時間を算出する。
【0034】
リコール制御部201において、テープ位置づけ時間算出部203は、VLP106内にてリコール指示が発生したときに、リコール対象となる各物理テープにおけるテープ位置づけ時間を算出する。
【0035】
テープ位置づけ時間は、テープライブラリ装置102内で対象となるテープカートリッジ111がマウントされたドライブ109で、ヘッダが、リコール対象となる論理ボリュームのデータブロックが格納されている位置まで移動するのに要する時間である。
【0036】
テープ位置付け時間を算出するために、テープ位置づけ時間算出部203は、VLP106が論理物理対応関係情報データベース記憶部207に保持している論理物理対応関係情報データベースを参照する。これにより、テープ位置づけ時間算出部203は、リコール対象となる物理テープ上でのリコール対象となる論理ボリュームの位置(セクタ位置)を取得する。テープ位置づけ時間算出部203は、この位置情報と、ドライブ109におけるテープ速度とから、テープ位置づけ時間を算出する。
【0037】
リコール制御部201において、物理テープ選択判定部206は、リコール対象となる物理テープごとに、ロボット移動時間算出部202が算出したロボット移動時間とテープ位置づけ時間算出部203が算出したテープ位置づけ時間の加算値を算出する。この加算値は、リコール指示が発生してから対象となる各物理テープの読み取りが開始されるまでの「読み取り開始まで時間」を示している。物理テープ選択判定部206は、各物理テープごとに算出した「読み取り開始まで時間」のうち時間が最も少ないものに対応するテープライブラリ装置102内の物理テープ(テープカートリッジ111)を、リコール処理の対象として選択する。
【0038】
その後、リコール制御部201において、選択された物理テープに対して、リコール処理が開始される。
このようにして、本実施形態では、リコール制御部201は、リコール対象の2つの物理テープのうち、最も早く読みとれる物理テープを選択することが可能となる。
【0039】
上述の動作に加えて、物理テープ選択判定部206は、物理テープの選択判定処理において、次のような制御を行う。
まず、リコール制御部201は、各テープライブラリ装置102に搭載される全ての物理テープにおいて発生しているエラーリトライ回数を記憶部204のリトライ回数テーブルに記憶する。
【0040】
そして、リコール制御部201内のエラー判定部205は、リコール指示の発生時に、リコール対象とされる物理テープごとに、その物理テープの各種エラーリトライ回数を、エラーリトライ回数テーブルを参照して取得する。エラー判定部205は、取得した各種エラーリトライ回数に基づいて、リコール対象とされる物理テープを選択可能か否かを判定する。
【0041】
物理テープ選択判定部206は、エラー判定部205での判定結果に基づいて、物理テープを選択する。
このようにして、リコール制御部201は、リコール対象となる2つの物理テープにおいて、エラーが発生し易い物理テープがリコール処理されないように制御することができる。
【0042】
以上の2つの制御動作により、リコール制御部201は、最適なリコール処理を開始することが可能となる。
【0043】
以上の構成を有する実施形態による仮想テープ装置101の具体的な動作について、以下に説明する。
【0044】
図1のシステム構成において、仮想テープ装置101は、サーバ103上のVTCP113からのマウント要求に対し、例えばRAIDディスクであるTVC104上に、該当するテープボリュームのデータ格納領域を用意する。サーバ103上で、ドライブパスのインタフェースに対しては、通常のトラックテープ装置のように振る舞い、データの受け渡しを行う。このデータは、TVC104上で読み書きされる。
【0045】
TVC104上に置かれエミュレーションされるボリュームデータが、論理ボリュームである。また、すべての論理ボリュームは、バックエンドのテープライブラリ装置102の実際のテープカートリッジ111にバックアップされる。このテープライブラリ装置102内のテープカートリッジ111が、物理ボリュームとなる。
【0046】
サーバ103からのアンロード要求を契機として、TVC104上で使用された論理ボリュームは、テープライブラリ装置102の物理ボリュームに保存(マイグレーション)される。ただし、論理ボリュームへのアクセスがリードのみで論理ボリュームになんの変更もされなかった場合には、この処理は行われない。また、論理ボリュームのデータは、TVC104が一杯になるまでは、削除されずに保持される。
【0047】
ここで、論理ボリュームLV0001に対してサーバ103がジョブを実行した場合の、仮想テープ装置101の動作例を説明する。なお、この例では、論理ボリュームLV0001のデータは、物理ボリュームPV0002に保存されているものとする。
【0048】
ステップ1:サーバ103は、論理ボリュームLV0001に対して、マウント要求を発行する。仮想テープ装置101は、この要求をVLP106で受領する。
【0049】
ステップ2:VLP106は、TVC104を参照し、論理ボリュームを保管するのに十分な空き容量があるかチェックする。
【0050】
空き容量がない場合:LRU(Least Recently Used)論理により、最終アクセス時刻の最も古い論理ボリュームから削除され、空き領域が作られる。ただし、アクセス時刻が古い場合でも論理ボリュームのサイズが小さい場合には削除されず、よりサイズの大きな論理ボリュームが優先される場合がある。LRU論理とは、最後に使用した時刻の最も古いもの、かつデータサイズの大きいものを取り出すように管理する方式である。
【0051】
ステップ3:続いてVLP106は、TVC104上に要求された論理ボリュームが存在するかチェックする。
【0052】
すでにキャッシュにある場合:VLP106は、直ちにサーバ103に対してマウント完了を報告する。より具体的には、VLP106がICP105に対してマウント完了を通知し、ICP105がサーバ103に対して、「Not ready to Ready」の割り込みを発生させる。
【0053】
キャッシュ上にない場合:VLP106は、自身が論理物理対応関係情報データベース記憶部207に保有する論理物理対応関係情報データベース(図2参照)を検索する。この結果、VLP106は、要求された論理ボリュームLV0001が保存されている物理ボリュームがPV0002であると認識する。そして、VLP106は、テープライブラリ装置102に、そのPV0002のマウントを指示し、さらにIDP107に対して、PV0002から目的の論理ボリュームLV0001をTVC104上に読み込むように指示する。論理ボリュームの読み出しが完了した時点で、サーバ103に対して、マウント完了が報告される。その間、サーバ103は、マウントペンディング状態となる。
【0054】
ステップ4:サーバ103は、論理ボリュームLV0001に対して、データのリードまたはライトを実行する。
【0055】
ステップ5:VLP106は、論理ボリュームLV0001のデータが変更されたかどうかをチェックする。
【0056】
変更がなかった場合:特になんの後処理も行われない。
変更があった場合:VLP106は、更新された論理ボリュームのデータを保存するのに適当な物理ボリュームを検索する。通常、PV0002に十分な空き容量があれば、PV0002に追い書きで、新たな論理ボリュームLV0001のデータが保存される。十分な空き領域がなければ、その新たな論理ボリュームLV0001のデータは、新たな別の物理ボリュームに保存される。PV0002に書かれていた更新前の論理ボリュームLV0001のデータは、論理物理対応関係情報データベース上無効とされ、新たに書き込まれたデータが有効となる。
【0057】
ステップ6:論理ボリュームLV0001が格納されている物理ボリュームに対して、サーバ103から再度マウント要求があれば、直ちにマウント完了報告を返すことができる。他のマウントのために空き領域が必要になり、LRU論理でTVC104から削除されるまで、論理ボリュームはTVC104上に残される。論理ボリュームがTVC104から削除されても、その削除された論理ボリュームは、テープライブラリ装置102内の物理ボリュームの中には常に存在している。
【0058】
ここで、ボリュームとボリュームグループについて、図3を参照しながら説明する。
図3に示されるように、TVC104上の論理ボリュームは、論理ボリュームグループによりグループ分けがされている。すべての論理ボリュームは、いずれかの論理ボリュームグループに属している。初期状態では、“BASE”論理ボリュームグループが用意されており、また任意の論理ボリュームグループを作成することも可能である。
【0059】
また図3に示されるように、テープライブラリ装置102に格納されている物理ボリュームも、いずれかのボリュームグループに登録される。こちらは、物理ボリュームグループと呼ばれる。
【0060】
論理ボリュームグループを物理ボリュームグループに割り当てることで、サーバ103から論理ボリュームに書き込まれたデータは、図3に示されるように、その論理ボリュームの所属するボリュームグループにリンクされた物理ボリュームグループ内のいずれかの物理ボリュームに保存される。
【0061】
ボリュームグループは、サーバ103ごとあるいはジョブごとにグループを分けて作成することで、データが保存される物理ボリュームを明示的に分けることが可能になる。また、後述するデュアルセーブ機能は、1つの論理ボリュームグループを2つの物理ボリュームグループにリンクすることで行なわれる。
【0062】
論理ボリュームは、サーバ103から仮想ドライブへのアンロードコマンドを契機として、物理ボリュームに保存(マイグレーション )される。ただし、論理ボリュームの内容に変更がない場合は、保存は実行されない。
【0063】
図4は、物理ボリュームへの保存を説明する図である。同図(a)「物理ボリュームへの保存例その1」として示されるように、論理ボリュームLV0001が更新された後、アンロードの契機で物理ボリュームへのストア処理が発生する。この例で、LV0001は、物理テープPV0005の最後に書かれている論理ボリュームの後ろに保存される。そして、もともとPV0005に保存されていたLV0001のデータは、論理物理対応関係情報データベース(図2参照)上、無効にされる。
【0064】
図4の(b)「物理ボリュームへの保存例その2」として示されるように、論理ボリュームの更新が繰り返されて論理ボリュームのデータがPV0005の終端まで達した場合、同じ物理ボリュームグループに所属する別の物理ボリュームPV0006に保存される。
【0065】
論理ボリュームは、小容量トラックテープカートリッジをエミュレーションすることで例えば約800メガバイトの容量を有する。それに対し物理ボリュームは、大容量テープカートリッジを使用することで例えば800ギガバイトの容量を有する。したがって、物理ボリュームには、多数の論理ボリュームを保存することができる。
【0066】
TVC104上に存在しない論理ボリュームに対してマウント要求またはプレロード要求が発行された場合、前述したリコール処理が実行される。図5は、リコール処理による論理ボリュームの復元を説明する図である。すなわち、同図(a)「論理ボリュームの復元例」として示されるように、仮想テープ装置101のVLP106は、PLP108およびIDP107に指示を出してテープライブラリ装置102の物理ボリュームをドライブ109にマウントする。そして、VLP106は、目的の論理ボリュームをTVC104上に読み出す。サーバ103へのマウント完了報告は、論理ボリュームの読み出しの完了後に行われ、それまでの間サーバ103は、マウントペンディング状態となる。
【0067】
図6は、物理ボリュームのリオーガニゼーションを説明する図である。図4で説明したように、論理ボリュームが更新されると更新以前に物理ボリュームに書かれていたデータは無効となり、新しいデータが物理ボリュームの最後に追い書きされる。しかし、例えば図4(a)「物理ボリュームへの保存例その1」に示されるような処理が繰り返されると、図6(a)に示されるように、物理ボリューム上に無効な領域が増えていき、また物理ボリュームグループ内の空き物理ボリュームの数も減少する。これを改善するために、仮想テープ装置101は、リオーガニゼーションという機能を備えることができる。この機能では、物理ボリュームから有効となっている論理ボリュームのデータだけが別の物理ボリュームに集約され、元の物理テープは初期化される。図6(a)→(b)の例では、PV0005,PV0006に保存されていた論理ボリュームがPV0007にまとめられ、PV0005,PV0006は空き物理ボリュームとなる。リオーガニゼーション処理は、仮想テープ装置101によって、物理ボリュームグループごとに自動的に実行される。物理ボリュームグループの設定にリオーガニゼーションに関するものがあり、リオーガニゼーション処理を起動する条件として空き物理ボリュームの残り巻数と、リオーガニゼーション処理を実行する時間帯を指定することができる。
【0068】
図7は、デュアルセーブとマルチライブラリを説明する図である。テープライブラリ装置102に置かれる物理ボリューム(テープカートリッジ111)は、デュアルセーブ機能により二重化することができる。通常、論理ボリュームのデータは1つの物理ボリュームにのみ保存されるが、デュアルセーブに設定した論理ボリュームグループのデータは、2巻の物理ボリュームに保存される。これにより、メディアエラーなどで物理ボリュームから論理ボリュームのデータを読み出せなかった場合、もう一方の物理ボリュームから復元することができる。
【0069】
デュアルセーブ機能は、対象とする論理ボリュームグループを2つの物理ボリュームグループに割り当てることで動作する。図7(a)「シングルライブラリ構成」の例で、論理ボリュームグループ“BASE”を物理ボリュームグループ“BASE”および“BASE2”に割り当てることにより、論理ボリュームLV0001は 物理ボリュームPV1001とPV2001に保存されるようになる。
【0070】
ここでさらに、マルチライブラリオプションを使うことで、図2の構成例として示されるように、同時に2台のテープライブラリ装置102を接続することが可能である。これとデュアルセーブ機能を併用し、論理ボリュームを2台のテープライブラリ装置102内にあるそれぞれの物理ボリュームに保存されるように設定することで、二重化することができる。この場合、物理ボリュームのメディアエラーだけでなく、テープライブラリ装置102のダウンに対しても冗長性を持たせることができる。図7(b)「マルチライブラリ構成」の例で、論理ボリュームグループ“BASE”が、#0および#1のテープライブラリ装置102(LIB#0/LIB#1)のそれぞれの物理ボリュームグループ“BASE”/“BASE2”に割り当てられる。これにより、論理ボリュームLV0001は、物理ボリュームPV0001とPV2001に保存されるようになる。
【0071】
図8は、シングルセーブとデュアルセーブの例を示す図である。
論理ボリュームグループ−A内に登録されている論理ボリュームは、物理ボリュームグループ−0内に存在する物理ボリュームに書き込まれる(シングルセーブ)。
【0072】
論理ボリュームグループ−B内に登録されている論理ボリュームは、物理ボリュームグループ−0と1内に存在する物理ボリュームに書き込まれる(デュアルセーブ)。
論理ボリュームグループ−C内に登録されている論理ボリュームは、物理ボリュームグループ−2と3内に存在する物理ボリュームに書き込まれる(デュアルセーブ)。
【0073】
物理ボリュームへの書き込みは、物理テープグループ内の物理テープ状態を調べ、現在、書き込みを行うのにベストな状態な物理テープを使用して書き込みを行う。すでに物理ボリュームがドライブにマウントされている場合は、その物理ボリュームへ書き込みを実施する。例えば、論理ボリュームグループ−A内に登録されている論理ボリュームが更新され、物理ボリュームグループ−0への書き込みを開始する。以前、同じ論理ボリュームの書き込みを行った物理テープが選択され、ドライブにマウントされ、書き込みが行われる。その後、論理ボリュームグループ−B内に登録されている論理ボリュームが更新され、物理ボリュームグループ−0と1内の物理ボリュームへの書き込みを行うが、物理ボリュームグループ−0では、すでに物理ボリュームがドライブにマウントされているので、この物理ボリュームへの書き込みを行う。物理ボリュームグループ−1では、同じ論理ボリュームの書き込みを行った物理テープを選択し、書き込みを行う。
【0074】
ここで、マルチライブラリへのデュアルセーブと、それに対応するリコール処理との関係について説明する。図9は、仮想テープ装置のデュアルセーブを説明する図である。また、図10は、仮想テープ装置のリコールを説明する図である。
【0075】
サーバ103から仮想ドライブへのアンロードコマンドを契機として、仮想テープ装置101内のTVC104上の論理ボリュームに変更がある場合に、その論理ボリュームが物理ボリュームに保存(マイグレーション)される。このとき、上述したマルチライブラリのデュアルセーブ機能が有効な場合、論理ボリュームは、例えば図9に示されるようにセーブされる。すなわち、#0のテープライブラリ装置102内の物理ボリュームグループ−A内のテープカートリッジTape−Aと、#1のテープライブラリ装置102内の物理ボリュームグループ−B内のテープカートリッジTape−Bにデュアルセーブされる。
【0076】
このようにマイグレーションされたデータに対して、リコール処理が発生した場合、図10に示されるように、#0と#1のテープライブラリ装置102のうちのどちらの物理ボリュームからリコールすればよいかを最適化することが重要である。
【0077】
この最適化するのが、図2で説明したリコール制御部201の機能である。このリコール制御部201の機能の詳細について、以下に説明する。
まず、前述した図2のリコール制御部201内のロボット移動時間算出部202の動作の詳細について説明する。
【0078】
前述したように、ロボット移動時間算出部202は、リコール対象となる物理テープごとに、その物理テープに関するテープライブラリ装置102内のロボット移動時間を算出する。ロボット移動時間をTime−1、現在のロボットの位置からリコール対象の物理テープが存在するセル110の位置までのロボット移動時間をTime−1a、そのセル110からそれがマウントされるドライブ109までのロボット移動時間をTime−1bとする。この場合、Time−1は、次式で算出される。
【0079】
Time−1 = Time−1a + Time−1b ・・・(1)
【0080】
図11は、#0のテープライブラリ装置102のTape−Aのロボット移動時間(Time−1)の算出動作を説明する図である。前述の図10の例において、ロボット208と、テープカートリッジTape−Aが収納されるセル110[Tape−A]と、そのテープカートリッジ111がマウントされるドライブ109との位置関係が、例えば図11に示される如くであるとする。この場合、ロボット208が図面内左右方向または前後方向(これを例えばX軸方向またはZ軸方向とする)に移動する。また、ロボット208に付属するハンド1101が図面内上下方向(これを例えばY軸方向とする)に移動する。これらの動作により、ロボット208が、セル110[Tape−A]までTape−Aを取りに行く。その移動時間を、図11に示されるTime−1a−Aとする。次に、ハンド1101がTape−Aを掴んだ後、ロボット208およびハンド1101が図面内上下左右前後方向に移動しながら、Tape−Aがドライブ109まで運ばれる。その移動時間を、図11に示されるTime−1b−Aとする。Tape−Aに関するロボット移動時間をTime−1−Aとすれば、前述の(1)式より、Time−1−Aは、次式により算出される。
【0081】
Time−1−A = Time−1a−A + Time−1b−A
【0082】
図12は、#1のテープライブラリ装置102のTape−Bのロボット移動時間(Time−1)の算出動作を説明する図である。前述の図10の例において、ロボット208と、テープカートリッジTape−Bが収納されるセル110[Tape−B]と、そのテープカートリッジ111がマウントされるドライブ109との位置関係が、例えば図12に示される如くであるとする。この場合、ロボット208およびハンド1101が移動しながら、セル110[Tape−B]までTape−Bを取りに行く。その移動時間を、図12に示されるTime−1a−Bとする。次に、ハンド1101がTape−Bを掴んだ後、ロボット208およびハンド1101が移動しながら、Tape−Bがドライブ109まで運ばれる。その移動時間を、図12に示されるTime−1b−Bとする。Tape−Bに関するロボット移動時間をTime−1−Bとすれば、前述の(1)式より、Time−1−Bは、次式により算出される。
【0083】
Time−1−B = Time−1a−B + Time−1b−B
【0084】
より具体的には、ロボット移動時間算出部202によるロボット移動時間の具体的な計算例は、以下の如くとなる。
【0085】
X軸方向への1セル移動時間:500ms(ミリ秒)
Y軸方向への1セル移動時間:500ms
Z軸方向への移動時間 :300ms
ロボット移動時間=X軸方向への移動セル数×1セル移動時間+
Y軸方向への移動セル数×1セル移動時間+
Z軸方向への移動時間(移動有りの場合)
【0086】
<図11のTape−Aの場合>
ロボット208の位置:X=0,Y=0,Z=0
Tape−Aのセル位置:X=1,Y=8,Z=0
ドライブ109の位置:X=5,Y=0,Z=0
Tape−Aへのロボット移動時間=(1−0)×500ms+
(8−0)×500ms+
(0−0)×300ms+
(5−1)×500ms+
(8−0)×500ms+
(0−0)×300ms
=10500ms ・・・(2)
【0087】
<図12のTape−Bの場合>
ロボット208の位置:X=3,Y=3,Z=0
Tape−Aのセル位置:X=4,Y=2,Z=0
ドライブ109の位置:X=5,Y=0,Z=0
Tape−Bへのロボット移動時間=(4−3)×500ms+
(3−2)×500ms+
(0−0)×300ms+
(5−4)×500ms+
(2−0)×500ms+
(1−0)×300ms
=2800ms ・・・(3)
【0088】
上述の計算を行なうために、図2のロボット移動時間算出部202は、前述したように、PLP108からテープライブラリ装置102内のライブラリコントローラ209にアクセスして、ロボット208の現在位置と、セル位置と、ドライブ109の位置を取得する。また、3次元座標の各軸方向のロボット208の移動速度(または移動時間)を取得する。そして、ロボット移動時間算出部202は、これらの情報に基づいて、上述した計算例のようにしてロボット移動時間を算出する。
【0089】
次に、前述した図2のリコール制御部201内のテープ位置づけ時間算出部203の動作の詳細について説明する。
テープ位置づけ時間算出部203は、リコール対象となる各物理テープのテープカートリッジ111がマウントされた各ドライブ109で、ヘッダが、リコール対象のデータブロックの位置まで移動するのに要する時間を算出する。
【0090】
テープ位置づけ時間(これを、Time−2とする)は、リコール対象となる物理テープ上の読み取りを開始する位置までの、ヘッダの移動時間である。デュアルセーブでは、2つの物理テープへ同じデータが書き込まれるが、常に同じ2つの物理テープを使用して書き込みを行っている訳ではない。各テープライブラリ装置102に搭載されている複数の物理テープは、前述したように、物理テープグループに所属され、物理テープへの書き込みを行う際には、物理テープグループ内の物理テープ状態を調べ、書き込みを行うのにベストな状態の物理テープを使用して書き込みを行う。このため、目的のブロック(読み取るデータ)が物理テープ上に書き込まれている位置は、それぞれの物理テープで異なることになる。
【0091】
図13は、#0のテープライブラリ装置102のTape−Aのテープ位置づけ時間(Time−2)の算出動作を説明する図である。前述の図10の例において、Tape−Aにおけるリコール対象となる目的のブロックが記録されている位置が、例えば図13に示されるように、テープ終端付近である場合、テープ位置づけ時間Time−2−Aは非常に長くなる。
【0092】
図14は、#1のテープライブラリ装置102のTape−Bのテープ位置づけ時間(Time−2)の算出動作を説明する図である。前述の図10の例において、Tape−Bにおけるリコール対象となる目的のブロックが記録されている位置が、例えば図14に示されるように、テープ前半付近である場合、テープ位置づけ時間Time−2−Bは短くなる。
【0093】
より具体的には、テープ位置づけ時間算出部203によるテープ位置づけ時間Time−2の具体的な計算例は、以下の如くとなる。
【0094】
1セクタの移動時間:1.3s(秒)
【0095】
<図13のTape−Aの場合>
目的ブロック位置:63セクタ×1300ms(ミリ秒)
Tape−Aのテープ位置づけ時間=81900ms ・・・(4)
【0096】
<図14のTape−Bの場合>
目的ブロック位置:15セクタ×1300ms
Tape−Bのテープ位置づけ時間=19500ms ・・・(5)
【0097】
上述の計算を行うために、図2のテープ位置づけ時間算出部203は、前述したように、図2のVLP106が論理物理対応関係情報データベース記憶部207に保持している論理物理対応関係情報データベースを参照する。これにより、テープ位置づけ時間算出部203は、リコール対象となるテープカートリッジ111上でのリコール対象の先頭ブロックが含まれるセクタ位置の情報を取得する。そして、テープ位置づけ時間算出部203は、このセクタ位置の情報と、ドライブ109における1セクタの移動時間(テープ速度)とから、テープ位置づけ時間Time−2を算出する。
【0098】
前述した図2のリコール制御部201内の物理テープ選択判定部206は、上述のようにして算出されたロボット移動時間とテープ位置づけ時間を、リコール対象となる物理テープごとに加算する。すなわち、次式が計算される。
【0099】
Tape−Aの「読み取り開始まで時間」=Time−1−A(ロボット移動時間)+
Time−2−A(テープ位置づけ時間)
Tape−Bの「読み取り開始まで時間」=Time−1−B(ロボット移動時間)+
Time−2−B(テープ位置づけ時間)
【0100】
例えばTape−Aに関するロボット移動時間=10500ms((2)式)とテープ位置づけ時間=81900ms((4)式)が加算され、Tape−Aに関する「読み取り開始まで時間」=92400msが得られる。同様に、Tape−Bに関するロボット移動時間=2800ms((3)式)とテープ位置づけ時間=19500ms((5)式)が加算され、Tape−Bに関する「読み取り開始まで時間」=22300msが得られる。
【0101】
そして、物理テープ選択判定部206は、以下の判定論理により、物理テープを選択する。
【0102】
<判定方法>
比較対象の物理テープの「読み取り開始まで時間」を比較し、時間が最も短い物理テープを選択する。
【0103】
Tape−Aの「読み取り開始まで時間」≦Tape−Bの「読み取り開始まで時間」
の場合:Tape−Aを選択
【0104】
Tape−Aの「読み取り開始まで時間」>Tape−Bの「読み取り開始まで時間」
の場合:Tape−Bを選択
【0105】
この結果、物理テープ選択判定部206は、「読み取り開始まで時間」が短い#1のテープライブラリ装置102上のTape−Bを、リコール処理の対象として選択することができる。
【0106】
上述の動作に加えて、図2の物理テープ選択判定部206は、物理テープの選択判定処理において、物理テープでのエラー発生状況を考慮した選択判定を行う。その詳細について、以下に説明する。
【0107】
本実施形態において、ドライブ109にマウントされるテープカートリッジ111には、カートリッジメモリ(CM)と呼ばれる。非接触型メモリチップ(EEPROM)が組み込まれている。この記憶容量は、4〜8キロバイト程度である。そしてこのカートリッジメモリには、各管理情報を記録することができ、RF(無線周波数)インタフェースを使って物理的な接触をすることなくドライブ109にロード後、短時間でテープカートリッジ111のインデックスや使用状況などの情報を調べることができる。
【0108】
図15は、カートリッジメモリに格納されるデータ例を示す図である。カートリッジメモリには、ボリューム名、製造者名、シリアル番号、物理テープの種類、製造日等の識別情報に加えて、物理テープの運用時に発生したエラー状況を示す情報が格納されている。
【0109】
これらのエラー情報のうち、マウントリトライは、物理テープをドライブ109に引き込むときの引き込みエラーのリトライで救済されるとカウントアップされる情報である。
ロードリトライは、物理テープの巻取りが行える位置に移動させるときの移動エラーのリトライで救済されるとカウントアップされる情報である。ロード完了位置では、物理テープの裏面にある円盤型のクラッチ盤が回せる。このクラッチ盤には、テープが巻かれている中心の軸と接続されており、クラッチ盤を回すことにより、テープを巻き取ることができる。
【0110】
クラッチリトライは、クラッチ盤と接続するときのクラッチエラーのリトライで救済されるとカウントアップされる情報である。クラッチ盤には、ギアのように溝があり、物理ドライブ側のギアと接続する。
【0111】
スレッドリトライは、テープカートリッジ111からテープを引き出すときのエラーのリトライで救済されるとカウントアップされる情報である。テープの先端には先行ピンが付いており、このピンを掴みテープを引き出し、ドライブ・ヘッドを越え、取り外し不能なテープ巻取機構へと引き出す。これで、ヘッドはテープからのデータの読み取りや、テープへのデータ書き込みを行えるようになる。
【0112】
位置づけリトライは、目的ブロックの前(データの前)まで位置づけるときのエラーのリトライで救済されるとカウントアップされる情報である。物理テープ上でデータを書き込む・読み取る際には、目的の場所まで移動する動作が実行される。
【0113】
読み取りリトライは、物理テープ上に書き込まれた目的のブロック(データ)を読み取るときのエラーに対するリトライで救済されるとカウントアップされる情報である。
図2のリコール制御部201は、各テープライブラリ装置102に搭載される全ての物理テープにおいて発生している各種エラーリトライ回数を、各物理テープのカートリッジメモリから読み取って、エラーリトライ回数テーブル記憶部204にエラーリトライ回数テーブルとして記憶する。
【0114】
まず、リコール制御部201は、物理テープが、テープライブラリ装置102に搭載されたときに、PLP108からテープライブラリ装置102内のライブラリコントローラ209を介して、物理テープのテープカートリッジ111内のカートリッジメモリにアクセスする。そして、リコール制御部201は、カートリッジメモリ上に記録されている図15に例示される各種リトライ回数を読み取り、エラーリトライ回数テーブル記憶部204に記憶されるエラーリトライ回数テーブルに、初期値として展開する。
【0115】
次に、リコール制御部201は、ある物理テープを使用してリコール処理した後に、PLP108からテープライブラリ装置102内のライブラリコントローラ209を介して、その物理テープのカートリッジメモリにアクセスする。そして、リコール制御部201は、カートリッジメモリ上に記録されている図15に例示される各種リトライ回数を読み取り、エラーリトライ回数テーブルに、リコール値として展開する。
【0116】
図16は、#0のテープライブラリ装置102のエラーリトライ回数テーブルのデータ構成の例を示す図、図17は、#1のテープライブラリ装置102のエラーリトライ回数テーブルのデータ構成の例を示す図である。エラーリトライ回数テーブルにおいて、初期値は、物理テープがテープライブラリ装置102に搭載された時のみに登録されるため、1回しか登録されない。また搭載時には、リコール値にも同じ値が登録される。しかし、リコール値は、その物理テープのリコール処理ごとに上書きして登録される。
【0117】
この結果、リコール処理時に、エラーリトライ回数テーブルの該当する物理テープのリコール値と初期値との差分を参照することにより、その物理テープがテープライブラリ装置102に搭載後、各種リトライ回数が何回発生しているかを検知することができる。すなわち、各種リトライ回数の差分値があまり大きな値になる場合には、その物理テープにおいて搭載後多くのエラーが発生しているため、その物理テープに対してはリコール処理を行うべきではないと判断することができる。
【0118】
そこで、図2のエラー判定部205は、次のような制御動作を実行する。すなわち、エラー判定部205はまず、内部に例えば図18に例示されるような各種リトライ回数ごとの閾値を記憶した閾値テーブルを保有する。そして、エラー判定部205は、リコール指示された物理テープについて、エラーリトライ回数テーブルを参照する。これにより、各種リトライ回数ごとに、差分値(リコール値−初期値)が、閾値テーブルに記憶されている対応する閾値以上になっているか否かを判定する。その結果、1種類でも差分値が閾値以上になっているリトライ回数があった場合には、対象とされる物理テープを選択不可とする。
【0119】
例えば、図16に例示されるエラーリトライ回数テーブルにおける物理テープTape−A1の場合、各リトライ回数の初期値とリコール値に差がなく(搭載後の全てのリトライ回数は“0”回であり)、差分値は閾値以上になっていない。このため、Tape−A1は、物理テープ選択判定部206での前述した「読み取り開始まで時間」に基づく選択判定の対象とすることができる。
【0120】
一方、例えば、図17に例示されるエラーリトライ回数テーブルにおける物理テープTape−B1の場合、読み取りリトライのリコール値から初期値を引くと、11回となる。この差分値=11回を図18に示される閾値テーブルの読み取りリトライの閾値=10回と比較すると、閾値以上の値になっていることがわかる。このため、Tape−B1は、物理テープ選択判定部206での前述した「読み取り開始まで時間」に基づく選択判定の対象からはずされる。具体的には、物理テープ選択判定部206でのTape−B1の「読み取り開始まで時間」の値として、最大を示す値(例えば、9999)がセットされる。
【0121】
この結果、物理テープ選択判定部206において、物理テープTape−A1とTape−B1について、「読み取り開始まで時間」に基づく選択判定が行われる場合、次のような結果となる。
【0122】
<「読み取り開始まで時間」>
Tape−A1の「読み取り開始まで時間」=Time−1−A1(ロボット移動時間)
+Time−2−A1(テープ位置づけ時間)
Tape−B1の「読み取り開始まで時間」=最大値(例えば、9999)
【0123】
<選択判定>
両方の物理テープの「読み取り開始まで時間」を比較し、時間が短い方の物理テープを選択する。例えば、物理テープTape−A1とTape−B1の場合、
【0124】
Tape−A1「読み取り開始まで時間」≦Tape−B1「読み取り開始まで時間」
【0125】
の判定となり、Tape−A1が選択され、Tape−A1を使用してリコール処理が開始される。
【0126】
図19は、図2のリコール制御部201の機能を示すフローチャートである。このフローチャートの処理は、VLP106において、リコール指示が発生したときに起動される。
【0127】
まず、#0のテープライブラリ装置102(図中「LIB#0」と記載)側のリコール処理の対象とされる物理テープについて、各種エラーリトライ回数の差分値が、閾値テーブル中の該当する閾値以上であるか否かを判定する処理が実行される(ステップS1901)。このステップでは、前述した図2のエラー判定部205の処理が実行される。
【0128】
この結果、差分値が閾値以上となるエラーリトライ回数があった場合には、次のステップS1902の判定がYESとなって、#0側の物理テープについては、「読み取り開始まで時間」は算出されず、「読み取り開始まで時間」として最大値がセットされる(ステップS1904)。
【0129】
一方、差分値が閾値以上となるエラーリトライ回数がなかった場合には、次のステップS1902の判定がNOとなって、#0側の物理テープについて、「読み取り開始まで時間」の算出処理が実行される(ステップS1903)。ここでは、前述した図2のロボット移動時間算出部202、テープ位置づけ時間算出部203、および物理テープ選択判定部206による「読み取り開始まで時間」の算出処理が実行される。
【0130】
次に、#1のテープライブラリ装置102(図中「LIB#1」と記載)側のリコール処理の対象とされる物理テープについて、各種エラーリトライ回数の差分値が、閾値テーブル中の該当する閾値以上であるか否かを判定する処理が実行される(ステップS1905)。このステップでは、前述した図2のエラー判定部205の処理が実行される。
【0131】
この結果、差分値が閾値以上となるエラーリトライ回数があった場合には、次のステップS1906の判定がYESとなって、#1側の物理テープについては、「読み取り開始まで時間」は算出されず、「読み取り開始まで時間」として最大値がセットされる(ステップS1908)。
【0132】
一方、差分値が閾値以上となるエラーリトライ回数がなかった場合には、次のステップS1906の判定がNOとなって、#1側の物理テープについて、「読み取り開始まで時間」の算出処理が実行される(ステップS1907)。ここでは、前述した図2のロボット移動時間算出部202、テープ位置づけ時間算出部203、および物理テープ選択判定部206による「読み取り開始まで時間」の算出処理が実行される。
【0133】
その後、物理テープ選択判定処理が実行される(ステップS1909)。ここでは、前述した図2の物理テープ選択判定部206の処理により、#0と#1の各テープライブラリ装置102に対応する各「読み取り開始まで時間」が比較される。この結果、短い時間に対応するテープライブラリ装置102側の物理テープが、リコール処理の対象として選択され、リコール処理が開始される(ステップS1910)。
【0134】
図20は、図19のフローチャートの動作を行なう図2のVLP106のハードウェア構成例を示す図であり、VLP106がコンピュータとして構成された例である。
図20に示されるコンピュータは、CPU2001、メモリ2002、入力装置2003、出力装置2004、外部記憶装置2005、およびネットワーク接続装置2006を有し、これらがバス2007によって相互に接続された構成を有する。同図に示される構成は上記システムを構成できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
【0135】
CPU2001は、当該コンピュータ全体の制御を行う。メモリ2002は、プログラムの実行、データ更新等の際に、外部記憶装置2005に記憶されているプログラムまたはデータを一時的に格納するRAM等のメモリである。CUP2001は、プログラムをメモリ2002に読み出して実行することにより、全体の制御を行う。
【0136】
入力装置2003は、例えば、キーボード、マウス等およびそれらのインタフェース制御装置とからなる。入力装置2003は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をCPU2001に通知する。
【0137】
出力装置2004は、表示装置、印刷装置等およびそれらのインタフェース制御装置とからなる。出力装置2004は、CPU2001の制御によって送られてくるデータを表示装置や印刷装置に出力する。
【0138】
外部記憶装置2005は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
ネットワーク接続装置2007は、例えば図1のシステム内の各インタフェースに対応する通信回線を接続するための装置である。
【0139】
本実施形態によるシステムは、図19の処理を行なうために必要な機能を搭載したプログラムをCPU2001が実行することで構成される。
図21は、テープカートリッジ200の構成例を示す図である。このテープカートリッジ111は、カートリッジメモリ2101、カートリッジドア2102、先行ピン2103、書き込み保護スイッチ2104、ラベル域2105、および挿入ガイド2106などを備えて構成される。
【0140】
カートリッジメモリ2101には、図15に示したように、テープカートリッジ111およびテープについての識別情報のほか、テープカートリッジ111の使用についての統計情報(エラーリトライ回数)が含まれている。テープカートリッジ111をアンロードすると常に、ドライブ109(図2等参照)は、関連する情報をカートリッジメモリ2101に書き込む。
【0141】
図22は、図21のカートリッジメモリ2101の部分の構成例を示す図である。テープカートリッジ111の端部に、4〜8キロバイト程度の記憶容量を有する非接触型メモリチップ(EEPROM)が組み込まれた構成を有する。この記憶内容は、RFインタフェースを使って、図2のライブラリコントローラ209等と通信することが可能である。
【0142】
カートリッジドア2102は、テープカートリッジ111がドライブ109から排出されたときに、テープが汚れないように保護する。ドアの後ろで、テープが先行ピン2103に接続される。ドライブ109にテープカートリッジ111を挿入すると、スレッド化機構により、テープカートリッジ111から、先行ピン2103(およびテープ)が、ドライブヘッドを越え、取り外し不能なテープ巻取機構へと引き出される。これで、ヘッドは、テープからのデータの読み取りや、テープへのデータの書き込みを行えるようになる。
【0143】
書き込み保護スイッチ2104は、データがテープカートリッジに書き込まれないように保護する。
ラベル域2105は、ラベルを貼る場所である。ボリューム読み取り用のバーコードラベルのみが貼付される。
【0144】
挿入ガイド2106は、テープカートリッジの不正な挿入を防止する、大きなノッチ域である。
以上説明した実施形態におけるリコール制御は、リコール対象論理ボリュームが、#0および#1のテープライブラリ装置102の各セル110にそれぞれ収納される物理テープに冗長に記録されていることを例として説明した。しかし、リコール対象論理ボリュームは、1台のテープライブラリ装置102内の2つのセル110にそれぞれ収納される物理テープに冗長に記録されていてもよい。この場合においても、実施形態による図2のリコール制御部201の機能、または図19のフローチャートの処理によって、最適な物理ボリュームの選択を行なうことが可能である。
【0145】
また、リコール対象論理ボリュームは、1つの論理ボリュームである必要はなく複数ボリュームであってもよい。さらに、リコール対象論理ボリュームの冗長数は2つに限られるものではなく、それ以上の複数であってもよい。その場合には、「読み取り開始まで時間」が最短となる物理テープが選択されることになる。
【0146】
本実施形態において、図2のエラー判定部202または図19のステップS1901、S1904のエラー判定処理においては、各種エラーリトライ回数は、初期値とリトライ値との差分値が判定された。これ以外にも、各種エラーリトライ回数は初期値を考慮しない各リトライ時点における値であってもよい。また、物理テープへのアクセス回数に対する各種エラーリトライの回数の割合が判定されてもよい。
【0147】
本実施形態において、リコール制御部201を構成する各機能は、仮想テープ装置101を構成するVLP106内の機能として行なわれる。しかし、リコール制御部201の各機能は、同じ機能を行なうことができれば、VLP106内の機能に限られるものではない。また例えば、一部の機能はテープライブラリ装置102側にあってもよい。
【0148】
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして大規模記憶装置に格納する仮想テープ装置であって、
異なるまたは同一のテープライブラリ装置内の2つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記大規模記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記テープライブラリ装置内で、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を算出するロボット移動時間算出部と、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を算出するテープ位置づけ時間算出部と、
前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する物理テープ選択判定部と、
を備えることを特徴とする仮想テープ装置。
(付記2)
前記ロボット移動時間算出部は、前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報とに基づいて、前記ロボットの移動時間を算出する、
ことを特徴とする付記1に記載の仮想テープ装置。
(付記3)
前記テープ位置づけ時間算出部は、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープ上での前記リコール対象論理ボリュームのデータブロックが記録されている位置に関する情報を、前記大規模記憶装置上の論理ボリュームと前記物理テープ上の物理ボリュームとの対応関係を記憶する論理物理対応関係情報データベースを参照して取得し、前記取得した位置に関する情報に基づいて、前記テープ位置づけのための時間を算出する、
ことを特徴とする付記1に記載の仮想テープ装置。
(付記4)
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープにおけるエラーの発生状況を判定するエラー判定部を更に備え、
前記物理テープ選択判定部は、前記エラー判定部の判定結果に基づいて、前記リコール対象論理ボリュームが存在する物理テープを前記リコール処理の対象として選択可能か否かを判定する、
ことを特徴とする付記1に記載の仮想テープ装置。
(付記5)
前記テープライブラリ装置に搭載される全ての物理テープにおいて発生している各種エラーリトライの発生状況を記憶するエラーリトライ回数テーブル記憶部を更に備え、
前記エラー判定部は、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープに関する前記各種エラーリトライの発生状況を前記エラーリトライ回数テーブル記憶部から取得することにより、前記物理テープにおけるエラーの発生状況を判定する、
ことを特徴とする付記4に記載の仮想テープ装置。
(付記6)
ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして大規模記憶装置に格納する仮想テープ装置における物理テープ選択方法であって、
異なるまたは同一のテープライブラリ装置内の2つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記大規模記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記テープライブラリ装置内で、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を算出し、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を算出し、
前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する、
ことを特徴とする仮想テープ装置における物理テープ選択方法。
(付記7)
前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報とに基づいて、前記ロボットの移動時間を算出する、
ことを特徴とする付記6に記載の仮想テープ装置における物理テープ選択方法。
(付記8)
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープ上での前記リコール対象論理ボリュームのデータブロックが記録されている位置に関する情報に基づいて、前記テープ位置づけのための時間を算出する、
ことを特徴とする付記6に記載の仮想テープ装置における物理テープ選択方法。
(付記9)
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープにおけるエラーの発生状況を判定し、
前記エラーの発生状況の判定結果に基づいて、前記リコール対象論理ボリュームが存在する物理テープを前記リコール処理の対象として選択可能か否かを判定する、
ことを特徴とする付記6に記載の仮想テープ装置における物理テープ選択方法。
(付記10)
前記テープライブラリ装置に搭載される全ての物理テープにおいて発生している各種エラーリトライの発生状況をエラーリトライ回数テーブルとして記憶し、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープに関する前記各種エラーリトライの発生状況を前記エラーリトライ回数テーブルから取得することにより、前記物理テープにおけるエラーの発生状況を判定する、
ことを特徴とする付記6に記載の仮想テープ装置における物理テープ選択方法。
【符号の説明】
【0149】
101 仮想テープ装置
102 テープライブラリ装置
103 サーバ
104 TVC(Tape Volume Cache)
105 ICP(Integrated Channel Processor)
106 VLP(Virtual Library Processor)
107 IDP(Integrated Device Processor)
108 PLP(Physical Library Processor)
109 ドライブ
110 セル
111 テープカートリッジ
112 LANC(LAN Controller)
113 VTCP(Virtual Tape Control Program)
201 リコール制御部
202 ロボット移動時間算出部
203 テープ位置づけ時間算出部
204 エラーリトライ回数テーブル記憶部
205 エラー判定部
206 物理テープ選択判定部
207 論理物理対応関係情報データベース記憶部
208 ロボット
209 ライブラリコントローラ
1101 ハンド
2101 カートリッジメモリ
2102 カートリッジドア
2103 先行ピン
2104 書き込み保護スイッチ
2105 ラベル域
2106 挿入ガイド

【特許請求の範囲】
【請求項1】
ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして大規模記憶装置に格納する仮想テープ装置であって、
異なるまたは同一のテープライブラリ装置内の2つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記大規模記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記テープライブラリ装置内で、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を算出するロボット移動時間算出部と、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を算出するテープ位置づけ時間算出部と、
前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する物理テープ選択判定部と、
を備えることを特徴とする仮想テープ装置。
【請求項2】
前記ロボット移動時間算出部は、前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報とに基づいて、前記ロボットの移動時間を算出する、
ことを特徴とする請求項1に記載の仮想テープ装置。
【請求項3】
前記テープ位置づけ時間算出部は、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープ上での前記リコール対象論理ボリュームのデータブロックが記録されている位置に関する情報を、前記大規模記憶装置上の論理ボリュームと前記物理テープ上の物理ボリュームとの対応関係を記憶する論理物理対応関係情報データベースを参照して取得し、前記取得した位置に関する情報に基づいて、前記テープ位置づけのための時間を算出する、
ことを特徴とする請求項1に記載の仮想テープ装置。
【請求項4】
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープにおけるエラーの発生状況を判定するエラー判定部を更に備え、
前記物理テープ選択判定部は、前記エラー判定部の判定結果に基づいて、前記リコール対象論理ボリュームが存在する物理テープを前記リコール処理の対象として選択可能か否かを判定する、
ことを特徴とする請求項1に記載の仮想テープ装置。
【請求項5】
前記テープライブラリ装置に搭載される全ての物理テープにおいて発生している各種エラーリトライの発生状況を記憶するエラーリトライ回数テーブル記憶部を更に備え、
前記エラー判定部は、前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープに関する前記各種エラーリトライの発生状況を前記エラーリトライ回数テーブル記憶部から取得することにより、前記物理テープにおけるエラーの発生状況を判定する、
ことを特徴とする請求項4に記載の仮想テープ装置。
【請求項6】
ホスト装置とテープライブラリ装置との間に介在し、前記ホスト装置と前記テープライブラリ装置間で送受信されるデータを仮想的な論理ボリュームとして大規模記憶装置に格納する仮想テープ装置における物理テープ選択方法であって、
異なるまたは同一のテープライブラリ装置内の2つ以上のセルにそれぞれ収納される物理テープに冗長に記録されているリコール対象論理ボリュームを前記大規模記憶装置にリコールするリコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記テープライブラリ装置内で、前記リコール指示により前記リコール対象論理ボリュームが記録される物理テープを前記セルからドライブ装置まで移動するロボットの移動時間を算出し、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープ上で前記リコール対象論理ボリュームを読み出すために実行されるテープ位置づけのための時間を算出し、
前記リコール対象論理ボリュームが存在する物理テープごとに、前記ロボットの移動時間と前記テープ位置づけのための時間とに基づいて、前記リコール指示が発生してから前記物理テープの読み取りが開始されるまでの時間を算出し、前記読み取りが開始されるまでの時間が短い物理テープを、前記リコール指示に対応するリコール処理の対象として選択する、
ことを特徴とする仮想テープ装置における物理テープ選択方法。
【請求項7】
前記リコール指示の発生時における前記ロボットの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープが収納されているセルの位置に関する情報と、前記リコール対象論理ボリュームが存在する物理テープがマウントされるドライブ装置の位置に関する情報とに基づいて、前記ロボットの移動時間を算出する、
ことを特徴とする請求項6に記載の仮想テープ装置における物理テープ選択方法。
【請求項8】
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープ上での前記リコール対象論理ボリュームのデータブロックが記録されている位置に関する情報に基づいて、前記テープ位置づけのための時間を算出する、
ことを特徴とする請求項6に記載の仮想テープ装置における物理テープ選択方法。
【請求項9】
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープにおけるエラーの発生状況を判定し、
前記エラーの発生状況の判定結果に基づいて、前記リコール対象論理ボリュームが存在する物理テープを前記リコール処理の対象として選択可能か否かを判定する、
ことを特徴とする請求項6に記載の仮想テープ装置における物理テープ選択方法。
【請求項10】
前記テープライブラリ装置に搭載される全ての物理テープにおいて発生している各種エラーリトライの発生状況をエラーリトライ回数テーブルとして記憶し、
前記リコール指示の発生時に、前記リコール対象論理ボリュームが存在する物理テープごとに、前記物理テープに関する前記各種エラーリトライの発生状況を前記エラーリトライ回数テーブルから取得することにより、前記物理テープにおけるエラーの発生状況を判定する、
ことを特徴とする請求項6に記載の仮想テープ装置における物理テープ選択方法。

【図2】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図1】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図16】
image rotate

【図17】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−98965(P2012−98965A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−246905(P2010−246905)
【出願日】平成22年11月2日(2010.11.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】