(57)【要約】      （修正有）【課題】追記書込みにより更新されたファイルを保管するテープカートリッジの不要なデータ領域を自動的にリクラメーションを実行する。【解決手段】テープカートリッジを少なくとも３つのデータ・パーティション（ＤＰ１、ＤＰ２、ＤＰ３）に分割管理する。（ａ）ＤＰ１からデータを書き込み始め、ＤＰ１への書込みデータが規定容量に達した後はＤＰ２に後続のデータを書込む。（ｂ）ＤＰ１に保管されている必要データをＤＰ３に移動し、ＤＰ１を部分的リクラメーションする。（ｃ）ＤＰ２への書込みデータが規定容量に達した後、ＤＰ３の空き容量に書き込む。（ｄ）ＤＰ２に保管されている必要データをＤＰ３に移動し、ＤＰ２を部分的リクラメーションする。（ｅ）ＤＰ３の書込みデータが規定容量に達した後、ＤＰ１の空き容量に編集データを書き込む。これにより、通常の書込み作業と並行して自動的にテープカートリッジのリクラメーションが可能となる。【選択図】図１２
2015103033.tif 000002
【特許請求の範囲】
【請求項１】
追記書込みにより更新されたファイルを保管するテープカートリッジ（メディア）の不要なデータの領域を自動的にリクラメーションする方法であって、
前記追記書込みは、前記更新されたファイルについて必要なデータ（必要データ）と不要なデータ（不要データ）とをシーケンシャルに圧縮して前記メディアに保管することを特徴として、
前記メディアを、前記データを保管する少なくとも３つのデータ・パーティションに分割管理する、前記方法であって、
（ａ）第1のデータ・パーティションからデータを書き込み始め、第1のデータ・パーティションへの書込みデータが規定容量に達した後は第２のデータ・パーティションに後続のデータを書込みすることと、
（ｂ）第１のデータ・パーティションのデータ書込みが完了した後に、第１のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティションに移動し、第1のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、
（ｃ）第２のデータ・パーティションへの書込みデータが規定容量に達した後、第３のデータ・パーティションの空き容量に書き込みすることと、
（ｄ）第２のデータ・パーティションのデータ書込みが完了した後に、第２のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティションに移動し、第２のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、
（ｅ）第３のデータ・パーティションの書込みデータが規定容量に達した後、第１のデータ・パーティションの空き容量に書き込みすることと、
（ｆ）第３のデータ・パーティションのデータ書込みが完了した後に、第３のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第２のデータ・パーティションに移動し、第３のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、を含む前記メディアを自動的にリクラメーションする方法。
【請求項２】
前記部分的リクラメーションは、移動元の前記データ・パーティションに保管される必要データの割合が設定閾値以下である場合に、実行される、ことを特徴とする、請求項１に記載の方法。
【請求項３】
前記メディアは、更に前記データ・パーティション（ＤＰ）に書き込まれたファイルのインデックスを保管するインデック・パーティション（ＩＰ）に区分され、
前記インデックスは、ＤＰに保管された前記ファイルのデータ部分のメタ情報を含み、
前記メタデータは、ＤＰに保管された前記ファイルの必要データのそれぞれの位置情報（エクステント）を含み、
前記インデックスは、前記エクステント（ブロック番号、オフセット、サイズ）及び前記データ・パーティションのＩＤを含み、
前記部分的なリクラメーションは、前記移動されたファイルのインデックスとして、前記移動元のデータ・パーティションのＩＤから前記移動先のデータ・パーティションのＩＤに変更することと、を含む請求項１に記載の方法。
【請求項４】
前記データ・パーティションの各々の必要データの割合は、前記インデックスから計算される、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記設置閾値は、５０％と設定されることを特徴とする、請求項４に記載の方法。
【請求項６】
前記部分的リクラメーションは、前記移動元のデータ・パーティションの書込みが完了した後であって後続のデータ・パーティションへの通常の書込みデータの容量が設定した値を超えた場合に、データ移動を開始すること、を特徴とする請求項１に記載する方法。
【請求項７】
前記部分的なリクラメーションは、前記不要データのサイズを変えずに前記高圧縮可能なデータとして全てゼロで置換して前記必要データとともに、前記移動元のデータ・パーティションから他の前記移動先のデータ・パーティションに移動すること、を特徴とする請求項１に記載の方法。
【請求項８】
追記書込みにより更新されたファイルを保管するテープカートリッジ（メディア）の不要なデータの領域を自動的にリクラメーションするテープ装置であって、
前記追記書込みは、前記更新されたファイルについて必要なデータ（必要データ）と不要なデータ（不要データ）とをシーケンシャルに圧縮して前記メディアに保管することを特徴として、
前記メディアを、前記データを保管する少なくとも３つのデータ・パーティションに分割管理する、前記テープ装置の制御は、
（ａ）第1のデータ・パーティションからデータを書き込み始め、第1のデータ・パーティションへの書込みデータが規定容量に達した後は第２のデータ・パーティションに後続のデータを書込みすることと、
（ｂ）第１のデータ・パーティションのデータ書込みが完了した後に、第１のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティションに移動し、第1のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、
（ｃ）第２のデータ・パーティションへの書込みデータが規定容量に達した後、第３のデータ・パーティションの空き容量に書き込みすることと、
（ｄ）第２のデータ・パーティションのデータ書込みが完了した後に、第２のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティションに移動し、第２のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、
（ｅ）第３のデータ・パーティションの書込みデータが規定容量に達した後、第１のデータ・パーティションの空き容量に書き込みすることと、
（ｆ）第３のデータ・パーティションのデータ書込みが完了した後に、第３のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第２のデータ・パーティションに移動し、第３のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、を実行する、自動的にリクラメーションするテープ装置。
【請求項９】
追記書込みにより更新されたファイルを保管するテープカートリッジ（メディア）の不要なデータの領域を自動的にリクラメーションする、テープ装置のためのプログラムであって、
前記追記書込みは、前記更新されたファイルについて必要なデータ（必要データ）と不要なデータ（不要データ）とをシーケンシャルに圧縮して前記メディアに保管することを特徴として、
前記メディアを、前記データを保管する少なくとも３つのデータ・パーティションに分割管理する、前記プログラムであって、
（ａ）第1のデータ・パーティションからデータを書き込み始め、第1のデータ・パーティション（ＤＰ１）への書込みデータが規定容量に達した後は第２のデータ・パーティション（ＤＰ２）に後続のデータを書込みすることと、
（ｂ）第１のデータ・パーティションのデータ書込みが完了した後に、第１のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティションに移動し、第1のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、
（ｃ）第２のデータ・パーティションへの書込みデータが規定容量に達した後、第３のデータ・パーティションの空き容量に書き込みすることと、
（ｄ）第２のデータ・パーティションのデータ書込みが完了した後に、第２のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティションに移動し、第２のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、
（ｅ）第３のデータ・パーティションの書込みデータが規定容量に達した後、第１のデータ・パーティションの空き容量に書き込みすることと、
（ｆ）第３のデータ・パーティションのデータ書込みが完了した後に、第３のデータ・パーティションに保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第２のデータ・パーティションに移動し、第３のデータ・パーティションのデータ記憶エリアを部分的リクラメーションすることと、
を前記テープ装置に実行させる自動的にリクラメーションするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープカートリッジ（テープ、メディア）のデータを、複数のデータ・パーティションに区分けして管理して、自動的にリクラメーション（reclamation）する方法に関する。詳細には、本発明は、メディアを少なくとも３つのデータ・パーティションを区分けして、ファイルシステムによりファイルが変更（編集）された不要なデータを、自動的にリクラメーションする方法に関する。
【背景技術】
【０００２】
ＬＴＯ（Linear TapeOpen）などのテープドライブは、テープメディアの長手方向にデータを順次（シーケンシャル）に書込み保管する。テープドライブは、データの書込み・更新は追記形式であり、テープの途中のデータを変更した場合それ以降のデータは読めなくなってしまう。テープに書かれたデータの前半部分は不要なデータ（不要データ）であり、変更データは必要なデータ（必要データ）として後半部分も追記され、不要データの記憶域に新たなデータを書き込むことは出来ない。このようにテープカートリッジに不要データが残存し、メディアの全体容量を有効利用できない課題が生じる。
【０００３】
ＬＴＦＳ（Linear Tape File System ）は、テープ上のデータをファイル形式で扱うことができるファイルシステムである。ＬＴＦＳは、テープドライブ用ファイルシステムとして、第５世代ＬＴＯ（Linear Tape Open）テープドライブ（ＬＴＯ５）、及び第４世代ＩＢＭエンタープライズテープドライブＴＳ１１４０と共に利用することができる。ＬＴＦＳを用いてＬＴＯテープドライブにおいてファイルの編集（edit）をした場合、上で述べた書込み・更新の特性が顕著に課題として現れる。
【０００４】
ＬＴＦＳを利用してＬＴＯに書き込んだファイルが削除された場合でも、テープ上に削除されたファイルのデータは残される。また、ファイルの削除ではなく内容を更新した場合も、更新後のデータがテープの最後尾に追加され、更新前のデータは依然テープに残ったままになる。これらの不要なデータが書き込まれている領域は上で述べた理由から再利用は出来ない。作業ファイルの実体容量そのものは増大していないにもかかわらず、作業ファイルの更新を頻繁に行っている間にテープの容量が足りなくなってしまう、という状況が起こる。
【０００５】
不要データが増えたテープへの対処として、テープのデータ記憶域の再利用、即ちリクラメーションが行われる。リクラメーションの従来方法は、作業中のテープから必要なデータのみを別のテープにコピーする方法である。このコピー作業を行っている間はドライブが２台必要となる。同時にテープもコピー元・コピー先の２本必要になる。もしくは、テープのデータを一旦ＨＤＤ（Hard Disk Drive）などに退避させ、改めてテープに一から書き直す方法が考えられる。この場合テープ容量はデータ圧縮機能を使わない場合ＬＴＯ５で１．５ＴＢであり、容量の半分が不要データとしてもＨＤＤ上に７５０ＧＢの作業域が必要である。
【０００６】
特許文献１は、リクラメーションを、２つのカートリッジ、即ちコピー元のメディアとコピー先のメディアを搭載したテープドライブで行うことを示す。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特公表２０１０−５２２９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来のリクラメーションは、通常の読み書き業務の空き時間に行うことは難しく、ユーザのデータのコピー時間などの観点から高コストな作業となる。テープの不要データ領域の再利用（リクラメーション）を、通常の書込み等の作業を制限しない低コストの方法が可能かが課題となる。
【０００９】
従って、本発明の目的は、通常の読み書き記載をしながらテープカートリッジを自動的にリクラメーションする方法を提供することである。
【課題を解決するための手段】
【００１０】
かかる目的のもと、本発明は、追記書込みにより更新されたファイルを保管するテープカートリッジ（メディア）の不要なデータの領域を自動的にリクラメーション方法である。このリクラメーション方法は、前記追記書込みは、前記更新されたファイルについて必要なデータ（必要データ）と不要なデータ（不要データ）とをシーケンシャルに圧縮して前記メディアに保管することを特徴として、前記メディアを、前記データを保管する少なくとも３つのデータ・パーティション（ＤＰ１，ＤＰ２，ＤＰ３）に分割管理する。この方法は、
（ａ）第1のデータ・パーティション（ＤＰ１）からデータを書き込み始め、第1のデータ・パーティション（ＤＰ１）への書込みデータが規定容量に達した後は第２のデータ・パーティション（ＤＰ２）に後続のデータを書込み（ＤＰ１及びＤＰ２書込み）することと、
（ｂ）第１のデータ・パーティション（ＤＰ１）のデータ書込みが完了した後に、第１のデータ・パーティション（ＤＰ１）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティション（ＤＰ３）に移動し、第1のデータ・パーティション（ＤＰ１）のデータ記憶エリアを部分的リクラメーションすることと、
（ｃ）第２のデータ・パーティション（ＤＰ２）への書込みデータが規定容量に達した後、第３のデータ・パーティション（ＤＰ３）の空き容量に書き込み（ＤＰ３書込み）することと、
（ｄ）第２のデータ・パーティション（ＤＰ２）のデータ書込みが完了した後に、第２のデータ・パーティション（ＤＰ２）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティション（ＤＰ３）に移動し、第２のデータ・パーティション（ＤＰ２）のデータ記憶エリアを部分的リクラメーションすることと、
（ｅ）第３のデータ・パーティション（ＤＰ３）の書込みデータが規定容量に達した後、第１のデータ・パーティション（ＤＰ１）の空き容量に新たな編集データを書き込みする（ＤＰ１書込みする）ことと、
（ｆ）第３のデータ・パーティション（ＤＰ３）のデータ書込みが完了した後に、第３のデータ・パーティション（ＤＰ３）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第２のデータ・パーティション（ＤＰ２）に移動し、第３のデータ・パーティション（ＤＰ３）のデータ記憶エリアを部分的リクラメーションすることと、を含む。
【００１１】
また、このリクラメーション方法は、前記部分的リクラメーションが、移動元の前記データ・パーティションに保管される必要データの割合が設定閾値以下である場合に、実行される、ことを特徴とする。
【００１２】
また、このリクラメーション方法は、前記メディアが、更に前記データ・パーティション（ＤＰ）に書き込まれたファイルのインデックスを保管するインデック・パーティション（ＩＰ）に区分され、
前記インデックスは、ＤＰに保管された前記ファイルのデータ部分のメタ情報を含み、
前記メタデータは、ＤＰに保管された前記ファイルの必要データのそれぞれの位置情報（エクステント）を含み、
前記インデックスは、前記エクステント（ブロック番号、オフセット、サイズ）及び前記データ・パーティションのＩＤを含み、
前記部分的なリクラメーションは、前記移動されたファイルのインデックスとして、前記移動元のデータ・パーティションのＩＤから前記移動先のデータ・パーティションのＩＤに変更することを含む。
【００１３】
また、このリクラメーション方法は、前記データ・パーティションの各々の必要データの割合は、前記インデックスから計算されることを特徴とする。
【００１４】
また、このリクラメーション方法は、前記設置閾値が５０％と設定されることを特徴とする。
【００１５】
また、このリクラメーション方法は、前記部分的リクラメーションが、前記移動元のデータ・パーティションの書込みが完了した後であって後続のデータ・パーティションへの通常の書込みデータの容量が設定した値を超えた場合に、データ移動を開始すること、を特徴とする。
【００１６】
また、このリクラメーション方法は、前記部分的なリクラメーションが、前記不要データのサイズを変えずに前記高圧縮可能なデータとして全てゼロで置換して前記必要データとともに、前記移動元のデータ・パーティションから他の前記移動先のデータ・パーティションに移動することと、を特徴とする。
【００１７】
更に、かかる目的のもと、本発明は、追記書込みにより更新されたファイルを保管するテープカートリッジ（メディア）の不要なデータの領域を自動的にリクラメーションするテープ装置である。このテープ装置は、前記追記書込みが、前記更新されたファイルについて必要なデータ（必要データ）と不要なデータ（不要データ）とをシーケンシャルに圧縮して前記メディアに保管することを特徴とする。また、このテープ装置の制御は、
前記メディアを、前記データを保管する少なくとも３つのデータ・パーティション（ＤＰ１，ＤＰ２，ＤＰ３）に分割管理する、前記装置の制御は、
（ａ）第1のデータ・パーティション（ＤＰ１）からデータを書き込み始め、第1のデータ・パーティション（ＤＰ１）への書込みデータが規定容量に達した後は第２のデータ・パーティション（ＤＰ２）に後続のデータを書込み（ＤＰ１及びＤＰ２書込み）することと、
（ｂ）第１のデータ・パーティション（ＤＰ１）のデータ書込みが完了した後に、第１のデータ・パーティション（ＤＰ１）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティション（ＤＰ３）に移動し、第1のデータ・パーティション（ＤＰ１）のデータ記憶エリアを部分的リクラメーションすることと、
（ｃ）第２のデータ・パーティション（ＤＰ２）への書込みデータが規定容量に達した後、第３のデータ・パーティション（ＤＰ３）の空き容量に書き込み（ＤＰ３書込み）することと、
（ｄ）第２のデータ・パーティション（ＤＰ２）のデータ書込みが完了した後に、第２のデータ・パーティション（ＤＰ２）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティション（ＤＰ３）に移動し、第２のデータ・パーティション（ＤＰ２）のデータ記憶エリアを部分的リクラメーションすることと、
（ｅ）第３のデータ・パーティション（ＤＰ３）の書込みデータが規定容量に達した後、第１のデータ・パーティション（ＤＰ１）の空き容量に書き込みする（ＤＰ１書込みする）こと、
（ｆ）第３のデータ・パーティション（ＤＰ３）のデータ書込みが完了した後に、第３のデータ・パーティション（ＤＰ３）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第２のデータ・パーティション（ＤＰ２）に移動し、第３のデータ・パーティション（ＤＰ３）のデータ記憶エリアを部分的リクラメーションすることと、を実行する。
【００１８】
更に、かかる目的のもと、本発明は、追記書込みにより更新されたファイルを保管するテープカートリッジ（メディア）の不要なデータの領域を自動的にリクラメーションする、コンピュータ（テープ装置）のためのプログラムである。このプログラムは、前記追記書込みが、前記更新されたファイルについて必要なデータ（必要データ）と不要なデータ（不要データ）とをシーケンシャルに圧縮して前記メディアに保管することを特徴として、
前記メディアを、前記データを保管する少なくとも３つのデータ・パーティション（ＤＰ１，ＤＰ２、ＤＰ３）に分割管理する。また、このプログラムは、
（ａ）第1のデータ・パーティション（ＤＰ１）からデータを書き込み始め、第1のデータ・パーティション（ＤＰ１）への書込みデータが規定容量に達した後は第２のデータ・パーティション（ＤＰ２）に後続のデータを書込み（ＤＰ１及びＤＰ２書込み）することと、
（ｂ）第１のデータ・パーティション（ＤＰ１）のデータ書込みが完了した後に、第１のデータ・パーティション（ＤＰ１）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティション（ＤＰ３）に移動し、第1のデータ・パーティション（ＤＰ１）のデータ記憶エリアを部分的リクラメーションすることと、
（ｃ）第２のデータ・パーティション（ＤＰ２）への書込みデータが規定容量に達した後、第３のデータ・パーティション（ＤＰ３）の空き容量に書き込み（ＤＰ３書込み）することと、
（ｄ）第２のデータ・パーティション（ＤＰ２）のデータ書込みが完了した後に、第２のデータ・パーティション（ＤＰ２）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第３のデータ・パーティション（ＤＰ３）に移動し、第２のデータ・パーティション（ＤＰ２）のデータ記憶エリアを部分的リクラメーションすることと、
（ｅ）第３のデータ・パーティション（ＤＰ３）の書込みデータが規定容量に達した後、第１のデータ・パーティション（ＤＰ１）の空き容量に書き込み始める（ＤＰ１書込みする）ことと、
（ｆ）第３のデータ・パーティション（ＤＰ３）のデータ書込みが完了した後に、第３のデータ・パーティション（ＤＰ３）に保管されている必要データと不要データとを前記不要データを高圧縮可能なデータで置換して、第２のデータ・パーティション（ＤＰ２）に移動し、第３のデータ・パーティション（ＤＰ３）のデータ記憶エリアを部分的リクラメーションすることと、を前記コンピュータ（テープ装置）に実行させる。
【発明の効果】
【００１９】
上述の本発明を適用する方法により、通常の書込み作業をしながら自動的にテープカートリッジのリクラメーションが可能である。
【図面の簡単な説明】
【００２０】
【図１】ＬＴＦＳの２つのパーティションにより区分けされたテープを示す。
【図２】本発明が適用されるホストに接続されたテープドライブ（磁気テープ装置）を含むストレージシステムのハードウェア構成例を示す。
【図３】ＬＴＦＳのよりテープドライブがテープの長手方法を往復してデータ書込み、その後複数のファイルの部分的データを変更している。
【図４】ＬＴＦＳフォーマットでのメディアのインデックス・パーティションとデータ・パーティションの内容を示す。
【図５】サイズＬのＦｉｌｅ１を部分的な書き換えの場合のインデックス情報の変更内容を示す。
【図６】本発明の自動リクラメーションの第１のステップのデータ・パーティションへの通常のファイルの書込み及び編集の態様を示す。
【図７】本発明の自動リクラメーションの第２のステップのデータ・パーティションへの新規なファイルの書込み及び編集の態様を示す。
【図８】本発明の自動リクラメーションの第３のステップのデータ・パーティションへのファイルの書込み及び編集の態様を示す。
【図９】本発明の自動リクラメーションの第４のステップのデータ・パーティションへの新たなファイルの書込み及び編集の態様を示す。
【図１０】本発明の自動リクラメーションの第５のステップ、第６のステップ、第７のステップのデータ・パーティションへのファイルの書込み及びその編集の態様を示す。
【図１１】ホストからの書込みとリクラメーションとを切り替えながらデータコピーする方法を示す。
【図１２】通常の読み書き作業、と、リクラメーション作業、とを切り替えながら、自動リクラメーションを完了するフローを示す。
【図１３】ファイルを不要データ（不要ブロック）を含めて圧縮してリクラメーションする場合を示す。
【発明を実施するための形態】
【００２１】
ホストから新たなファイルの書込み及びファイルの編集をしながら編集済みのファイルのデータについて、リクラメーションをする実施の形態（実施例）を説明する。実施例を以下の内容は次の通りである。
１．自動リクラメーションの流れ。
２．データコピーの方法。
３．リクラメーションと通常読み書きの切り替え。
４．削除したデータをゼロ値の圧縮でコピーする手法。
実施例の説明の前提として、テープメディアのデータ・パーティション（図１）、テープドライブ構成及びその動作（図２）、メディアに保管されたファイルのデータの書込み（変更／編）（図３）、テープドライブ用ファイルシステム（ＬＴＦＳ）でのファイル更新とインデックス・パーティション及びデータ・パーティションのフォーマット（図４）、ＬＴＦＳでファイルの一部が変更され場合のインデックス（メタ情報）の内容（図５）について説明する。
【００２２】
ＬＴＯ５から、ＬＴＦＳによりファイル単位で管理できるように、”パーティション”（part ion）というデータ域を分割して複数のテープ領域があるように見せる技術がある。特に、ＬＴＯ６からは４パーティションまでをサポートできるようになっている。ＬＴＦＳでは、データをファイルとして扱うために、ファイルのメタ情報を集めたインデックスと呼ばれるデータ項目を持つ。インデックスはパーティションのひとつを使い、そのパーティションをインデックス・パーティション（ＩＰ)と呼ぶ。データ本体の記録はＩＰとは別のパーティションを使い、それをデータ・パーティション（ＤＰ）と呼ぶ。
【００２３】
図１は、ＬＴＦＳのために２つのパーティションにより区分けされた典型的なテープのデータ等領域を示す。
ＬＴＯ５テープドライブは、テープの長手方向に沿った書き込み領域のラップ（wrap）を往復しながらデータを書く。ＬＴＦＳではこのラップ２本分（１往復分）をインデックス・パーティションとして利用している。テープの先端部（ＢＯＴ：Beginning of Tape）から終端部（ＥＯＴ：End of tape）に渡ってＩＰとＤＰとの２つに区分される。ヘッドが同時に読み書きするトラック群であり、トラック１６本がラップ１本に相当する。ＬＴＯ５のテープカートリッジでは、テープ長手方向は約８００ｍ、横手方向はラップ数８０本の幅である。ＩＰとＤＰとは２本のラップの保護領域（guard band）で区分される。テープはラップの長手方向に前後に進行し、ＢＯＴおよびＥＯＴにおいて進行する向きを反転することをラップターン（wrap turn）と呼ぶ。テープドライブのヘッドに対してテープの長手方向のＢＯＴからＥＯＴの移動時間は６０〜９０秒である。長手方向の半分のテープ移動時間は３０〜４５秒程度である。ＬＴＯ５のテープカートリッジの記憶容量は、約１TBである。例えば、メディア情報を含むＩＰの容量はユーザが変更できるが、典型的には全体容量の５％（５０GB）を占める。
【００２４】
ユーザがＬＴＦＳを利用してテープメディアに書き込むと、テープメディアではファイル本体の他、インデックス・ファイル（単に「インデックス」とも言う）と呼ばれるメタ情報をテープメディアに書き込む。インデックスは、メタ情報として、ファイル名やファイル作成日、及び、メディア上の位置情報およびサイズの情報（エクステント）を含む。ＩＰには、主に最新のインデックスが書き込まれる。ＤＰには、ファイルの本体、及び、インデックスの履歴が書き込まれる。ＬＴＦＳを用いてテープメディア上のファイルを読み書きする場合、ブロックと呼ばれる単位でデータの読み書きを行う。ブロックは、ブロックが記録されるパーティション毎にパーティションの先頭から何番目のブロックであるという番号で管理され、各ファイルとブロックの対応(ファイルＡはブロック#N〜N+α）で構成されるといった情報)もインデックスに格納されている。
【００２５】
図２は、本発明が適用されるテープドライブ（磁気テープ装置）を含む（典型的な）ストレージシステムのハードウェア構成例を示す。
テープドライブ６０は、ホスト３００のアプリケーションからファイルシステム（ＬＴＦＳ）を介してファイルの読み書き要求を受け取る。テープドライブは、通信Ｉ／Ｆ（インターファース）１１０と、バッファ１２０と、記録チャネル１３０と、読書きヘッド１４０と、制御部１５０と、位置決め部１６０と、モータドライバ１７０と、モータ１８０とを含む。
【００２６】
インターフェース１１０は、ネットワークを介してホスト３００との通信を行う。例えばインターフェース１１０は、ホスト３００から、テープカートリッジ（メディア、テープ、メディア）４０へのデータの書込みを指示する書込みコマンドを受信する。またインターフェース１１０は、ホスト３００から、メディア４０からのデータ読出しを指示する読出しコマンドを受信する。インターファース１１０は、書込みデータの圧縮を読み出しデータの非圧縮を行う機能を有し、実際のデータに対してメディアへの記憶容量を約２倍近く高めている。
【００２７】
テ−プドライブ６０は、ホスト３００のアプリケーションから送られた複数のレコードで構築されるデータセット（ＤａｔａＳｅｔ：ＤＳと言う）単位でメディア４０への読み書きを行う。ＤＳの典型的な大きさは４ＭＢである。ホスト３００は、ファイルシステムはファイルを指定して、また、ＳＣＳＩコマンドはレコードを指定して、テープドライブに書込み／読み出し要求（Ｗｒｉｔｅ／Ｒｅａｄ）を送る。ＤＳは複数のレコードで構成される。
【００２８】
各ＤＳは、データセットに関する管理情報を含む。ユーザデータはレコード単位で管理される。管理情報はデータセット情報テーブル（ＤＳＩＴ：Data Set Information Table）に含まれる。ＤＳＩＴは、そのＤＳに含まれるレコード数およびＦＭ数、更にはメディアの先頭から書かれた累積レコード数および累積ＦＭ数、を含む。なお、レコードをブロックとも呼ぶ。
【００２９】
バッファ１２０は、メディア４０に書込むべきデータ、また、メディアから読み出したデータを一時的に蓄積するメモリである。例えばバッファ１２０は、ＤＲＡＭ(Dynamic Random Access Memory）によって構成される。記録チャネル１３０は、バッファ１２０に蓄積されたデータをメディア４０に書き出すため、またはメディア４０から読み出されたデータをバッファ１２０に一時的に蓄積するために用いられる通信経路である。
【００３０】
読書きヘッド１４０は、データ読書き素子を有し、メディア４０へのデータの書込み及びメディアからのデータの読出しを行う。本実施形態に係る読書きヘッド１４０はまたサーボ読取り素子を有し、メディア４０に設けられたサーボトラックから信号を読み取る。位置決め部１６０は、カートリッジ４０の短手方向（幅方向）に読書きヘッド１４０の移動を指示する。モータドライバ１７０は、モータ１８０を駆動する。
【００３１】
テ−プドライブ６０は、ホスト３００から受取ったコマンドに従って、データのテ−プへの書込みやテ−プからの読出しをする。テ−プドライブ６０は、バッファ、読み書きチャネル、ヘッド、モ−タ、テ−プを巻きつけるリ−ルと、読み書き制御と、ヘッド位置制御システムと、モ−タドライバとを含む。テ−プドライブは、テープカートリッジを着脱可能に搭載する。テ−プは、リ−ルの回転に伴い、長手方向に移動する。ヘッドは、テテープの長手方向に移動してデータを書き込んだり、テ−プからデータを読出したりする。また、テープカートリッジ４０はカートリッジメモリ（ＣＭ：Cartridge Memory）と呼ばれる非接触不揮発性メモリを備える。テープカートリッジ４０に搭載されたＣＭは、テープドライブ６０により非接触的に読み書きされる。ＣＭはカートリッジ属性を保管する。テープドライブは、読出し及び書込み時に、ＣＭからカートリッジ属性を取り出して最適な読み書きができるようにする。
【００３２】
制御部１５０は、テープドライブ６０の全体の制御を行う。すなわち、制御部１５０は、インターフェースで受信したコマンドに従って、データのメディア４０への書込み及びメディア４０からのデータの読出しを制御する。また、制御部１５０は、読取られたサーボドラックの信号に従って位置決め部１６０を制御する。更に制御部１５０は、位置決め部１６０及びモータドライバ１７０を介してモータの動作を制御する。なお、モータドライバ１７０は制御部１５０に直接接続されてもよい。
【００３３】
図３は、ＬＴＦＳのよりテープドライブがテープの長手方法を往復してデータ書込み、その後複数のファイルの部分的データを変更している。各ファイルは模様分けして区別されている。
上図（Ａ）は、初めは各ファイル（第１、第２、第３、第４）が連続して記録されていることを示す。下図（Ｂ）は、各ファイルを部分的に変更している後のテープ上でのデータ部分を示す。第１のファイルのデータ部分１，３，５について上書や削除されて変更され、２，４は変更さていない。第２のファイルはデータ部分６が変更されている。第４のファイルは、データ部分７が変更されている。変更された元のデータ部分は無効データとしてメディア上にそのまま残る。第1のファイルの変更後、データ部分１，３，５，６についての更新された新しいデータ部分は、ファイルのＥＯＤ(End of Data）以降に順番に追記書込みされる。
【００３４】
図４は、ＬＴＦＳフォーマットのメディアでのファイルの追加および変更でのインデックス・パーティションとデータ・パーティションの内容変化を示す。
（Ａ）は、ＬＴＦＳフォーマットで初期化した直後のテープメディアに書き込まれるメタ情報を示す。
テープメディアを ＬＴＦＳ フォーマットで初期化した直後には、テープメディアにはＡ）に示す情報が書き込まれる。
・ＦＩＤ(Format Identification Data set)は、テープドライブがテープメディアを初期化する際、テープメディアの先頭に書き込まれる特殊なデータであり、テープメディア上のパーティションの数や各パーティションの容量などの情報を持つ。
・ＶＯＬ１ Ｌａｂｅｌは、ANSI Label とも呼ばれるもので、文字通り ANSI で規定された一般的なフォーマットのラベルである。
・ＬＴＦＳ Ｌａｂｅｌは、ＬＴＦＳ フォーマットで規定されたラベルで、このテープメディアがＬＴＦＳフォーマットのどのバージョンに準拠してフォーマットされたかといった情報を保持するラベルである。ここでメディアに記録されるレコードのサイズを指示する。レコードサイズはブロック・サイズ（block size）とも言う。ファイルの終端がレコードサイズ（例えば、５１２ＫＢ）に満たない場合でもレコードサイズを確保する。
・ＦＭ(Filemark)とは、テープメディアで一般的に利用される、いわば本のしおりのようなものであり、データの位置合わせ(seek)を行う際に利用される。
・Index#0とは、フォーマット時に書き込まれるインデックスであり、この段階ではファイル自体は一つも存在しないためファイル固有の情報は持たないもののテープメディアのボリューム名などの情報を保持するため書き込まれる。
【００３５】
（Ｂ）は、ＬＴＦＳフォーマットで初期化した後にファイルを書き込んだ場合にテープメディアに書き込まれる情報を示す。
ＬＴＦＳフォーマットで初期化後、ファイル（Ｆｉｌｅ１）を書き込むと、テープメディア上に書き込まれたデータは（Ｂ）のようになる。太線で囲まれた部分が追加/更新されたデータである。Index#1はＦｉｌｅ１のメタ情報（インデックス）を持つ。ＩＰは最新のインデックスのみ保持する一方、ＤＰはインデックスの履歴を保持する。インデックスを更新するタイミングはファイルシステムの実装にまかされており、例えば一定時間毎に更新したり、テープドライブからテープメディアを取り出す時のみ更新したりしている。更に使い続ける場合も、ＩＰに置かれるインデックスは常に最新のインデックスのみが置かれ、ＤＰは既存のインデックスを上書きすることなく、ファイルおよびインデックスを追記していく。
【００３６】
図４の（Ｃ）は、（Ｂ）の状態の後、更にファイル（Ｆｉｌｅ２）を書き込んだ場合のテープメディアに書き込まれる情報を示す。
最初のファイル（Ｆｉｌｅ１）をテープメディア上に書き込んだ後、次のファイル（Ｆｉｌｅ２）を追加すると、格納されるＦｉｌｅ１にＦｉｌｅ２が連続してテープメディアに保管される。Index#2はＦｉｌｅ１およびＦｉｌｅ２のメタ情報（インデックス）を持つ。
【００３７】
図４の（Ｄ）は、（Ｂ）の状態の後、Ｆｉｌｅ１の末尾に文字情報（Ｆｉｌｅ1-2）を追加してＦｉｌｅ1を更新した後、メディア上に書き込まれるメタ情報を示す。
アプリケーションによるが、文書作成アプリケーション（例、マイクロソフト社のワード）は、メディア上に書き込まれたファイルを更新した後、１つのファイル（Ｆｉｌｅ1）がＦｉｌｅ1-1及びＦｉｌｅ1-2のようにフラグメント化（分散）して記録する。このようなファイルの書き換えでは、更新時のテープメディアの空き容量の減少分が更新した情報量に依存する。
【００３８】
図５は、サイズＬのＦｉｌｅ１を部分的な書き換えの場合のインデックス情報の変更内容を示す。
インデックス(index)はファイルの位置情報（ポインター）をエクステント（extent）と呼ぶ形式で保管する。エクステントの要素（element）は、ファイルの部分（データ部分）の先頭のブロックの番号（StartBlock）,その番号のブロック内での開始オフセット（ByteOffset）,データのサイズ（ByteCount）,データ部分のファイルでの位置（FileOffset）を含む。ユーザデータはブロックサイズで指定されたサイズ（例えば５１２KB）単位のブロック単位でメディアに記録される。
StartBlockは、テープメディアの先頭から固定サイズのブロックの順番を指す。ByteOffsetは、特定番号のブロック内で書き始めるオフセットを示す。
ByteCountは、エクステントで指示されるデータ部分のデータサイズを指す。
FileOffsetは、エクステントで指示されるデータ部分のファイル位置を指す。
ブロックは、ブロックまたはＦＭ（FileMaker：ブロックの区切り）を含み、ＬＴＦＳＬａｂｅｌにおいてサイズが指定される。ユーザデータはブロックサイズで指定されたサイズ（例えば５１２KB）単位のブロック単位でメディアに記録される。
【００３９】
Ｆｉｌｅ１のサイズがＬをメディアに記録されている最初の場合（Ａ）、インデックスはエクステント（ｘ）であることを示す。Ｆｉｌｅ１は、テープメディアの長手方向にブロック単位で連続して書き込まれている斜線部分である。ブロックはエクステントではブロックに相当する。データ部分の書換えの場合（Ｂ）は、（Ａ）でＦｉｌｅ１を書き込んだ後、そのＦｉｌｅ１のＭバイトから６００ＫＢを２５０ＫＢのブロックで書換えた場合エクステント（ｘ）（ｙ）（ｚ）の情報を示す。
エクステント（ｙ）は、Ｆｉｌｅ１のデータ部分６００ＫＢバイトを変更して書き込まれる２５０KBのデータ（ブロック）を指示する。データ部分の連続ではなく、後続するBlock番号（StartBlock:N+4）のブロックとして追記書込む。
エクステント(y)は、StartBlock=N+4のオフセットByteOffset=0から２５０KBを追記（append write）する。
エクステント（ｘ）は、StartBlock=NのByteCount=Mまでのデータ（ブロック）を指示す。ブロックNのオフセットMから600KBのデータは変更される。
エクステント（ｚ）は、StartBlock=N+2のByteOffset=(M+600K)mod DからByteCount=L-(M+600)のデータ部分を示す。Ｄはブロックサイズ（例えば５１２KB）である。ByteOffsetはM+600KBをＤで割った余りであり、ブロック番号N+2でのオフセットを与える。
Ｆｉｌｅ１のインデックスは、データ部分の書換えにより、複数のエクステント（ｘ）→（ｙ）→（ｚ）にようにフラグメント（分散）化した配置情報を含む。この２５０ＫＢのデータを含む斜線部は必要データであり、６００ＫＢのデータが不要データである。
【００４０】
本発明の実施例は、次の手順で実行される。
データ・パーティションを３つ（ＤＰ１,ＤＰ２,ＤＰ３）用いて、自動的にリクラメーションする手法を提案する。
・ＤＰ１からデータを書き込み始める。
・ＤＰ１のデータが規定容量に達し書き込めなくなった後、ＤＰ２にデータを書き込み始める。
・ＤＰ１のデータを、不要なエリアを削除した上で、ＤＰ３に移動する。ＤＰ３のデータは不要なエリアを削除しているため、規定容量には達しない。また、ＤＰ２の書き込みとは同時に行えないので、ＬＴＦＳはＤＰ２への通常の書き込みと、ＤＰ３へのデータコピーをコントロールする。ＤＰ１からＤＰ３へのデータ移動が完了した段階で、ＤＰ１のデータエリアはすべて再利用可能となる。
・ＤＰ２のデータが規定容量に達し書き込めなくなった後、ＤＰ３の空き容量にデータを書き込み始める。
５）  ＤＰ２のデータを、不要なエリアを削除した上で、ＤＰ１に移動する。
この作業を繰り返す
このように３つのパーティションを利用することで、テープに対するデータの書き込みを完全に中断させる必要が無い状況下で、かつ1台のドライブのみで、かつ人の作業を要さずにテープの再利用が行える。
【００４１】
さらに、ＤＰ間でデータを移動する際の手法として、不要なエリアを削除してしまうのではなく、「圧縮機能を有効にした上で、データをゼロの値で送る」方法を提案する。
不要データをすべてゼロ値に置換し圧縮機能を働かせた場合、テープに書かれた場合の物理使用エリアは大幅に縮小できるため容量を増やすことが可能である。例えば、不要データ部分を全てゼロで置換してコピー先に移動した場合、データ。サイズは元の１０％以下になる。置換データのゼロは例示であり、高圧縮が可能なデータであれば他のデータでもよい。この手法は、不要データのサイズを変更せず、データ自体を高圧縮可能なデータで置換する。
【００４２】
不要データを圧縮して移動する手法あ、特にＬＴＦＳを使用した場合に有用である。
ＬＴＦＳの場合、データ・パーティション（ＤＰ)の他にインデックス・パーティション（ＩＰ)がひとつ存在する。ＩＰはＤＰに書かれたすべてのファイルのメタ情報（インデックス）が保管されているため、データの移動を行った場合、すべてのファイル情報に対して、新しくデータが書かれた領域の情報（特に、パーティション番号・ブロック番号・ブロック長など）に更新する必要がある。
【００４３】
この手法を用いた場合、ブロック番号とブロック長の変更が不要である。インデックスをパーティションごとに持つ場合、先に述べた提案でデータをDP間で移動させた際に必要なインデックスの変更は、そのインデックスが指すパーティションの番号のみで対応できる。この手法を用いない場合、パーティション内のすべてのファイルの内容を更新することになる。
【００４４】
１．自動リクラメーションの流れ：
図６〜図１０は、メディアの３つのデータ・パーティションにファイルの通常の書込み（変更）及び部分的なリクラメーションを実行する自動リクラメーションの実施例を示す。部分的リクラメーション（partial reclamation）は、データ・パーティションのファイルのデータを必要データと不要データを区別して他のデータ・パーティションに移動して記憶領域の再利用することを言う。各データ・パーティションでの書込み及びその完了後に部分的なリクラメーションが次のステップで実行される。
【００４５】
図６は、本発明の自動リクラメーションの第１のステップ（通常のファイルの書込み）の態様を示す。
（１）第１のステップは、ＤＰ１からデータを書き込み始め、ＤＰ１のデータが規定容量に達し書き込めなくなった後、ＤＰ２にデータを書き込み始める。灰色部分は不要データの領域である。
【００４６】
図７は、本発明の自動リクラメーションの第２のステップ（部分的リクラメーション）の態様を示す。
（２）第２のステップは、ＤＰ１のデータを不要データを削除した上で、ＤＰ３に移動する部分的リクラメーションを示す。
ＤＰ１の灰色部分と斜線部分、即ち全ての容量領域は、再利用可能である。ＤＰ３の波線部分は、移動されたＤＰ１の斜線部分の必要データを示す。
【００４７】
図８は、本発明の自動リクラメーション、第３のステップ（通常のファイルの書込み）の態様を示す。
（３）第３のステップは、部分的クラメーションの完了後したＤＰ３の空き領域への後続の書込みを示す。
図８において、ＤＰ２のデータが規定容量に達し書き込めなくなった後、ＤＰ３の空き容量にデータを書き込み始める。ＤＰ２の灰色部分は不要データであり、点領域は必要データである。ＤＰ３の点領域は、後続の書込みデータである。
【００４８】
図９は、本発明の自動リクラメーションの第４のステップ（部分的リクラメーション）を実行する態様を示す。
（４）第４のステップは、ＤＰ１のデータを、不要データを削除した上で、ＤＰ３に移動することを示す。ＤＰ２の点領域と斜線部分、即ち全ての容量領域は再利用可能である。ＤＰ１の網面部分は、移動されたＤＰ２の斜線部分の必要なデータである。
【００４９】
図１０は、本発明の自動リクラメーションの第５のステップ及び第６のステップ（通常の書込み）と、第７のステップ（部分的リクラメーション）との態様を示す。  
他のデータ・パーティションに対する通常の書込みのための第５のステップ及び第６のステップと、部分的リクラメーションのための第７のステップとを繰り返す。
（５）第５のステップの後続の書込みは、（２）の第２のステップの部分的リクラメーションの先のＤＰ３の空き容量への書込みデータが規定容量に達した状態である。
（６）第６のステップの後続の書込みは、（４）の第４ステップの部分的リクラメーションの先のＤＰ１の空き容量に書き込み始める。
（７）第７のステップの部分的リクラメーションは、ＤＰ３の必要データを、（４）の第４ステップの部分的リクラメーションにより空になったＤＰ２に移動する。
【００５０】
２．データコピーの方法：
図１１は、ホストからの通常の書込みとリクラメーションとを切り替えながらデータコピーする方法を示す。
灰色の矢印はファイルの通常の書き込み及びそのファイルの編集の際のデータのフローを示す。黒色の矢印はデータ・パーティションごとの部分的なリクラメーションのデータのフローを示す。ドライブ６０内のバッファ１２０は、その記憶域を分割して別の読み書きのプロセスに使用することが可能である。自動リクラメーションの実施には、ドライブのバッファ１２０のエリア（領域）を、通常の読み書き用途のバッファＢとリクラメーションの読み書き用のバッファＡに分割して使用する。図で示すように、通常の読み書きは、ホスト３００とドライブバッファＢの領域を用いてデータ転送を行いＤＰ３に書き込む。このデータコピーの方法は、ドライブ内部ですべて対応可能である。部分的リクラメーションはテープの規定容量が達したパーティション（ＤＰ１）からドライブバッファＡの領域に読み出し、新しいパーティション（ＤＰ３)に書き出す。この部分的リクラメーションのデータコピー方法を適切に処理するためには、現行のＬＴＯ５およびＴＳ１１４０などのテープドライブのファームウェアに新たな処理機能を追加する必要はある。他の方法として、ドライブバッファを分割して使用せず、ホストのＨＤＤにデータも転送し、テープに書き出す方法でもよい。この方法の場合テープドライブ本体への追加機能を必要としない。
【００５１】
３．リクラメーションと通常読み書きの切り替え：
実施例の方法では部分的リクラメーションと通常の読み書きとを切り替えて行うことが可能である。その場合、以下のような流れでＬＴＦＳはドライブに対して処理の切り替えを行う。
Ａ．バッファＡ，Ｂの大きさの割当：
あらかじめバッファＡの容量Ｘをドライブから取得しておく。通常の読み書きに使用するバッファＢの大きさをＬＴＦＳが知っておく必要はない。バッファＡ、Ｂの大きさはドライブの起動時に決まるので、ＬＴＦＳが使用されているシステム下の履歴などから、適した値を割り当てておくのが良い。
Ｂ．部分的リクラメーションのタイミング：
書き込み先のパーティションＤＰ１が規定容量に達したことをドライブから取得する。書込みがＤＰ１の規定容量に達したことはＤＰ１のデータ書込みを完了したことなので、基本的には、ＤＰ１のデータについていつでもリクラメーションしてよいことを意味する。ＬＴＦＳはメタ情報からＤＰ１の有効データの割合を計算し、設定した規定値以下であればリクラメーションモードに入る。ファイルに対して多数の書込み編集を行った場合、そのファイルに関連して必要データに対して不要データの割合が多くなり、「設定値」以下になる。例えば「設定値」を５０％とした場合には、リクラメーションすることによりテープの容量について５０％の再利用が可能となる。一方、「設定値」に対して必要データが９０％の場合は、たとえリクラメーションしたとして１０％のデータ容量の再生しかできない。
Ｃ．部分的リクラメーション作業：
リクラメーションモードに入った場合、ＬＴＦＳは先に示したデータ移動処理を開始する。このとき、ＤＰ１からＸ量の有効データをバッファＡに読み出し、ＤＰ３に書き込む。有効データの特定は、ＬＴＦＳのインデックス情報から行える。有効データが連続していない場合も、Ｘ量のデータを先にＤＰ１から読み出し、ＤＰ３にすべて書き込むほうが現行のテープドライブにとっては効率が良い。
Ｄ．通常の読み書きのタイミング：
リクラメーション中に、通常の読み書きの処理要求がアプリケーションからＬＴＦＳに来た場合、ＬＴＦＳはアプリケーション側の処理を優先させる。リクラメーションの処理から通常の読み書きモードに移る。以下の図１２のフローチャート上は処理理解のため、ＤＰ３にデータを書き出したタイミングでチェックを行っている。実際のリクラメーションの処理では、リクラメーションを中断させるタイミングは、実装の容易性を考慮しないのであれば、ＳＣＳＩコマンドレベルの処理の完了時点が最短である。
Ｅ．通常の読み書き後の部分的リクラメーションのタイミング：
通常の読み書きから再びリクラメーションに移るタイミングは、通常はＬＴＦＳを通じてアプリケーションから処理されているファイルがすべてクローズされたことをトリガにする。当然、ＤＰ２の残り容量などを鑑みて切り替える必要がある。また、ファイルはオープンされているが読み書きの処理が一定時間以上発生していない場合は、リクラメーションの処理に戻るなどの考慮が必要である。読み書きの途中にリクラメーションの処理を入れることも理論上可能ではある。実際のテープドライブの読み書きに時間がかかるものである。従って、リクラメーションを一定時間に完了したい場合は、通常の読み書き作業を適当に区切って、一定のタイミングでリクラメーション作業を別して実行することが推奨される。
【００５２】
図１２は、通常の読み書き作業、と、リクラメーション作業、とを切り替えながら、自動リクラメーションを完了するフローを示す。
（１１００）：ドライブのバッファ１２０からリクラメーション用バッファＡの容量Ｘを確保する。
同時にドライブのバッファ１２０から通常の書込み用バッファＢの容量Ｙを確保する。
（１１０２）：ファイルシステム（ＬＴＦＳ）はバッファＢを使いＤＰ１へ通常のファイルの書き込み及び編集をしている。
（１１０４）：ＤＰ１への書込みが規定容量に達したか、を確認する。
規定容量は、テープの全容量（例えば１ＴＢ）をＩＰ（５％程度）と３つのＤＰとに分割した場合で与えられ、例えば２９０ＭＢの値である。
Ｙｅｓの場合、部分的リクラメーションの処理（１１０６）を移動する。
Ｎｏの場合、ＤＰ１への通常の書込み処理（１１０２）を続ける。
（１１０６）：ＤＰ１の書込みが完了した場合ＬＴＦＳは部分的リクラメーションのモードに入る。
リクラメーションは、上のＢで説明したタイミングで開始される。
（１１０８）：オープン状態のファイルが存在するかを確認する。
ＬＴＦＳは既に通常の書込み及び編集しているファイルがあるかを確認する。
Ｙｅｓの場合、オープン状態のファイルのデータの書込み処理（１１１０）を継続する。
Ｎｏの場合、部分的リクラメーションの処理（１１１４）を開始する。
（１１１０）：オープン状態のファイルのデータをバッファＢを介してＤＢ２への書き込みを継続する。
（１１１２）：ＤＰ１のファイル・データについての部分的リクラメーションのタイミングを判断するために、ＤＰ２への通常の書き込み容量が設定した値より大きくなったかを確認する。
具体的には、上のＤで説明したタイミングである。部分的リクラメーションのタイミングは、通常の書込みとの進捗を考慮して決定される。例えば、ＤＰ２への通常の書き込み容量が「設定した値」より大きくなった場合にリクラメーションを開始する。
Ｙｅｓの場合、バッファＡを介して部分的リクラメーションの処理（１１１４）を開始する。
Ｎｏの場合、オープン状態のファイルへの書込み（１１０８）を継続する。
（１１１４）：部分的リクラメーションとして、ＤＰ１からＸ量の有効データをバッファＡに読み出す。
Ｙｅｓの場合（１１１０）のオープン（Ｏｐｅｎ）されているファイルへの書込みを継続する。
有効データには、ファイル・データの編集により不要データとなったデータは含まれない。この場合、不要データを削除するためブロック番号が削除されるために、エクステントの再設定が必要である。このエクステントの再設定を避けるため、後で説明するように不要データ部分に圧縮率の高いデータで置換して、不要データ部分も含めてデータコピーする方法を採用する。
Ｎｏの場合（１１１４）の処理、バッファＡへの有効データ（必要データ）を読み出し、保管する。
（１１１６）：部分的リクラメーションとして、バッファＡからＤＰ３にデータを書き出す。
（１１１８）：部分的リクラメーションとして、ＤＰ１からのデータの読み出しが最後に達したかを確認する。ＤＰ１のリクラメーションの完了を確認する。
Ｙｅｓの場合、インデックスの変更処理（１１２０）を行う。
Ｎｏの場合、書込み処理中のオープン状態のファイルの確認処理（１１０８）に移動する。
（１１２０）：部分的リクラメーションの完了にともないコピーされたファイルのインデックスについて、インデックスを変更する。
有効データが必要データ及び不要データを含む場合、当該ファイルのインデックスについてデータ・パーティションのＩＤを変更するのみでエクステント（ブロック番号、オフセット、サイズ）の変更は不要とされる。有効データが必要データのみとしてコピーされた場合は、不要データ部分のブロックが削除されているため、エクステントの計算に時間がかかる。この部分的リクラメーションが完了した時点で、ＤＰ１の必要データ及び不要データが占有するＤＰ１の記憶領域は開放される。
（１１２２）：チェック対象のパーティションをＤＰ１から例えばデータ・パーティションＤＰ２に変更する。ＤＰ２に保管されたファイル・データについて部分的リクラメーションをするモードになる。
（１１０２）に戻り、例えば、ＤＰ２の空き記憶領域に通常の書込みをＤＰ２に継続する。
並行して、ＤＰ２の保管データについてＤＰ１に部分的リクラメーションの上記処理ステップを実行する。
またＤＰ２のファイル・データの部分的リクラメーションが完了したら、チェック対象のパーティションをＤＰ２からＤＰ３に変更する（１１２２）。ＤＰ３について部分的リクラメーションを実行する。
【００５３】
４．削除したデータをゼロ値の圧縮でコピーする手法：
図１３は、ファイルのデータを不要データ（不要ブロック）を含めて圧縮してリクラメーションする場合を示す。
ファイルが編集されて、一部のブロックを不要データとして削除して他のデータ・パーティションの移動の際にエクステントの計算のために所定の時間を必要する。編集により削除された不要データのサイズ分を考慮して、他のデータ・パーティションに移動して部分的リクラメーションをする。本発明の実施例では、データ・パーティションＩＤ以外、エクステントの変更算定を不要とできるため高速な部分的リクラメーションを可能にする。
【００５４】
図１３（ａ）は、ファイルの必要データを不要データ（不要ブロック）も含めて圧縮してリクラメーションする概念図を示す。
部分的なリクラメーションのステップ、即ち第２のステップ（図７）、第４のステップ（図９）、第７のステップ（図１０）及び（１１４）処理・（１１１６）処理（図１２）のコピーの際にこの方法を用いる。（ａ）に示すように、ブロック２，３，５，７（ｂ２、ｂ３，ｂ５，ｂ７)が不要データであった場合、その値をゼロにして圧縮機能を有効にした上で、ＤＰ３に書き込む。この結果、ＤＰ３上にはＤＰ１と対応するブロック番号のデータサイズ分の領域はそのまま残す。但し圧縮率を高めるために削除されているブロックの全てのデータ内容をゼロで置換して圧縮したうえで、他のデータ・パーティションにデータコピーを行う。不要データの元のサイズの１０％以下に圧縮できるため、圧縮した形式で不要データをテープ領域に残してもリクラメーションを無意味にすることにはならない。不要ブロックをゼロで置換した残し方法は、複数回の編集を経たファイルについて必要データのブロックの位置関係がはずれないため、エクステントの再計算の時間を除ける点で有利である。
【００５５】
一方、ＬＴＦＳが持つファイルの位置を示す情報に以下のものがある。この情報は少なくともファイルの数分は必要になる。本発明では、次のようにファイルのインデックス（メタ情報）には、エクステント（開始ブロック番号、ブロック長）とともにデータ・パーティションＩＤを含ませる。
【００５６】
例えば、File A, ＦｉｌｅＢ, ＦｉｌｅＣの情報を以下のよう設定する。
ここで、パーティションＩＤは、物理的にテープ上のパーティションをポインタしているのではない。ＬＴＦＳのメタ情報は、テープ全体の情報をあらわすラベル部分と、個々のファイル・ディレクトリすべての情報をもつインデックス部分に分けられる。下の表の情報は個々のファイルの情報を含むインデックスの一部である。インデックスのパーティション情報は、実際のテープ上のパーティション番号とラベルで紐付けられている。
【００５７】
各データ・パーティションＤＰ１，ＤＰ２，ＤＰ３のファイル・データのパーティションＩＤ（単にパーティションＩＤ）は次のような値で、インデックス・パーティションに登録されている。各データ・パーティションＤＰ１，ＤＰ２，ＤＰ３のラベル情報（パーティションＩＤ）は、次のように割当てられる。
テープ上のＤＰ１のファイルのインデックス  →  パーティションＩＤ＝ａ
テープ上のＤＰ２のファイルのインデックス  →  パーティションＩＤ＝ｂ
テープ上のＤＰ３のファイルのインデックス  →  パーティションＩＤ＝ｃ
【００５８】
図１３（ｂ）は、リクラメーションされる前の、ＤＰ１（ＩＤ＝ａ）に保管されたＦｉｌｅＡ、ＦｉｌｅＢ、ＦｉｌｅＣのインデックス（メタ情報）を示す。インデックスは、各ファイルが保管されているパーティションＩＤを含む。
・ＦｉｌｅＡはインデックスとして、データ・パーティションＩＤ＝ａ、エクステント（開始ブロック番号＝０、ブロック長＝５）を含む。
・ＦｉｌｅＢはインデックスとして、データ・パーティションＩＤ＝ａ、エクステント（開始ブロック番号＝５、ブロック長＝２０）を含む。
・ＦｉｌｅＣはインデックスとして、データ・パーティションＩＤ＝ａ、エクステント（開始ブロック番号＝２５、ブロック長＝２０）を含む。
【００５９】
図１３（ｃ）は、（ｂ）の状態からＦｉｌｅＢを削除する編集した後、ＤＰ３（ＩＤ＝ｃ）へのリクラメーションされた後のファイルのインデックスを示す。ＦｉｌｅＢが削除されて、ＦｉｌｅＡとＦｉｌｅＣが有効とする。
・ＦｉｌｅＡはインデックスとして、データ・パーティションＩＤ＝ｃ、エクステント（開始ブロック番号＝０、ブロック長＝５）を含む。
・ＦｉｌｅＢはテープ上に残るがインデックスとして、エクステント及びパーティションＩＤの割当は無視される。
・ＦｉｌｅＣはインデックスとして、データ・パーティションＩＤ＝ｃ、エクステント（開始ブロック番号＝５、ブロック長＝２０）を含む。
完全にＦｉｌｅＢのデータをエクステント算定において除外してコピーした場合、ＦｉｌｅＣの開始ブロック情報は（ｃ）のように変更しなければならない。ファイルがひとつ削除されただけでも、ＦｉｌｅＣ以降の開始ブロックはすべて変更しなければならいことになる。ファイルが１万個あった場合、先頭のファイルが削除されたら１万ファイルのデータすべてに対して変更する必要がある。
【００６０】
データゼロ圧縮方式をとった場合、圧縮データの記録域は極めて小さいがデータは存在するのでそれに対応するブロック番号も残る。そのため、例えば、インデックス内の各ファイルの開始ブロック情報の変更は一切必要ない。必要な作業は、ラベル情報を以下のようにコピー元のＤＰ１のＩＤ＝ａからコピー先のＤＰ３のＩＤ＝ｃに変更するだけでよい。ラベル情報はインデックス情報に比べると小さく限られた情報だけが収められているので、ラベルの変更だけの場合と、インデックス内すべてのファイル情報の変更とでは、リクラメーションのパフォーマンスに大きな違いとなる。各データ・パーティションＤＰ１，ＤＰ２，ＤＰ３のファイル・データのリクラメーション後は、インデックスのパーティションＩＤは次のように変更して、インデックス・パーティション（ＩＰ）に登録される。
ＤＰ１からＤＰ３にコピーのファイルのインデックス  →  パーティションＩＤ＝ｃ
ＤＰ２からＤＰ１にコピーのファイルのインデックス  →  パーティションＩＤ＝ａ
ＤＰ３からＤＰ２にコピーのファイルのインデックス  →  パーティションＩＤ＝ｂ
【００６１】
以上の実施例の方法では、３つのデータ・パーティションを設定することで、ホストからのテープへのデータの書き込みを完全に中断させる必要が無い状況下で、リクラメーションを完了できる。１台のドライブのみで、かつユーザの作業を介さずにテープの再利用が行える。また、本発明のリクラメーションは、２つのデータ・パーティションを設けて、その内の１つのデータ・パーティションのデータについて自動的リクラメーションを可能となる。更には、本発明は、メディアのパーティションの分割の数、及びファイルシステム（ＬＴＦＳ）に限定されることはない。本発明は、４以上のデータ・パーティションを用い、書込みアプリケーションまたはテープドライブの書込み制御ドライバでも可能である。本発明を実施の形態（実施例）を用いて説明したが、本発明の範囲は上記実施例には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００６２】
４０…テープカートリッジ（メディア、テープ）、
６０…テープドライブ、
１１０…通信Ｉ／Ｆ（インターフェース）、
１２０…バッファ（ドライブバッファ）、
１３０…記録チャネル、
１４０…読み書きヘッド、
１５０…制御部（コントローラ、読み書き制御を含む）、
１６０…位置決め部
１７０…モータドライバ、
１８０…モータ、
３００…ホスト（ファイルシステム、アプリケーションを含む）
【図１】
2015103033.tif 000003
【図２】
2015103033.tif 000004
【図３】
2015103033.tif 000005
【図４】
2015103033.tif 000006
【図５】
2015103033.tif 000007
【図６】
2015103033.tif 000008
【図７】
2015103033.tif 000009
【図８】
2015103033.tif 000010
【図９】
2015103033.tif 000011
【図１０】
2015103033.tif 000012
【図１１】
2015103033.tif 000013
【図１２】
2015103033.tif 000014
【図１３】
2015103033.tif 000015