説明

仮想テープ記録装置およびそのテープマウント制御方法

【課題】アプリケーションがマウント要求を行うタイミングでのリコール処理を削減し、アプリケーションの実行スケジュールにおけるマウント時間を削減する。
【解決手段】仮想テープ記録装置の仮想テープ・ドライブ(VTD)が、ホストシステムから論理ボリューム(LVOL)のマウント要求を受け取るステップと、仮想テープ記録装置の制御部が、仮想記憶領域(キャッシュ)に論理ボリュームが存在するかを判断するステップと、仮想記憶領域に論理ボリュームがないと判断された場合は、制御部がマウント要求が書き込み要求であるかを判断するステップと、マウント要求が書き込み要求であると判断された場合は、マウント要求された論理ボリュームを、仮想テープ記録装置に外部接続される実テープ・ライブラリ装置から仮想記憶領域に読み出しを行わずに、ホストシステムにマウント完了を通知するステップとを含む方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想テープ記録装置(VTS)およびそのテープマウント制御方法に関する。より詳細には、論理テープボリュームのマウント時間を短縮するための方法およびその方法を実現する仮想テープ記録装置に関する。
【背景技術】
【0002】
磁気テープはその記憶容量が大きいので、ハードディスクに格納された情報のバックアップなど大量データ記憶を行うために使用されてきた。しかしながら、磁気テープへのアクセスは低速であり、より高速なアクセスが可能であるハードディスクを磁気テープの代わりに用いる仮想テープ記録装置(VTS:Virtual Tape Storage (Server)、以下の説明でVTSまたは仮想テープサーバとも呼ぶ)がホストコンピュータの記憶媒体として開発された。仮想テープ記録装置は、ホストシステムに接続されたハードディスク上で仮想的にテープ装置をエミュレートすることで実際のテープ装置よりも高速に記憶媒体にアクセスすることを可能にする。
【0003】
仮想テープ記録装置(VTS)は、テープボリュームの仮想化を行っており、ホストアプリケーションが扱うVTS上のテープボリュームは論理ボリューム(LVOL(logical volume)、論理テープボリューム、仮想テープボリュームとも呼ぶ)として、VTS内に存在する。論理ボリュームは、仮想記憶領域であるキャッシュと呼ばれるVTS制御下のディスク装置内に存在するか、同じくVTS制御下の実テープ・ライブラリ装置内に存在する。キャッシュに存在する論理ボリューム(LVOL)は、長期間未参照の場合、あるいはストレージ管理ポリシーに基づいて、実テープ・ライブラリ内の物理テープボリューム(以下の説明で物理ボリュームと呼ぶ)に移送(以下の説明では、「マイグレート」または「マイグレーション」と呼ぶ)される。
【0004】
ある論理ボリューム(LVOL)がキャッシュに存在する場合、その論理ボリュームへのマウント要求は、物理ボリュームのマウントを必要とせずに、実施することができる。これに対して、ある論理ボリュームがキャッシュにはなく物理ボリュームにマイグレーション済みの場合、VTSはその物理ボリューム(たとえばテープ・カートリッジ)を物理装置(たとえばテープ・ドライブ)に装着し、キャッシュに論理(LVOL)ボリュームのデータを読み出す(コピーする)ことでホストシステムからのマウント要求を実行することができる。この物理ボリューム上のLVOLデータをキャッシュへの読み出すこと(LVOLデータのコピー)は、通常「リコール」と呼ばれる。
【0005】
ホストアプリケーション側から見た場合、キャッシュ上にある論理ボリュームのマウントに要する時間はミリ秒単位と想定されるのに対して、物理ボリュームからキャッシュへのデータ移動、すなわちリコールが必要な論理ボリュームのマウントは、論理ボリュームのデータが存在する物理ボリュームである物理テープの装着(マウント)およびキャッシュへの読み込みとが必要となり分単位の処理時間がかかる。したがって、ホストシステムからのマウント要求とその要求に対するマウント処理時間、すなわちマウント・パフォーマンスを検討することは重要である。
【0006】
ホストシステムからVTSに行われるLVOLのマウント要求は、特定ボリューム・マウント要求(Specific Volume Mount Request)と非特定ボリューム・マウント要求(Non-Specific Volume Mount Request)の2つの方式に大別される。特定ボリューム・マウント要求において、ホストアプリケーションが使用するボリューム通し番号が付されたテープボリュームをマウント要求すると、このマウント要求に応答してホストのオペレーティングシステムがVTSに対して、ボリューム通し番号のテープボリュームをマウント要求する。このように特定ボリューム・マウント要求は、特定のテープボリュームを指名するマウント要求であり、UNIX(R)系のオペレーティングシステム(OS)において用いられる。
【0007】
これに対して、非特定ボリューム・マウント要求は、特定のテープボリュームを指名しない。ホストアプリケーションが要求するテープボリュームは任意の「空きボリューム」(空きボリュームであればどのようなボリューム通し番号でもかまわない)である。ホストのオペレーティングシステムはこの要求に応答して、VTSに対してホストシステム上で「空きボリューム」に定義されたテープボリュームをマウント要求する。この非特定ボリューム・マウント要求は、z/OS(R)に代表されるメインフレーム系のオペレーティングシステム(OS)で用いられ、通常書き込みのみに使用される。
【0008】
非特定ボリューム・マウント要求は、書き込みによる使用であり、しかもホストからみて「空きボリューム」と分類されている属性のものであるので、キャッシュ上に論理ボリューム用のスペースを確保するだけでよく、リコール処理が必要となることはない。
仮想テープ記録装置(VTS)に対して、リコールが発生する可能性があるのは、特定ボリューム・マウント要求が行われる場合である。ホストシステムがVTSに対しマウント要求を行うタイミングでは、そのテープマウントを要求したアプリケーションが読み出しあるいは書き込みのどちらかを行うのか、その確定はできない、このためVTSとしては、要求された論理ボリュームに有効なデータがあり、かつこれがキャッシュではなく、VTSに外部接続され、制御された物理ボリュームに存在する場合にはリコールを行う必要がある。
【0009】
また、特定ボリューム・マウント要求のみを用いるUNIX系OSにおいては、VTSから論理ボリュームに書き込みたいのか、論理ボリュームから読み出したいのかは、VTSにとって区別がつかない。そして、VTSに論理ボリューム(LVOL)をマウントするときに、LVOLのデータがキャッシュ(ディスク装置)に存在していない場合は、物理テープからLVOLのデータをキャッシュにコピーするために、前述のように分単位の時間がかかる。したがって、特定ボリューム・マウント要求により書き込みを行うアプリケーションについて、マウント処理時間の増大によるマウントパフォーマンス劣化の可能性がある。
【0010】
通常、テープ装置に書き込みを行なうために、まずVTSはホストシステムからLVOLのマウント要求を受け取る。マウント要求を受け取ったことに応答して、VTSの制御プログラムが仮想記憶領域のスペースマップを参照して、マウント要求をされたLVOLが仮想記憶領域に存在しない場合は、実テープ・ライブラリ装置の物理テープからそのLVOLデータを仮想記憶領域にコピーし、そのコピーが完了した後、VTSがホストシステムへマウント完了を通知し、その通知を受けたホストシステムがデータをテープ装置に書き込む手順が必要となる。
【0011】
また、バックアップ等ようにVOLのデータをすべて書き換えたい場合には、LVOLデータをコピーするための上記の一連の書き込み手順は本来不要である。すなわち、この不要な一連の手順を行うことにより、マウント処理時間の増大につながっている。
【0012】
マウントパフォーマンスの劣化を抑制する一手法として、ホストシステムにおいて、ルーチンアプリケーションが実行される前に、事前リコールを行わせるためのダミージョブをスケジュールすることが考えられる。しかしながら、この方法ではVTSの運用管理においてダミージョブのスケジュール管理ができるように変更しなければならない。
【0013】
特許文献1(特開2003−216460号公報)において、低速ストレージに保存したデータを、データが使用されると予測されるアクセス頻度の遷移予測値(アクセスの変動周期)に基づいて高速ストレージに予め移動することが記載されている。しかしながら、予測が外れた場合、あるいは、移動するデータ容量に比べて書き込む量が少ない場合において、高速ストレージに不要なデータを書き込むことにつながり、他の論理ボリュームを利用する際のストレージシステムのパフォーマンス、すなわち動作効率が落ちる可能性がある。
【0014】
特許文献2(特開2000−20247号公報)において、グループ化された仮想的なテープボリューム群を予め仮想記憶領域に展開しておき、そのグループ内の仮想的なテープボリュームに対するホストコンピュータからの要求(たとえばマウント要求)に迅速に応答できることが記載されている。しかしながら、該当するグループに最初の書き込み要求が来る場合には通常のマウント処理が必要となる。また、仮想的なテープボリューム群を予め仮想記憶領域に展開するので、仮想的なテープボリュームの読み出す機会のないデータをも仮想記憶領域へコピーすることになり、他のホストが仮想テープ装置を利用するときのパフォーマンスに影響を与える可能性がある。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開2003−216460号公報
【特許文献2】特開2000−20247号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
したがって、ホストアプリケーションが特定ボリューム・マウント要求を行うタイミングでのリコール処理を削減し、アプリケーションの実行スケジュールにおけるマウント時間を削減する必要がある。
【0017】
仮想テープ記録装置(VTS)において、ホストシステムからの受け取ったマウント要求の目的が書き込みと判断される(もしくは想定される)場合に、物理テープから仮想記憶領域であるキャッシュへの論理ボリューム(LVOL)のデータのコピーを行なわずに、マウント時間を削減することを目的とする。さらに、予めキャッシュに論理ボリュームを展開しないことにより、キャッシュへの無駄なアクセスを減らし、他のホストシステムが論理ボリュームを利用する際のマウントパフォーマンスに影響することなく、論理ボリュームのマウント時間を削減することを目的とする。
【課題を解決するための手段】
【0018】
本発明の概要は、仮想テープ記録装置(VTS)がホストシステムから論理ボリューム(LVOL)のマウント要求を受け取るときに、当該LVOLのマウントが書き込み(Write)を目的とすると判断される(もしくは想定される)場合に、LVOLのデータがVTSの仮想記憶領域(以降、キャッシュと呼ぶ)としてのディスク装置(DASD)に存在しない場合においてもLVOLのデータをVTSに接続された実テープ・ライブラリ装置の物理テープからキャッシュにコピーすることなく、ホストシステムにマウント完了を通知する方法、およびその方法を実現する仮想テープ記録装置(VTS)を提供することである。
【0019】
本発明は、さらに、論理ボリューム(LVOL)のマウント要求の目的が読み出し(Read)あるいは書き込み(Write)の統計情報に基づいてそのマウント要求の周期性を検出し、その周期における読み出ししない確率が閾値以上のときに、書き込みと想定する方法を含む。
【0020】
本発明によれば、ホストシステムからのマウント要求に対する仮想テープ記録装置(VTS)による処理方法が提供される。この方法は、仮想テープ記録装置の仮想テープ・ドライブ(VTD)が、ホストシステムから論理ボリューム(LVOL)のマウント要求を受け取るステップと、仮想テープ・ドライブ(VTD)に結合された仮想テープ記録装置の制御部が、仮想テープ記録装置のキャッシュに論理ボリュームが存在するかを判断するステップと、キャッシュに論理ボリュームがないと判断された場合は、制御部が、マウント要求が書き込み要求であるかを判断するステップと、マウント要求が書き込み要求であると判断された場合は、マウント要求された論理ボリュームを、仮想テープ記録装置に外部接続される実テープ・ライブラリ装置からキャッシュに読み出しを行わずに、ホストシステムにマウント完了を通知するステップと、を含む。
【0021】
好ましくは、書き込み要求であるかを判断するステップは、仮想テープ・ドライブ(VTD)が、書き込み専用の属性を設定されていることに基づいて、制御部が書き込み要求であると判断するステップを含む。
また、好ましくは、書き込み要求であるかを判断するステップは、論理ボリューム(LVOL)のデータ情報における書き込み専用フラグに基づいて、書き込み専用フラグがセットされている場合は、制御部が書き込み要求であると判断するステップを含む。
さらに、好ましくは、書き込み要求であるかを判断するステップは、ホストシステムからマウント要求される論理ボリューム(LVOL)の統計情報に基づいて判断するステップであって、統計情報を用いて、読み出しの発生時間間隔の周期性を判断するステップと、周期性がある場合において、発生時間間隔における読み出しを行わない確率を所定の閾値と比較するステップとを含み、比較において当該確率が閾値以上の場合には、制御部が書き込み要求であると判断するステップを含む。
【0022】
好ましくは、書き込み要求であるかを判断するステップにおいて、ホストシステムからマウント要求される論理ボリューム(LVOL)の統計情報に基づいて、論理ボリュームの次回マウント時刻の予測値を算出するステップと、当該予測値に基づいて、設定された時刻に応じて事前に論理ボリュームに対応する物理ボリュームを実テープ・ライブラリ装置にマウントするステップと、を含む。
【0023】
好ましくは、統計情報は、論理ボリューム名、直近のマウント時刻、マウントの周期性データを含むマウント統計レコードであって、このマウント統計レコードは制御部に結合された仮想テープ情報データベースに格納され、マウント要求された論理ボリューム(LVOL)のデータに基づいて登録および更新される。
【0024】
書き込み専用の属性の設定は、仮想テープ記録装置(VTS)に外部接続された操作端末からの制御部へのコマンド入力またはホストシステムからの仮想テープ・ドライブ(VTD)へのコマンド入力によって更新される。
【0025】
本発明による方法は、さらに、キャッシュに論理ボリュームが存在する場合、仮想テープ記録装置は、ホストシステムにマウント完了を通知し、マウント要求が書き込み要求であると判断されない場合、マウント要求された論理ボリュームを実テープ・ライブラリ装置からキャッシュに読み出した後、ホストシステムにマウント完了を通知することを含む。
【0026】
ホストシステムからのマウント要求が、特定のテープボリュームを指名する特定ボリューム・マウント要求である。
【0027】
本発明によれば、ホストシステムからのマウント要求に対する処理を行う仮想テープ記録装置(VTS)が提供される。この仮想テープ記録装置(VTS)は、
ホストシステムから論理ボリューム(LVOL)のマウント要求を受け取る、少なくとも1つの仮想テープ・ドライブ(VTD)と、
論理ボリューム(LVOL)を格納する、キャッシュと、仮想テープ・ドライブと結合され、キャッシュに論理ボリュームが存在するかを判断し、キャッシュに論理ボリュームがないと判断された場合は、マウント要求が書き込み要求であるかを判断する、制御手段と、を含み、
当該制御手段は、マウント要求が書き込み要求であると判断された場合は、マウント要求された論理ボリュームを、仮想テープ記録装置に外部接続される実テープ・ライブラリ装置からキャッシュに読み出しを行わずに、ホストシステムにマウント完了を通知する。
【0028】
前記書き込み要求であるかの判断は、少なくとも前記仮想テープ・ドライブ(VTD)の書き込み専用の属性の設定、および前記論理ボリューム(LVOL)のデータ情報における書き込み専用フラグの設定(フラグをたてること、セット)に基づく。
【0029】
書き込み要求であるかの判断は、好ましくは、ホストシステムからマウント要求される論理ボリューム(LVOL)の統計情報に基づき、当該統計情報を用いて、読み出しの発生時間間隔の周期性を判断し、当該周期性がある場合において、発生時間間隔における読み出しを行わない確率を所定の閾値と比較し、比較において当該確率が閾値以上の場合に、制御手段が書き込み要求であると判断する。
【0030】
制御手段は、好ましくは、仮想テープ・ドライブ情報データベースおよび仮想テープ情報データベースに結合され、キャッシュとの間のデータ転送通信を制御するデータ転送制御部と、仮想テープ記録装置に外部接続される実テープ・ライブラリ装置へのアクセスを制御するライブラリ制御部と、を含む。
【0031】
好ましくは、仮想テープ・ドライブ情報データベースは、仮想テープ・ドライブと実テープ・ライブラリ装置内のテープ・ドライブとのマッピング情報およびホストシステムに対応する仮想テープ・ドライブの書き込み属性テーブル(書き込み専用であることを区別する)を含み、仮想テープ情報データベースは、論理ボリューム(LVOL)の属性テーブルと、マウント要求の統計情報を含むマウント統計レコードとを含む。仮想テープ情報データベースは、仮想テープ記録装置が事前マウントを行うときに参照する予測マウント・テーブルをさらに含み、当該予測マウント・テーブルは、論理ボリューム名とマウント予測時刻の対応関係を有する。
【0032】
好ましくは、仮想テープ・ドライブは、マウント要求をしたホストシステムに対応して書き込み専用の属性が設定され、仮想テープ記録装置に外部接続される、操作端末あるいはホストシステムからの入力に基づいて、書き込み専用の属性が更新され、
論理ボリューム(LVOL)の書き込み専用フラグの設定は、ホストシステムからのマウント要求時に行われる。
【発明の効果】
【0033】
本発明によれば、仮想テープ記録装置(VTS)がホストシステムから論理ボリューム(LVOL)のマウント要求を受け取るときに、当該LVOLがキャッシュに存在しない場合には通常数分必要であったLVOLのマウント時間を、LVOLのデータが読み出しされないことを判断することで、数秒で完了することができ、マウントパフォーマンスが向上する。さらに、本発明による方法は、バックアップなどLVOLのデータ内容をすべて書き換える作業において、特に有用である。
【0034】
ホストシステムからのマウント要求に対して、仮想テープ記録装置(VTS)によるテープマウント時間を削減あるいは事前マウントを効率よく行うことによって、従来のテープ運用管理を用いるVTSにおいても、テープマウント時間削減への要求を満たすことが可能となる。
【図面の簡単な説明】
【0035】
【図1】本発明の実施によるコンピュータシステムのブロック図である。
【図2】本発明の実施による仮想テープ記録装置(VTS)の詳細を示すブロック図である。
【図3】仮想テープ記録装置にデータを書き込む方法の一例を示すフローチャートである。
【図4】仮想テープ記録装置からデータを読み取る方法の一例を示すフローチャートである。
【図5】本発明の実施によるマウント時間を削減する方法を示すフローチャートである。
【図6】本発明の実施によるホストからのマウント要求が書き込み要求であるか判断する手順の一例を示すフローチャートである。
【図7】論理ボリューム(LVOL)のマウント統計データを収集する方法の例を示すフローチャートである。
【図8】仮想テープ記録装置がマウント統計レコードから次回マウント時刻を予測するための方法を示すフローチャートである。
【図9】事前マウントのための予測マウント時刻のスケジュール更新方法の例を示すフローチャートである。
【図10】事前マウントのスケジュール更新方法の例を示すフローチャートである。
【図11】事前マウントの実行プロセスの例を示すフローチャートである。
【発明を実施するための形態】
【0036】
図1は、本発明の実施の形態によるコンピュータシステム100を示すブロック図である。このコンピュータシステム100において、仮想テープ記録装置(VTS:Virtual TapeServer、仮想テープサーバとも呼ぶ、以下の説明でVTSと省略する)110が、ホストコンピュータ(以下の説明でホストと省略)102と、実テープ・ライブラリ装置150との間に接続されている。この実テープ・ライブラリ装置150は、複数の物理的テープであるテープ・カートリッジ(物理的ボリューム、物理テープとも呼ぶ)156およびその駆動機構であるテープ・ドライブ(物理的装置)154を備える。図1では、VTS110に1つのホスト102が接続されているが、1つのVTSに複数のホスト102を接続してもよい。VTS110は、論理ボリュームである仮想テープをファイルとして直接アクセス記憶装置(DASD:direct access storagedevice)、すなわちキャッシュ160上にエミュレートする。DASDは、相互接続された多数のハードディスクから構成され、実テープ・ライブラリ装置内の物理ボリュームに対するキャッシュとして機能する。VTS110は、当該技術分野において周知のいずれかのサーバ装置であり、当該技術分野において周知のいずれかのオペレーティングシステムを含み得る。
【0037】
例えば、ホスト102は、実テープ・ライブラリ装置150をエミュレートするキャッシュ160に対して入力/出力(I/O)操作を行うことによって、実テープ・ライブラリ装置150に対するI/O操作を行う。少なくとも1つのVTS110が、複数のテープ・ドライブ(物理的装置)154及びテープ・カートリッジ(物理的ボリューム)156を含む実テープ・ライブラリ装置150に結合される。VTS110は、ホスト102の要求を処理し、テープ・カートリッジ156内の論理ボリューム(LVOL)のデータにアクセスするか、可能であれば、ホストの要求についてのデータをキャッシュ160からホスト102へ戻す。LVOL162がキャッシュ内にない場合には、VTS110は、LVOLデータを実テープ・ライブラリ装置150からキャッシュ160にリコールする(呼び戻す)。すなわち、LVOLデータをキャッシュに転送する。VTS110は、ホスト要求に対して、キャッシュ内に存在するボリュームを用いることで、実テープ・ライブラリ装置150からキャッシュ160にリコールする必要があるボリュームについての要求より実質的に迅速に応答することができる。
【0038】
したがって、頻繁にアクセスされるボリュームがキャッシュ内に保持される場合には、I/O要求をより迅速に満たすことができる。しかしながら、実テープ・ライブラリ装置150と比べてキャッシュの容量は相対的に小さいので、全てのボリュームをキャッシュ160内に保持することはできない。したがって、VTS110は、事前にデータをキャッシュから実テープ・ライブラリ装置内150のテープ・カートリッジ(物理テープとも呼ぶ)156に転送する(マイグレーションする)。最終的に、これらの事前にマイグレーションされたボリュームは、キャッシュから除去され、テープ・カートリッジ上のデータを示すポインタに短縮され、新しいデータのためにキャッシュ内のスペースを空ける。この短縮化の作業は非常に高速であり、VTSにおける性能のボトルネックは、事前マイグレーションの作業自体である。
【0039】
図1に示すように、1つ又は複数のホスト102及び1つ又は複数の操作端末(オペレータ・インターフェース)105がVTS110に接続される。ホスト102及び操作端末105は、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレームのような当該技術分野において周知のいずれかの装置とすることができる。
【0040】
VTS110 は、前述のキャッシュ160の他に、VTS110を制御するための少なくとも1つの中央処理装置(CPU)128と、ストレージの使用量を最適化する制御部(以降の説明でストレージ・マネージャと呼ぶ)130のような制御プログラムとを含む。CPU128は、VTS110におけるデータ転送の制御および論理ボリューム(LVOL、論理テープボリューム、または仮想テープボリュームとも呼ぶ)に関連する情報管理を行う。さらにCPU128は、本発明による論理ボリュームに関するマウント統計的データの処理を行う。また、実テープ・ライブラリ装置150に対する物理的テープ(磁気テープなど)156の着脱、テープの送りおよび巻戻し等の駆動制御も行う。
【0041】
制御部であるストレージ・マネージャ130は、独立のアプリケーションとして実装することも、又は、1又は複数の他のアプリケーションの一部として実装することもできる。ストレージ・マネージャ130は、DASDからなるキャッシュ160及び実テープ(物理的)ライブラリ装置150へのアクセスを制御する。ストレージ・マネージャ130は、ホスト102、キャッシュ(DASD)160 、及び実テープ・ライブラリ装置150間のデータ移動を制御する。実テープ・ライブラリ装置150は、ストレージ・マネージャ130との間でデータの授受および物理テープの管理を行うライブラリ・マネージャ152と、たとえばテープ・カートリッジ等を含む物理的ボリューム(以下の説明で物理テープとも呼ぶ)156と、テープ・ドライブ等を含む物理的装置154と、物理的装置154へのアクセス機構158を含む。図1に示すように、実テープ・ライブラリ装置150は、通常、複数個の物理的ボリューム156(156A〜156N)と複数個の物理的装置154(154A〜154M)を含み得る。
【0042】
キャッシュ160は、相互接続された多数のハードディスク・ドライブを含むDASD(直接アクセス記憶装置)とすることができる。また、キャッシュ160は、論理ボリューム(LVOL(logical volume))162を格納することができる。VTS110は、ホスト102から実テープ・ライブラリ装置150へのI/O要求をより高速にアクセスが可能なキャッシュ160を用いて処理することによって、性能を改善し得る。キャッシュ内のディスクは、RAID(Redundant Array of Independent Disks)等として構成することもできる。
【0043】
ホスト102は、VTS110と間で各種のテープ操作を取り交わす。テープ操作は、キャッシュ160内に格納された論理ボリューム162からデータを検索するか、又は、論理ボリューム162内にデータを格納する。VTS110は、論理ボリューム(LVOL)162が、ホスト102によって物理的ボリューム156にアクセスされた後、キャッシュ160内の論理ボリューム162を自動的に事前マイグレーション(すなわち、オフロード)する。ホスト102の1つが、キャッシュ160内にはない論理ボリューム162を必要とする場合、VTS110のストレージ・マネージャ130は、適切な物理的ボリューム(たとえばテープ・カートリッジ)156を物理的装置(たとえばテープ・ドライブ)154内にマウントするよう、実テープ・ライブラリ装置150に命令する。次に、要求されたLVOLデータが、キャッシュ160内の論理ボリューム162として物理的ボリューム156からコピーされる(すなわち、LVOLデータが呼び戻される)。
【0044】
図2は、本発明の一実施形態による仮想テープ記録装置(VTS)の詳細を示すブロック図である。仮想テープ記録装置(VTS)110は、主に、CPU128と、仮想テープ・ドライブ(VTD)であるテープ・デーモン118、制御部であるストレージ・マネージャ130、たとえばDASDからなるキャッシュ160、および各種のデータベース(132、134、136、138)から構成される。VTSは、データの読み出し、データの書き込みのどちらに使用されるか、ホスト側ではわからない汎用の仮想テープ・ドライブ(VTD)であるテープ・デーモンVTD−1,VTD−2,・・・VTD−Nと、本発明による、所定のホストに対して書き込み専用の設定をされた仮想テープ・ドライブであるテープ・デーモンVTD−Wを、ホストに向けて公開(提示)している。なお、複数の書き込み専用テープ・デーモンを設けても良い。VTS110に複数のホストが接続される場合において、ホストごとに1つのテープ・デーモンを書き込み専用、あるいは汎用に設定しても良い。
【0045】
仮想テープ記録装置(VTS)110がホスト・インターフェース112を介してホスト102に接続され、ホスト102と通信する。このホスト・コンピュータ・インターフェース112には、エンタープライズ・システム接続(ESCON(R))(ESCON(Enterprise System CONnection)は、International Business Machines Corporationの商標) アダプタ、又は、当該技術分野において周知の他のいずれかのスイッチング機構(例えば、ファイバ・チャネル、ストレージ・エリア・ネットワーク(SAN)相互接続等) のような、種々のホスト・コンピュータ・インターフェースを用いることができる。
【0046】
このホスト・インターフェース112結合される装置ドライバ116を介して仮想テープ・ドライブ(VTD:vertual tape drive)として機能するテープ・デーモン118A・・・118N がホスト102に接続される。仮想テープ・ドライブ(VTD)、すなわちテープ・デーモン118A・・・118Nは、1つ又は複数のホスト・インターフェース112を通して、ホスト102からテープの読み書きの操作を受け取る。書き込み操作の場合には、テープ・デーモン118A・・・118Nは、データを受け取り、論理ボリューム162を作成し、当該論理ボリューム162をファイルとしてキャッシュ160に書き込む。読み取り操作の場合には、テープ・デーモン118A・・・118Nは、キャッシュ160にアクセスし、クライアント・カーネル拡張(図示せず、図2のキャッシュ・インターフェース部144の一部)を通してLVOLデータを検索し、LVOLデータをホスト102に戻す。VTS110は、ホスト102が物理的テープ・ドライブ154をエミュートするテープ・デーモン118A・・・118N とではなく、テープ・ドライブ154と通信しているかのように作動する。各々のテープ・デーモン118A・・・118Nは、キャッシュ160内のファイルにアクセスするのに用いられるファイル・システム・マネージャ(FSM)119A・・・119Nを含む。
【0047】
VTS110の制御部であるストレージ・マネージャ130は、データ転送制御部140およびライブラリ制御部142の制御プログラムを実行する。データ転送制御部140は、ホスト102からの書き込み要求に対して、ホストから転送されたデータを、必要に応じてキャッシュ・メモリ148を介してキャッシュ160のLVOLに記録するか、またはライブラリ制御部142を起動して、実テープ・ライブラリ装置150を駆動させて物理的ボリュームであるテープ・カートリッジ156に記録する。その際、ストレージ・マネージャ130は、テープ・デーモン情報データベース(すなわち、仮想テープ・ドライブ情報データベース)132、仮想テープ情報データベース134、DASD(仮想記憶領域)スペース情報136、および実テープ情報データベース138を参照したり、あるいは更新したりする。また、データ転送制御部140は、ホスト102からの読み出し要求に対して、LVOLデータ162を必要に応じてキャッシュ・メモリ148またはテープ・カートリッジ156からデータを読み出してホスト102へ転送する。
【0048】
仮想テープ情報データベース134は、テープボリューム情報レコードからなる論理ボリューム情報テーブルを格納している。キャッシュ(仮想記憶領域)160に設けられた1つの論理ボリューム162に対して1つのテープボリューム情報レコードが1つずつ作成される。
この論理ボリューム(LVOL)情報テーブルの各レコードは、各種の情報フィールドを含み得る。例えばこのレコードは、論理ボリュームの名前を表す「LVOL(テープボリューム)名」、「ヘッダ情報」、論理ボリュームのブロックサイズを表す「全ブロックサイズ」、作成した時刻を表す「テープ作成時刻」、最後にアクセスされた時刻を表す「最終アクセス時刻」、最後に書き込みでアクセスされた時刻を表す「最終書き込み時刻」、論理ボリュームが最後にマウントされた時刻を表す「最終マウント時刻」、論理ボリュームがマイグレートされた時刻を表す「マイグレート時刻」、マウント回数を表す「マウント回数」、アドレスポインタの位置情報を表す複数の「テープマーク情報」、および本発明の実施形態による、論理ボリュームが書き込み専用であるかどうかを示す「書き込み専用フラグ」などの各フィールドを有する。
【0049】
ストレージ・マネージャ130のデータ転送制御部140は、LVOLデータをキャッシュ160、VTS110に外部接続される実テープ・ライブラリ装置150のテープ・ドライブ154A・・・154Mに転送する。一実施形態においては、図2に示されるように、データ転送制御部140が、キャッシュ160からテープ・ドライブ154A・・・154Mへのデータの転送を制御する。さらに、データ転送制御部140は、テープ・デーモン118A・・・118Nがデータをキャッシュ160に書き込む速度を制御する。
また、データのアクセス効率を向上するために、キャッシュ・メモリ148を、キャッシュ160や物理的テープボリューム156に対して読み出されるデータおよび書き込まれるデータを一時的に記憶するために、ストレージ・マネージャ130とキャッシュ160の間に配置してもよい。
【0050】
データ転送制御部140は、データ転送の通知をホスト102の1つから受け取る。ホスト102は、どの論理ボリューム162がテープ・カートリッジ156A・・・156Nの特定のプール内に配置されることになるかを示す。さらに、データ転送制御部140は、テープ・デーモン(仮想テープ・ドライブ)情報データベース(TDDB)132、仮想テープ情報データベース(VTDB)134、およびDASDスペース情報データベース136との間でデータのやり取りを行う。テープ・デーモン情報データベース(TDDB)132は、テープ・デーモンと物理的テープ・ドライブとのマッピング情報を含み、さらにテープ・デーモン(VTDと以下で省略)118の属性データ情報テーブル(本発明による、書き込み専用の属性データを含む)を含むことができる。仮想テープ情報データベース(VTDB)134は、論理ボリューム(LVOL)162の属性テーブル170(LVOLデータ内の書き込み専用のフラグを参照するための属性テーブル)、マウント要求の情報に関する統計的データであるマウント統計レコード180、および事前マウントのためのマウント予測時刻をテーブルにした予測マウント・テーブル190を含むことができる。また、DASDスペース情報データベース136は、キャッシュ160内のLVOLの配置情報を含むことができる。
【0051】
データ転送制御部140は、データを転送するようにキャッシュ・インターフェース部144に通知する。キャッシュ・インターフェース部144は、キャッシュ160から、要求されたデータを検索し、そのデータをデータ転送制御部140のテープ・データ・サーバ(図示せず)に送る。キャッシュ・インターフェース部144は、テープ・デーモン118とキャッシュ(DASD)160のインターフェースであり、キャッシュから要求されたデータを検索して、データ転送制御部140のテープ・データ・サーバ(図示せず)に送るクライアント・カーネル拡張部(図示せず)を含む。
【0052】
データ転送制御部140のテープ・データ・サーバは、テープ・ドライブ154A・・・154Mへのデータの書き込みを制御する。データは、テープ・データ・サーバから、ライブラリ・インターフェース部146(たとえば、AtapeドライバおよびSCSIアダプタ)を介して、テープ・ドライブ154A・・・154Mに送られる。テープ・データ・サーバは、ライブラリ・インターフェース部146を介して、どのテープ・カートリッジ156がどの物理的テープ・ドライブ154の中に置かれるかを、ライブラリ・マネージャ152に伝える。データ転送制御部140は、ライブラリ制御部142を通して、メッセージをライブラリ・マネージャ152に送る。
【0053】
ライブラリ制御部142は、実テープ情報データベース138に結合され、この実テープ情報データベース138は、たとえば物理的ボリューム156の情報テーブルを格納している。ライブラリ制御部142は、実テープ・ライブラリ装置150においてテープ・カートリッジ156を着脱するロボットの駆動制御や、装着された磁気テープの送り機構を駆動させてテープを送ったり戻したりする制御を行うプログラムとすることができる。
【0054】
実テープ・ライブラリ装置150のライブラリ・マネージャ152は、テープ・ドライブ154A・・・154Mに対するテープ・カートリッジ156A・・・156Nのマウント及びアンマウントを管理する。データ転送制御部140は、適切な物理的なテープ・カートリッジ156を選択し、アクセスされた又は書き込まれた論理ボリューム162との関連に基づいてマウントする。ライブラリ・マネージャ152が、テープ・カートリッジ156をマウント又はアンマウントする通知を受け取ると、テープ・ドライブ154A・・・154Mにアクセスするために用いられるアクセス機構158に通知する。アクセス機構158は、テープ・ドライブ154A・・・154Mをマウント及びアンマウントする。
【0055】
次に、VTS110 、キャッシュ160、および実(物理的)テープ・ライブラリ装置150の関係を図1のブロック図を再び参照して説明する。実テープ・ライブラリ装置150は、物理的装置154A・・・154Mを含むことに加えて、物理的ボリューム(物理テープまたは実テープ)156A・・・156Nを含む。物理的ボリューム156A・・・156Nは、任意の物理的装置154A・・・154Mにマウントすることもできる。物理的ボリューム156A・・・156Nには、テープ・ドライブである物理的装置154A・・・154Mに装着(即ち物理的にマウント)することができるテープ・カートリッジが含まれる。代替的な実施において、物理的ボリューム156A・・・156Nは、CD―ROM、DVD、又は他の記憶媒体とすることができる。特定の実施において、物理的ボリューム156A・・・156Nの数は、物理的装置154A・・・154Mの数より多い。物理的装置154A・・・154Mをプール内に組織化することができる。例えば、物理的ボリューム156A及び156Bは、プール157内にあってもよい。
【0056】
キャッシュ160と物理的装置154A ・・・154Mとの間で行われる操作は、キャッシュ160から物理的ボリューム156A・・・156Nへのデータ転送である、マイグレーションと、物理的ボリューム156A・・・156Nからキャッシュ160へのデータ転送である、リコール(「呼び戻し」とも呼ぶ)である。一般的なデータ・ファイルのサイズは、100〜200メガバイトである。通常、物理的装置154A・・・154Mより多くの物理的ボリューム156A ・・・156N(論理装置内に格納された論理ボリューム162に対応する)があるので、リコールのために、VTS110内にある物理的装置154A・・・154Mより多くの物理的ボリューム156A・・・156Nをマウントする時がある。その結果、他の物理的ボリューム156A・・・156Nをマウントできるように、物理的ボリュームを除去することが必要なこともある。
【0057】
ホスト102がVTS110に論理ボリューム162を要求するとき、論理ボリュームがキャッシュ160内にある場合、キャッシュ・ヒットが発生する。論理ボリュームがキャッシュ内にない場合には、ストレージ・マネージャ130が、対応する物理的ボリューム156A・・・156Nが物理的装置154A・・・154Mの1つにマウントされるかどうかを判断する。対応する物理的ボリューム156A・・・156Nがマウントされていない場合には、ストレージ・マネージャ130は、対応する物理的ボリューム156A・・・156Nを物理的装置154A・・・154Mの1つにマウントするように作動する。論理ボリュームについてのデータは、対応する物理的ボリューム156A・・・156Nから再び転送される、すなわちリコールされる。特定の実施において、リコール(呼び戻し)操作に、数分かかることがあり、リコールの待ち時間は、ロボット・アームがテープ・カートリッジにアクセスし、当該テープ・カートリッジをテープ・ドライブ内に挿入する時間、およびテープを所望の位置に配置する位置あわせ時間を含み得る。
【0058】
ストレージ・マネージャ130は、論理ボリューム162を物理的ボリューム156A・・・156Nにマッピングする。物理的ボリューム156A・・・156Nに対応する論理ボリューム162A・・・162Nは、キャッシュ160内にあってもよい。図1において、キャッシュ160は、論理ボリューム162A・・・162Nを含む。キャッシュ160上の論理ボリュームは、時間の経過と共に変化し得る。ストレージ・マネージャ130は、キャッシュ160内の論理ボリュームを使用する可能性を高く保持しようと試みる。
【0059】
ホスト102が論理ボリュームをVTS110に書き込むとき、データは、ファイルとしてキャッシュ160内に格納される。キャッシュに入れられたデータは、後で物理的ボリューム156A・・・156N上にマイグレーションされる。キャッシュ160が所定のしきい値まで満たされると、選択された論理ボリューム162A・・・162Nについての論理ボリュームのデータがキャッシュから除去され、より多くの論理ボリュームのためにスペースを空ける。なお、キャッシュに各論理ボリュームについて、論理ボリュームの冒頭の数レコード分、すなわち内部ラベル部を常に格納してもよい。
特定の実施において、ストレージ・マネージャ130は、最も長い時間、キャッシュ160上にあった論理ボリューム(すなわち、最長時間未使用の論理ボリューム)を、キャッシュ160から除去する。
【0060】
データを書き込むために、VTS110が用い得る標準的な書き込みシーケンスの一例を図3のフローチャート300に示す。書き込みシーケンスのプロセスは、装置ドライバ116が、ホスト102から、マウント・コマンドおよび書き込みコマンドをテープ・デーモン118A・・・118N についてのデータとともに受け取る、ステップ305で開始する。ステップ307において、ストレージ・マネージャ130は、書き込みのために、要求された論理ボリューム(LVOL)をマウントする。論理ボリュームのマウントは、開くこと(オープン)、位置決めすること、巻き戻すこと、その他、当該論理ボリュームの始まりに対して正しい位置でデータを読み書きする状態に論理ボリューム(LVOL)を置くあらゆる操作からなるものとすることができる。ホスト102は、データ・オブジェクト及びストレージ要求の形態で書き込みコマンドを送る。データ・オブジェクトは、論理ボリューム、ファイル、物理的ボリューム、論理的装置又は物理的装置、セクタ、ページ、バイト、ビット、又は他の何らかの適切なデータ単位を含むことができる。
【0061】
次にステップ310において、テープ・デーモン118A・・・118Nは、データを受信し、当該データをストレージ・マネージャ130に送る。ステップ315において、ストレージ・マネージャ130は、データ・オブジェクトをキャッシュ(DASD)160及び/又は実テープ・ライブラリ装置の物理的ボリューム156に書き込む。ストレージ・マネージャ130は、また、いくつかの情報データベース(図2のテープ・デーモン情報DB 132,仮想テープ情報DB134、 DASDスペース情報DB136、実テープ情報DB 138)に関連するデータを書き込むことができる(これらのデータはキャッシュ・メモリ148に一時的に格納してもよい)。ステップ315において又は適当な別のステップ時に、データの主格納場所とデータのバックアップ用格納場所との間でデータ・オブジェクトのコピーを行うこともできる。
【0062】
書き込み操作が完了していない場合には、必要に応じてステップ310、ステップ315、およびステップ320を繰り返す。書き込み操作が完了すると、ストレージ・マネージャ130は、現在のデータ・オブジェクトのメタデータをカプセル封入してもよい。メタデータのカプセル封入は、種々のメタデータ・サブコンポーネントを集め、これらを格納のために適切な形態で組み合わせることを含む。こうしたカプセル封入は、連結、集約、部分を統合された形にコード化すること、および暗号化等を伴う。メタデータは、そのメタデータに対応するデータが格納される論理ボリュームと関連付けられる。さらに、適当なデータ管理ポリシーのタイプによって、ステップ315において書き込まれるデータ・オブジェクトと共に、メタデータをキャッシュ160及び/又は別の格納場所(データベース)に書き込んでもよい。最後に、ステップ335において書き込みシーケンス300が終了する。
【0063】
データを読み取るために、VTS110が用い得る標準的な読み出し(読み取り)シーケンスの一例を、図4のフローチャート400に示す。フローチャート400のプロセスは、VTSから情報を得るためのプロセスの一例であり、他のプロセスを用いることもできる。読み出しシーケンス400は、装置ドライバ116が、特定の論理ボリューム162のマウント要求をホスト102から受け取ったときに開始される(ステップ405)。マウント要求をホスト102から受け取ったことに応答して、装置ドライバ116は、読み出し要求をテープ・デーモン118A・・・118N及びストレージ・マネージャ130に送る。ステップ407において、論理ボリュームがまだキャッシュ160内にないかどうか確認し、キャッシュ160内にない場合は、読み出すために要求された論理ボリュームと関連した物理的テープ・カートリッジをマウントする。ステップ410において、論理ボリュームについてのデータ及びメタデータが読み出される。ステップ415において、読み出されたデータがホスト102に戻される。ステップ420において、要求された論理ボリュームの読み出しの状態が調べられ、読み出しが完了したかどうかを判断する。読み出しが完了した場合には、制御は、ステップ435に移る。読み出しが完了していない場合には、読み出しが完了するまでステップ410、ステップ415、及びステップ420が繰りかえし実行され、完了すると、ステップ435においてプロセスが終了する。
【0064】
本発明の一実施形態の概要を説明するプロセスフローの例を、図5のフローチャートに示す。これは仮想テープ記録装置(VTS)110において、ホスト102から論理ボリューム(LVOL)のマウント要求を受け取ったときに、LVOLのマウントが書き込み(Write)を目的とするものと判断される場合には、たとえLVOLのデータが仮想記憶領域であるキャッシュ160(DASD、ディスク)上に存在しない場合でも、LVOLデータを実テープ・ライブラリ装置150(の物理的ボリューム156)からキャッシュ160へのデータのコピーを行なわずに、マウント時間を削減するため方法の概要である。
【0065】
図2を参照しながら、本実施の形態である図5のプロセスフローを以下に説明する。プロセスは、ステップ510において、VTSに外部接続されたホスト102からホスト・インターフェース112および装置ドライバ116を介して、仮想テープ・ドライブ(VTD)であるテープ・デーモン118がホスト102から論理ボリューム(LVOL)162のマウント要求を受け取る。次に。仮想テープ・ドライブ(VTD)118に結合された、制御部であるストレージ・マネージャ130が、DASDスペース情報DB136を参照して、マウント要求された論理ボリューム(LVOL)162が仮想記憶領域であるキャッシュ(DASD)160上にあるか判断する。LVOL162がキャッシュ160上にあると判断されると、制御部130はホストへマウント完了を通知する。ステップ520で、制御部によってLVOL162がキャッシュ160上にないと判断されると、本実施の形態であるステップ530へ進み、マウント要求が書き込み要求であるかを制御部130が判断する。このステップ530は、後述の図6を用いて詳細に説明する。ステップ530で、制御部130が「書き込み」要求であると判断すると、LVOLのデータを実テープ・ライブラリ150からキャッシュ160に読み出す(コピーする)ことなく、ホスト102へマウント完了を通知する(ステップ550)。
【0066】
ステップ530において、書き込み要求ではないと判断されると、通常の操作として、実テープ・ライブラリ装置150において、要求されたLVOL162に対応する物理ボリューム156をテープ・ドライブ154にアクセス機構158を用いて挿入し、ライブラリ・マネージャ152を介して、制御部130のライブラリ制御部142によって、キャッシュ160に要求されたLVOLのデータを読み出す(すなわちコピーする)(ステップ540)。その後、制御部130はホスト102へマウント完了を通知する(ステップ550)。そして、ステップ590においてプロセスが終了する。なお、LVOLのマウント完了に続いて、VTS110は、ホストからの要求に対する書き込み処理(図3のステップ310以降のステップ)および読み出し処理(図4のステップ410以降のステップ)を行うことができる。たとえば、ホスト102がLVOLデータ情報の読み出しを必要とする場合は、そのLVOLのデータ情報を実テープ・ライブラリ150の物理テープ156からVTS110のキャッシュ160へ読み出すことも可能である。
【0067】
本実施の形態に対して、従来の方法は、図5のステップ520でLVOLがキャッシュ(仮想記憶領域)160に存在しないと制御部130が判断すると、制御部130のライブラリ制御部142を通じて実テープ・ライブラリ装置150の対応する物理的ボリューム(すなわち物理テープ)156から、ホストから要求されたLVOLのデータをキャッシュ160にコピーし(ステップ540)、コピーが完了した後、VTS110がホスト102へマウント完了を通知する(ステップ550)。この場合には、ホスト102からのマウント要求が書き込要求であったとしても、実テープ・ライブラリ装置150での物理テープ156の物理的テープ・ドライブ154へのマウント完了からキャッシュ160へのLVOLデータのコピーが完了するまでの一連の作業が完了するまで待機する必要がある。このため分単位の処理時間がかかる。たとえば、バックアップなどのようにLVOLデータを丸ごと書き換えたい場合には、上記の一連の作業は不要であり、マウント時間を無駄に消費していた。
【0068】
図5のフローチャートにおけるステップ530、すなわちホスト102からのマウント要求が書き込み要求であるかどうかを判断するステップを、図6を用いてより詳細に説明する。この書き込み要求であるかを判断するステップは、いくつかのステップ(ステップ532、ステップ534、およびステップ536〜538)を含み、これらのステップは連続して用いることもできるし、独立して用いることもできるし、さらに各ステップを任意に組み合わせることもできる。図5のステップ520において、制御部130がLVOL162がキャッシュ(DASD)160に存在しない判断すると、ステップ532に進む。このステップ532において、制御部130が、ホスト102からマウント要求を受け取った仮想テープ・ドライブ(VTD)、すなわちテープ・デーモン118が、書き込み専用の属性を設定されたものであるか判断する。これは、たとえば、図2のテープ・デーモン情報データベース132に格納されたテープ・デーモン(仮想テープ・ドライブ)118の属性テーブル情報を制御部130が参照し、マウント要求を受け取ったテープ・デーモン118が書き込み専用の属性を設定されたもの(たとえば図2で、VTD−W 118C)と制御部130が判断すると、物理的装置であるテープ・ドライブ154および物理的ボリュームであるテープ・カートリッジ(テープメディアとも呼ぶ)156を作動させることなく、制御部130はホスト102へマウント完了を通知する(ステップ550)。
【0069】
テープ・デーモン情報データベース132は、テープ・デーモン118と実テープ・ライブラリ150のテープ・ドライブ154とのマッピング情報、および各テープ・デーモンの所定のホストに対して書き込み専用であることを示す仮想テープ・ドライブ属性テーブルを格納する。制御部130は、このマッピング情報およびこの属性テーブルから書き込み専用の仮想テープ・ドライブ118を実テープ・ライブラリ150に関連付ける。1つのテープ・デーモンが複数のホストに対して書き込み専用として割り付けられてもよい。さらに、1つのテープ・デーモンがあるホストに対して書き込み専用と設定され、別のホストに対して書き込みでも読み出しでもよい汎用タイプとして設定されてもよい。なお、テープ・デーモン118の書き込みの属性については、VTS110に接続された操作端末105からの直接入力、またはホスト102からのコマンドによって動的に変更することも可能である。またテープ・デーモン118の書き込みの属性をそのVTSに接続されるホスト102によって固定してもよい。
【0070】
ステップ532で、テープ・デーモン(仮想テープ・ドライブ)118が書き込み専用でないと判断された場合、ステップ534へ進み、マウント要求された論理ボリューム(LVOL)のデータ情報の書き込みに関する属性をチェックする。すなわち、制御部130は、LVOL属性データ170を格納した仮想テープ情報データベース(DB)134にアクセスし、LVOL属性データ170において書き込み専用フラグがセットされているか確認する。LVOL属性データ170に書き込み専用フラグがセットされている場合には、ステップ550へ進んで、制御部130はホスト102へマウント完了を通知する。
【0071】
ステップ534で、LVOL属性データ170において書き込み専用フラグ(たとえば、書き込み専用の場合に「1」がセットされる)がセットされていない場合、マウント要求された論理ボリューム(LVOL)に対する統計データ情報(以下で説明するマウント統計レコード180を用いて)から、書き込みが想定されるかどうかを判断するステップ536〜538へ進む。ステップ536において、制御部130は、まず、マウント要求されたLVOLの統計データ情報から、当該マウント要求が読み出しを伴うものかどうか、そしてその読み出しの周期性(当該マウント要求の発生時刻の解析による)を確認する。すなわち、制御部130は、LVOLのマウント統計レコード180(詳細は図7を用いて後述)を格納した仮想テープ情報DB 134にアクセスし、そのLVOLデータの読み出しが所定の発生時間間隔のゾーン(周期)に該当するかどうかを確認する。次に、ステップ536において、制御部130が周期性ありと判断すると、ステップ538へ進み、その周期において、読み出し(Read)しない確率を所定の閾値と比較し、読み出ししない確率が閾値以上の場合は、ステップ550へ進んで、制御部130はホスト102へマウント完了を通知する。
【0072】
ステップ536で周期性がないと判断される場合およびステップ538で読み出ししない確率が閾値を超えない場合には、ステップ540へ進み、要求されたLVOLのデータを実テープ・ライブラリ装置150からキャッシュ160に読み出す。このキャッシュ160にLVOLのデータを読み出すステップは、制御部130のライブラリ制御部142を介して、実テープ・ライブラリ装置150のライブラリ・マネージャ152と通信し、要求されたLVOL162のデータに対応する物理的ボリューム156をテープ・ドライブ154にアクセス機構158を用いて装着することにより行う。
【0073】
なお、本実施の形態において、書き込みを判断するステップである、ステップ532、ステップ534、ステップ536およびステップ538が一連のステップとして連続する形態で説明したが、それぞれのステップは独立して行うこともステップの順番を変更することもできる。たとえば、図6のステップ532でNOの場合およびステップ534でNOの場合において、ステップ540へ進んで、実テープ・ライブラリ装置150から要求されたLVOLのデータをキャッシュ160読み出すこともできる。ステップ536およびステップ538で参照するマウント要求の統計データ情報により、「書き込み」の想定を行うことと並行して、または独立して(書き込みの想定が外れることを保証するため)、事前(immediate)マウントを行うこともできる。この事前マウントとは、VTS110のCPU128がマウント要求の周期性をモニターし、必要に応じて、ストレージ・マネージャ130にコマンドを出して、事前に該当するLVOLのデータ情報を含む物理テープ156をテープ・ドライブ(物理的装置)154にマウントし、位置合わせを行うことである。この事前マウントにより、書き込みの想定が外れるケースも含め、ホストから読み出し要求が来た場合に、新たにLVOLデータの情報を物理テープからキャッシュへ読み出し、位置合わせを行うための処理時間を短縮することもできる。また、事前マウントにおいて、物理テープ156をテープ・ドライブ154にマウントするが、位置合わせを行わないようにすることもできる。これにより、物理テープから読み出す必要がなかった場合に、物理テープをテープ・ドライブから取り出す時間を短縮することができる。さらに、事前マウントは、位置合わせ後にLVOLデータ情報の一部、もしくは全部を事前に物理テープ156からキャッシュ160へ読み出しておいてもよい。これにより、物理テープから読み出す必要があった場合に、LVOLのマウントに要する時間を短縮することができる。
【0074】
次に、ホスト102からマウント要求されたLVOLのマウント統計データを収集し、マウント統計レコード180を作成および更新する方法を図7のフローチャート600に示す。まず、ステップ610で、VTS110がホスト102から関連するLVOLのアンマウント要求を受け取る。次に、VTS110の制御部130がそのLVOLのデータ情報を、データ転送制御部140を介して仮想テープ情報データベース(DB)134に格納されたマウント統計レコード180に登録されているか判断する(ステップ620)。このマウント統計レコード180には、LVOL名、直近のマウント時刻、読み出し有りのマウント統計および読み出し無しのマウント統計について、それぞれ発生時間間隔(ゾーン)ごとのマウント統計、およびマウント予測時刻(詳細は後述)などが含まれる。ステップ620で、マウント統計レコード180に登録されていない(NOの)場合は、マウント統計レコードに、少なくともLVOL名、直近のマウント時刻を登録する(ステップ640)。ステップ620で、マウント統計レコード180に登録されている(YESの)場合は、マウント統計レコードについて、少なくともLVOL名、直近のマウント時刻を更新する(ステップ630)。そして、ステップ630またはステップ640が完了したら、ステップ650に進み、VTS110は、LVOLのアンマウントを行う。
【0075】
ホスト102からの特定ボリューム・マウント要求(Specific Volume MountRequest)の判別およびそのマウント要求の統計に基づく次回マウント時刻の予測により、VTS110は、事前マウント(immediate マウント)を行うことができる。換言すれば、VTS110がLVOLデータの書き込みのアクセス解析を行い、次回のマウントを予測して事前マウントを行うことが可能となる。この事前マウントにより、VTS110は、テープ・ドライブ154にテープ・カートリッジ(物理テープ)156を装着するだけで、論理ボリューム(LVOL)162をキャッシュ(DASD)160にリコールすることなくマウント完了をホストに通知することができる。
【0076】
ホスト102からマウント要求されたLVOLのマウント統計データを収集して、マウント予測時刻を推定し、このマウント予測時刻を用いて該当するLVOLの事前マウントを行うための実施形態の一例を以下の図8〜図11を用いて説明する。図8は、VTS110がマウント統計レコードから次回マウント時刻を予測するための方法である、フローチャート700を示す。
まずステップ710でVTS110は、ホスト102からのマウント要求が特定ボリューム・マウント要求かどうかを判断する。VTS110は、ホストアプリケーションからのマウント要求が特定の論理(テープ)ボリュームを指名するマウント要求である場合は、特定ボリューム・マウント要求と判断することができる。次に、そのマウント要求が、特定ボリューム・マウント要求と判断されなかった場合(ステップ710でNO)は、次のマウント要求を待機する。ステップ710でYESの場合は、ステップ720に進み、要求されたLVOLについて、VTS110の制御部130がそのLVOLのデータ情報を含むマウント統計レコード180が存在するかを判断する。ステップ720で、マウント統計レコード180が存在しない(NOの)場合には、新たにマウント統計レコードを作成し、そのレコード中に直近のマウント時刻を記録する(ステップ760)。
【0077】
ステップ720で該当するLVOLについてのマウント統計レコードが存在する(YESの)場合、現在のマウント時刻と直近のマウント時刻の時間間隔(インターバル)をCPU128が算出し、その時間間隔を事前に設定された時間ゾーン(周期性のインターバル)に割り振り、その時間ゾーンごとにマウント要求回数を累積する(ステップ730)。
事前に設定された時間ゾーン(周期性のインターバル)の例を以下に挙げる。
12時間 +/− 1時間 => 12時間インターバル
24時間 +/− 1時間 => 1日インターバル
7日 +/− 6時間 => 1週インターバル
30日 +/− 1日 => 1月インターバル
365日 +/− 1週 => 1年インターバル
など。
【0078】
次に、ステップ740に進み、時間ゾーンごとに累計されたマウント回数を比較し、最大のマウント回数を有するゾーンの時間間隔を現在のマウント時刻に加算して、次回のマウント時刻の推定値を示すマウント予測時刻を求める。次に、ステップ750に進み、求めたマウント予測時刻をマウント統計レコード180に記録し、さらに、LVOL名とマウント予測時刻を「予測マウント更新部(プログラム)」に非同期(イベント)通知する。そして処理を終了する(ステップ790)。この「予測マウント更新部」は、制御部130のデータ転送制御部140の1つの機能プログラムであり、仮想テープ情報データベース(DB)134に格納されたマウント統計レコード180の更新を行う。
【0079】
マウント統計レコード180は、たとえば論理ボリューム名、マウント予測時刻、マウント統計のフィールドを持つレコードとすることができる。このマウント統計はたとえばn個の配列(nは1以上の整数)から構成され、各配列の要素がマウント間隔をあらわす。上記ステップ740の例の場合、m[0](12時間インターバル)からm[4](1年インターバル)まで5つのゾーンに分けられたマウント統計情報を有する。
【0080】
図9に、事前マウントのためのマウント予測時刻のスケジュール更新のフローチャート800を示す。このマウント予測時刻のスケジュール更新は、「予測マウント更新部」によって行われ、図8のステップ750で非同期通知を受けた時に、予測マウント更新部が起動し、フローチャート800の各ステップを行う。
まず、ステップ810で、予測マウント更新部は、LVOL名とマウント予測時刻の非同期通知(以下でイベント通知とも呼ぶ)を受け取るまで待機する。次に、予測マウント更新部は当該イベント(非同期)通知を受け取ると起動し、データ転送制御部140に結合された仮想テープ情報データベース(DB)134に格納された予測マウント・テーブル190をオープンする(ステップ820)。そして、イベント通知の内容に基づいて、予測マウント・テーブル190内に少なくともLVOL名およびマウント予測時刻のフィールドを有するレコード(予測マウント・レコード)の追加および更新を行う(ステップ840)。換言すれば、この予測マウント・レコードは、予測マウント更新部が参照するレコードである。最後に、予測マウント更新部は当該予測マウント・テーブル190をクローズする(ステップ850)。好ましくは、これらのステップ810〜850を繰り返して、マウント予測時刻のスケジュールを更新する。
【0081】
図10に、事前マウントのスケジュール更新のフローチャート900を示す。この事前マウントのスケジュール管理を含む一連のプロセスは、「事前マウント・スケジューラ」によって行われ、この事前マウント・スケジューラは、所定のインターバル時間(以下の説明ではN分)ごとに起動されるプログラム(プロセス)である。この事前マウント・スケジューラは、制御部130のデータ転送制御部140の1つの機能プログラムとすることができる。
まず、ステップ910で、事前マウント・スケジューラは、所定のインターバル時間が経過するまで待機する。次に、事前マウント・スケジューラがインターバル(たとえばN分)経過後、起動し(ステップ920)、データ転送制御部140に結合された仮想テープ情報DB134に設けた予測マウント・テーブル830をオープンする(ステップ930)。
【0082】
次に、予測マウント・テーブル830に基づいて、以下の条件にあう予測マウント・レコードを選択する(ステップ940)。
スケジューラ起動時刻≦事前マウント時刻≦スケジューラ現在時刻+インターバル(N)
ステップ940で選択された予測マウント・レコードをN÷M(1≦M≦N)の時間ゾーン(以下、「バンド」)に振り分ける(ステップ950)。次に、事前マウント・スケジューラは、LVOLに対応して事前マウントを行うために各バンド時刻でタイマ起動するようにスケジュール設定を行う。このとき、各バンドに属する予測マウント・レコードの論理ボリューム(群)を事前マウントのための引数として与える(ステップ960)。最後に、事前マウント・スケジューラは、予測マウント・テーブルをクローズする(ステップ970)。これらのステップ910〜970を繰り返して、事前マウントのスケジュールを更新する。
【0083】
図11は、事前マウントの実行プロセスを示すフローチャート1000である。事前マウント(immediateマウント)はVTS110によって実行され、事前マウント・スケジューラによってタイマ起動する。
まず、ステップ1010で、制御部130は、データ転送制御部140に結合された仮想テープ情報データベース(DB)134に設けた予測マウント・テーブル190をオープンする。そして、制御部130は、予測マウント・テーブル190に基づいて、各バンドに属する予測マウント・レコードのLVOL(群)のうち、引数として与えられたLVOLのデータを含む物理テープ156を事前マウントするように作動する(ステップ1020)。次に、事前マウントを実行したLVOLに関連する予測マウント・レコードを削除する(ステップ1030)。そして、制御部130は事前マウントすべきLVOLがまだ存在するかどうかを判断する(ステップ1040)。引数によりまだ事前マウントすべきLVOLが存在する場合は、ステップ1020〜ステップ1040を繰り返す。事前マウントすべきLVOLが存在しない場合は、予測マウント・テーブル190をクローズする(ステップ1050)。
【0084】
本実施の形態において、書き込み専用の設定をされた仮想テープ・ドライブ(テープ・デーモン)に論理ボリューム(LVOL)のマウント要求を受けた場合、ホストにマウント完了を通知する前に、あるいは、そのマウント完了の通知と並行して事前マウントを実施しても良い。しかしながら、事前マウントを必ずしも実施する必要はない。また、書き込み専用の設定をされた仮想テープ・ドライブに論理ボリューム(LVOL)のマウント要求を受けた場合、実テープ・ライブラリ装置のテープ・ドライブおよびテープ・カートリッジを必ずしも作動させる必要はない。
【0085】
また、ホストから論理ボリューム(仮想テープ、仮想テープ・メディア)にデータを書き込むタイミングと、そのデータを物理ボリューム(物理テープ)に書き込むタイミングは必ずしも同じではないことに留意されたい。また、書き込む際に選択され利用される物理テープは、論理ボリューム(LVOL)名(識別子ID)によって一意に決まるものではないことにも留意されたい。
【0086】
本発明によれば、ある1つの論理ボリューム(LVOL)を複数のホストが利用しようとした場合に、あるホストは書き込み専用の設定をされた仮想テープ・ドライブ(テープ・デーモン)により書き込み専用として、また別のホストは、読み出し用として、それぞれ別の目的で1つの論理ボリュームを並行して使用するこも可能である。
【0087】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。
【符号の説明】
【0088】
102 ホスト
105 操作端末(オペレータ・インターフェース)
110 仮想テープ記録装置(VTS)
112 ホスト・インターフェース
116 装置ドライバ
118 仮想テープ・ドライブ(VTD)、テープ・デーモン
119 ファイル・システム・マネージャ(FSM)
128 中央処理装置(C PU)128
130 制御部(ストレージ・マネージャ)
132 テープ・デーモン情報データベース(DB)
134 仮想テープ情報データベース(DB)
136 DASD(仮想記憶領域)スペース・データベース(DB)
138 実テープ情報データベース(DB)
140 データ転送制御部
142 ライブラリ制御部
144 キャッシュ・インターフェース部
146 ライブラリ・インターフェース部
148 キャッシュ・メモリ(一時記憶)
150 実テープ・ライブラリ装置
152 ライブラリ・マネージャ
154 テープ・ドライブ、物理的装置
156 テープ・カートリッジ、物理的ボリューム(物理テープ)
158 アクセス機構
160 キャッシュ、仮想記憶領域(DASD、ディスク)
162 論理ボリューム(LVOL)、仮想テープボリューム
170 LVOL属性テーブル
180 マウント統計レコード
190 予測マウント・テーブル

