(57)【特許請求の範囲】
【請求項１】
テープに書込まれたファイルに関連するメタ情報をテープに保管する方法であって、
（ａ）少なくとも１つのファイルについてのテープへのアクセス操作履歴の結果として、テープに保管された有効なファイルに関連するメタ情報をベース・メタ情報としてテープに保管することと、
（ｂ）前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
（ｂ１）前記所定のタイミングのメタ情報を保管することは、
前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することを含み、
前記所定のタイミングの保管は、定期的であることを特徴とするメタ情報を保管する方法。
【請求項２】
（ｂ２）前記所定のタイミングのメタ情報を保管することは、
先行の前記差分メタ情報をテープに保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を後続の差分メタ情報として所定のタイミングでテープに保管することとを含む、請求項１に記載の方法。
【請求項３】
前記メタ情報をテープに保管する方法は、テープを前記ファイルのデータを書き込むデータパーティションと、前記ファイルのメタ情報を保管するインデックスパーティションとに区分するテープ記録装置用ファイルシステムにより前記保管する方法であって、
前記ベース・メタ情報をテープのデータパーティションに追記することと、
前記ベース・メタ情報の追記後のテープへのファイルのアクセス操作履歴に対して、所定のタイミングで前記差分メタ情報をデータパーティションに追記することと、
テープをテープ記録装置から排出するときに、前記差分メタ情報を前記ベース・メタ情報に反映して最新のメタ情報（ベース・メタ情報）を構築してインデックスパーティションに保管することと、
前記差分メタ情報の追記後のテープへのファイルのアクセス操作履歴に対して、所定のタイミングで後続の差分メタ情報をデータパーティションに追記することと、
テープをテープ記録装置から排出するとき、または所定に命令を受け取ったとき、前記差分メタ情報を前記ベース・メタ情報に反映して最新のメタ情報（ベース・メタ情報）を構築してインデックスパーティションに保管することと、を含み、
前記ベース・メタ情報及び前記差分メタ情報の何れかの前記情報をテープに追記することは、前記情報がベース・メタ情報か差分メタ情報かを識別するタグ（識別タグ）を前記情報に含ませてデータパーティションに追記されることを特徴とする、請求項２に記載の方法。
【請求項４】
前記所定のタイミングのメタ情報を保管するステップ（ｂ１）及び（ｂ２）は、前記所定のタイミング以降での前記ファイルのアクセス操作履歴が既存の保管ファイルを削除することを含む場合に、前記保管ファイルの削除を指示する新規な削除フラグをメタ情報に新たに設け、前記差分メタ情報が前記保管済みファイルの削除を示す前記削除フラグを含み、テープに前記差分メタ情報として追記することを含む、請求項１または２に記載の方法。
【請求項５】
前記所定のタイミングのメタ情報を保管するステップ（ｂ１）及び（ｂ２）は、前記所定のタイミング以降での変更履歴が既存のファイルを変更によりデータを追加する場合、既存のファイルのデータ部分に後続する追加のデータのメタ情報を差分メタ情報として、テープに追記することを含む、請求項１または２に記載の方法。
【請求項６】
前記所定のタイミングのメタ情報を保管するステップ（ｂ１）及び（ｂ２）は、前記所定のタイミング以降での変更履歴が既存のファイルのファイル名を変更する場合、既存のファイルのファイルＩＤについてファイル名の変更するメタ情報を差分メタ情報として、テープに追記することを含む、請求項１または２に記載の方法。
【請求項７】
インデックスパーティションのインデックスを修復する方法であって、
請求項３の方法によりテープに保管された差分メタ情報から、最新のメタ情報（ベース・メタ情報）を構築してインデックスパーティションに保管することは、
（ａ）データパーティション上の前記識別タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
（ｂ）次に書かれているメタ情報はあるかを確認するステップと、
（ｃ）ステップａにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルＩＤを読み出すステップと、  （ｄ）差分メタ情報に含まれるファイルＩＤは、ベース・メタ情報に含まれているものかを確認するステップと、
（ｅ）ステップｄでファイルＩＤがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイルやディレクトリのメタ情報を更新するステップと、を含む  インデックスを修復する方法。
【請求項８】
（ｆ）ステップｄでファイルＩＤがベース・メタ情報に含まれていない場合、ベース・メタ情報に該当するファイルやディレクトリのメタ情報を追加することを、含む請求項７に記載の方法。
【請求項９】
（ｇ）ステップｂにおいて差分メタ情報がない場合、ステップａで読み出したベース・メタ情報をインデックスパーティションに保管することを、含む請求項７に記載の方法。
【請求項１０】
テープに書込まれたファイルに関連するメタ情報をテープに保管するテープ記録システムであって、
（ａ）少なくとも１つのファイルについてのテープへのアクセス操作履歴の結果として、テープに保管された有効なファイルに関連するメタ情報をベース・メタ情報としてテープに保管することと、
（ｂ）前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
（ｂ１）前記所定のタイミングのメタ情報を保管することは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することを含む、メタ情報を保管することと、を実行し、
前記所定のタイミングの保管は、定期的であることを特徴とするテープ記録システム。
【請求項１１】
テープに書込まれたファイルに関連したメタ情報をテープに保管するテープ記録システムのためのプログラムであって、
（ａ）少なくとも１つのファイルについてのテープへのアクセス操作履歴の結果として、テープに保管された有効なファイルに関連するメタ情報をベース・メタ情報としてテープに保管することと、
（ｂ）前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
（ｂ１）前記所定のタイミングのメタ情報を保管することは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管すること、をテープ記録システムに実行させ、
前記所定のタイミングの保管は、定期的であることを特徴とするプログラム。
【請求項１２】
インデックスパーティションのインデックスを修復するテープ記録装置システムであって、
請求項３の方法によりテープに保管された差分メタ情報から、最新のメタ情報（ベース・メタ情報）を構築してインデックスパーティションに保管することは、
（ａ）データパーティション上の前記識別タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
（ｂ）次に書かれているメタ情報はあるかを確認するステップと、
（ｃ）ステップａにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルＩＤを読み出すステップと、  （ｄ）差分メタ情報に含まれるファイルＩＤは、ベース・メタ情報に含まれているものかを確認するステップと、
（ｅ）ステップｄでファイルＩＤがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイルやディレクトリのメタ情報を更新するステップと、
を実行するテープ記録装置システム。
【請求項１３】
インデックスパーティションのインデックスを修復するプログラムであって、
請求項３の方法によりテープに保管された差分メタ情報から、最新のメタ情報（ベース・メタ情報）を構築してインデックスパーティションに保管することは、
（ａ）データパーティション上の前記指標タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
（ｂ）次に書かれているメタ情報はあるかを確認するステップと、
（ｃ）ステップａにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルＩＤを読み出すステップと、  （ｄ）差分メタ情報に含まれるファイルＩＤは、ベース・メタ情報に含まれているものかを確認するステップと、
（ｅ）ステップｄでファイルＩＤがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新するステップと、
をテープ記録システムに実行させる修復するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、直前に保管したメタ情報からのファイルに関連するアクセス履歴の差分だけのメタ情報を、定期的に保管するテープ記録システムのための方法に関する。
【背景技術】
【０００２】
テープドライブ用ファイルシステムのＬＴＦＳ（Linear Tape FileSystem）は、テープカートリッジに、ＯＳ（Linux,Windows,MacOS X）上のアプリケーションからファイル単位でデータを書込み・読み出しすることを可能にする。ＬＴＦＳフォーマットでは、テープカートリッジをインデックスパーティション（ＩＰ）とデータパーティション（ＤＰ）の２つのパーティションにわけることが規定されている。ここで、インデックスパーティションはファイルのアロケーション情報などのメタ情報を記録し、データパーティションにはデータ本体を記録する。テープはシーケンシャルアクセスデバイスであり、データは常に追記されるので、ひとつのパーティションに記録すると、アロケーション情報は常に末尾に記録することになる。テープカートリッジをマウントするときに、必ず末尾の情報を読み出すため、マウントに長い時間がかかってしまう。そこでＬＴＦＳでは、テープカートリッジをアンマウント（Unmount）するときに、メタ情報をインデックスパーティションの先頭部分に上書き記録する。テープカートリッジをマウント時には常にインデックスパーティションからメタ情報を読み出すことを可能としている。
【０００３】
メタ情報はデータパーティションにも書き込みを行っている。突然の電源断などでインデックスパーティションのメタ情報を更新できなかった場合がある。この場合に、時間はかかるがデータパーティションに保管されたメタ情報を利用して、インデックスパーティションのメタ情報を修復できる。
【０００４】
図１は、従来のＬＴＦＳを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープカートリッジに書き込む場合のファイル量を示す表を与える。
実際に、ＩＢＭのWindows版ＬＴＦＳとＬＴＯ５テープドライブとを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープカートリッジに書き込むと、５分間でそれぞれ、表１のように3000個以上のファイルを書き込むことができる。
【０００５】
表１は、書き込まれるファイルの数及びサイズを示す。
デフォルトの設定では５分ごとにメタ情報をデータパーティションに書き込むが、3000個のファイルのメタ情報はおよそ1440KBの記録領域を占有する。
５分で約3000個なので、10分後には約6000個分の2880KBのメタ情報を書き込むことになる。
【０００６】
表２は、 データパーティションにおけるファイルとメタ情報の書き込み量を示す。
ＬＴＯ５のテープカートリッジでは、データパーティションの大きさは1.425TBである。できるだけファイルを書き込んでいくと、表２のように、データパーティションの90%以上がメタ情報によって消費されてしまう。テープカートリッジのデータパーティション全体でファイルデータは10%以下しか保管することができない。突然の電源断に備えてメタ情報を定期的に書き込んでいると、メタ情報がデータパーティション領域の大部分を消費して、本来保管したいファイルの記録領域が少なくなってしまう。
【０００７】
特許文献１は、障害や人的間違いによるデータの欠損を復元するために、データを記録手段に記録する毎に、別の記録手段にも記録する。その際、特許文献１は、変更記録手段に差分データの差分を記録していることを示す。
非特許文献１は、テープ用のファイルシステムとしてＬＴＦＳの規格を与える。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許公開２００２−５５８６３号公報
【非特許文献】
【０００９】
【非特許文献１】http://www.trustlto.com/LTFS_Format_To%20Print.pdf
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＬＴＦＳを使用しているユーザからすると、小さなファイルを書き込んでいたらいつの間にかデータパーティションの残り領域が少なくなってしまうように感じられる。この突然の電源断に対応するために、ユーザの意図しないタイミングでデータパーティションをメタ情報で大量に占有してしまう。従来のＬＴＦＳではデータパーティションにデータとメタ情報を追記で保管していく。しかしながら、突然の電源断に対応するために定期的にメタ情報を保管していると、メタ情報がデータパーティションを大量に消費してしまうという課題が存在する。
【００１１】
従って、本発明の目的は、テープ記録システム用のファイルシステムを介して、直前に保管したメタ情報からの複数のファイルの更新操作（変更、追加、削除など）に関連した差分だけのメタ情報（差分メタ情報）を、定期的な保管する方法を提供する。
【課題を解決するための手段】
【００１２】
かかる目的のもと、本発明は、テープに書込まれたファイルに関連するメタ情報をテープに保管する方法である。この方法は、
（ａ）少なくとも１つのファイルについてのテープへのアクセス操作履歴（追加、削除、変更）の結果として、テープに保管された有効なファイルに関連するメタ情報（ベース・メタ情報）をテープに保管することと、
（ｂ）前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
（ｂ１）前記所定のタイミングのメタ情報を保管するステップは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することを含む。
【００１３】
また、上記保管する方法において、（ｂ２）前記所定のタイミングのメタ情報をメタ情報として保管するステップは、先行する前記差分メタ情報をテープに保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を後続の差分メタ情報として所定のタイミングでテープに保管することとを含むことを特徴とする。
【００１４】
また、上記保管する方法において、前記テープに書込み方法は、テープを前記ファイルのデータを書き込むデータパーティションと、前記ファイルのメタ情報を保管するインデックスパーティションとに区分するテープ記録装置用ファイルシステムであって、
前記ベース・メタ情報をテープのデータパーティションに追記することと、
前記ベース・メタ情報の追記後のテープへのファイルのアクセス操作履歴に対して、所定のタイミングで前記差分メタ情報をデータパーティションに追記することと、
テープを排出するときに、前記差分メタ情報を前記ベース・メタ情報に追加または変更して最新のメタ情報を構築してインデックスパーティションに保管することと、
前記差分メタ情報の追記後のテープへのファイルのアクセス操作履歴に対して、所定のタイミングで後続の差分メタ情報をデータパーティションに追記することと、
テープを前記装置から排出するとき、または所定に命令により、前記差分メタ情報を前記ベース・メタ情報に追加または変更して最新のメタ情報を構築してインデックスパーティションに保管することと、を含み、
前記ベース・メタ情報及び前記差分メタ情報の追記は、ベース・メタ情報か差分メタ情報かを識別するタグ（識別タグ）を前記情報に含ませてデータパーティションに追記されることを特徴とする。
【００１５】
また、上記保管する方法において、前記所定のタイミングのメタ情報をメタ情報として保管するステップ（ｂ１）及び（ｂ２）は、前記先行のタイミング以降での前記後続のファイルのアクセス操作履歴が既存の保管ファイルを削除することを含む場合に、前記保管済みファイルの削除を指示する新規な削除フラグをメタ情報に新たに設け、前記後続の差分メタ情報が前記保管済みファイルの削除を示す前記削除フラグを含み、テープに前記後続の差分メタ情報として追記することを含むことを特徴とする。
【００１６】
また、上記保管する方法において、前記所定のタイミングのメタ情報をメタ情報として保管するステップ（ｂ１）及び（ｂ２）は、前記先行のタイミング以降での変更履歴が既存のファイルを変更によりデータを追加することを含む場合に、既存のファイルのデータ部分に後続する追加のデータのメタ情報を差分メタ情報として、テープに追記することを含むことを特徴とする。
【００１７】
また、上記保管方法において、前記所定のタイミングのメタ情報をメタ情報として保管するステップ（ｂ１）及び（ｂ２）は、前記前回のタイミング以降での変更履歴が既存のファイルのファイル名を変更することを含む場合に、既存のファイルのファイルＩＤについてファイル名の変更するメタ情報を差分メタ情報として、既存のファイルのデータ部分に関連付けて、テープに追記することを含むことを特徴とする。
【００１８】
更に、かかる目的のもと、本発明は、上記保管する方法により差分メタ情報が保管されたテープから、インデックスパーティションのインデックスを修復する方法である。この方法は、
（ａ）データパーティション上の前記指標タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
（ｂ）次に書かれているメタ情報はあるかを確認するステップと、
（ｃ）ステップａにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルＩＤを読み出すステップと、
（ｄ）差分メタ情報に含まれるファイルＩＤは、ベース・メタ情報に含まれているものかを確認するステップと、
（ｅ）ステップｄでファイルＩＤがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新するステップと、を含む。
【００１９】
また、上記修復方法において、（ｆ）ステップｄでファイルＩＤがベース・メタ情報に含まれていない場合、ベース・メタ情報に該当するファイル等のメタ情報を追加することを、含むことを特徴とする。
【００２０】
また、上記修復方法において、（ｇ）ステップｂにおいて差分メタ情報がない場合、ステップａで読み出したベース・メタ情報をインデックスパーティションに保管することを、含むことを特徴とする。
【００２１】
更に、かかる目的のもと、本発明は、テープに書込まれたファイルに関連するメタ情報をテープに保管するテープ記録システムである。このステップは、
（ａ）少なくとも１つのファイルについてのテープへのアクセス操作履歴（追加、削除、変更）の結果として、テープに保管された有効なファイルに関連するメタ情報（ベース・メタ情報）をテープに保管することと、
（ｂ）前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
（ｂ１）前記所定のタイミングのメタ情報を保管するステップは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することを含む、メタ情報を保管することと、を実行する。
【００２２】
更に、かかる目的のもと、本発明は、テープに書込まれたファイルに関連したメタ情報をテープに保管するテープ記録システムのためのプログラムである。このプログラムは、
（ａ）少なくとも１つのファイルについてのテープへのアクセス操作履歴（追加、削除、変更）の結果として、テープに保管された有効なファイルに関連するメタ情報（ベース・メタ情報）をテープに保管することと、
（ｂ）前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
（ｂ１）前記所定のタイミングのメタ情報を保管するステップは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することと、
をテープ記録システムに実行させる。
【００２３】
更に、かかる目的のもと、本発明は、上記保管方法により差分メタ情報が保管されたテープから、インデックスパーティションのインデックスを修復するテープ記録装置システムである。このシステムは、
（ａ）データパーティション上の前記指標タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
（ｂ）次に書かれているメタ情報はあるかを確認するステップと、
（ｃ）ステップａにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルＩＤを読み出すステップと、
（ｄ）差分メタ情報に含まれるファイルＩＤは、ベース・メタ情報に含まれているものかを確認するステップと、
（ｅ）ステップｄでファイルＩＤがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新するステップと、を実行する。
【００２４】
更に、かかる目的のもと、本発明は、上記保管方法により差分メタ情報が保管されたテープから、インデックスパーティションのインデックスを修復するためのプログラムである。このプログラムは、
（ａ）データパーティション上の前記指標タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
（ｂ）次に書かれているメタ情報はあるかを確認する。
（ｃ）ステップａにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルＩＤを読み出すステップと、
（ｄ）差分メタ情報に含まれるファイルＩＤは、ベース・メタ情報に含まれているものかを確認するステップと、
（ｅ）ステップｄでファイルＩＤがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新するステップと、をテープ記録システムに実行させる。
【発明の効果】
【００２５】
上述の本発明の適用により、突然の電源断の際にメタ情報の修正ができるように、ファイルのメタ情報を保管しながらデータパーティションを占有してしまうことを避けることができる。
【図面の簡単な説明】
【００２６】
【図１】従来のＬＴＦＳを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープカートリッジに書き込む場合のファイル量を示す表を与える。
【図２】ＬＴＦＳの２つのパーティションにより区分けされたテープを示す。
【図３】ホストに接続されたテープドライブ（磁気テープ装置）を含むテープストレージシステム（テープ記録装置システム）のハードウェアを示す。
【図４】ＬＴＦＳフォーマットでのメディアのインデックスパーティションとデータパーティションの内容を示す。
【図５】１つのファイルを部分的な書き換えの場合のインデックスファイルに含まれる位置メタ情報（エクステント）の変更内容を示す。
【図６】ＬＴＦＳでファイルをテープ上に書いた場合のテープカートリッジ上での情報の記録例を示す。
【図７】データパーティションにメタ情報が１つしか書かれていない例を示す。
【図８】メタ情報書き込みフローを示す。
【図９】メタ情報の変更履歴（差分メタ情報）の保管のフローを示す。
【図１０】差分メタ情報の保管のフローを示す。
【図１１】例１として、テープ上の２つのファイルのデータとメタ情報の配置を示す。
【図１２】例２として、テープ上の２つのファイルの１つを削除したデータとメタ情報の配置を示す。
【図１３】例３として、テープ上の残っているファイルに追加データで更新し、そのファイル名を変更した場合データとメタ情報の配置を示す。
【図１４】修復プログラム（ＡＰＩ）によるインデックスパーティションに書くべきメタ情報（インデックス）の作成のフローを示す。
【図１５】本発明を適用したＬＴＦＳを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープに書き込む場合のデータ量及びメタ情報量の対比を示す。
【発明を実施するための形態】
【００２７】
直前にメタ情報を保管した以降のファイルへのアクセス操作履歴を反映するメタ情報を、所定のタイミングでテープに保管する実施の形態（実施例）を説明する。
本発明では、テープのデータパーティションに書き込むメタ情報を、メタ情報を書き込むタイミングを元にして次の２つのグループＡとＢにわける。グループＡのメタ情報は、現行にメタ情報であり、本発明ではベース・メタ情報と呼ぶ。グループＢのメタ情報は、直前のメタ情報からの差分だけをもつようにし、本発明では差分メタ情報と呼ぶ。ファイルシステム（ＬＴＦＳ）内部では、メタ情報を生成する際に、どちらのグループに入るかを判断することができる。
●グループＡ
・フォーマット時に先頭に書き込むメタ情報。
・アンマウント時に書き込むメタ情報。
・ユーザがFlushFileBuffers()のようなＡＰＩで明示的に作成したメタ情報。
●グループＢ
・ＬＴＦＳがその設定により、定期的もしくはファイルのCloseのタイミングで自動的に書き込むメタ情報。
【００２８】
突然の電源断の際に使用するltfsck（現行の修復機能を組み込んだＡＰＩ：ＬＴＦＳ  checkの略称）を本発明のメタ情報のグループを考慮した動作に変更する。この動作は、データパーティションのメタ情報からインデックスパーティションに書き込むべきメタ情報を作成（または修復）する。このメタ情報の修復の際、そのデータパーティションに書き込まれた、最後のグループＡのメタ情報（ベース・メタ情報）を元とする。このベース・メタ情報が保管された以降にファイル関連して実行された操作履歴（追加、削除、変更など）のみを反映したメタ情報（差分メタ情報）を用いて、最終的なメタ情報を作成する。このメタ情報が最新のベース・メタ情報となり、データパーティションの最後尾とインデックスパーティションとに書き込むことで修復が完了する。
【００２９】
本発明の実施例の基本動作を説明のため、ＬＴＦＳフォーマット、テープドライブ、ＬＴＦＳでのファイルのデータの書込みについて説明する。
図２は、ＬＴＦＳの２つのパーティションにより区分けされたテープを示す。
ＬＴＯ５テープドライブは、テープの長手方向に沿った書き込み領域のラップ（wrap）を往復しながらデータを書く。ＬＴＦＳではこのラップ２本分（１往復分）をインデックスパーティションとして利用している。テープの先端部（ＢＯＴ：Beginning of Tape）から終端部（ＥＯＴ：End of tape）に渡ってＩＰとＤＰとの２つに区分される。ヘッドが同時に読み書きする単位がトラックであり、トラック１６本がラップ１本に相当する。ＬＴＯ５のテープカートリッジでは、テープ長手方向は約８００ｍ、横手方向はラップ数８０本の幅である。ＩＰとＤＰとは２本のラップの保護領域（guard band）で区分される。テープはラップの長手方向に前後に進行し、ＢＯＴおよびＥＯＴにおいて進行する向きを反転することをラップターン（wrap turn）と呼ぶ。テープドライブのヘッドに対してテープの長手方向のＢＯＴからＥＯＴの移動時間は６０〜９０秒である。長手方向の半分のテープ移動時間は３０〜４５秒程度である。
【００３０】
テープドライブ用のファイルシステム、例えばＬＴＦＳでは、メディア上に書かれたデータをファイルとして見せることができる。ユーザがＬＴＦＳを利用してテープメディアに書き込むと、テープメディアではファイル本体の他、インデックスファイル（単にインデックスとも言う）と呼ばれるメタ情報をテープメディアに書き込む。インデックスは、メタ情報としてディレクトリ名及びファイル名やファイル作成日、及び、メディア上の位置、サイズ、ファイル内のオフセットなどを含む位置メタ情報（図５で説明されるエクステント）をＸＭＬ形式で含む。ＩＰには、主に最新のインデックスが書き込まれる。ＤＰには、ファイルの本体、及び、インデックスの履歴が書き込まれる。
【００３１】
ＬＴＦＳ を用いてテープメディア上のファイルを読み書きする場合、レコードと呼ばれる単位でデータの読み書きを行う。レコードは、ＬＴＦＳではブロックと呼んでＬＴＦＳフォーマットを与える。ブロックは、ファイルのデータが記録されるパーティション毎にパーティションの先頭から何番目のブロックであるという番号で管理される。インデックスファイルには、ファイルのデータに対するブロックの番号で指示される位置情報が含まれる。
【００３２】
図３は、ホストに接続されたテープドライブ（テープ装置）を含むテープストレージシステム（テープ記録装置システム）のハードウェアを示す。
テープドライブ６０は、ホスト３００のアプリケーションからファイルシステム（ＬＴＦＳ）を介してファイルの読み書き要求を受け取る。テープドライブは、通信Ｉ／Ｆ（インターファース）１１０と、バッファ１２０と、記録チャネル１３０と、読書きヘッド１４０と、制御部１５０と、位置決め部１６０と、モータドライバ１７０と、モータ１８０とを含む。
【００３３】
インターフェース１１０は、ネットワークを介してホスト３００との通信を行う。例えばインターフェース１１０は、ホスト３００から、テープカートリッジ（メディア、テープ）４０へのデータの書込みを指示する書込みコマンドを受信する。またインターフェース１１０は、ホスト３００から、メディア４０からのデータ読出しを指示する読出しコマンドを受信する。インターファース１１０は、書込みデータの圧縮と、読み出しデータの非圧縮とを行う機能を有し、実際のデータに対してメディアへの記憶容量を約２倍近く高めている。
【００３４】
テープドライブ６０は、ホスト３００のアプリケーションから送られた複数のレコードで構築されるデータセット（ＤａｔａＳｅｔ：ＤＳと言う）単位でメディア４０への読み書きを行う。ＤＳの典型的な大きさは４ＭＢである。ホスト３００のアプリケーションは、ファイルシステム（例えばＬＴＦＳ−ＡＰＩ）によりファイルを指定して読み書きアクセスをテープドライブ６０に発行する。ファイルシステムは、ＳＣＳＩコマンドのレベルでレコードをテープドライブに書込み／読み出し要求（Ｗｒｉｔｅ／Ｒｅａｄ）を送る。ＤＳは複数のレコードで構成される。
【００３５】
各ＤＳは、データセットに関する管理情報を含む。ユーザデータはレコード単位で管理される。管理情報はデータセット情報テーブル（ＤＳＩＴ：Data Set Information Table）に含まれる。ＤＳＩＴは、そのＤＳに含まれるレコード又はブロック数およびＦＭ（Filemark）数、更にはメディアの先頭から書かれた累積レコード数および累積ＦＭ数、を含む。
【００３６】
バッファ１２０は、メディア４０に書込むべきデータ、また、メディアから読み出したデータを一時的に蓄積するメモリである。例えばバッファ１２０は、ＤＲＡＭ(Dynamic Random Access Memory）によって構成される。記録チャネル１３０は、バッファ１２０に蓄積されたデータをメディア４０に書き出すため、またはメディア４０から読み出されたデータをバッファ１２０に一時的に蓄積するために用いられる通信経路である。
【００３７】
読書きヘッド１４０は、データ読書き素子を有し、メディア４０へのデータの書込み及びメディアからのデータの読出しを行う。本実施形態に係る読書きヘッド１４０はまたサーボ読取り素子を有し、メディア４０に設けられたサーボトラックから信号を読み取る。位置決め部１６０は、カートリッジ４０の短手方向（幅方向）に読書きヘッド１４０の移動を指示する。モータドライバ１７０は、モータ１８０を駆動する。
【００３８】
テープドライブ６０は、ホスト３００から受取ったコマンドに従って、データのテ−プへの書込みやテ−プからの読出しをする。テ−プドライブ６０は、バッファ、読み書きチャネル、ヘッド、モ−タ、テ−プを巻きつけるリ−ルと、読み書き制御と、ヘッド位置制御システムと、モ−タドライバとを含む。テ−プドライブは、テープカートリッジを着脱可能に搭載する。テ−プは、リ−ルの回転に伴い、長手方向に移動する。ヘッドは、テープの長手方向に移動してデータを書き込んだり、テ−プからデータを読出したりする。また、テープカートリッジ４０はカートリッジメモリ（ＣＭ：Cartridge Memory）と呼ばれる非接触不揮発性メモリを備える。テープカートリッジ４０に搭載されたＣＭは、テープドライブ６０により非接触的に読み書きされる。ＣＭはカートリッジ属性を保管する。テープドライブは、読出し及び書込み時に、ＣＭからカートリッジ属性を取り出して最適な読み書きができるようにする。
【００３９】
制御部１５０は、テープドライブ６０の全体の制御を行う。すなわち、制御部１５０は、インターフェースで受信したコマンドに従って、データのメディア４０への書込み及びメディア４０からのデータの読出しを制御する。また、制御部１５０は、読取られたサーボドラックの信号に従って位置決め部１６０を制御する。更に制御部１５０は、位置決め部１６０及びモータドライバ１７０を介してモータの動作を制御する。なお、モータドライバ１７０は制御部１５０に直接接続されてもよい。
【００４０】
図４は、ＬＴＦＳフォーマットでのメディアのインデックスパーティションとデータパーティションの内容を示す。
（Ａ）は、ＬＴＦＳフォーマットで初期化した直後のテープメディアに書き込まれるメタ情報を示す。
テープメディアを ＬＴＦＳ フォーマットで初期化した直後には、テープメディアにはＡ）に示す情報が書き込まれる。
・ＦＩＤ(Format Identification Data set)は、テープドライブがテープメディアを初期化する際、テープメディアの先頭に書き込まれる特殊なデータであり、テープメディア上のパーティションの数や各パーティションの容量などの情報を持つ。
・ＶＯＬ１ Ｌａｂｅｌは、ANSI Label とも呼ばれるもので、文字通りＡＮＳＩで規定された一般的なフォーマットのラベルである。
・ＬＴＦＳ Ｌａｂｅｌは、ＬＴＦＳ フォーマットで規定されたラベルで、このテープメディアがＬＴＦＳフォーマットのどのバージョンに準拠してフォーマットされたかといった情報を保持するラベルである。ここでメディアに記録されるレコードのサイズを指示する。レコードサイズはブロック・サイズ（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：レコードの区切り）を含み、LTFS Labelにおいてサイズが指定される。ユーザデータはブロックサイズで指定されたサイズ（例えば５１２KB）単位のレコード単位でメディアに記録される。
【００４５】
Ｆｉｌｅ１のサイズがＬをメディアに記録されている最初の場合（Ａ）、インデックスはエクステント（ｘ）であることを示す。Ｆｉｌｅ１は、テープメディアの長手方向にレコード単位で連続して書き込まれている斜線部分である。レコードはエクステントではブロックに相当する。データ部分の書換えの場合（Ｂ）は、（Ａ）でＦｉｌｅ１を書き込んだ後、そのＦｉｌｅ１のＭバイトから６００ＫＢを２５０ＫＢのレコードで書換えた場合エクステント（ｘ）（ｙ）（ｚ）の情報を示す。エクステント（ｙ）は、Ｆｉｌｅ１のデータ部分６００ＫＢバイトを変更して書き込まれる２５０KBのデータ（レコード）を指示する。データ部分の連続ではなく、後続するBlock番号（StartBlock:N+4）のレコードとして追記書込む。
エクステント(ｙ)は、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)のデータ部分を示す。Dはブロックサイズ（例えば５１２KB）である。ByteOffsetはM+600KBをＤで割った余りであり、ブロック番号N+2でのオフセットを与える。
Ｆｉｌｅ１のインデックスは、データ部分な書換えにより、複数のエクステント（ｘ）→（ｙ）→（ｚ）にように分散化した配置情報を含む。
【００４６】
図６は、ＬＴＦＳでファイルをテープ上に書いた場合のテープカートリッジ上での情報の記録例を示す。
インデックスパーティションには、特別に指定したファイルＢと最新のメタ情報３とが記録される。データパーティションには、ファイルＡ、ファイルＢ、ファイルＣ、ファイルＤだけでなく、メタ情報１、メタ情報２、メタ情報３も記録されている。ここで、メタ情報１及びメタ情報２は古い情報である。テープドライブでは基本的に情報は追記されるので、メタ情報は上書きされることなく追記（append write）して古いメタ情報も保管されている。メタ情報をデータパーティションに書き込むタイミングは、アプリケーションから明示的に指定されたときである。たとえば、Windowsで標準のＡＰＩである、FlushFileBuffers()が呼ばれたときである。またファイルをCloseしたタイミングや、一定時間経過したとき、などを設定により指定することができる。
【００４７】
図７は、 データパーティションにメタ情報が１つしか書かれていない例を示す。
テープカートリッジをフォーマットしてマウントした後、データパーティションにファイルA,B, C, Dを書き込んだときには、テープ上にはファイルのデータが記録されている。ここでメタ情報１はフォーマット直後のメタ情報のため、その後に書かれたどのファイルの情報も持っていない。図７の状態ではアンマウントせずに電源を落とした場合には、テープ上でファイルA, B, C, Dのデータ位置を特定することができない。ファイルのデータ位置を特定するメタ情報（特にエクステント）が無いため、すべてのファイルを失うことになる。
【００４８】
ＩＢＭの現在のＬＴＦＳでは、突然の電源断でのデータロスを少なくするために、５分に一度、データパーティションにメタ情報を記録する設定を推奨し、そのように動作するようになっている。インデックスパーティションにメタ情報を記録することなく、突然の電源断が発生した場合には、修復用のコマンド(ltfsck)を用意している。データパーティションにファイルの最新のメタ情報が保管されていないテープに対して、ltfsckを実行することにより、最新のメタ情報を再生できる。この再生は、データパーティションに書かれている最新のメタ情報をインデックスパーティションに記録しなおすことにより、可能である。この修復処理により、電源断によりファイルの特定が出来なくなったテープカートリッジは通常のＬＴＦＳでマウントできるようになる。このように修復の手順も確立しているので、突然の電源断に対応するように、定期的にデータパーティションにメタ情報を記録する設定が通常用いられている。
【００４９】
図８は、メタ情報書き込みフローを示す。
大量のファイルをＬＴＦＳに記録すると、大きなサイズのメタ情報が記録されてしまう。
具体的にＬＴＦＳにファイルを大量に書くと、定期的、例えば５分毎のタイミング（ステップ８０４、Yes）でメタ情報がデータパーティションに情報が書かれていく（ステップ８０６）。
ホストのファイルの書込みアクセス処理は、従来のファイルシステム（ＬＴＦＳ）を介して、テープドライブ・システムに対して各ステップ処理を実行される。
（８０２）ホストはファイルをＬＴＦＳを介してテープドライブに書き込む。
（８０４）最後にメタ情報を書いてから５分が経過したかを確認する。
（８０６）その時点でのメタ情報を作成し、データパーティションに書き込む。
（８０８）すべてのファイルを書き込んだかを確認する。
（８１０）テープへのファイルの書き込みを完了する。
【００５０】
本発明は、通常のＬＴＦＳをS/Wとして拡張し、メタ情報をデータパーティションに書き込んだ後、ファイルやディレクトリのアクセス操作履歴(作成、削除、パスの変更、拡張属性の変更など)をメモリやＨＤＤに一時的に保管する。次のメタデータ書き込みの際に、そのメタデータ書き込みがグループＢに属するなら、履歴の分だけのメタ情報を作成し、データパーティションに書き込む。ここで、ファイル等の削除は現在のＬＴＦＳのメタ情報には保管されないが、削除されたファイル等には特別な拡張属性（削除フラグ）を設ける。削除フラグをメタ情報に含ませることにより、保管されたファイル等が削除されたことを意味するようにする。特別な拡張属性とは、たとえば、ＬＴＦＳフォーマットでベンダー依存の属性として定義されている、ltfs.vendor.IBM.deleted という属性にTRUEという値を設定することで保持することができる。
【００５１】
図９は、メタ情報の変更履歴（差分メタ情報）の保管のフローを示す。
ファイルやディレクトリの処理の履歴を、メタ情報の履歴または差分メタ情報と呼ぶこととすると、図のような流れで、メタ情報の履歴を保管する。本発明のファイルシステムは、アプリケーション（図３）からのアクセスに対して、各ステップ処理を実行する。
（９０２）ファイルやディレクトリへのアクセスを受け取る。
ファイルの処理のアクセス操作履歴として変更、追加、削除のアクセスをアプリケーションから受け取る。
（９０４）メタ情報に変更（差分メタ情報）が必要かを確認する。
グループＡのインデックスを保管後のファイルについて上記の処理の履歴を反映する差分メタ情報が生じたかを確認する。Ｎｏの場合はメタ情報の変更が必要になるまで、ステップ９０２のアプリケーションのアクセスを待つ（９０８）。
（９０６）上記処理履歴には、例えば、ファイルやディレクトリの削除が含まれるかを確認する。アプリケーションからのファイル及びディレクトリ削除以外のファイルのアクセスの場合はＮｏとなる。Ｎｏの場合、ファイル名等の変更、ファイルの追加、及びファイルデータの変更に関するメタ情報を、差分メタ情報として与えられる。
（９０８）ステップ９０２において、アプリケーションからの次のファイルへの処理のアクセスを待つ。
ステップ９０４において差分メタ情報が生じるまで、ステップ９０２のホストのアクセスを待つ（９０８）
（９１０）メタ情報からファイルやディレクトリを削除する代わりに拡張属性のフラグltfs.vendor.IBM.deletedにTRUEを設定したものとする。
ＬＴＦＳの拡張属性のフラグltfs.vendor.IBM.deletedを利用して、保管済みのファイルがアプリケーションのアクセス（ステップ９０２）により削除されたことを（ステップ９０６、Ｙｅｓ）をTRUEで示す。差分メタ情報はこの拡張属性フラグを含む。
（９１２）メタ情報の変更履歴として変更メタ情報をＬＴＦＳのメモリ中に保管する。
【００５２】
図１０は、差分メタ情報の保管のフローを示す。
このフローチャートは、図９でＬＴＦＳのメモリ中に保管したメタ情報の変更履歴をテープに保管する際のフローである。
ＬＴＦＳの設定により、定期的もしくはファイルのCloseのタイミングでメタ情報を書き込むタイミングが来た際には、次のようにデータパーティションにグループＢの差分メタ情報を書き込む。本発明のファイルシステムは、テープドライブ・システムに対して各ステップ処理を実行する。
（１００２）図９のステップ９１２において、グループＢの差分メタ情報の書き込み処理（保管）の開始をする。
（１００４）ＬＴＦＳのメモリ中に保管されたメタ情報の差分履歴から、履歴に入っている分のファイル及びディレクトリに関する差分メタ情報を作成する。
（１００６）差分メタ情報をデータパーティションへ追記により書き込む。
（１００８）LTFSのメモリ中に保存されたメタ情報の変更履歴を削除する。
アンマウントやFlushFileBuffers()が呼ばれたりして、グループＡのメタ情報を書き込む際には、すべてのファイルやディレクトの情報を持つメタ情報を書き込み、メタ情報の変更履歴は単に削除する。このようにして、本発明では、ＬＴＦＳを拡張することで、グループＡまたはグループＢに属するメタ情報を書き込むことができる。図９はＬＴＦＳのメモリ中に変更履歴を作成する時のフローであり、図１０はその変更履歴をテープに書き込む際のフローである。
【００５３】
本発明の拡張されたＬＴＦＳで書き込まれるメタ情報の具体例を説明する。
●メタ情報の例１ (グループＡ)
図１１は、例１として、テープ上の２つのファイルのデータとメタ情報の配置を示す。
メタ情報０及びメタ情報１は、現在のＬＴＦＳによる通常のメタ情報と同様である。本発明では、フォーマット時のメタ情報０は、グループＡに分類されるように指標タグ（creatorタグ）を含ませる。メタ情報０は、データパーティション及びインデックスパーティションに保管されている。また、メタ情報１は、グループＡに属するメタ情報であることを特定の指標タグで識別しておく。なおこのceartタグ（ＸＭＬ表示で与える）の使用は、ＬＴＦＳフォーマット上ベンダーが自由に内容を設定して使用することは許されている。この例１では、a.txt、b.txtのとb.txtという２つのファイルが記録されている。a.txt及びb.txtのメタ情報（ファイル名、タイムステップ、位置情報など）を含むメタ情報１は、２つのファイルに続いてデータパーティションに追記されている。メタ情報１はインデックスパーティションには保管されていない。
【００５４】
●メタ情報の例２(グループＢ )
図１２は、例２として、テープ上の２つのファイルの１つを削除したデータとメタ情報の配置を示す。例１の状態から、ファイルa.txtを削除してグループＢのメタ情報を書き込むと、図のようなメタ情報２が追記書き込みされている。メタ情報２を表すＸＭＬ表示の特定の指標（creatorタグ）によりグループＢであることを指標する。また、ファイルが削除されたことを指示するために、拡張属性ltfs.vendor.IBM.deleted（削除フラグ）をTRUEとして保管する。ここで、特にファイルb.txtのメタ情報は保管しておらず、変更のあったのファイルの操作履歴を反映する「差分メタ情報」のみが保管される。この例２では、１つのファイルa.txtを削除しているが、テープ上にはa.txtは残存する。差分のメタ情報２は、a.txtが削除されたファイルであることを指示する削除フラグをa.txtに関連づけて含む。グループＢの処理において、他方のファイルb.txtへのアクセスないので、差分のメタ情報２は、b.txtのメタ情報を含まない。差分のメタ情報２は、データパーティションにメタ情報１の後に保管される。
【００５５】
●メタ情報の例３ (グループＢ)
図１３は、例３として、テープ上の残っているファイルに追加データで更新し、そのファイル名を変更した場合データとメタ情報の配置を示す。
ファイル処理の履歴操作を与える順次、例１、例２、例３におけるファイルのアクセス操作履歴を反映するメタ情報１、メタ情報２、メタ情報３の追記あれたテープ上の情報配置を示す。例１及び例２の状態に続いて、ファイルb.txtに更にデータを追加して、さらにb.txtの名前をc.txtに変更したアクセス操作理履歴を行う。この操作のメタ情報３は、XML表示のcreateタグ中でグループＢの差分メタ情報として書き込まれる。メタ情報３は、変更のあったファイルb.txtに関するメタ情報のみが保管される。詳細には、メタ情報３は、既存のファイルb.txtのファイル名をc.txtに変更するメタ情報と、c.txtの後半のデータ位置を特定するメタ情報（エクステント）とを含む。差分メタ情報としてメタ情報３は、データパーティションに追加されたc.txtの後半に後続して書き込まれる。最終的に図１３は、ファイル処理の履歴操作を与える例１，２，３のファイルデータ及びメタ情報１，２，３のテープ上での物理配置を示す。
【００５６】
図１４は、修復プログラム（ＡＰＩ）によるインデックスパーティションに書くべきメタ情報（インデックス）の作成のフローを示す。
突然の電源断が発生した際には、ltfsckが図のような流れでインデックスパーティションに書き込むべきメタ情報を作成する。本発明の機能を組み込んだＬＴＦＳは、ファイルシステムのＡＰＩを、また、独立の修復プログラムとして与えられる。例えば、修復プログラムは、本発明の改良されたＬＴＦＳにより定期的に差分メタ情報が保管されたメディアについて、インデックスパーティションのインデックスを修復するステップである。修復機能を組み込んだプログラムは、テープドライブ・システムに対して各ステップ処理を実行する。
（１４０２）データパーティション上のグループＡのメタ情報のうち、一番最後に書かれたものを読み出しベースのメタ情報（ベース・メタ情報）とする。
（１４０４）次に書かれているメタ情報はあるかを確認する。
本発明のＬＴＦＳのグループＢのモードによりメディアに保管された一連の差分メタ情報をデータパーティションから読み出すステップである。
（１４０６）ステップ１４０４において差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのfileuid（ファイルＩＤ）を読み出す。fileuidは、メタ情報（インデックス）のXML表示で、ファイルを識別するファイルＩＤとして、与えられる。
（１４０８）ステップ１４０４において差分メタ情報がない場合、１４０２に読み出したベース・メタ情報をインデックスパーティションに保管する。
（１４１０）差分メタ情報に含まれるfileuid（ステップ１４０６）は、ベース・メタ情報に含まれているものかを確認する。
（１４１２）ステップ１４１０においてfileuidがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新する。
後続の差分メタ情報は、ベース・メタ情報に含まれるＩＤが共通するファイルについてアクセス操作履歴（削除、データ追加、ファイル名変更など）を反映するメタ情報を含んでいる。共通するファイルについて、最終的なインデックスを作成するために、共通するファイルについて、ベース・メタ情報に一連の差分情報を反映させた変更を行う。
（１４１４）ステップ１４１０においてfileuidがベース・メタ情報に含まれていない場合、ベース・メタ情報に該当するファイル等の情報を追加する。
後続の差分メタ情報は、ベース・メタ情報に含まれないファイルについてアクセス操作履歴（削除、データ追加、ファイル名変更など）を行っていることを示す。従って、新たなファイルについて、最終的なインデックスを作成するために、別のファイルにつての一連の差分メタ情報を、ベース・メタ情報に追加する。
【００５７】
ここで、メタ情報は、テープ上でファイルマークと呼ばれる特殊な情報をつけて記録することがＬＴＦＳフォーマットで規定されているので、最後に書かれたメタ情報を探し出すことは容易に可能であり、実際に現在のＩＢＭのＬＴＦＳの実装でも行われている。そのメタ情報から、前に書かれたファイルマークを探していくことで、前に書かれているメタ情報を探し出すことも可能である。よって、テープ上のメタ情報を最後に書かれたメタ情報から、書かれたのと逆順にメタ情報を読み出していくことができる。逆順にグループＡのメタ情報が見つかるまでメタ情報の一覧を取得していくことで、上記の図１４のフローチャートで必要となるメタ情報はすべて読み出すことができる。
【００５８】
図１５は、本発明を適用したＬＴＦＳを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープに書き込む場合のデータ量及びメタ情報量の対比を示す。図のような流れで、グループＡのメタ情報にグループＢのメタ情報による変更を適用することができるので、突然の電源断のときに、最後にメタ情報を書いた時点まで修復することができる。実際に、従来のＬＴＦＳと本発明を適用したＬＴＦＳとで、ＬＴＯ５のテープカートリッジに10KB, 20KB、30KBのファイルを書けるだけ書き込んだ場合に想定される、データの書き込み量とその割合は下の表３、表４のようになる。表３は、従来のＬＴＦＳでの データパーティションにおけるファイルとメタ情報の書き込み量を示す。表４は、本発明適用のＬＴＦＳでの データパーティションにおけるファイルとメタ情報の書き込み量を示す。従来のＬＴＦＳではデータパーティションの９０％以上の領域をメタ情報の書き込みで消費してしまっていたが、本発明を適用したＬＴＦＳでは５％以下の領域しか使用しない。
【００５９】
以上より、上述の実施例の方法では、本発明を適用することで、突然の電源断のときの対応したメタ情報を記録しながら、データパーティションをメタ情報で大量に占有してしまうことを避けることができる。なお、本発明を実施の形態（実施例）を用いて説明したが、本発明の範囲は上記実施例には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００６０】
４０…テープカートリッジ（メディア、テープ、テープメディア）、
６０…テープドライブ（テープ記録装置）、
１１０…通信Ｉ／Ｆ（インターフェース）、
１２０…バッファ（ドライブバッファ）、
１３０…記録チャネル、
１４０…読み書きヘッド、
１５０…制御部（コントローラ、読み書き制御を含む）、
１６０…位置決め部
１７０…モータドライバ、
１８０…モータ、
３００…ホスト（サーバ）
【図１】
0006041839.tif 000002
【図２】
0006041839.tif 000003
【図３】
0006041839.tif 000004
【図４】
0006041839.tif 000005
【図５】
0006041839.tif 000006
【図６】
0006041839.tif 000007
【図７】
0006041839.tif 000008
【図８】
0006041839.tif 000009
【図９】
0006041839.tif 000010
【図１０】
0006041839.tif 000011
【図１１】
0006041839.tif 000012
【図１２】
0006041839.tif 000013
【図１３】
0006041839.tif 000014
【図１４】
0006041839.tif 000015
【図１５】
0006041839.tif 000016