(57)【特許請求の範囲】
【請求項１】
記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当手段と、
前記データページ割当手段によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去手段と、を備えることを特徴とする仮想テープ制御装置。
【請求項２】
前記データページ管理情報は、前記最終割り当て仮想テープ情報として、データページが前記データページ割当手段によって最後に割り当てられた仮想テープを示す識別子である最終割り当て仮想テープ識別子を含み、
前記データ消去手段は、前記最終割り当て仮想テープ識別子に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする請求項１に記載の仮想テープ制御装置。
【請求項３】
前記データページ管理情報から、前記最終割り当て仮想テープ識別子を取得する最終割当情報取得手段と、
前記削除対象の仮想テープを示す削除対象仮想テープ識別子と、前記最終割当情報取得手段によって取得された前記最終割り当て仮想テープ識別子と、が一致するか否かを判定する判定手段と、を更に備え、
前記データ消去手段は、前記判定手段によって、前記削除対象仮想テープ識別子と前記最終割り当て仮想テープ識別子とが一致すると判定されたとき、当該最終割り当て仮想テープ識別子に関連付けられたデータページに記録されているデータを消去する、ことを特徴とする請求項２に記載の仮想テープ制御装置。
【請求項４】
前記最終割り当て仮想テープ識別子には、当該最終割り当て仮想テープ識別子に関連付けられたデータページが最後に割り当てられた仮想テープがある場合、当該仮想テープを示す識別子が含まれ、当該最終割り当て仮想テープ識別子に関連付けられたデータページが何れの仮想テープにも割り当てられていない場合、何れの仮想テープにも割り当てられていないことを示す情報が含まれる、ことを特徴とする請求項２または３に記載の仮想テープ制御装置。
【請求項５】
前記データページ管理情報は、前記最終割り当て仮想テープ情報として、仮想テープごとに、当該仮想テープのデータを有するデータページから構成される最終割当リストにおける位置情報を含み、
前記データ消去手段は、削除対象の仮想テープの前記最終割当リストにおける前記位置情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする請求項１に記載の仮想テープ制御装置。
【請求項６】
前記最終割当リストの最初のデータページを示す最終割り当て始端情報および最後のデータページを示す最終割り当て終端情報を仮想テープごとに有する仮想テープ管理情報と、前記最終割当リストにおける位置情報とから、前記最終割当リストに含まれるデータページを示すデータページ識別子を取得する最終割当情報取得手段を更に備え、
前記データ消去手段は、前記最終割当情報取得手段によって取得されたデータページ識別子であって、削除対象の仮想テープの前記最終割当リストに含まれるデータページのデータページ識別子によって特定されるデータページに記録されているデータを消去する、ことを特徴とする請求項５に記載の仮想テープ制御装置。
【請求項７】
記憶領域と、
前記記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当手段と、
前記データページ割当手段によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去手段と、を備えることを特徴とする仮想テープ装置。
【請求項８】
記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当て、
１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする制御方法。
【請求項９】
記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当処理と、
前記データページ割当処理によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去処理と、をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想テープ制御装置、仮想テープ装置、制御方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
コンピュータシステムに蓄積した個人情報や企業内の機密情報などの重要なデータは、データ漏えい防止の観点から、不要になった際にデータ消去を確実に行うことが求められている。例えば、磁気テープに記録したデータの消去方法としては、磁気テープ全体に対して特別なパターンを上書きしたり、磁気テープ自体を破壊したりすることが、一般的に知られている。
【０００３】
近年では、磁気テープの代わりに磁気ディスクを記録メディアにした仮想テープ装置が開発されている。仮想テープも、磁気テープと同様に、不要になった際にデータ消去を確実に行うことが求められている。
【０００４】
例えば、特許文献１には、仮想記憶領域に記録されたデータを短時間で無効化するストレージ装置が記載されている。
【０００５】
なお、特許文献２〜４には種々の仮想テープ関連技術が開示されている。
【０００６】
特許文献２には、複数のブロックを有するボリュームをシーケンシャルセグメントにセグメント化してデータページに分割するインテリジェントデータ格納管理装置が開示されている。この特許文献２には、インテリジェントデータ格納管理装置が、データページを仮想テープボリュームの夫々の仮想テープブロックにマップするためのメタデータページを、仮想テープボリュームに関連付けて発生することが記載されている。
【０００７】
特許文献３には、仮想テープをマウントおよびデマウントする仮想計算機が記載されている。
【０００８】
特許文献４には、保存期間が満了したボリュームを未使用ボリュームプールに付け替える情報記録装置が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−７７１０６号公報
【特許文献２】特表２００３−５１３３５２号公報
【特許文献３】特開昭６２−２２６２３７号公報
【特許文献４】特開２００５−３３２０４３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
仮想テープ装置は、記録メディアに対し、フォーマットすることなどによってデータ消去することが出来る。ただし、１つの記録メディアには、１または複数の仮想化したテープ（仮想テープ）が対応付けられていることが一般的である。そのため、記録メディアのデータ消去を行うと、その記録メディアに対応する１または複数の仮想テープに記憶されたデータを消去することになる。
【００１１】
複数のユーザが個々に割り当てられた仮想テープを運用する場合もあるため、複数の仮想テープに影響がある記録メディアのデータ消去を個々のユーザが容易に行うことは出来ない。そこで、仮想テープ単位でデータ消去することが求められている。
【００１２】
ここで、仮想テープのデータ管理方法である「固定割り当て方式」および「動的割り当て方式」について説明する。
【００１３】
「固定割り当て方式」とは、仮想テープを生成時に、当該仮想テープに対応する記録領域を固定的に割り当てるデータ管理方法である。仮想テープのユーザデータは、その記録領域に記録されるので、仮想テープ削除時にその領域を消去すれば、データを消去することができる。しかし、仮想テープの記録量が少ない場合、その仮想テープの残りの記録領域は全く使用されない。
【００１４】
特許文献１および３では、仮想テープを生成する際に、当該仮想テープに対応する記憶領域を固定的に割り当てる固定割り当て方式を採用している。そのため、仮想テープ単位でデータ消去することはできるが、仮想テープの記録量が少ない場合、そのテープの残りの記憶領域が使用されないため、装置全体の記憶容量を効率的に利用できないという問題がある。
【００１５】
次に、「動的割り当て方式」について説明する。「動的割り当て方式」とはこの一定のサイズ（たとえば、１ＭＢ）で分割された記録領域（データページ）を、データの記憶に必要な分だけ仮想テープに動的に割り当てるデータ管理方法である。以下、図１〜３を参照して、「動的割り当て方式」について詳細に説明する。
【００１６】
図１〜３は、動的割り当て方式のデータ管理方法を説明するための図であり、仮想テープに割り当てられたデータページの連結関係およびストレージプールにリンクされたデータページの連結関係を模式的に表した図である。なお、以降において、仮想テープへのデータページの割当状態を示すリストを割当リストと呼ぶ。割当リストは、仮想テープに割り当てられたデータページのうち、仮想テープに最初にリンクされているデータページを始端とし、最後にリンクされているデータページを終端とする、双方向リストである。
【００１７】
記憶領域は、一定のサイズで複数のデータページに分割されている。当該データページが仮想テープ（単に、テープとも呼ぶ）で使用されている場合、使用されているデータページは、そのテープの割当リスト（単に、リストとも呼ぶ）にリンクされる。また、どのテープでも使用されていないデータページは、未使用を示すストレージプール（単に、プールとも呼ぶ）と呼ばれる割当リストにリンクされる。
【００１８】
なお、図１〜３では、記憶領域が＃１〜＃１０の１０個のデータページに分割されているとして説明を行う。また、使用されているテープは、テープ＃１であるとする。
【００１９】
図１では、テープ＃１には何もデータが記録されておらず、プールにデータページ＃１〜＃１０の全てがリンクされている状態を示している。また、図１に示すように、プールには、＃１、＃２、・・・、＃１０の順番でデータページがリンクされている。
【００２０】
データページの割り当てが行われると、プールの先頭のデータページから使用される。使用されるデータページは、テープの割当リストの最後尾に追加される。
【００２１】
図１の状態において、テープ＃１に対し、データページの割当が３回繰り返された後のデータページの連結関係を図２に示す。図２に示すように、プールの先頭のデータページ＃１〜＃３がテープにリンクされる。そして、プールにはデータページ＃４〜＃１０が残る。
【００２２】
次に、動的割り当て方式におけるデータページの解放について、説明する。データページは、途中のデータページから書き込まれた場合、および、仮想テープの削除が指示された場合などにストレージプールに解放される。
【００２３】
まず、途中からの書き込みにおけるデータページの解放について説明する。図２の状態において、データページ＃１の途中から書き込みが行われると、データページ＃２および＃３は解放される。そして、図２の状態で、プールの先頭のデータページであるデータページ＃４がテープの割当リストの最後尾にリンクされる。解放されたデータページ＃２および＃３は、プールにリンクされる。この時の各データページの状態を図３に示す。
【００２４】
次に、仮想テープの削除について説明する。仮想テープの削除を行うと、図３の状態からテープ＃１にリンクされている全てのデータページ（データページ＃１およびデータページ＃４）がプールへ解放される。よって、仮想テープの削除を行うと、図１のようにデータページが全てプールにリンクされた状態に戻る。
【００２５】
特許文献２では、一定のサイズで分割された記憶領域を必要な分だけ仮想テープに動的に割り当てる動的割り当て方式が採用されている。データが書き込まれたデータページをストレージプールに開放し、その後、仮想テープの削除時にその時点で使用しているデータページの消去を行う場合、動的割り当て方式では、使用中のデータページ（図３では、データページ＃１およびデータページ＃４）のデータのみ消去され、既にプールに解放されているデータページ（図３では、データページ＃２およびデータページ＃３）のデータは消去されない。したがって、既にプールに解放されているデータページに古いデータが残ってしまうという問題がある。
【００２６】
仮想テープの削除の際ではなく、プールに解放した際に、データページを消去する方法を用いて、プールにあるデータページに古いデータが残らないようにする方法がある。しかし、仮想テープの途中書き込みに伴うプールへの解放は、仮想テープの削除に比べ、頻繁に行われる動作であるため、消去処理が常に動作し続けてしまい、負荷がかかってしまうという問題がある。
【００２７】
本発明は、上記課題に鑑みてなされたものであり、その目的は、仮想テープの削除の際に、過去に使用したデータを好適に消去する仮想テープ制御装置を提供することにある。
【課題を解決するための手段】
【００２８】
本発明の一態様に係る仮想テープ制御装置は、記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当手段と、前記データページ割当手段によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去手段と、を備える。
【００２９】
本発明の一態様に係る仮想テープ装置は、記憶領域と、前記記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当手段と、前記データページ割当手段によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去手段と、を備える。
【００３０】
本発明の一態様に係る制御方法は、記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当て、
１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する。
【００３１】
本発明の一態様に係るプログラムは、記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当処理と、
前記データページ割当処理によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去処理と、をコンピュータに実行させる。
【発明の効果】
【００３２】
本発明によれば、仮想テープの削除の際に、過去に使用したデータを好適に消去することができる。
【図面の簡単な説明】
【００３３】
【図１】動的割り当て方式のデータ管理方法を説明するための図である。
【図２】動的割り当て方式のデータ管理方法を説明するための図である。
【図３】動的割り当て方式のデータ管理方法を説明するための図である。
【図４】本発明の第１の実施の形態に係る仮想テープ装置の機能構成の一例を示す機能ブロック図である。
【図５】本発明に係る仮想テープ装置のハードウェア構成の一例を示す図である。
【図６】第１の実施の形態に係るデータ管理情報記憶部に格納されている仮想テープ管理情報の一例を示す図である。
【図７】第１の実施の形態に係るデータ管理情報記憶部に格納されている未割当データページ管理情報の一例を示す図である。
【図８】第１の実施の形態に係るデータ管理情報記憶部に格納されているデータページ管理情報の一例を示す図である。
【図９】図１１、図１３、図１４、図１５、図１７、図１８の説明のために、仮想テープ管理情報、未割当データページ管理情報、データページ管理情報を模式的に表した図である。
【図１０】第１の実施の形態における仮想テープ装置のデータページ割当処理の流れの一例を示すフローチャートである。
【図１１】各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図１２】第１の実施の形態における仮想テープ装置のデータページ解放処理の流れの一例を示すフローチャートである。
【図１３】第１の実施の形態に係るデータページ解放処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図１４】第１の実施の形態に係るデータページ解放処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図１５】図１４の状態に、第１の実施の形態に係るデータページ割当処理を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図１６】第１の実施の形態における仮想テープ装置の仮想テープ削除処理の流れの一例を示すフローチャートである。
【図１７】図１５の状態に、第１の実施の形態に係る仮想テープ削除処理におけるデータページ解放処理を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図１８】仮想テープ削除処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図１９】第２の実施の形態に係るデータ管理情報記憶部に格納されている仮想テープ管理情報の一例を示す図である。
【図２０】第２の実施の形態に係るデータ管理情報記憶部に格納されているデータページ管理情報の一例を示す図である。
【図２１】図２３、図２４、図２６、図２７の説明のために、仮想テープ管理情報、未割当データページ管理情報、データページ管理情報を模式的に表した図である。
【図２２】第２の実施の形態における仮想テープ装置のデータページ割当処理の流れの一例を示すフローチャートである。
【図２３】各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図２４】図２３の状態に、第２の実施の形態に係るデータページ割当処理を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図２５】第２の実施の形態における仮想テープ装置の仮想テープ削除処理の流れの一例を示すフローチャートである。
【図２６】図２４の状態に、第２の実施の形態に係る仮想テープ削除処理におけるデータページ解放処理を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図２７】第２の実施の形態に係る仮想テープ削除処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【図２８】本発明の第３の実施の形態に係る仮想テープ制御装置の機能構成の一例を示す機能ブロック図である。
【図２９】本発明の第２の実施の形態に係る仮想テープ装置の機能構成の一例を示す機能ブロック図である。
【発明を実施するための形態】
【００３４】
本発明は、上述したように動的に割り当てが行われ、かつ、途中のデータページから書き込みが行われると、書き込まれたデータページ以降のデータページを解放する動的割り当て方式のデータ管理を行う仮想テープ装置を想定している。
【００３５】
＜実施の形態１＞
本発明に係る第１の実施の形態について、図面を参照して詳細に説明する。
【００３６】
（仮想テープ装置の構成）
図４は、本発明の一実施の形態に係る仮想テープ装置の機能構成の一例を示す機能ブロック図である。図４に示す通り、仮想テープ装置１は、コマンド制御部１０、仮想テープデータ記憶部３０、データ管理情報記憶部４０および仮想テープ制御部１００を備えている。仮想テープ装置１は、例えば、磁気テープ装置をエミュレーションした装置であり、上位装置８のデータを仮想テープに記憶するものである。
【００３７】
コマンド制御部１０は、上位装置８からのコマンドを受け取り、各コマンドの処理を行う。また、コマンド制御部１０は、上記コマンドに付随するデータの送受信を行う。コマンド制御部１０は、受信したコマンドまたは／およびデータを、仮想テープ制御部１００に供給する。
【００３８】
仮想テープデータ記憶部３０は、仮想テープに記憶されたデータを記憶する手段である。仮想テープには、１または複数のデータページが動的に割り当てられている。ここで、データページとは、記憶領域を一定のサイズ（例えば、１ＭＢ）に分割した領域の単位である。本実施の形態においては、記憶領域は１０個のデータページに分割されているとするが、本発明はこれに限定されるものではない。なお、個々のデータページは、＃１から順に割り当てたデータページ番号（データページ識別子）で識別する。
【００３９】
なお、本実施の形態に係る仮想テープ装置１では、記憶領域が内蔵されている構成であってもよいし、仮想テープ装置１に外付けされる構成であってもよい。
【００４０】
データ管理情報記憶部４０は、各仮想テープの情報と、各データページの情報およびその接続関係に関する情報を記録している。具体的には、データ管理情報記憶部４０は、仮想テープ管理情報５０と、未割当データページ管理情報６０と、データページ管理情報７０とを記録している。データ管理情報記憶部４０に記録された各管理情報については、図面を変えて詳細に説明する。
【００４１】
なお、仮想テープデータ記憶部３０およびデータ管理情報記憶部４０は、別個の構成として説明したが、これらは、同じ記憶手段で実現してもよい。本実施の形態では、ディスクアレイなどで実現される記憶装置に、仮想テープデータ記憶部３０およびデータ管理情報記憶部４０が含まれる構成として説明するが、本発明はこれに限定されるものではない。
【００４２】
仮想テープ制御部１００は、仮想テープ装置１の全体を制御する。具体的には、仮想テープ制御部１００は、仮想テープデータ記憶部３０へのデータの記録およびデータ管理情報記憶部４０の各管理情報の管理などを行う。図４に示す通り、仮想テープ制御部１００は、データページ割当部１１０、管理情報更新部１２０、最終割当情報取得部１３０、判定部１４０およびデータ消去部１５０を備えている。
【００４３】
データページ割当部１１０は、１または複数のデータページを仮想テープに動的に割り当てる手段である。具体的には、データページ割当部１１０は、プールの始端ポインタが指すデータページを割当対象として決定する。また、データページ割当部１１０は、割り当てを終了する（つまり、仮想テープから解放する）データページを解放対象データページとして決定する。そして、データページ割当部１１０は、割当対象または解放対象として決定したデータページを示す情報を管理情報更新部１２０に供給する。
【００４４】
管理情報更新部１２０は、データ管理情報記憶部４０に格納された各管理情報を更新する手段である。管理情報更新部１２０が更新する内容については、後述するフローチャート内で詳細に説明する。
【００４５】
最終割当情報取得部１３０は、データページ管理情報７０から、各データページのデータページ番号に関連付けられた情報であって、当該データページに何れの仮想テープのデータが残存しているかを示す情報を取得する手段である。具体的には、最終割当情報取得部１３０は、データページ管理情報７０から最終割り当て仮想テープＩＤを取得する。最終割当情報取得部１３０は、取得した最終割り当て仮想テープＩＤを判定部１４０に供給する。
【００４６】
判定部１４０は、コマンド制御部１０が上位装置８から受け取ったコマンドに基づいて、コマンド制御部１０から削除対象の仮想テープを示す仮想テープＩＤを取得し、当該仮想テープＩＤと最終割当情報取得部１３０から供給された最終割り当て仮想テープＩＤとが一致するか否かを判定する手段である。判定部１４０は、判定結果をデータ消去部１５０および最終割当情報取得部１３０に供給する。
【００４７】
データ消去部１５０は、判定部１４０から供給された判定結果に基づいて、仮想テープデータ記憶部３０に記憶された仮想テープのデータであって、削除対象の仮想テープのデータを消去する。データ消去部１５０は、データの消去が完了したことを示す通知を管理情報更新部１２０に通知する。
【００４８】
図５は、本実施の形態に係る仮想テープ装置１のハードウェア構成の一例を示す図である。図５に示すように、仮想テープ装置１は、ＣＰＵ１１、通信Ｉ／Ｆ（通信インターフェース）１２、メモリ１３、および、プログラムを格納するハードディスク等の記憶装置１４を含み、夫々、システムバス９を介して接続している。
【００４９】
ＣＰＵ１１は、例えば、本実施の形態のコマンド制御部１０および仮想テープ制御部１００の一部として機能し、記憶装置１４からメモリ１３にプログラムやデータを読み出して、プログラムに基づいて各種の処理を実行することによって、本実施の形態に係る仮想テープ装置１を制御する。
【００５０】
通信Ｉ／Ｆ１２は、上位装置８と通信を行うインターフェースである。通信Ｉ／Ｆ１２は、コマンド制御部１０の一部として機能する。
【００５１】
記憶装置１４は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等である。記憶装置１４の一部の記憶媒体は、不揮発性記憶装置であり、そこにプログラムを記憶している。また、プログラムは通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。記憶装置１４は、例えば、本実施の形態における仮想テープデータ記憶部３０およびデータ管理情報記憶部４０として機能する。
【００５２】
以上のように、本実施の形態に係る仮想テープ装置１は、図５に示されるハードウェア構成によって実現される。但し、仮想テープ装置１が備える各部の実現手段は特に限定されない。
【００５３】
（各管理情報について）
次に、図６から図８を参照して、データ管理情報記憶部４０に格納されている各管理情報について説明を行う。
【００５４】
図６は、データ管理情報記憶部４０に格納されている仮想テープ管理情報５０の一例を示す図である。図６に示す通り、仮想テープ管理情報５０は、仮想テープインデックス５０１、始端ポインタ５０２および終端ポインタ５０３を含んでいる。
【００５５】
仮想テープインデックス５０１は、仮想テープを識別するための識別番号（仮想テープＩＤ（仮想テープ識別子））をインデックスにしたものである。データページの始端ポインタ５０２は、仮想テープの割当リストの最初の（始端の）データページを示す情報である。終端ポインタ５０３は、仮想テープの割当リストの最後の（終端の）データページを示す情報である。以降、データページを単にページとも呼ぶ。
【００５６】
なお、各仮想テープの割当リストは、データ形式で、例えば、データ管理情報記憶部４０に格納されていてもよいし、各管理情報を参照することにより作成されるものであってもよい。
【００５７】
仮想テープ制御部１００は、仮想テープ管理情報５０にて、仮想テープインデックス５０１の欄に記載された仮想テープＩＤで示される仮想テープがどのデータページで構成されているかを、データページの始端ポインタ５０２と終端ポインタ５０３とを用いて管理している。具体的には、各仮想テープにデータページが割り当てられているときは、仮想テープ制御部１００は、始端ポインタ５０２および終端ポインタ５０３として、割り当てられたデータページのデータページ番号を、仮想テープＩＤに関連付けて管理している。一方、各仮想テープにデータページが割り当てられていないときは、仮想テープ制御部１００は、始端ポインタ５０２および終端ポインタ５０３として、データページ番号の代わりに、データページが割り当てられていないことを示す情報を、仮想テープＩＤに関連付けて管理している。なお、本実施の形態において、データページが割り当てられていないことを示す情報として、データページが割り当てられていない仮想テープの仮想テープＩＤを記録する構成を例に説明を行うが、本発明はこれに限定されるものではない。
【００５８】
図６に示す仮想テープ管理情報５０において、仮想テープＩＤが「テープ＃１」の仮想テープには、最初のデータページがデータページ番号「ページ＃１」で示されるデータページ＃１であり、最後のデータページがデータページ番号「ページ＃４」で示されるデータページ＃４である複数のデータページが割り当てられている。また、仮想テープＩＤが「テープ＃２」の仮想テープ＃２には、データページが割り当てられていない。これは、仮想テープ＃２の始端ポインタ５０２および終端ポインタ５０３が、当該仮想テープＩＤの「テープ＃２」を示していることからわかる。
【００５９】
図７は、データ管理情報記憶部４０に格納されている未割当データページ管理情報６０の一例を示す図である。図７に示す通り、未割当データページ管理情報６０は、未割当データページの要素６０１、始端ポインタ６０２および終端ポインタ６０３を含んでいる。未割当データページの要素６０１とは、未割当のデータページがリンクされているリストを示す情報であり、例えば、ストレージプール６０４である。
【００６０】
図７に示す未割当データページ管理情報６０では、最初のデータページがデータページ＃２であり、最後のデータページがデータページ＃１０である複数のデータページがプールにリンクされていることがわかる。
【００６１】
図８は、データ管理情報記憶部４０に格納されているデータページ管理情報７０の一例を示す図である。図８に示す通り、データページ管理情報７０は、データページインデックス７０１、前方ポインタ７０２、後方ポインタ７０３および最終割り当て仮想テープＩＤ７０４を含んでいる。
【００６２】
データページインデックス７０１は、データページを識別するためのデータページ番号をインデックスにしたものである。本実施の形態においては、記憶領域は、＃１〜＃１０の１０個のデータページに分割されているとして説明を行う。そのため、データページインデックス７０１には１０個のデータページの夫々を示す番号であるページ＃１〜＃１０が示されている。
【００６３】
各データページ番号には、前方ポインタ７０２、後方ポインタ７０３および最終割り当て仮想テープＩＤ７０４が関連付けられている。前方ポインタ７０２は、割当リストにおいて、データページの前方に位置する要素を示している。同様に、後方ポインタ７０３は、割当リストにおいて、データページの後方に位置する要素を示している。
【００６４】
前方ポインタ７０２および後方ポインタ７０３について、具体的に説明する。前方ポインタ７０２および後方ポインタ７０３は、それぞれ、「データページ番号」、「仮想テープＩＤ」および「プール」のいずれかの値を取る。
【００６５】
前方ポインタ７０２がデータページ番号である場合、当該データページ番号で示されるデータページが、割当リストにおいて、当該前方ポインタ７０２を有するデータページの前方にあることを示している。同様に、後方ポインタ７０３がデータページ番号である場合、当該データページ番号で示されるデータページが、割当リストにおいて、当該後方ポインタ７０３を有するデータページの後方にあることを示している。
【００６６】
前方ポインタ７０２が仮想テープＩＤである場合、データページが当該仮想テープＩＤで示される仮想テープの割当リストの先頭にリンクされていることを示している。つまり、当該データページが、仮想テープＩＤで示される仮想テープの割当リストの最初のデータページであることを示している。同様に、後方ポインタ７０３が仮想テープＩＤである場合、データページが当該仮想テープＩＤで示される仮想テープの割当リストの最後尾にリンクされていることを示している。つまり、当該データページが、仮想テープＩＤで示される仮想テープの割当リストの最後のデータページであることを示している。
【００６７】
なお、本実施の形態においては、割当リストは、前方ポインタ７０２が仮想テープＩＤであるデータページと、後方ポインタ７０３が仮想テープＩＤであるデータページとを端点とする双方向リストであるとするが本発明はこれに限定されるものではなく片方向リストであってもよい。
【００６８】
また、前方ポインタ７０２がプールである場合、データページがプールの先頭にリンクされていることを示している。同様に、後方ポインタ７０３がプールである場合、データページがプールの最後尾にリンクされていることを示している。なお、プールも、上記仮想テープの割当リストと同様に、双方向リストであってもよいし、片方向リストであってもよい。
【００６９】
最終割り当て仮想テープＩＤ７０４（最終割り当て仮想テープ識別子）には、最終割り当て仮想テープ情報として、各データページがデータページ割当部１１０によって最後に割り当てられた仮想テープを示す仮想テープＩＤが示されている。また、各データページが仮想テープに、過去に割り当てられていない場合は、「無し」が示されている。なお、各データページが仮想テープに過去に割り当てられていない場合に、最終割り当て仮想テープＩＤ７０４に記録されている情報は、「無し」に限定されず、仮想テープが過去に割り当てられていないことを示す情報であればよい。
【００７０】
図８において、「ページ＃１」で示されるデータページ（データページ＃１）は、仮想テープ＃１の割当リストの先頭にリンクされている。また、当該割当リストにおいて、データページ＃１の後方にデータページ＃４が存在する。
【００７１】
また、図８において、データページ＃２は仮想テープ＃２の割当リストの先頭および後方にリンクされている。このことから仮想テープ＃２はデータページ＃２のみがリンクされていることがわかる。
【００７２】
また、図８において、データページ＃３はプールの先頭にリンクされている。これは、データページ＃３の前方ポインタ７０２が「プール」であることからわかる。また、プールにおいて、データページ＃３の後方にデータページ＃５が存在する。また、データページ＃３は、仮想テープ＃１に対応付けられている。これは、データページ＃３の最終割り当て仮想テープＩＤ７０４が、「テープ＃１」であることからわかる。
【００７３】
（仮想テープ装置１の動作）
次に、図９から図１８を参照して、仮想テープ装置１の動作について説明する。具体的には、データページ割当処理、データページ解放処理および仮想テープ削除処理について説明する。まず、図９を参照して、動作の説明に用いる仮想テープ、ストレージプールおよびデータページと、図６〜８の管理情報との対応付けについて説明する。図９は、仮想テープ管理情報、未割当データページ管理情報、データページ管理情報を模式的に表した図である。
【００７４】
仮想テープ欄は仮想テープの割当リストの端点を示す図で、図６に示す情報が含まれている。具体的には、仮想テープ管理情報５０の仮想テープインデックス５０１に含まれる仮想テープＩＤと、始端ポインタ５０２と、終端ポインタ５０３とが含まれている。なお、始端ポインタ５０２および終端ポインタ５０３がデータページを示す場合、始端ポインタ５０２および終端ポインタ５０３の場所には、データページ番号の番号を示す部分（図９においては、＃１および＃３）のみを示す。
【００７５】
また、データページが割り当てられていない場合、つまり、図６において、始端ポインタ５０２および終端ポインタ５０３に仮想テープＩＤが記録されている場合、始端ポインタ５０２および終端ポインタ５０３の場所には、仮想テープＩＤが記録されていることを示す「テープ」を表示する。
【００７６】
ストレージプール欄は未割当のデータページの連結状態の端点を示す図で、仮想テープの端点を示す図の仮想テープＩＤの代わりに、ストレージプールを示す「プール」が示されている。また、図７に示す情報である始端ポインタ６０２と、終端ポインタ６０３とが含まれている。なお、始端ポインタ６０２および終端ポインタ６０３がデータページを示す場合、始端ポインタ６０２および終端ポインタ６０３の場所には、データページ番号の番号を示す部分（図９においては、＃４および＃１０）のみを示す。
【００７７】
データページを示す図には、図８に示す情報が含まれている。具体的には、データページインデックス７０１に含まれるデータページ番号と、前方ポインタ７０２と、後方ポインタ７０３と、最終割り当て仮想テープＩＤ７０４とが含まれている。
【００７８】
データページ番号は、データページを示す図の中央に示されている。また、前方ポインタ７０２を当該図の左上に、後方ポインタ７０３を当該図の右上に示している。さらに、当該図の下部には、最終割り当て仮想テープＩＤ７０４を示している。なお、前方ポインタ７０２および後方ポインタ７０３がデータページを示す場合、前方ポインタ７０２および後方ポインタ７０３の場所には、データページ番号の番号を示す部分（図９においては、後方ポインタ７０３の場所に＃４）のみを示す。
【００７９】
また、データページが、仮想テープの割当リストの始端および／または終端にリンクされている場合、前方ポインタ７０２および／または後方ポインタ７０３の場所には、「テープ」を表示し、リンク先の仮想テープの始端ポインタ５０２または終端ポインタ５０３に実線で接続する。また、データページがストレージプールの始端および／または終端にリンクされている場合、前方ポインタ７０２および／または後方ポインタ７０３の場所には、「プール」を表示する。
【００８０】
（データページ割当処理およびデータページ解放処理）
次に、図１０および図１１を参照して、仮想テープ装置１のデータページ割当処理の流れについて説明する。図１０は、本実施の形態における仮想テープ装置１のデータページ割当処理の流れの一例を示すフローチャートである。
【００８１】
なお、以降の説明において、あるデータページにおいて、割当リストの前方または後方にある他のデータページを、前記データページの前方または後方に「繋がっている」とも表現する。
【００８２】
また、割当リストにおいて、あるデータページを他のデータページの前方または後方に挿入することを、あるデータページを他のデータページの前方または後方に「連結する」とも表現する。
【００８３】
コマンド制御部１０が上位装置８などからデータを仮想テープ装置１に記録する指示を受けると、仮想テープ装置１は、データページの割当処理を開始する。
【００８４】
図１０に示すように、仮想テープ装置１がデータページ割当処理を開始すると、仮想テープ制御部１００は、以下のステップＳ１０１〜ステップＳ１０４の処理を行う。
【００８５】
ステップＳ１０１：データページ割当部１１０が、プールの始端ポインタ６０２が指すデータページを割当対象として決定する。データページ割当部１１０は、割当対象として決定したデータページを示す情報を管理情報更新部１２０に供給する。
【００８６】
ステップＳ１０２：管理情報更新部１２０が、プールから割当対象のデータページを切り離す。つまり、管理情報更新部１２０が、（ａ）Ｓ１０１にて決定したデータページの後方ポインタ７０３が指すデータページの前方ポインタ７０２と、（ｂ）プールの始端ポインタ６０２と、を連結する。具体的には、管理情報更新部１２０が、以下の（１）および（２）を行う。
（１）未割当データページ管理情報６０の始端ポインタ６０２を、Ｓ１０１にて決定したデータページの後方ポインタ７０３が指すデータページのデータページ番号に更新する。
（２）データページ管理情報７０において、Ｓ１０１にて決定したデータページの後方ポインタ７０３が指すデータページのデータページ番号に関連付けられた前方ポインタ７０２を、「プール」に更新する。
【００８７】
ステップＳ１０３：管理情報更新部１２０は、Ｓ１０１にて割当対象として決定したデータページを仮想テープの割当リストの終端に連結する。このＳ１０３においては、データページの割当先の仮想テープにデータページが割り当てられていない場合と、既に割り当てられている場合とに分けて説明する。
【００８８】
Ｓ１０３において、データページの割当先の仮想テープにデータページが割り当てられていない場合、管理情報更新部１２０は、（ａ）割当先仮想テープの始端ポインタ５０２と、（ｂ）Ｓ１０１で決定したデータページの前方ポインタ７０２と、を連結する。さらに、管理情報更新部１２０は、（ｃ）Ｓ１０１で決定したデータページの後方ポインタ７０３と、（ｄ）割当先仮想テープの終端ポインタ５０３と、を連結する。具体的には、管理情報更新部１２０が、以下の（１）〜（４）の動作を行う。
（１）仮想テープ管理情報５０において、割当先の仮想テープを示す仮想テープＩＤに関連付けられた始端ポインタ５０２を、Ｓ１０１で決定したデータページのデータページ番号に更新する。
（２）データページ管理情報７０において、Ｓ１０１で決定したデータページのデータページ番号に関連付けられた前方ポインタ７０２を、割当先の仮想テープを示す仮想テープＩＤに更新する。
（３）データページ管理情報７０において、Ｓ１０１で決定したデータページのデータページ番号に関連付けられた後方ポインタ７０３を、割当先の仮想テープを示す仮想テープＩＤに更新する。
（４）仮想テープ管理情報５０において、割当先の仮想テープを示す仮想テープＩＤに関連付けられた終端ポインタ５０３を、Ｓ１０１で決定したデータページのデータページ番号に更新する。
【００８９】
Ｓ１０３において、データページの割当先の仮想テープにデータページが既に割り当てられている場合、管理情報更新部１２０は、（ａ）割当先の仮想テープの終端ポインタ５０３の指すデータページの後方ポインタ７０３と、（ｂ）Ｓ１０１で決定したデータページの前方ポインタ７０２と、を連結する。また、管理情報更新部１２０が、（ｃ）Ｓ１０１で決定したデータページの後方ポインタ７０３と、（ｄ）割当先仮想テープの終端ポインタ５０３と、を連結する。具体的には、管理情報更新部１２０が、以下の（５）および（６）、並びに、上述した（３）および（４）の動作を行う。
（５）データページ管理情報７０において、割当先の仮想テープの終端ポインタ５０３の指すデータページのデータページ番号に関連付けられた後方ポインタ７０３を、Ｓ１０１で決定したデータページのデータページ番号に更新する。
（６）データページ管理情報７０において、Ｓ１０１で決定したデータページのデータページ番号に関連付けられた前方ポインタ７０２を、割当先の仮想テープの終端ポインタ５０３の指すデータページのデータページ番号に更新する。
【００９０】
ステップＳ１０４：管理情報更新部１２０が、データページ管理情報７０に含まれる、Ｓ１０１で決定したデータページであって、Ｓ１０２でプールから切り離されたデータページのデータページ番号に関連付けられている最終割り当て仮想テープＩＤ７０４を、割当先仮想テープの仮想テープＩＤに更新する。
【００９１】
ここで、データページ割当処理の開始前に、複数のデータページの全てが、何れの仮想テープにも割り当てられておらず、プールにリンクされており、データページ割当処理を３回繰り返して行った場合を考える。図１１は、このような場合における、各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。なお、実線で結んだ部分はポインタの相互参照関係を表している。
【００９２】
図１１に示すように、仮想テープ＃１の割当リストには、ぺージ＃１からページ＃３の３つのデータページがリンクされている。また、プールには、何れのテープにも割り当てられていないデータページ（ページ＃４〜ページ＃１０）がリンクされている。
【００９３】
次に、図１１から図１３を参照して、仮想テープ装置１のデータページ解放処理の流れについて説明する。図１２は、本実施の形態における仮想テープ装置１のデータページ解放処理の流れの一例を示すフローチャートである。
【００９４】
本実施の形態に係るデータページの解放処理では、解放対象のデータページから解放元である仮想テープの終端のデータページまでが解放される。たとえば、図１１に示す仮想テープ＃１に割り当てられているデータページ＃１の途中からデータの書き込み処理が行われると、データページ＃１の次のデータページ（データページ＃２）から、仮想テープ＃１の終端のデータページ（データページ＃３）までが解放される。
【００９５】
コマンド制御部１０が上位装置８などからデータの書き込み指示などを受けると、仮想テープ装置１は、データが書き込まれる仮想テープに対応するデータページのうち、データが書き込まれるデータページの次のデータページ以降のデータページの解放処理を開始する。
【００９６】
図１２に示すように、仮想テープ装置１がデータページ解放処理を開始すると、仮想テープ制御部１００は、以下のステップＳ１２１〜Ｓ１２３の処理を行う。
【００９７】
ステップＳ１２１：データページ割当部１１０が、解放するデータページの始端から終端を決定する。データページ割当部１１０は、決定したデータページを示す情報を管理情報更新部１２０に供給する。
【００９８】
ステップＳ１２２：管理情報更新部１２０が、解放対象のデータページを仮想テープから切り離す。つまり、管理情報更新部１２０が、解放対象の始端データページの前方ポインタ７０２が指すデータページの後方ポインタ７０３と、解放元の仮想テープの終端ポインタ５０３とを連結する。具体的には、管理情報更新部１２０が、以下の（１）および（２）を行う。
（１）仮想テープ管理情報５０において、解放元の仮想テープを示す仮想テープＩＤに関連付けられた終端ポインタ５０３を、解放対象の始端データページの前方ポインタ７０２が指すデータページのデータページ番号に更新する。
（２）データページ管理情報７０において、解放対象の始端データページの前方ポインタ７０２が指すデータページの後方ポインタ７０３を、解放元の仮想テープを示す仮想テープＩＤに更新する。
【００９９】
なお、Ｓ１２２において、すべてのデータページを仮想テープから切り離す場合、管理情報更新部１２０は、仮想テープ管理情報５０において、解放元の仮想テープを示す仮想テープＩＤに関連付けられた始端ポインタ５０２および終端ポインタ５０３を、当該仮想テープＩＤに更新する。
【０１００】
ステップＳ１２３：管理情報更新部１２０が、解放対象のデータページをプールの終端に連結する。つまり、管理情報更新部１２０が、（ａ）解放対象の始端データページの前方ポインタ７０２と、（ｂ）プールの終端ポインタ６０３が指すデータページの後方ポインタ７０３と、を連結する。また、管理情報更新部１２０が、（ｃ）プールの終端ポインタ６０３と、（ｄ）解放対象の終端データページの後方ポインタ７０３とを連結する。具体的には、管理情報更新部１２０が、以下の（１）〜（４）の動作を行う。
（１）データページ管理情報７０において、解放対象の始端データページのデータページ番号に関連付けられた前方ポインタ７０２を、プールの終端ポインタ６０３が指すデータページのデータページ番号に更新する。
（２）データページ管理情報７０において、プールの終端ポインタ６０３が指すデータページのデータページ番号に関連付けられた後方ポインタ７０３を、解放対象の始端データページのデータページ番号に更新する。
（３）未割当データページ管理情報６０において、プールの終端ポインタ６０３を、解放対象の終端データページのデータページ番号に更新する。
（４）データページ管理情報７０において、解放対象の終端データページのデータページ番号に関連付けられた後方ポインタ７０３を、「プール」に更新する。
【０１０１】
この時、管理情報更新部１２０は、データページ管理情報７０の最終割り当て仮想テープＩＤ７０４の内容を変更しない。
【０１０２】
図１１の状態において、仮想テープ＃１に割り当てられているデータページ＃１の途中またはデータページ＃１の後から仮想テープへの追記指示を受け付けた場合を考える。上記指示を受けると、仮想テープ制御部１００は、データページ＃２およびデータページ＃３を解放してプールに連結する。このようにして、データページ解放処理が行われる。
【０１０３】
そして、仮想テープへの追記指示であるため、図１０に示すデータページ割当処理が実行される。まず、割り当てるデータページ（本例では、データページ＃４とする）が決定され、プールからデータページ＃４がプールから切り離される。そして、切り離されたデータページ＃４を仮想テープ＃１の終端データページに連結する。そして、切り離されたデータページ＃４の最終割り当て仮想テープＩＤ７０４を「無し」から「テープ＃１」に更新する。
【０１０４】
この時のデータページ解放処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態を図１３に示す。図１３は、データページ解放処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【０１０５】
図１３に示すようにデータページ＃４は仮想テープ＃１のリストの終端に連結されている。また、図１１でプールの終端データページであったデータページ＃１０の後に、解放されたデータページ＃２およびデータページ＃３が連結されている。また、プールに解放されたデータページ＃２およびデータページ＃３の最終割り当て仮想テープＩＤ７０４は「テープ＃１」のままである。
【０１０６】
次に、プールにある最終割り当て仮想テープＩＤ７０４が「テープ＃１」であるデータページを他の仮想テープ（例えば、仮想テープ＃２）に割り当てる場合について説明する。図１４は、データページ解放処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図１４が図１３と異なる点は、最終割り当て仮想テープＩＤ７０４がテープ＃１であるデータページ＃２およびデータページ＃３がプールの先頭にリンクされている点である。
【０１０７】
図１４に示すように、仮想テープ＃１には、データページ＃１およびデータページ＃４が割り当てられている。また、仮想テープ＃２には、データページが割り当てられていない。プールには、１０個のデータページのうち、データページ＃１およびデータページ＃４以外のデータページがリンクされている。そのうち、データページ＃２およびデータページ＃３は、最終割り当て仮想テープＩＤ７０４が「テープ＃１」であり、そのほかのデータページの最終割り当て仮想テープＩＤ７０４は「無し」である。
【０１０８】
図１４の状態で、仮想テープ＃２に対し、データページ割当処理が行われると、まず、データページ割当部１１０が、割り当てるデータページ（本例では、データページ＃２）を決定する。そして、管理情報更新部１２０が、データページ＃２をプールから切り離し、切り離したデータページ＃２を仮想テープ＃２に連結する。そして、管理情報更新部１２０が、切り離したデータページ＃２の最終割り当て仮想テープＩＤ７０４を「テープ＃１」から「テープ＃２」に更新する。このデータページ割当処理が行われた後の状態を図１５に示す。
【０１０９】
図１５は、図１４の状態にデータページ割当処理を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図１５に示すように、仮想テープ＃２には、最終割り当て仮想テープＩＤ７０４が「テープ＃２」に更新されたデータページ＃２が割り当てられている。また、プールからデータページ＃２が切り離されている。これにより、データページ＃２は仮想テープ＃１が過去に使用したデータページとして認識されなくなる。
【０１１０】
（仮想テープ削除処理）
次に、図１６〜図１８を参照して、仮想テープ装置１の仮想テープ削除処理の流れについて説明する。図１６は、本実施の形態における仮想テープ装置１の仮想テープ削除処理の流れの一例を示すフローチャートである。
【０１１１】
コマンド制御部１０が上位装置８などから仮想テープの削除処理を受け付けると、仮想テープ装置１は、仮想テープの削除処理を開始する。
【０１１２】
図１６に示すように、仮想テープ装置１が仮想テープ削除処理を開始すると、仮想テープ制御部１００は、以下のステップＳ１６１〜ステップＳ１６７の処理を行う。
【０１１３】
ステップＳ１６１：データページ割当部１１０および管理情報更新部１２０は、当該仮想テープに割り当てられている全てのデータページに対し、上述したデータページの解放処理を行う。管理情報更新部１２０は、データページの解放処理が終了すると（Ｓ１２３の後）、解放処理が終了したことを最終割当情報取得部１３０に通知する。
【０１１４】
ステップＳ１６２：最終割当情報取得部１３０が、データページ管理情報７０から当該データページ管理情報７０の最初のデータページのデータページ番号に関連付けられた最終割り当て仮想テープＩＤ７０４を取得する。最終割当情報取得部１３０は、取得した最終割り当て仮想テープＩＤ７０４を判定部１４０に供給する。
【０１１５】
ステップＳ１６３：判定部１４０が、コマンド制御部１０から取得した、削除対象の仮想テープを示す仮想テープＩＤ（削除対象仮想テープ識別子）と、Ｓ１６２にて最終割当情報取得部１３０が取得した最終割り当て仮想テープＩＤ７０４とが、一致するか否かを判定する。一致した場合（ＹＥＳの場合）、削除対象の仮想テープの仮想テープＩＤと一致した最終割り当て仮想テープＩＤ７０４のデータページを示す情報をデータ消去部１５０に供給し、Ｓ１６４に進む。一致しない場合（ＮＯの場合）、一致しないことを示す情報を最終割当情報取得部１３０に通知し、Ｓ１６６に進む。
【０１１６】
ステップＳ１６４：データ消去部１５０が、仮想テープデータ記憶部３０に記録されている記録データであって、最終割り当て仮想テープＩＤ７０４が削除対象の仮想テープの仮想テープＩＤであるデータページの記録データを完全に消去する。そして、データ消去部１５０は、記録データを消去したデータページを示す情報を、管理情報更新部１２０に供給する。
【０１１７】
ステップＳ１６５：管理情報更新部１２０が、Ｓ１６４にて記録データを消去したデータページのデータページ番号に関連付けられた最終割り当て仮想テープＩＤ７０４を、「無し」に更新する。そして、管理情報更新部１２０は、更新が完了したことを最終割当情報取得部１３０に通知する。
【０１１８】
ステップＳ１６６：最終割当情報取得部１３０は、最終割り当て仮想テープＩＤ７０４を取得したデータページが、仮想テープ装置１に定義されている最終データページか否かを確認する。具体的には、最終割当情報取得部１３０は、上記最終割り当て仮想テープＩＤ７０４を取得したデータページが、データページ管理情報７０の最後のデータページであるか否かを確認する。最終データページである場合（ＹＥＳの場合）、処理を終了する。最終データページでない場合（ＮＯの場合）、Ｓ１６７に進む。
【０１１９】
ステップＳ１６７：最終割当情報取得部１３０が、データページインデックス７０１を１つ進めて、次のデータページのデータページ番号に関連付けられた最終割り当て仮想テープＩＤ７０４を取得する。その後、Ｓ１６３に進む。このように、最終データページの最終割り当て仮想テープＩＤ７０４を取得するまで、仮想テープ制御部１００は、Ｓ１６３〜Ｓ１６６の処理を繰り返す。
【０１２０】
図１７は、図１５の状態で、仮想テープ＃１に対し、上述したＳ１６１の処理、つまり、仮想テープ＃１に割り当てられているすべてのデータページに対するデータページ解放処理（図１２）を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【０１２１】
仮想テープ＃１に対し、仮想テープ削除処理におけるデータページ解放処理を行うと、図１７に示すように、仮想テープ＃１に割り当てられていたデータページ＃１およびデータページ＃４は解放され、プールの最後尾にリンクされる。この時、データページ＃１およびデータページ＃４の最終割り当て仮想テープＩＤ７０４は「テープ＃１」のままである。
【０１２２】
その後、上述した仮想テープ削除処理を行うと、プールにリンクされているデータページであって、最終割り当て仮想テープＩＤ７０４が「テープ＃１」のデータページは、最終割り当て仮想テープＩＤ７０４が「無し」に更新される。この時の状態を図１８に示す。図１８は、仮想テープ削除処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図１８に示すように、データページ番号が「ページ＃３」、「ページ＃１」および「ページ＃４」のデータページの最終割り当て仮想テープＩＤ７０４は、「テープ＃１」から「無し」に更新されている。また、仮想テープ＃２に割り当てられているデータページ＃２は、変化しない。
【０１２３】
従って、仮想テープ＃１の削除処理を行うことにより、仮想テープ＃１に割り当てられてから他の仮想テープに割り当てられていないデータページに含まれるデータを完全に消去できる。
【０１２４】
（効果）
以上のように、本実施の形態に係る仮想テープ装置１は、記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、前記仮想テープに動的に割り当てる。そして、１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープＩＤ７０４を含むデータページ管理情報７０に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する。
【０１２５】
これにより、仮想テープの削除の際に、削除対象の仮想テープで、過去に使用したデータだけを特定して、効率よく仮想テープのデータを消去することできる。その理由は、データページ管理情報７０に、各データページが、当該データページにデータが残存しているかを示す情報、つまり、最後に割り当てられた仮想テープを示す情報である、最終割り当て仮想テープＩＤ７０４が含まれているからである。これにより、データ消去部１５０は、削除対象の仮想テープで過去に使用したデータページのデータを消去することができる。
【０１２６】
また、最終割り当て仮想テープＩＤ７０４には、当該最終割り当て仮想テープＩＤ７０４に関連付けられたデータページが最後に割り当てられた仮想テープがある場合、当該仮想テープを示す識別子が含まれている。一方、当該最終割り当て仮想テープＩＤ７０４に関連付けられたデータページが何れの仮想テープにも割り当てられていない場合、何れの仮想テープにも割り当てられていないことを示す情報（例えば「無し」）が含まれる。
【０１２７】
このように、データが残存しているデータページと、データが残存していないデータページとを区別して管理されたデータページ管理情報を用いることにより、削除対象の仮想テープに対応するデータ領域を容易に特定することができる。したがって、より好適に、削除対象の仮想テープで過去に使用したデータページのデータを消去することができる。
【０１２８】
＜実施の形態２＞
本発明に係る第２の実施の形態について、図面を参照して詳細に説明する。第１の実施の形態に係る仮想テープ装置１は、記録データを消去するデータページを特定するために、データページ管理情報７０に含まれる全てのデータページを検索する必要がある。その為、扱うデータページが大量に存在すると、仮想テープ削除の処理時間に対する検索時間の割合が大きくなる場合がある。そこで、本実施の形態では、記録データを消去するデータページを、データページ管理情報の全データの検索せずに特定できるようにする。
【０１２９】
（仮想テープ装置の構成）
図２９は、本実施の形態に係る仮想テープ装置の機能構成の一例を示す機能ブロック図である。なお、説明の便宜上、前述した第１の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その説明を省略する。
【０１３０】
図２９に示す通り、仮想テープ装置１は、コマンド制御部１０、仮想テープデータ記憶部３０、データ管理情報記憶部４０および仮想テープ制御部１００を備えている。仮想テープ装置１は、例えば、磁気テープ装置をエミュレーションした装置であり、上位装置８のデータを仮想テープに記憶するものである。
【０１３１】
データ管理情報記憶部４０は、各仮想テープの情報と、各データページの情報およびその接続関係に関する情報を記録している。具体的には、データ管理情報記憶部４０は、仮想テープ管理情報５１と、未割当データページ管理情報６０と、データページ管理情報７１とを記録している。データ管理情報記憶部４０に記録された仮想テープ管理情報５１およびデータページ管理情報７１については、図面を変えて詳細に説明する。
【０１３２】
図２９に示す通り、仮想テープ制御部１００は、データページ割当部１１０、管理情報更新部１２０、最終割当情報取得部１３１およびデータ消去部１５０を備えている。
【０１３３】
最終割当情報取得部１３１は、仮想テープ管理情報５１およびデータページ管理情報７１を用いて、削除対象である仮想テープの過去のデータが残存しているデータページを特定し、消去部１５０に供給する。また、過去のデータが残存しているデータページが存在しなくなった場合には、その旨を管理情報更新部１２０に通知する。なお、本実施の形態に係る仮想テープ装置１のハードウェア構成は、前述した第１の実施の形態に係る仮想テープ装置１のハードウェア構成と同様である。
【０１３４】
（各管理情報について）
次に、図１９および図２０を参照して、データ管理情報記憶部４０に格納されている各管理情報について説明を行う。
【０１３５】
図１９は、仮想テープ管理情報５１の一例を示す図である。図１９に示す通り、仮想テープインデックス５１１、始端ポインタ５１２、終端ポインタ５１３、最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５を含んでいる。
【０１３６】
仮想テープインデックス５１１、始端ポインタ５１２および終端ポインタ５１３は、第１の実施の形態に係る仮想テープ管理情報５０の仮想テープインデックス５０１、始端ポインタ５０２および終端ポインタ５０３とそれぞれ同様のものであるため、説明を省略する。
【０１３７】
最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５は、それぞれ、仮想テープインデックス５１１の仮想テープＩＤから関連付けられている。最終割り当て始端ポインタ５１４は、当該仮想テープのデータを有しているデータページのうち、当該仮想テープの割当リストの最初の（始端の）データページを示す情報である。つまり、第１の実施の形態における最終割り当て仮想テープＩＤ７０４が当該仮想テープの仮想テープＩＤであるデータページのうち、当該仮想テープの割当リストの最初の（始端の）データページを示す情報である。
【０１３８】
同様に、最終割り当て終端ポインタ５１５は、当該仮想テープのデータを有しているデータページのうち、当該仮想テープの割当リストの最後の（終端の）データページを示す情報である。
【０１３９】
仮想テープのデータがデータページに残存しているときには、当該仮想テープの最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５には、当該データページのデータページ番号が記録される。一方、仮想テープのデータがデータページに残存していないときには、最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５には、当該仮想テープを示す仮想テープＩＤが記録される。
【０１４０】
つまり、各仮想テープは、最終割り当て始端ポインタ５１４が示すデータページを始端とし、最終割り当て終端ポインタ５１５が示すデータページを終端とする、当該仮想テープへ最後に割り当てられたデータページの双方向リスト（最終割当リスト）を構成する。なお、最終割当リストは、片方向リストであってもよい。また、各仮想テープの最終割当リストは、データ形式で、例えば、データ管理情報記憶部４０に格納されていてもよいし、各管理情報を参照することにより作成されるものであってもよい。
【０１４１】
図２０は、データ管理情報記憶部４０に格納されているデータページ管理情報７１の一例を示す図である。図２０に示す通り、データページインデックス７１１、前方ポインタ７１２、後方ポインタ７１３、最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５を含んでいる。
【０１４２】
データページインデックス７１１、前方ポインタ７１２および後方ポインタ７１３は、第１の実施の形態に係るデータページ管理情報７０のデータページインデックス７０１、前方ポインタ７０２および後方ポインタ７０３とそれぞれ同様のものであるため、説明を省略する。
【０１４３】
最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５は、それぞれ、データページインデックス７１１のデータページ番号から関連付けられている。最終割り当て前方ポインタ７１４は、最終割当リストにおいて、当該データページの前方に位置する要素を示している。同様に、最終割り当て後方ポインタ７１５とは、最終割当リストにおいて、当該データページの後方に位置する要素を示している。
【０１４４】
つまり、上述した最終割当リストは、最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５を用いて、最終割り当て始端ポインタ５１４が示すデータページを始端とし、最終割り当て終端ポインタ５１５が示すデータページを終端として構成される。
【０１４５】
また、最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５は、最終割当リストにおいて、前方および後方にある要素を特定しているため、最終割当リストにおける位置情報を示しているといえる。
【０１４６】
最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５は、前方ポインタ７１２および後方ポインタ７１３と同様に、それぞれ、「データページ番号」、「仮想テープＩＤ」および「プール」のいずれかの値を取る。最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５の各値については、上述した第１の実施の形態の割当リストにおける前方ポインタ７０２および後方ポインタ７０３の各値の場合と同様であるため、説明を省略する。
【０１４７】
（仮想テープ装置１の動作）
次に、図２１から図２７を参照して、仮想テープ装置１の動作について説明する。具体的には、データページ割当処理および仮想テープ削除処理について説明する。なお、データページ解放処理は、第１の実施の形態と同様であるため、説明を省略する。
【０１４８】
まず、図２１を参照して、動作の説明に用いる仮想テープおよびデータページと、図１９および図２０の管理情報との対応付けについて説明する。なお、ストレージプールについては、図９と同様であるため、説明を省略する。図２１は、仮想テープ管理情報、未割当データページ管理情報、データページ管理情報を模式的に表した図である。
【０１４９】
仮想テープ欄は仮想テープの割当リストの端点を示す図で、図１９に示す情報が含まれている。具体的には、仮想テープ管理情報５１の仮想テープインデックス５１１に含まれる仮想テープＩＤと、始端ポインタ５１２と、終端ポインタ５１３と最終割り当て始端ポインタ５１４と、最終割り当て終端ポインタ５１５とが含まれている。なお、始端ポインタ５１２および終端ポインタ５１３がデータページを示す場合、始端ポインタ５１２および終端ポインタ５１３の場所には、それぞれ、データページ番号の番号を示す部分（図２１においては、＃１および＃４）のみを示す。同様に、最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５がデータページを示す場合、最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５の場所には、データページ番号の番号を示す部分（図２１においては、＃１および＃４）のみを示す。
【０１５０】
また、現時点において、データページが割り当てられていない場合、つまり、図１９の始端ポインタ５１２および終端ポインタ５１３に仮想テープＩＤが記録されている場合、始端ポインタ５１２および終端ポインタ５１３の場所には、仮想テープＩＤが記録されていることを示す「テープ」を表示する。
【０１５１】
また、現時点において、仮想テープのデータが残存しているデータページがない場合、つまり、図１９の最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５に仮想テープＩＤが記録されている場合、最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５の場所には、仮想テープＩＤが記録されていることを示す「テープ」を表示する。
【０１５２】
データページを示す図には、図２０に示す情報が含まれている。具体的には、データページインデックス７１１に含まれるデータページ番号と、前方ポインタ７１２と、後方ポインタ７１３と、最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５とが含まれている。
【０１５３】
データページ番号は、データページを示す図の中央に示されている。また、前方ポインタ７１２を当該図の左上に、後方ポインタ７１３を当該図の右上に示している。さらに、最終割り当て前方ポインタ７１４を当該図の左下に、最終割り当て後方ポインタ７１５を当該図の右下に示している。
【０１５４】
前方ポインタ７１２および後方ポインタ７１３がデータページを示す場合、前方ポインタ７１２および後方ポインタ７１３の場所には、データページ番号の番号を示す部分（図２１においては、後方ポインタ７１３の場所に＃４）のみを示す。同様に、最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５がデータページを示す場合、最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５の場所には、データページ番号の番号を示す部分（図２１おいては、最終割り当て後方ポインタ７１５の場所に＃３）のみを示す。
【０１５５】
また、データページが、仮想テープの割当リストの始端および／または終端にリンクされている場合、前方ポインタ７１２および／または後方ポインタ７１３の場所には、「テープ」を表示する。また、データページが、仮想テープの最終割当リストの始端および／または終端にリンクされている場合、最終割り当て前方ポインタ７１４および／または最終割り当て後方ポインタ７１５の場所には、「テープ」を表示する。
【０１５６】
また、データページがストレージプールの始端および／または終端にリンクされている場合、前方ポインタ７０２および／または後方ポインタ７０３の場所には、「プール」を表示する。また、データページが何れの最終割当リストにも含まれず、ストレージプールにリンクされている場合、最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５の場所には、「無し」を表示する。
【０１５７】
（データページ割当処理）
次に、図２２〜図２４を参照して、仮想テープ装置１のデータページ割当処理の流れについて説明する。図２２は、本実施の形態における仮想テープ装置１のデータページ割当処理の流れの一例を示すフローチャートである。
【０１５８】
コマンド制御部１０が上位装置８などからデータを仮想テープ装置１に記録する指示を受けると、仮想テープ装置１は、データページの割当処理を開始する。
【０１５９】
図２２に示すように、仮想テープ装置１がデータページ割当処理を開始すると、以下のステップＳ２２１〜ステップＳ２２４の処理を行う。
【０１６０】
ステップＳ２２１：データページ割当部１１０および管理情報更新部１２０が、データページをプールから仮想テープに割り当てる。具体的には、前述した第１の実施の形態のデータページ割当処理におけるＳ１０１〜Ｓ１０３を行う。これにより、割り当てられたデータページの前方ポインタ７１２および後方ポインタ７１３が更新される。また、データページが割り当てられた仮想テープの始端ポインタ５１２および終端ポインタ５１３が更新される。
【０１６１】
ステップＳ２２２：管理情報更新部１２０が、Ｓ２２１で仮想テープに割り当てられたデータページが何れかの仮想テープのデータを有しているか否かを判定する。具体的には、管理情報更新部１２０は、データページ管理情報７１において、Ｓ２２１で仮想テープに割り当てられたデータページのデータページ番号に関連付けられた最終割り当て前方ポインタ７１４が「無し」であるか否かを判定する。上記最終割り当て前方ポインタ７１４が「無し」でない場合（ＮＯの場合）、つまり、いずれかの仮想テープのデータを有している場合、Ｓ２２３に進む。上記最終割り当て前方ポインタ７１４が「無し」である場合（ＹＥＳの場合）、Ｓ２２４に進む。なお、Ｓ２２２において、管理情報更新部１２０は、最終割り当て前方ポインタ７１４ではなく、最終割り当て後方ポインタ７１５が「無し」であるか否かを判定してもよい。
【０１６２】
ステップＳ２２３：管理情報更新部１２０が、割当先の仮想テープの最終割当リストからＳ２２１で割り当てたデータページを切り離す。つまり、管理情報更新部１２０が、（ａ）Ｓ２２１にて割り当てたデータページの最終割り当て後方ポインタ７１５が指すデータページの最終割り当て前方ポインタ７１４と、（ｂ）Ｓ２２１にて割り当てたデータページの最終割り当て前方ポインタ７１４が指すデータページの最終割り当て後方ポインタ７１５と、を連結する。具体的には、管理情報更新部１２０が、以下の（１）および（２）を行う。
（１）データページ管理情報７１において、Ｓ２２１にて割り当てたデータページの最終割り当て後方ポインタ７１５が指すデータページのデータページ番号に関連付けされた最終割り当て前方ポインタ７１４を、Ｓ２２１にて割り当てたデータページの最終割り当て前方ポインタ７１４が指すデータページのデータページ番号に更新する。
（２）データページ管理情報７１において、Ｓ２２１にて割り当てたデータページの最終割り当て前方ポインタ７１４が指すデータページのデータページ番号関連付けされた最終割り当て後方ポインタ７１５を、Ｓ２２１にて割り当てたデータページの最終割り当て後方ポインタ７１５が指すデータページのデータページ番号に更新する。
【０１６３】
なお、Ｓ２２３において、Ｓ２２１にて割り当てたデータページの最終割り当て後方ポインタ７１５が仮想テープＩＤである場合、管理情報更新部１２０は、（ｃ）Ｓ２２１にて割り当てたデータページの最終割り当て前方ポインタ７１４が指すデータページの最終割り当て後方ポインタ７１５と、（ｄ）仮想テープの最終割り当て終端ポインタ５１５とを連結する。
【０１６４】
ステップＳ２２４：管理情報更新部１２０がＳ１０１にて割当対象として決定したデータページを、仮想テープの最終割当リストの終端に連結する。このＳ２２４においては、データページの割当先の仮想テープの最終割当リストにデータページがない場合とある場合とに分けて説明する。
【０１６５】
Ｓ２２４において、データページの割当先の仮想テープの最終割当リストにデータページがない場合、管理情報更新部１２０は、（ａ）割当先の仮想テープの最終割り当て始端ポインタ５１４と、（ｂ）Ｓ２２１で割り当てたデータページの最終割り当て前方ポインタ７１４と、を連結する。さらに、管理情報更新部１２０は、（ｃ）Ｓ２２１で割り当てたデータページの最終割り当て後方ポインタ７１５と、（ｄ）割当先仮想テープの最終割り当て終端ポインタ５１５と、を連結する。具体的には、管理情報更新部１２０が、以下の（１）〜（４）の動作を行う。
（１）仮想テープ管理情報５１において、割当先の仮想テープを示す仮想テープＩＤに関連付けられた最終割り当て始端ポインタ５１４を、Ｓ２２１で割り当てたデータページのデータページ番号に更新する。
（２）データページ管理情報７１において、Ｓ２２１で割り当てたデータページのデータページ番号に関連付けられた最終割り当て前方ポインタ７１４を、割当先の仮想テープを示す仮想テープＩＤに更新する。
（３）データページ管理情報７１において、Ｓ２２１で割り当てたデータページのデータページ番号に関連付けられた最終割り当て後方ポインタ７１５を、割当先の仮想テープを示す仮想テープＩＤに更新する。
（４）仮想テープ管理情報５１において、割当先の仮想テープを示す仮想テープＩＤに関連付けられた最終割り当て終端ポインタ５１５を、Ｓ２２１で割り当てたデータページのデータページ番号に更新する。
【０１６６】
Ｓ２２４において、データページの割当先の仮想テープの最終割当リストにデータページがある場合、管理情報更新部１２０は、（ａ）割当先の仮想テープの最終割り当て終端ポインタ５１５の指すデータページの最終割り当て後方ポインタ７１５と、（ｂ）Ｓ２２１で割り当てたデータページの最終割り当て前方ポインタ７１４と、を連結する。また、管理情報更新部１２０が、（ｃ）Ｓ２２１で割り当てたデータページの最終割り当て後方ポインタ７１５と、（ｄ）割当先仮想テープの最終割り当て終端ポインタ５１５と、を連結する。具体的には、管理情報更新部１２０が、以下の（５）および（６）、並びに、上述した（３）および（４）の動作を行う。
（５）データページ管理情報７１において、割当先の仮想テープの最終割り当て終端ポインタ５１５の指すデータページのデータページ番号に関連付けられた最終割り当て後方ポインタ７１５を、Ｓ２２１で割り当てたデータページのデータページ番号に更新する。
（６）データページ管理情報７０において、Ｓ２２１で割り当てたデータページのデータページ番号に関連付けられた最終割り当て前方ポインタ７１４を、割当先の仮想テープの最終割り当て終端ポインタ５１５の指すデータページのデータページ番号に更新する。
【０１６７】
次に、図２３および図２４を参照して、上述のデータ割当処理について、更に説明する。図２３は、図１４の状態を、図２１の仮想テープおよびデータページを用いて表した図であり、各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。実線および破線で結んだ部分はポインタの相互参照関係を表しており、実線は仮想テープの割当リストおよびプールのリストにおけるデータページの連結関係を示し、破線は最終割当リストにおけるデータページの連結関係を表す。
【０１６８】
図２３に示すように、仮想テープ＃１には、データページ＃１およびデータページ＃４が割り当てられている。また、仮想テープ＃２には、データページが割り当てられていない。プールには、１０個のデータページのうち、データページ＃１およびデータページ＃４以外のデータページがリンクされている。そのうち、データページ＃２およびデータページ＃３は、仮想テープ＃１の最終割当リストにリンクされている。また、プールにリンクされているデータページのうち、データページ＃２およびデータページ＃３以外のデータページは、何れの仮想テープにも割り当てられていない。
【０１６９】
図２３の状態で、仮想テープ＃２に対し、データページ割当処理が行われると、まず、データページ割当部１１０が、割り当てるデータページ（本例では、データページ＃２）を決定する。そして、管理情報更新部１２０が、データページ＃２をプールから切り離し、切り離したデータページ＃２を仮想テープ＃２に連結する。さらに、管理情報更新部１２０が、切り離したデータページ＃２が処理の前に割り当てられていた、仮想テープ＃１の最終割当リストから、上記データページ＃２を切り離す。そして、管理情報更新部１２０は、データページ＃２を仮想テープ＃２の最終割当リストに連結する。このデータページ割当処理が行われた後の状態を図２４に示す。
【０１７０】
図２４は、図２３の状態にデータページ割当処理を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図２４に示すように、仮想テープ＃２の割当リストおよび最終割当リストには、データページ＃２が割り当てられている。また、プールからデータページ＃２が切り離されている。これにより、データページ＃２は仮想テープ＃１が過去に使用したデータページとして認識されなくなる。
【０１７１】
（仮想テープ削除処理）
次に、図２５〜図２７を参照して、仮想テープ装置１の仮想テープ削除処理の流れについて説明する。図２５は、本実施の形態における仮想テープ装置１の仮想テープ削除処理の流れの一例を示すフローチャートである。
【０１７２】
コマンド制御部１０が上位装置８などから仮想テープの削除処理を受け付けると、仮想テープ装置１は、仮想テープの削除処理を開始する。
【０１７３】
図２５に示すように、仮想テープ装置１が仮想テープ削除処理を開始すると、仮想テープ制御部１００は、以下のステップＳ２５１〜ステップＳ２５７の処理を行う。
【０１７４】
ステップＳ２５１：データページ割当部１１０および管理情報更新部１２０は、当該仮想テープに割り当てられている全てのデータページに対し、第１の実施の形態で説明したデータページの解放処理を行う。管理情報更新部１２０は、データページの解放処理が終了すると（Ｓ１２３の後）、解放処理が終了したことを最終割当情報取得部１３１に通知する。
【０１７５】
ステップＳ２５２：最終割当情報取得部１３１が、仮想テープ管理情報５１を参照し、削除対象の仮想テープの仮想テープＩＤに関連付けられた最終割り当て始端ポインタ５１４が示すデータページのデータページ番号を取得する。最終割当情報取得部１３１は、取得したデータページ番号をデータ消去部１５０に供給する。
【０１７６】
ステップＳ２５３：データ消去部１５０が、仮想テープデータ記憶部３０に記録されている、Ｓ２５２にて取得したデータページ番号で特定されるデータページの記録データを完全に消去する。そして、データ消去部１５０は、記録データを消去したデータページを示す情報を、管理情報更新部１２０に供給する。
【０１７７】
ステップＳ２５４：管理情報更新部１２０が、Ｓ２５３にて記録データを消去したデータページを、最終割当リストから切り離す。その際に、管理情報更新部１２０は、上記データページの最終割り当て後方ポインタ７１５を、メモリ１３などに一時保存する。そして、その後、管理情報更新部１２０は、データページ管理情報７１において、当該データページのデータページ番号に関連付けられた最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５を「無し」に更新する。そして、管理情報更新部１２０は、更新が完了したことを最終割当情報取得部１３１に通知する。
【０１７８】
ステップＳ２５５：最終割当情報取得部１３１が、Ｓ２５４にて一時保存した最終割り当て後方ポインタ７１５を参照し、データを消去したデータページが、最終割当リストの最終データページか否かを確認する。具体的には、上記一時保存した最終割り当て後方ポインタ７１５が削除対象の仮想テープの仮想テープＩＤか否かを判定する。最終データページである場合（ＹＥＳの場合）、最終データページであることを示す通知を、管理情報更新部１２０に送信し、Ｓ２５７に進む。最終データページでない場合（ＮＯの場合）、Ｓ２５６に進む。
【０１７９】
ステップＳ２５６：最終割当情報取得部１３１が、仮想テープ管理情報５１を参照し、上記最終割当リストの次のデータページのデータページ番号を取得する。具体的には、Ｓ２５４にて一時保存した最終割り当て後方ポインタ７１５が示すデータページのデータページ番号を取得する。そして、Ｓ２５３に進む。このように、最終割当リストの最後のデータページまで、Ｓ２５３〜Ｓ２５６の処理を繰り返す。
【０１８０】
ステップＳ２５７：管理情報更新部１２０が、仮想テープ管理情報５１において、削除対象の仮想テープの仮想テープＩＤに関連付けられた最終割り当て始端ポインタ５１４と、最終割り当て終端ポインタ５１５とを当該仮想テープＩＤに更新し、処理を終了する。
【０１８１】
図２６は、図２４の状態で、仮想テープ＃１に対し、上述したＳ２５１の処理、つまり、仮想テープ＃１に割り当てられているすべてのデータページに対するデータページ解放処理（図１２）を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
【０１８２】
仮想テープ＃１に対し、仮想テープ削除処理におけるデータページ解放処理を行うと、図２６に示すように、仮想テープ＃１に割り当てられていたデータページ＃１およびデータページ＃４は解放され、プールの最後尾にリンクされる。この時、仮想テープ＃１の最終割当リストは、変更しない。つまり、データページ＃１およびデータページ＃４の夫々における最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５、並びに、仮想テープ＃１の最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５は、更新しない。
【０１８３】
その後、上述した仮想テープ削除処理を行うと、プールにリンクされているデータページであって、仮想テープ＃１の最終割当リストにリンクされたデータページ（データページ＃１、データページ＃３およびデータページ＃４）の最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５は、「無し」に更新される。さらに、仮想テープ＃１の最終割り当て始端ポインタ５１４および最終割り当て終端ポインタ５１５は、仮想テープ＃１の仮想テープＩＤに更新される。この時の状態を図２７に示す。
【０１８４】
図２７は、仮想テープ削除処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図２７に示すように、データページ番号が「ページ＃１」、「ページ＃３」および「ページ＃４」のデータページの最終割り当て前方ポインタ７１４および最終割り当て後方ポインタ７１５は、「無し」に更新されている。また、仮想テープ＃２に割り当てられているデータページ＃２は、変化しない。
【０１８５】
従って、仮想テープ＃１の削除処理を行うことにより、仮想テープ＃１に割り当てられてから他の仮想テープに割り当てられていないデータページに含まれるデータを完全に消去できる。
【０１８６】
（効果）
以上のように、本実施の形態に係る仮想テープ装置１は、１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割当リストにおける位置情報を含むデータページ管理情報７１に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する。
【０１８７】
上記最終割当リストには、削除対象の仮想テープのデータが残存しているデータページのみを示す情報が含まれている。そのため、データ消去部１５０は、上記最終割当リストを参照することによって、削除対象の仮想テープのデータが残存しているデータページを特定して、データを消去することができる。
【０１８８】
したがって、本実施の形態に係る仮想テープ装置１は、全データページを参照することなく、削除対象の仮想テープに割り当てられてから他の仮想テープに割り当てられていないデータページをより短時間で消去することができる。
【０１８９】
＜実施の形態３＞
本発明に係る第３の実施の形態について、図面を参照して詳細に説明する。上述した第１および第２の実施の形態の仮想テープ装置１は、本実施の形態にかかる仮想テープ制御装置を仮想テープ制御部として含んでいる。本実施の形態では、仮想テープ制御装置について説明を行う。
【０１９０】
（仮想テープ制御装置の構成）
図２８は、本発明の一実施の形態に係る仮想テープ制御装置の機能構成の一例を示す機能ブロック図である。なお、説明の便宜上、前述した第１および第２の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付す。また、本実施の形態に係る仮想テープ制御装置１００のハードウェア構成は、上述した仮想テープ装置１と同様のハードウェア構成（図５）を有しているものとする。
【０１９１】
図２８に示す通り、仮想テープ制御装置１００は、データページ割当部１１０およびデータ消去部１５０を備えている。
【０１９２】
データページ割当部１１０は、記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを仮想テープに動的に割り当てる手段である。
【０１９３】
データ消去部１５０は、データページ割当部１１０によって１または複数のデータページが割り当てられた仮想テープを削除するとき、データページ管理情報７０に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する。
【０１９４】
データページ管理情報７０は、複数のデータページの各々に関連付けられた最終割り当て仮想テープ情報を含んでいる。最終割り当て仮想テープ情報とは、データページに何れの仮想テープのデータが残存しているのかを示す情報である。
【０１９５】
なお、データページ管理情報７０は、仮想テープ制御装置１００内に内蔵された記憶装置に格納されていてもよいし、仮想テープ制御装置１００の外部に接続された記憶装置に格納されていてもよい。
【０１９６】
本実施の形態に係る仮想テープ制御装置１００において、データ消去部１５０は、データページにデータが残存しているかを示す情報を含むデータページ管理情報７０に基づいて、削除対象の仮想テープのデータが含まれるデータページを特定し、消去することができる。
【０１９７】
これにより、仮想テープの削除の際に、削除対象の仮想テープで、過去に使用したデータだけを特定して、効率よく仮想テープのデータを消去することできる。
【０１９８】
なお、上述した各実施の形態は、本発明の好適な実施の形態であり、上記各実施の形態にのみ本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記各実施の形態の修正や代用を行い、種々の変更を施した形態を構築することが可能である。
【０１９９】
例えば、上述した実施の形態における各動作は、ハードウェアまたはソフトウェア、あるいはその両方の複合構成によって実行することも可能である。
【０２００】
なお、ソフトウェアによる処理を実行する場合には、例えば、上記各処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。また、上記プログラムは、例えば、ハードディスクなどの記録媒体に記録しておくことが可能である。
【０２０１】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０２０２】
（付記１）記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当手段と、
前記データページ割当手段によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去手段と、を備えることを特徴とする仮想テープ制御装置。
【０２０３】
（付記２）前記データページ管理情報は、前記最終割り当て仮想テープ情報として、データページが前記データページ割当手段によって最後に割り当てられた仮想テープを示す識別子である最終割り当て仮想テープ識別子を含み、
前記データ消去手段は、前記最終割り当て仮想テープ識別子に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする付記１に記載の仮想テープ制御装置。
【０２０４】
（付記３）前記データページ管理情報から、前記最終割り当て仮想テープ識別子を取得する最終割当情報取得手段と、
前記削除対象の仮想テープを示す削除対象仮想テープ識別子と、前記最終割当情報取得手段によって取得された前記最終割り当て仮想テープ識別子と、が一致するか否かを判定する判定手段と、を更に備え、
前記データ消去手段は、前記判定手段によって、前記削除対象仮想テープ識別子と前記最終割り当て仮想テープ識別子とが一致すると判定されたとき、当該最終割り当て仮想テープ識別子に関連付けられたデータページに記録されているデータを消去する、ことを特徴とする付記２に記載の仮想テープ制御装置。
【０２０５】
（付記４）前記最終割り当て仮想テープ識別子には、当該最終割り当て仮想テープ識別子に関連付けられたデータページが最後に割り当てられた仮想テープがある場合、当該仮想テープを示す識別子が含まれ、当該最終割り当て仮想テープ識別子に関連付けられたデータページが何れの仮想テープにも割り当てられていない場合、何れの仮想テープにも割り当てられていないことを示す情報が含まれる、ことを特徴とする付記２または３に記載の仮想テープ制御装置。
【０２０６】
（付記５）
前記データページ割当手段によって、仮想テープに１または複数のデータページが割り当てられたとき、当該データページに関連付けられた前記最終割り当て仮想テープ識別子を、前記仮想テープを示す情報に更新する管理情報更新手段を更に備えることを特徴とする付記２から４の何れかに記載の仮想テープ制御装置。
【０２０７】
（付記６）
前記管理情報更新手段は、前記データ消去手段によって、データが消去されたデータページの前記最終割り当て仮想テープ識別子を、何れの仮想テープにも割り当てられていないことを示す情報に更新することを特徴とする付記５に記載の仮想テープ制御装置。
【０２０８】
（付記７）前記データページ管理情報は、前記最終割り当て仮想テープ情報として、仮想テープごとに、当該仮想テープのデータを有するデータページから構成される最終割当リストにおける位置情報を含み、
前記データ消去手段は、削除対象の仮想テープの前記最終割当リストにおける前記位置情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする付記１に記載の仮想テープ制御装置。
【０２０９】
（付記８）前記最終割当リストの最初のデータページを示す最終割り当て始端情報および最後のデータページを示す最終割り当て終端情報を仮想テープごとに有する仮想テープ管理情報と、前記最終割当リストにおける位置情報とから、前記最終割当リストに含まれるデータページを示すデータページ識別子を取得する最終割当情報取得手段を更に備え、
前記データ消去手段は、前記最終割当情報取得手段によって取得されたデータページ識別子であって、削除対象の仮想テープの前記最終割当リストに含まれるデータページのデータページ識別子によって特定されるデータページに記録されているデータを消去する、ことを特徴とする付記７に記載の仮想テープ制御装置。
【０２１０】
（付記９）
前記データページ割当手段によって、仮想テープに１または複数のデータページが割り当てられたとき、当該データページに関連付けられた前記最終割当リストにおける位置情報を更新する管理情報更新手段を更に備えることを特徴とする付記７または８に記載の仮想テープ制御装置。
【０２１１】
（付記１０）
前記管理情報更新手段は、前記データ消去手段によって、データが消去されたデータページに関連付けられた最終割当リストにおける位置情報を、何れの仮想テープにも割り当てられていないことを示す情報に更新することを特徴とする付記９に記載の仮想テープ制御装置。
【０２１２】
（付記１１）記憶領域と、
前記記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当手段と、
前記データページ割当手段によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去手段と、を備えることを特徴とする仮想テープ装置。
【０２１３】
（付記１２）記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当て、
１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする制御方法。
【０２１４】
（付記１３）記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、１または複数のデータページを、仮想テープに動的に割り当てるデータページ割当処理と、
前記データページ割当処理によって１または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去処理と、をコンピュータに実行させることを特徴とするプログラム。
【０２１５】
（付記１４）付記１３に記載のプログラムを記録した記録媒体。
【符号の説明】
【０２１６】
１    仮想テープ装置
１０    コマンド制御部
３０    仮想テープデータ記憶部
４０    データ管理情報記憶部
５０    仮想テープ管理情報
５０１    仮想テープインデックス
５０２    始端ポインタ
５０３    終端ポインタ
５１    仮想テープ管理情報
５１１    仮想テープインデックス
５１２    始端ポインタ
５１３    終端ポインタ
５１４    最終割り当て始端ポインタ
５１５    最終割り当て終端ポインタ
６０    未割当データページ管理情報
６０１    未割当データページの要素
６０２    始端ポインタ
６０３    終端ポインタ
６０４    ストレージプール
７０    データページ管理情報
７０１    データページインデックス
７０２    前方ポインタ
７０３    後方ポインタ
７０４    最終割り当て仮想テープＩＤ
７１    データページ管理情報
７１１    データページインデックス
７１２    前方ポインタ
７１３    後方ポインタ
７１４    最終割り当て前方ポインタ
７１５    最終割り当て後方ポインタ
１００    仮想テープ制御部（仮想テープ制御装置）
１１０    データページ割当部
１２０    管理情報更新部
１３０    最終割当情報取得部
１３１    最終割当情報取得部
１４０    判定部
１５０    データ消去部
【図１】
0005958440.tif 000002
【図２】
0005958440.tif 000003
【図３】
0005958440.tif 000004
【図４】
0005958440.tif 000005
【図５】
0005958440.tif 000006
【図６】
0005958440.tif 000007
【図７】
0005958440.tif 000008
【図８】
0005958440.tif 000009
【図９】
0005958440.tif 000010
【図１０】
0005958440.tif 000011
【図１１】
0005958440.tif 000012
【図１２】
0005958440.tif 000013
【図１３】
0005958440.tif 000014
【図１４】
0005958440.tif 000015
【図１５】
0005958440.tif 000016
【図１６】
0005958440.tif 000017
【図１７】
0005958440.tif 000018
【図１８】
0005958440.tif 000019
【図１９】
0005958440.tif 000020
【図２０】
0005958440.tif 000021
【図２１】
0005958440.tif 000022
【図２２】
0005958440.tif 000023
【図２３】
0005958440.tif 000024
【図２４】
0005958440.tif 000025
【図２５】
0005958440.tif 000026
【図２６】
0005958440.tif 000027
【図２７】
0005958440.tif 000028
【図２８】
0005958440.tif 000029
【図２９】
0005958440.tif 000030