以下に、本願の開示する仮想テープ装置およびクリーニング制御方法の実施例を図面に基づいて詳細に説明する。なお、本実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。以下では、仮想テープシステムに本発明を適用した場合について説明する。
[仮想テープシステムの構成]
図1は、実施例に係る仮想テープシステムの構成を示す機能ブロック図である。図1に示すように、仮想テープシステム9は、仮想テープ装置1とテープライブラリ装置2とを有する。また、仮想テープシステム9は、ホスト3と互いに通信可能に接続される。
テープライブラリ装置2は、物理テープドライブ21を有する。物理テープドライブ21は、テープカートリッジの挿入を受け付けて、仮想テープシステム9の実運用上におけるデータの読み書きを行う。なお、物理テープドライブ21の数は図示したものに限定されるものではなく、変更可能である。
仮想テープ装置1は、テープライブラリ装置2を仮想化する。さらに、仮想テープ装置1は、ICP(Integrated Cannel Processor)11と、IDP(Integrated Device Processor)12と、ディスクアレイ13と、VLP(Virtual Library Processor)14とを有する。
ディスクアレイ13は、データを仮想的に記憶し、例えばTVC(Tape Volume Cache)を一例とする。ICP11は、仮想テープドライブ111をディスクアレイ13で構築し、構築した仮想テープドライブ111を用いてホスト3とのインタフェースを制御する。仮想テープドライブ111は、テープカートリッジに記憶されたデータを仮想的に記憶する。なお、仮想テープドライブ111の数は、図示したものに限定されるものではなく、変更可能である。
IDP12は、テープライブラリ装置2とのインタフェースを制御する。VLP14は、ディスクアレイ13を管理するとともに、仮想テープ装置1全体を制御する。さらに、VLP14は、記憶部15と制御部16とを有する。
記憶部15は、例えばRAM(Random Access Memory)、フラッシュメモリ(Frash Memory)などの半導体メモリ素子などの記憶装置に対応する。そして、記憶部15は、制御管理テーブル151と、仮想ドライブ管理テーブル152と、物理ドライブ管理テーブル153とを有する。
制御管理テーブル151は、クリーニング制御に用いられる情報を各仮想テープドライブ111に対応付けて記憶する。なお、制御管理テーブル151は、例えば後述するクリーニング要求中継部161や閾値算出部166によって更新される。
仮想ドライブ管理テーブル152は、仮想テープドライブ111の使用時間、すなわち仮想テープドライブ111に仮想テープがマウントされた累積時間を、各仮想テープドライブ111に対応付けて記憶する。なお、仮想ドライブ管理テーブル152は、例えば、ICP11によってVLP14を介して更新される。
物理ドライブ管理テーブル153は、物理テープドライブ21の使用時間、すなわち物理テープドライブ21にテープカートリッジがマウントされた累積時間を、各物理テープドライブ21に対応付けて記憶する。なお、物理ドライブ管理テーブル153は、例えばVLP14によって更新される。なお、各テーブルの詳細は、後述する。
制御部16は、テープライブラリ装置2内の物理テープドライブ21のクリーニング制御を行う。例えば、制御部16は、ホスト3から当該ホストに割り当てられた所定の仮想テープドライブ111のクリーニング命令を受け取ると、該クリーニング命令を自装置と接続されるテープライブラリ装置2に出力するか否かを判定する。そして、制御部16は、該クリーニング命令をテープライブラリ装置2に出力すると判定した場合、該クリーニング命令がされた仮想テープドライブ111に対応する、テープライブラリ装置2内の物理テープドライブ21にクリーニングを指示する。
ここで、ホスト3からのクリーニング命令は、例えば、ホスト3にインストールされたテープ制御ソフトウェア31によって発行される。テープ制御ソフトウェア31は、物理テープドライブ21に対する、以下の3種のクリーニング処理を仮想テープ装置1に実施させるべく、仮想テープドライブ111を介してクリーニング命令を発行する。第1のクリーニング処理は、物理テープドライブ21自体からクリーニング要求が発行された場合、クリーニング要求が発行された物理テープドライブ21のクリーニングを実施する。この第1のクリーニング処理を「物理テープドライブから要求された場合のクリーニング」とする。第2のクリーニング処理は、一定周期が到来した場合、全ての物理テープドライブ21のクリーニングを順次実施する。この第2のクリーニング処理を「周期クリーニング」とする。第3のクリーニング処理は、物理テープドライブ21の使用時間が所定の閾値を超えた場合、閾値を超えた物理テープドライブ21のクリーニングを実施する。この第3のクリーニング処理を「使用時間が閾値を超えた場合のクリーニング」とする。このように、テープ制御ソフトウェア31は、これらクリーニング処理を仮想テープ装置1に実施させるために、仮想テープドライブ111を介してクリーニング命令を発行する。そして、制御部16は、テープ制御ソフトウェア31からのクリーニング命令を適切な指示に変換して、物理テープドライブ21にクリーニングを指示する。
なお、制御部16は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの集積回路に対応する。そして、制御部16は、クリーニング要求中継部161と、クリーニング命令判定部162と、第1の指示部163と、連続受領判定部164と、第2の指示部165と、閾値算出部166と、第3の指示部167とを有する。
クリーニング要求中継部161は、テープライブラリ装置2内の物理テープドライブ21からクリーニング要求を受領した場合、複数の仮想テープドライブ111のうち、仮想テープがマウントされていない仮想テープドライブ111を選択する。そして、クリーニング要求中継部161は、選択した仮想テープドライブ111のクリーニング要求をホスト3に中継する。すなわち、クリーニング要求中継部161は、ホスト3内のテープ制御ソフトウェア31に対し、選択した仮想テープドライブ111のクリーニング命令を促す。
また、クリーニング要求中継部161は、テープ制御ソフトウェア31にクリーニングを要求したことを示す「クリーニング要求フラグ」をONに設定する。かかるクリーニング要求中継部161は、第1のクリーニング処理のために、クリーニング要求がされた物理テープドライブ21を未使用の仮想テープドライブ111に代えてホスト3にクリーニング命令を発行させる。
クリーニング命令判定部162は、ホスト3から仮想テープドライブ111のクリーニング命令を受領すると、該クリーニング命令をテープライブラリ装置2に出力するか否かを判定する。例えば、クリーニング命令判定部162は、ホスト3から仮想テープドライブ111のクリーニング命令を受領すると、クリーニング要求フラグがONであるか否かを判定する。
クリーニング命令判定部162は、クリーニング要求フラグがONであると判定した場合、該クリーニング命令をテープライブラリ装置2に出力すると判定する。すなわち、クリーニング命令判定部162は、該クリーニング命令が「物理テープドライブから要求された場合のクリーニング」を実施させるための命令であると判断する。そして、クリーニング命令判定部162は、該当する仮想テープドライブ111のクリーニングの実施を第1の指示部163に指示する。
クリーニング命令判定部162は、クリーニング要求フラグがONでないと判定した場合、該クリーニング命令をテープライブラリ装置2に出力しないと判定する。すなわち、クリーニング命令判定部162は、該クリーニング命令が「周期クリーニング」または「使用時間が閾値を超えた場合のクリーニング」を実施させるための命令であると判断する。そして、クリーニング命令判定部162は、該当する仮想テープドライブ111のクリーニング命令を連続受領判定部164に出力する。
また、クリーニング命令判定部162は、後述する制御管理テーブル151に対し、仮想テープドライブのクリーニング命令を受領したことを示す「受領フラグ」を当該仮想テープドライブに対応付けてONに設定する。ここで、制御管理テーブルのデータ構造について、図2を参照して説明する。図2は、実施例に係る制御管理テーブルのデータ構造の一例を示す図である。
図2に示すように、制御管理テーブル151は、仮想ドライブ識別番号151aと受領フラグ151bと受領タイミング151cとを対応付けて記憶する。仮想ドライブ識別番号151aは、仮想テープドライブ111の識別番号である。受領フラグ151bは、仮想ドライブ識別番号で示される仮想テープドライブ111のクリーニング命令を受領したか否かを示すフラグである。例えば、受領した場合「ON」が設定され、受領していない場合「OFF」が設定される。なお、受領フラグ151bは、前述したとおり、クリーニング命令判定部162によって設定される。受領タイミング151cは、クリーニング命令を受領したタイミングでの仮想テープドライブ111の使用時間である。なお、受領タイミング151cは、後述する閾値算出部166によって仮想テープドライブ111のクリーニング命令を受領したタイミングで設定される。
制御管理テーブル151の一例として、仮想ドライブ識別番号151aが「00」である場合、受領フラグ151bとして「OFF」、受領タイミング151cとして「0」時間を記憶している。また、仮想ドライブ識別番号151aが「01」である場合、受領フラグ151bとして「ON」、受領タイミング151cとして「101」時間を記憶している。
図1に戻って、第1の指示部163は、ホスト3からのクリーニング命令がされた仮想テープドライブ111を、クリーニング要求の要求元の物理テープドライブ21に代えて、当該物理テープドライブ21にクリーニングを指示する。言い換えると、第1の指示部163は、「物理テープドライブから要求された場合のクリーニング」を実施する。また、第1の指示部163は、制御管理テーブル151に対し、ホスト3からクリーニング命令がされた仮想テープドライブ111の「受領フラグ」をリセットすべく、OFFに設定する。さらに、第1の指示部163は、「クリーニング要求フラグ」をリセットすべく、OFFに設定する。
連続受領判定部164は、ホスト3からクリーニング命令がされた仮想テープドライブ111と他の仮想テープドライブ111の各クリーニング命令が規定時間の範囲内に有るか否かを判定する。例えば、連続受領判定部164は、仮想テープドライブ111のクリーニング命令を受領したときから規定時間過去に遡った範囲内に他の仮想テープドライブ111のクリーニング命令を2つ以上受領したか否かを判定する。仮想テープドライブ111のクリーニング命令を受領したか否かは、制御管理テーブル151の受領フラグ151bを用いて判定される。
また、連続受領判定部164は、クリーニング命令がされた仮想テープドライブ111と他の仮想テープドライブ111の各クリーニング命令が規定時間の範囲内に有ると判定した場合、クリーニング命令の連続受領であると判定する。すなわち、連続受領判定部164は、一定周期が到来した場合、全ての物理テープドライブ21に順次クリーニングが実施される「周期クリーニング」であると判断する。そして、連続受領判定部164は、周期クリーニングの実施を第2の指示部165に指示する。
また、連続受領判定部164は、クリーニング命令がされた仮想テープドライブ111と他の仮想テープドライブ111の各クリーニング命令が規定時間の範囲内に無いと判定した場合、クリーニング命令の連続受領でないと判定する。すなわち、連続受領判定部164は、「使用時間が閾値を超えた場合のクリーニング」であると判断する。そして、連続受領判定部164は、物理テープドライブ21のクリーニングのタイミングを規定する閾値を算出するように、閾値算出部166に指示する。
第2の指示部165は、テープライブラリ装置2内の全ての物理テープドライブ21に対してクリーニングを指示する。すなわち、第2の指示部165は、テープ制御ソフトウェア31からの仮想テープドライブ111のクリーニング命令を、物理テープドライブ21に対する周期クリーニングの指示に変換して、物理テープドライブ21のクリーニングを実施する。言い換えると、第2の指示部165は、「周期クリーニング」を実施する。また、第2の指示部165は、制御管理テーブル151に対し、全仮想テープドライブ111の「受領フラグ」をリセットすべく、OFFに設定する。
閾値算出部166は、ホスト3で用いられている、仮想テープドライブ111の使用時間の閾値を算出し、算出した閾値を物理テープドライブ21の使用時間の閾値とする。なお、閾値算出部166は、「使用時間が閾値を超えた場合のクリーニング」を実施させるために行われる。
ここで、仮想テープドライブ111の使用時間の閾値を算出する必要性について説明する。まず、ホスト3内のテープ制御ソフトウェア31では、例えば仮想ドライブ監視部311が、仮想テープドライブ111の使用時間を監視する。そして、仮想ドライブ監視部311は、仮想テープドライブ111の使用時間が予め定めた閾値を超えた場合に、閾値を超えた仮想テープドライブ111のクリーニング命令を発行する。ところが、仮想ドライブ監視部311は、ホスト3と直接的に接続されていないテープライブラリ装置2の各物理テープドライブ21の使用状況を監視できない。他方、テープライラリ装置2は、自装置内の各物理テープドライブ21の使用状況を、直接的に接続されていないホスト3のテープ制御ソフトウェア31に報告できない。そこで、閾値算出部166は、仮想ドライブ監視部311によって監視に用いられている、仮想テープドライブ111の使用時間の閾値を算出する。具体的に説明すると、仮想ドライブ監視部311では、監視(監視A)で用いられるクリーニングの条件として、「前回のクリーニング処理以降、テープカートリッジのドライブへのマウント時間(使用時間と同義)が閾値100時間を経過した場合」と定義される。この場合、閾値算出部166は、閾値100時間を推測するものである。そして、閾値算出部166は、推測した閾値を物理テープドライブ21の使用時間の監視に反映する。
例えば、閾値算出部166は、仮想テープドライブ111のクリーニング命令がされたタイミングで、当該仮想テープドライブ111の使用時間を仮想ドライブ管理テーブル152から読み出す。そして、閾値算出部166は、読み出した使用時間を、制御管理テーブル151に対し、クリーニング命令がされた仮想テープドライブ111の受領タイミング151cに記録する。そして、閾値算出部166は、仮想ドライブ管理テーブル152の、クリーニング命令がされた仮想テープドライブ111の使用時間をリセットする。これは、クリーニング命令がされた仮想テープドライブ111について、次のクリーニング命令が出されるときまでの使用時間を確実に累積するためである。そして、閾値算出部166は、制御管理テーブル151に記憶された、複数の仮想テープドライブ111の受領タイミング151cを用いて、ホスト3からクリーニング命令がされる平均的な使用時間を閾値として算出する。一例として、閾値算出部166は、ホスト3に割り当てられた仮想テープドライブ111のうち3台分の仮想テープドライブ111の使用時間の平均値を算出する。これにより、閾値算出部166は、仮想ドライブ監視部311によって仮想テープドライブ111の使用時間の監視(監視A)に用いられている閾値を推測でき、推測できた閾値を物理テープドライブ21の使用時間の監視(監視Z)に反映できる。
また、閾値算出部166は、制御管理テーブル151に対し、全仮想テープドライブの「受領フラグ」をリセットすべく、OFFに設定する。
なお、仮想テープドライブの使用時間の平均値を算出する際に、閾値算出部166が、ホスト3に割り当てられた仮想テープドライブ111のうち3台分の仮想テープドライブ111の使用時間を用いると説明したが、これに限定されない。閾値算出部166は、4台分の仮想テープドライブ111の使用時間を用いても良いし、5台分の仮想テープドライブ111の使用時間を用いても良い。また、閾値算出部166は、ホスト3に割り当てられた仮想テープドライブ111のうち1/4以上の台数分の仮想テープドライブ111の使用時間を用いても良い。算出に用いる台数を増やせば、閾値算出部166は、仮想ドライブ監視部311で用いられる閾値を精度良く算出できる。
第3の指示部167は、閾値算出部166によって算出された使用時間を閾値として用いて、使用時間が閾値を超えた物理テープドライブ21に対してクリーニングを指示する。例えば、第3の指示部167は、物理ドライブ管理テーブル153を用いて、各物理テープドライブ21の使用時間を監視する。すなわち、第3の指示部167は、一定時間毎に、物理ドライブ管理テーブル153に記憶された各物理テープドライブ21の使用時間を読み出し、読み出した各物理テープドライブ21の使用時間が閾値を超えているか否かを判定する。そして、第3の指示部167は、いずれかの物理テープドライブ21の使用時間が閾値を超えていると判定した場合、閾値を超えた物理テープドライブ21にクリーニングを指示する。言い換えると、第3の指示部167は、「使用時間が閾値を超えた場合のクリーニング」を実施する。
次に、仮想ドライブ管理テーブルのデータ構造について、図3を参照して説明する。図3は、実施例に係る仮想ドライブ管理テーブルのデータ構造の一例を示す図である。図3に示すように、仮想ドライブ管理テーブル152は、仮想ドライブ識別番号152aと使用時間152bとを対応付けて記憶する。仮想ドライブ識別番号152aは、仮想テープドライブ111の識別番号である。使用時間152bは、仮想テープドライブ111に仮想テープをマウントした累積時間である。
仮想ドライブ管理テーブル152の一例として、仮想ドライブ識別番号152aが「00」である場合、使用時間152bとして「67」を記憶している。また、仮想ドライブ識別番号152aが「01」である場合、使用時間152bとして「0」を記憶している。
次に、物理ドライブ管理テーブルのデータ構造について、図4を参照して説明する。図4は、実施例に係る物理ドライブ管理テーブルのデータ構造の一例を示す図である。図4に示すように、物理ドライブ管理テーブル153は、物理ドライブ識別子153aと、使用時間153bとを対応付けて記憶する。物理ドライブ識別子153aは、物理テープドライブ21の識別子である。使用時間153bは、物理テープドライブ21にテープカートリッジをマウントした累積時間である。
物理ドライブ管理テーブル153の一例として、物理ドライブ識別子153aが「A」である場合、使用時間153bとして「89」を記憶している。また、物理ドライブ識別子153aが「B」である場合、使用時間153bとして「50」を記憶している。
[クリーニング制御処理の手順]
次に、クリーニング制御処理の手順について、図5および図6を参照して説明する。図5および図6は、実施例に係るクリーニング制御処理のフローチャートを示す図である。なお、ホスト3に複数の仮想テープドライブ111が割り当てられているものとする。また、図5では、仮想テープドライブ111の識別番号をNo.n(nは、1以上の自然数)で表すものとする。さらに、ホスト3は、「周期クリーニング」の場合、仮想テープドライブ111の識別番号の昇順に順次クリーニング命令を発行するものとする。
ICP11では、各仮想テープドライブ111の使用時間を仮想ドライブ管理テーブル152に記録している(ステップS11)。VLP14では、クリーニング要求中継部161は、テープライブラリ装置2内の物理テープドライブ21からクリーニング要求を受領したか否かを判定する(ステップS12)。テープライブラリ装置2内の物理テープドライブ21からクリーニング要求を受領していない場合(ステップS12;No)、クリーニング要求中継部161は、仮想テープドライブ111のクリーニング命令を受領すべく、ステップS16に移行する。
一方、テープライブラリ装置2内の物理テープドライブ21からクリーニング要求を受領した場合(ステップS12;Yes)、クリーニング要求中継部161は、仮想テープがマウントされていない仮想テープドライブ111を選択する(ステップS13)。そして、クリーニング要求中継部161は、選択した仮想テープドライブ111を用いて、テープ制御ソフトウェア31にクリーニング要求を中継する(ステップS14)。さらに、クリーニング要求中継部161は、「クリーニング要求フラグ」をONに設定する(ステップS15)。そして、クリーニング要求中継部161は、仮想テープドライブ111のクリーニング命令を受領すべく、ステップS16に移行する。
続いて、クリーニング命令判定部162は、ホスト3からNo.nの仮想テープドライブ111のクリーニング命令を受領する(ステップS16)。ここでは、クリーニング命令判定部162は、ホスト3内のテープ制御ソフトウェア311から受領するものとする。そして、クリーニング命令判定部162は、制御管理テーブル151に対し、No.nの仮想テープドライブ111のクリーニング命令を受領したことを示す「受領フラグ」をONに設定する(ステップS17)。そして、クリーニング命令判定部162は、テープ制御ソフトウェア31に、クリーニング命令に対するクリーニング完了を応答する(ステップS18)。ここで、クリーニング命令に対応するクリーニング処理を実施する前にクリーニング完了を応答するのは、物理層(例えばテープライブラリ装置2)でクリーニング処理を実施させながら、仮想層(VLP14)では次の処理を行わせるためである。つまり、仮想層での処理の滞りを防止するためである。
続いて、クリーニング命令判定部162は、「クリーニング要求フラグ」がONであるか否かを判定する(ステップS19)。「クリーニング要求フラグ」がONであると判定された場合(ステップS19;Yes)、第1の指示部163は、クリーニング要求の要求元の物理テープドライブ21へクリーニングを実行する(ステップS20)。すなわち、第1の指示部163は、「物理テープドライブから要求された場合のクリーニング」を実施する。そして、第1の指示部163は、「クリーニング要求フラグ」をリセットすべく、OFFに設定する。第1の指示部163は、制御管理テーブル151に対し、No.nの仮想テープドライブ111の「受領フラグ」をリセットすべく、OFFに設定する(ステップS21)。そして、クリーニング制御処理は、終了する。
「クリーニング要求フラグ」がONでないと判定された場合(ステップS19;No)、連続受領判定部164は、No.n−1またはNo.n−2の仮想テープドライブ111が無いか否かを判定する(ステップS22)。例えば、クリーニング命令を受領した仮想テープドライブ111の識別番号No.nが「00」である場合、「−01」および「−02」は無いので、No.n−1またはNo.n−2の仮想テープドライブ111が無いと判定する。また、クリーニング命令を受領した仮想テープドライブ111の識別番号No.nが「01」である場合、「00」は有るが「−01」は無いので、No.n−1またはNo.n−2の仮想テープドライブ111が無いと判定する。また、クリーニング命令を受領した仮想テープドライブ111の識別番号No.nが「02」である場合、「00」および「01」は有るので、No.n−1またはNo.n−2の仮想テープドライブ111が有ると判定する。
そして、No.n−1またはNo.n−2の仮想テープドライブ111が無いと判定した場合(ステップS22;Yes)、連続受領判定部164は、次のクリーニング命令を受領すべく、ステップS11に移行する。一方、No.n−1およびNo.n−2の仮想テープドライブ111が有ると判定した場合(ステップS22;No)、連続受領判定部164は、No.n−1およびNo.n−2の仮想テープドライブ111の「受領フラグ」がONであるか否かを判定する(ステップS23)。
No.n−1およびNo.n−2の仮想テープドライブ111の「受領フラグ」がONであると判定した場合(ステップS23;Yes)、連続受領判定部164は、クリーニング命令の連続受領であると判定する。すなわち、連続受領判定部164は、「周期クリーニング」であると判断する。さらに、連続受領判定部164は、引き続き連続受領があるか否かを判定すべく、No.n+1の仮想テープドライブ111が有るか否かを判定する(ステップS24)。これは、仮に引き続き仮想テープドライブ111のクリーニング命令が有る場合には、周期クリーニングの実施を待ち合わせ、全て該命令を受領した段階で、周期クリーニングを実施させるようにするためである。
No.n+1の仮想テープドライブ111が有ると判定した場合(ステップS24;Yes)、連続受領判定部164は、次のクリーニング命令を連続受領すべく、ステップS11に移行する。一方、No.n+1の仮想テープドライブ111が無いと判定した場合(ステップS24;No)、第2の指示部165は、テープライブラリ装置2内の全ての物理テープドライブ21へクリーニングを実行する(ステップS25)。すなわち、第3の指示部167は、「周期クリーニング」を実施する。そして、第2の指示部165は、制御管理テーブル151に対し、全仮想テープドライブ111の「受領フラグ」をリセットすべく、OFFに設定する(ステップS26)。そして、クリーニング制御処理は、終了する。
No.n−1およびNo.n−2の仮想テープドライブ111のいずれかの「受領フラグ」がONでないと判定した場合(ステップS23;No)、連続受領判定部164は、クリーニング命令の連続受領でないと判定する。すなわち、連続受領判定部164は、「使用時間が閾値を超えた場合のクリーニング」であると判断する。
続いて、閾値算出部166は、制御管理テーブル151に対し、全仮想テープドライブ111の「受領フラグ」をリセットすべく、OFFに設定する(ステップS27)。そして、閾値算出部166は、No.nの仮想テープドライブ111について、使用時間を仮想ドライブ管理テーブル152から読み出し、読み出した使用時間を制御管理テーブル151の受領タイミングに記録する(ステップS28)。そして、閾値算出部166は、仮想ドライブ管理テーブル152の、No.nの使用時間をリセットする(ステップS29)。
そして、閾値算出部166は、3台分の仮想テープドライブ111の使用時間の平均値を算出できたか否かを判定する(ステップS30)。例えば、閾値算出部166は、制御管理テーブル151に記憶された、3台分の仮想テープドライブ111の受領タイミングを用いて、ホスト3からクリーニング命令がされる平均的な使用時間を閾値として算出する。ここで、閾値算出部166は、3台分の仮想テープドライブ111の受領タイミングが制御管理テーブル151に記憶されている場合は、これらの受領タイミングの平均値を算出し、仮想テープドライブ111の使用時間の平均値を算出できたと判定する。一方、閾値算出部166は、3台分の仮想テープドライブ111の受領タイミングが制御管理テーブル151に記憶されていない場合は、仮想テープドライブ111の使用時間の平均値を算出できなかったと判定する。3台分の仮想テープドライブ111の使用時間の平均値を算出できなかった場合(ステップS30;No)、閾値算出部166は、次のクリーニング命令を受領すべく、ステップS11に移行する。
一方、3台分の仮想テープドライブ111の使用時間の平均値を算出できた場合(ステップS30;Yes)、閾値算出部166は、「反映フラグ」がONであるか否かを判定する(ステップS31)。ここで、「反映フラグ」とは、テープ制御ソフトウェア31で用いられている閾値を物理テープドライブ21の使用時間の監視に反映したか否かを示すフラグである。例えば、反映した場合「ON」が設定され、反映していない場合「OFF」が設定される。
「反映フラグ」がONであると判定した場合(ステップS31;Yes)、閾値算出部166は、閾値が既に反映されているので、次のクリーニング命令を受領すべく、ステップS11に移行する。一方、「反映フラグ」がONでないと判定した場合(ステップS31;No)、閾値算出部166は、算出できた仮想テープドライブ111の使用時間の平均値を監視Aで用いられる閾値と判断し、監視Zで用いられる閾値に反映する(ステップS32)。そして、閾値算出部166は、「反映フラグ」をONに設定する(ステップS33)。
その後、第3の指示部167は、監視Zの機能により、一定時間毎に物理ドライブ管理テーブル153に記憶された各物理テープドライブ21の使用時間を読み出す(ステップS34)。そして、第3の指示部167は、各物理テープドライブ21の使用時間が閾値を超えたか否かを判定する(ステップS35)。各物理テープドライブ21のいずれの使用時間も閾値を超えていないと判定した場合(ステップS35;No)、第3の指示部167は、監視を継続すべく、ステップS34に移行する。
一方、各物理テープドライブ21のいずれかの使用時間が閾値を超えたと判定した場合(ステップS35;Yes)、第3の指示部167は、閾値を超えた物理テープドライブ21へクリーニングを実行する(ステップS36)。すなわち、第3の指示部167は、「使用時間が閾値を超えた場合のクリーニング」を実施する。そして、クリーニング制御処理は、終了する。
なお、ホスト3は、「周期クリーニング」の場合、仮想テープドライブ111の識別番号の昇順に順次クリーニング命令を発行するものとして説明した。しかしながら、ホスト3は、これに限定されず、仮想テープドライブ111の識別番号の降順に順次クリーニング命令を発行するものとしても良い。この場合、ステップS22では、連続受領判定部164は、No.n+1またはNo.n+2の仮想テープドライブ111が無いか否かを判定するようにすれば良い。また、ステップS24では、連続受領判定部164は、引き続き連続受領があるか否かを判定すべく、No.n−1の仮想テープドライブ111が有るか否かを判定すれば良い。
ところで、上記した実施例では、1台のホスト3が仮想テープ装置1と接続された場合について説明した。しかしながら、複数のホスト3が仮想テープ装置1と接続されるようにしても良い。そこで、実施例の変形例として、複数のホスト3の一例として2台のホスト3が仮想テープ装置1と接続される場合について説明する。
[仮想テープシステムの構成の変形例]
図7は、実施例に係る仮想テープシステムの構成の変形例を示す図である。なお、図1に示す仮想テープシステム1と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。変形例が実施例と異なるところは、2台のホスト3A、3Bが仮想テープ装置1Aと接続される点にある。
ホスト3Aには、仮想ドライブ監視部311Aを含むテープ制御ソフトウェア31Aがインストールされている。ホスト3Bには、仮想ドライブ監視部311Bを含むテープ制御ソフトウェア31Bがインストールされている。仮想ドライブ監視部311Aおよび仮想ドライブ監視部311Bでは、それぞれ監視で用いられるクリーニングの条件を予めユーザによって定義される。例えば、仮想ドライブ監視部311Aでは、監視(監視A)で用いられるクリーニングの条件として、「前回のクリーニング処理以降、テープカートリッジのドライブへのマウント時間(使用時間と同義)が閾値100時間を経過した場合」と定義される。また、仮想ドライブ監視部311Bでは、監視(監視B)で用いられるクリーニングの条件として、「前回のクリーニング処理以降、テープカートリッジのドライブへのマウント時間(使用時間と同義)が閾値30時間を経過した場合」と定義される。
また、変形例が実施例と異なるところは、仮想テープ装置1Aには、2台のICP11A、11Bを有する点にある。
ICP11Aは、ホスト3Aに割り当てられた仮想テープドライブ111Aをディスクアレイ13に構築し、構築した仮想テープドライブ111Aを用いてホスト3Aとのインタフェースを制御する。ICP11Bは、ホスト3Bに割り当てられた仮想テープドライブ111Bをディスクアレイ13に構築し、構築した仮想テープドライブ111Bを用いてホスト3Bとのインタフェースを制御する。
また、変形例が実施例と異なるところは、仮想テープ装置1Aには、2台のIDP12A、12Bを有する点にある。また、変形例が実施例と異なるところは、閾値算出部166を閾値算出部166Aに変更し、第3の指示部167を第3の指示部167Aに変更した点にある。
閾値算出部166Aは、ホスト3Aに割り当てられた仮想テープドライブ111Aに対し、クリーニングを命令する平均的な使用時間を閾値として算出する。また、閾値算出部166Aは、ホスト3Bに割り当てられた仮想テープドライブ111Bに対し、クリーニングを命令する平均的な使用時間を閾値として算出する。なお、平均的な使用時間の算出方法は、閾値算出部166の説明と同様であるので、その説明を省略する。
第3の指示部167Aは、閾値算出部166Aによって算出されたそれぞれの閾値のうち最小の値を示す閾値を選択する。そして、第3の指示部167Aは、選択した閾値を用いて、使用時間が閾値を超えた物理テープドライブ21に対してクリーニングを指示する。すなわち、第3の指示部167Aは、監視Aで用いられるクリーニング条件および監視Bで用いられるクリーニング条件のうち短周期の閾値を持つクリーニング条件を優先し、物理テープドライブ21のクリーニングを実施する。例えば、ホスト3Aに割り当てられた仮想テープドライブ111Aにクリーニングを命令する閾値が100時間であるとする。ホスト3Bに割り当てられた仮想テープドライブ111Bにクリーニングを命令する閾値が30時間であるとする。かかる場合、第3の指示部167Aは、それぞれの閾値のうち最小の値を示す30時間を閾値として選択し、選択した30時間の閾値を監視Zに反映する。そして、第3の指示部167Aは、監視Zに反映した30時間の閾値を超えた物理テープドライブ21に対してクリーニングを指示する。
このようにして、第3の指示部167Aは、閾値算出部166Aによって算出されたそれぞれの閾値のうち最小の値を示す閾値を監視Zに反映するので、テープ制御ソフトウェア31A、31Bにそれぞれ閾値を定義したユーザの意向を重視できる。
[実施例の効果]
上記実施例によれば、仮想テープ装置1は、ホスト3から当該ホスト3に割り当てられた所定の仮想テープドライブ111のクリーニング命令を受け取ると、該クリーニング命令を自装置と接続されるテープライブラリ装置2に出力するか否かを判定する。そして、仮想テープ装置1は、該クリーニング命令をテープライブラリ装置2に出力すると判定した場合、該クリーニング命令がされた仮想テープドライブ111に対応する、テープライブラリ装置2内の物理テープドライブ21にクリーニングを指示する。かかる構成によれば、仮想テープ装置1は、ホスト3から受け付けた、仮想テープドライブ111のクリーニング命令を判定し、判定に応じて物理テープドライブ21にクリーニング指示を行う。この結果、ホスト3は、物理テープドライブ21のクリーニングについて、管理することができる。
また、上記実施例によれば、仮想テープ装置1は、テープライブラリ装置2内の物理テープドライブ21からクリーニング要求を受け取った場合、複数の仮想テープドライブ111のうち、仮想テープがマウントされていない仮想テープドライブ111を選択する。そして、仮想テープ装置1は、選択した仮想テープドライブ111のクリーニング要求をホスト3に対して中継する。そして、仮想テープ装置1は、ホスト3から仮想テープドライブ111のクリーニング要求に対するクリーニング命令を受け取ると、該クリーニング命令をテープライブラリ装置2に出力すると判定する。さらに、仮想テープ装置1は、クリーニング要求の要求元の物理テープドライブ21にクリーニングを指示する。かかる構成によれば、仮想テープ装置1は、仮想テープがマウントされていない仮想テープドライブ111をホスト3へのクリーニング要求の中継に用いて、クリーニング要求の要求元の物理テープドライブ21にクリーニング指示を行う。この結果、ホスト3は、物理テープドライブ21からクリーニング要求がされたクリーニングについて、管理することができる。
また、上記実施例によれば、仮想テープ装置1は、該クリーニング命令をテープライブラリ装置2に出力しないと判定した場合、以下の処理を行う。仮想テープ装置1は、該クリーニング命令と、該クリーニング命令がされた仮想テープドライブ111と異なる仮想テープドライブ111のクリーニング命令とが規定時間の範囲内に有るか否かを判定する。そして、仮想テープ装置1は、該クリーニング命令と、該クリーニング命令がされた仮想テープドライブと異なる仮想テープドライブのクリーニング命令とが規定時間の範囲内に有ると判定した場合、全ての物理テープドライブ21にクリーニングを指示する。かかる構成によれば、仮想テープ装置1は、ホスト3から規定時間の範囲内に少なくとも2つの仮想テープドライブ111のクリーニング命令が有る場合、全ての物理テープドライブ21にクリーニング指示を行う。この結果、ホスト3は、全ての物理テープドライブ21を周期的にクリーニングする周期クリーニングについて、管理することができる。
また、かかる構成によれば、仮想テープ装置1は、該クリーニング命令と、該クリーニング命令がされた仮想テープドライブと異なる仮想テープドライブのクリーニング命令とが規定時間の範囲内に無いと判定した場合、以下の処理を行う。仮想テープ装置1は、該クリーニング命令がされた仮想テープドライブ111と、該命令以前にクリーニング命令がされた仮想テープドライブ111との各使用時間を用いて、ホスト3から各仮想テープドライブ111にクリーニング命令がされる平均的な使用時間を算出する。そして、仮想テープ装置1は、物理テープドライブ21の使用時間について、算出した使用時間を越えた物理テープドライブ21にクリーニングを指示する。かかる構成によれば、仮想テープ装置1は、ホスト3によって各仮想テープドライブ111にクリーニング命令がされるタイミング(使用時間)を算出できる。そして、仮想テープ装置1は、算出したタイミングを各物理テープドライブ21のクリーニング指示のタイミングに反映できる。この結果、仮想テープ装置1は、ホスト3が意図したタイミングで物理テープドライブ21のクリーニングを行うことができる。つまり、ホスト3は、物理テープドライブ21の使用時間に応じたクリーニングについて、管理することができる。
また、かかる構成によれば、仮想テープ装置1は、複数のホスト3にそれぞれ割り当てられた各仮想テープドライブ111にクリーニングを命令する平均的な使用時間をそれぞれ算出する。そして、仮想テープ装置1は、算出したそれぞれの使用時間のうち最小の値を示す使用時間を選択し、選択した使用時間を越えた物理テープドライブ21にクリーニングを指示する。かかる構成によれば、仮想テープ装置1は、算出したそれぞれの使用時間のうち最小の値を示す使用時間を、各物理テープドライブ21のクリーニング指示のタイミングに反映できる。この結果、仮想テープ装置1は、複数のサーバ3それぞれの意向を重視できる。
[その他]
なお、仮想テープ装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記したクリーニング要求中継部161、クリーニング命令判定部162などの各機能を搭載することによって実現することができる。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、クリーニング命令判定部162と連続受領判定部164とを1個の部として統合しても良い。一方、閾値算出部166を、ホスト3で用いられている閾値を算出する算出部と、算出した閾値を物理テープドライブ21の使用時間の監視で用いられる閾値に反映する反映部とに分散しても良い。また、制御管理テーブル151などの記憶部を仮想テープ装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、仮想テープ装置1にて行われる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)(またはMPU(Micro Processing Unit)、MCU(Micro Controller Unit)などのマイクロコンピュータ)および当該CPU(またはMPU、MCUなどのマイクロ・コンピュータ)にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
(付記1)複数の仮想テープドライブと、
情報処理装置から当該情報処理装置に割り当てられた所定の仮想テープドライブのクリーニング命令を受け取ると、該クリーニング命令を自装置と接続される物理テープ装置に出力するか否かを判定する判定部と、
前記判定部によって該クリーニング命令を前記物理テープ装置に出力すると判定した場合、該クリーニング命令が出された仮想テープドライブに対応する、前記物理テープ装置内の物理テープドライブに対してクリーニングを指示する指示部と
を有することを特徴とする仮想テープ装置。
(付記2)前記物理テープ装置内の物理テープドライブからクリーニング要求を受け取った場合、前記複数の仮想テープドライブのうち、仮想テープがマウントされていない仮想テープドライブを選択し、選択した仮想テープドライブのクリーニング要求を前記情報処理装置に対して中継する中継部をさらに有し、
前記判定部は、前記情報処理装置から前記中継部によって中継された、仮想テープドライブのクリーニング要求に対するクリーニング命令を受け取ると、該クリーニング命令を前記物理テープ装置に出力すると判定し、
前記指示部は、前記クリーニング要求の要求元の物理テープドライブに対してクリーニングを指示する
ことを特徴とする付記1に記載の仮想テープ装置。
(付記3)前記判定部によって該クリーニング命令を前記物理テープ装置に出力しないと判定した場合、該クリーニング命令と、該クリーニング命令がされた仮想テープドライブと異なる仮想テープドライブのクリーニング命令とが規定時間の範囲内に有るか否かを判定する第2の判定部と、
前記第2の判定部によって該クリーニング命令と、該クリーニング命令が出された仮想テープドライブと異なる仮想テープドライブのクリーニング命令とが規定時間の範囲内に有ると判定された場合、前記物理テープ装置内の全ての物理テープドライブに対してクリーニングを指示する第2の指示部とを
さらに有することを特徴とする付記1に記載の仮想テープ装置。
(付記4)仮想テープがマウントされた累積時間を仮想テープドライブ毎に記憶する第1の記憶部と、
物理テープがマウントされた累積時間を物理テープドライブ毎に記憶する第2の記憶部と、
前記第2の判定部によって該クリーニング命令と、該クリーニング命令がされた仮想テープドライブと異なる仮想テープドライブのクリーニング命令とが規定時間の範囲内に無いと判定された場合、前記第1の記憶部の、該クリーニング命令が出された仮想テープドライブの累積時間と、前記第1の記憶部の、該クリーニング命令より前にクリーニング命令がされた仮想テープドライブの累積時間とを用いて、前記情報処理装置から各仮想テープドライブにクリーニングを命令する平均的な累積時間を算出する算出部と、
前記第2の記憶部によって記憶された前記物理テープドライブの累積時間について、前記算出部によって算出された累積時間を越えた物理テープドライブに対してクリーニングを指示する第3の指示部とを
さらに有することを特徴とする付記3に記載の仮想テープ装置。
(付記5)前記算出部は、複数の情報処理装置にそれぞれ割り当てられた各仮想テープドライブにクリーニングを命令する平均的な累積時間をそれぞれ算出し、
前記第3の指示部は、前記算出部によって算出されたそれぞれの累積時間のうち最小の値を示す累積時間を選択し、選択した累積時間を越えた物理テープドライブに対してクリーニングを指示する
ことを特徴とする付記4に記載の仮想テープ装置。
(付記6)コンピュータが、
情報処理装置から当該情報処理装置に割り当てられた所定の仮想テープドライブのクリーニング命令を受け取ると、該クリーニング命令を自装置と接続される物理テープ装置に出力するか否かを判定し、
前記判定する処理によって該クリーニング命令を前記物理テープ装置に出力すると判定した場合、該クリーニング命令が出された仮想テープドライブに対応する、前記物理テープ装置内の物理テープドライブに対してクリーニングを指示する
各処理を実行することを特徴とするクリーニング制御方法。
(付記7)複数の仮想テープドライブを有する仮想テープ装置と複数の物理テープドライブを有する物理テープ装置とを含む仮想テープシステムにおいて、
前記仮想テープ装置は、
情報処理装置から当該情報処理装置に割り当てられた所定の仮想テープドライブのクリーニング命令を受け取ると、該クリーニング命令を自装置と接続される前記物理テープ装置に出力するか否かを判定する判定部と、
前記判定部によって該クリーニング命令を前記物理テープ装置に出力すると判定した場合、該クリーニング命令が出された仮想テープドライブに対応する、前記物理テープ装置内の物理テープドライブに対してクリーニングを指示する指示部と
を有することを特徴とする仮想テープシステム。