【特許請求の範囲】
【請求項1】
ホストシステムからのマウント要求に対する仮想テープ記録装置(VTS)による処理方法であって、
仮想テープ記録装置の仮想テープ・ドライブ(VTD)が、前記ホストシステムから論理ボリューム(LVOL)のマウント要求を受け取るステップと、
前記仮想テープ・ドライブ(VTD)に結合された前記仮想テープ記録装置の制御部が、前記仮想テープ記録装置の仮想記憶領域(キャッシュ)に前記論理ボリュームが存在するかを判断するステップと、
前記仮想記憶領域に前記論理ボリュームがないと判断された場合は、前記制御部が、前記マウント要求が書き込み要求であるかを判断するステップと、
前記マウント要求が書き込み要求であると判断された場合は、前記マウント要求された前記論理ボリュームを、前記仮想テープ記録装置に外部接続される実テープ・ライブラリ装置から前記仮想記憶領域に読み出しを行わずに、前記ホストシステムにマウント完了を通知するステップと
を含む方法。
【請求項2】
前記書き込み要求であるかを判断するステップは、前記仮想テープ・ドライブ(VTD)が、書き込み専用の属性を設定されていることに基づいて、前記制御部が書き込み要求であると判断するステップを含む、請求項1に記載の方法。
【請求項3】
前記書き込み要求であるかを判断するステップは、前記論理ボリューム(LVOL)のデータ情報における書き込み専用フラグに基づいて、前記書き込み専用フラグがセットされている場合は、前記制御部が書き込み要求であると判断するステップを含む、請求項1乃至2に記載の方法。
【請求項4】
前記書き込み要求であるかを判断するステップは、前記ホストシステムからマウント要求される論理ボリューム(LVOL)の統計情報に基づいて判断するステップであって、前記統計情報を用いて、読み出しの発生時間間隔の周期性を判断するステップと、前記周期性がある場合において、前記発生時間間隔における読み出しを行わない確率を所定の閾値と比較するステップとを含み、前記比較において前記読み出しを行わない確率が前記閾値以上の場合には、前記制御部が書き込み要求であると判断するステップを含む、請求項2乃至3に記載の方法。
【請求項5】
前記書き込み要求であるかを判断するステップにおいて、
前記ホストシステムからマウント要求される論理ボリューム(LVOL)の統計情報に基づいて、前記論理ボリュームの次回マウント時刻の予測値を算出するステップと、
前記予測値に基づいて、設定された時刻に応じて事前に前記論理ボリュームに対応する物理ボリュームを前記実テープ・ライブラリ装置にマウントするステップと、
を含む、請求項1に記載の方法。
【請求項6】
前記統計情報は、論理ボリューム名、直近のマウント時刻、マウントの周期性データを含むマウント統計レコードであって、前記マウント統計レコードは前記制御部に結合された仮想テープ情報データベースに格納され、前記マウント要求された論理ボリューム(LVOL)のデータに基づいて登録および更新される、請求項4乃至5に記載の方法。
【請求項7】
前記書き込み専用の属性の設定は、前記仮想テープ記録装置(VTS)に外部接続された操作端末からの前記制御部へのコマンド入力または前記ホストシステムからの前記仮想テープ・ドライブ(VTD)へのコマンド入力によって更新される、請求項2に記載の方法。
【請求項8】
前記仮想記憶領域に前記論理ボリュームが存在する場合、前記仮想テープ記録装置は前記ホストシステムにマウント完了を通知し、
前記マウント要求が書き込み要求であると判断されない場合、前記マウント要求された前記論理ボリュームを前記実テープ・ライブラリ装置から前記仮想記憶領域に読み出した後、前記ホストシステムにマウント完了を通知する、請求項1に記載の方法。
【請求項9】
前記ホストシステムからのマウント要求が、特定のテープボリュームを指名する特定ボリューム・マウント要求である、請求項1乃至8に記載の方法。
【請求項10】
ホストシステムからのマウント要求に対する処理を行う仮想テープ記録装置(VTS)であって、
前記ホストシステムから論理ボリューム(LVOL)のマウント要求を受け取る、少なくとも1つの仮想テープ・ドライブ(VTD)と、
前記論理ボリューム(LVOL)を格納する、仮想記憶領域(キャッシュ)と、
前記仮想テープ・ドライブと結合され、前記仮想記憶領域に前記論理ボリュームが存在するかを判断し、前記仮想記憶領域に前記論理ボリュームがないと判断された場合は、前記マウント要求が書き込み要求であるかを判断する、制御手段とを含み、
前記制御手段は、前記マウント要求が書き込み要求であると判断された場合は、前記マウント要求された前記論理ボリュームを、前記仮想テープ記録装置に外部接続される実テープ・ライブラリ装置から前記仮想記憶領域に読み出しを行わずに、前記ホストシステムにマウント完了を通知する、仮想テープ記録装置。
【請求項11】
前記書き込み要求であるかの判断は、少なくとも前記仮想テープ・ドライブ(VTD)の書き込み専用の属性の設定、および前記論理ボリューム(LVOL)のデータ情報における書き込み専用フラグの設定に基づく、請求項10に記載の仮想テープ記録装置。
【請求項12】
前記書き込み要求であるかの判断は、前記ホストシステムからマウント要求される論理ボリューム(LVOL)の統計情報に基づき、前記統計情報を用いて、読み出しの発生時間間隔の周期性を判断し、前記周期性がある場合において、前記発生時間間隔における読み出しを行わない確率を所定の閾値と比較し、前記比較において前記読み出しを行わない確率が前記閾値以上の場合に、前記制御手段が書き込み要求であると判断する、請求項10乃至11に記載の仮想テープ記録装置。
【請求項13】
前記制御手段は、
仮想テープ・ドライブ情報データベースおよび仮想テープ情報データベースに結合され、前記仮想記憶領域との間のデータ転送を制御するデータ転送制御部と
前記仮想テープ記録装置に外部接続される実テープ・ライブラリ装置へのアクセスを制御するライブラリ制御部と、
を含む、請求項10に記載の仮想テープ記録装置。
【請求項14】
前記仮想テープ・ドライブ情報データベースは、前記仮想テープ・ドライブと前記実テープ・ライブラリ装置内のテープ・ドライブとのマッピング情報および前記ホストシステムに対応する前記仮想テープ・ドライブの書き込み属性テーブルを含み、前記属性テーブルは前記仮想テープ・ドライブが書き込み専用であるかを区別し、
前記仮想テープ情報データベースは、前記論理ボリューム(LVOL)の属性テーブルと、前記マウント要求の統計情報を含むマウント統計レコードとを含む、請求項13に記載の仮想テープ記録装置。
【請求項15】
前記仮想テープ情報データベースは、前記仮想テープ記録装置が事前マウントを行うときに参照する予測マウント・テーブルをさらに含み、前記予測マウント・テーブルは、論理ボリューム名とマウント予測時刻の対応関係を含む、請求項14に記載の仮想テープ記録装置。
【請求項16】
前記仮想テープ・ドライブは、前記マウント要求をした前記ホストシステムに対応して書き込み専用の属性が設定され、前記仮想テープ記録装置に外部接続される、操作端末あるいは前記ホストシステムからの入力に基づいて、前記書き込み専用の属性が更新され、
前記論理ボリューム(LVOL)の前記書き込み専用フラグの設定は、前記ホストシステムからのマウント要求時に行われる、請求項11に記載の仮想テープ記録装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−123834(P2011−123834A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−283204(P2009−283204)
【出願日】平成21年12月14日(2009.12.14)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】