特許第6041839号(P6041839)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
特許6041839メタ情報を保管する方法、プログラム、及びそのテープ記録システム
<>
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000002
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000003
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000004
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000005
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000006
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000007
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000008
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000009
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000010
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000011
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000012
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000013
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000014
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000015
  • 特許6041839-メタ情報を保管する方法、プログラム、及びそのテープ記録システム 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6041839
(24)【登録日】2016年11月18日
(45)【発行日】2016年12月14日
(54)【発明の名称】メタ情報を保管する方法、プログラム、及びそのテープ記録システム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20161206BHJP
   G06F 12/00 20060101ALI20161206BHJP
【FI】
   G06F3/06 301Z
   G06F12/00 510B
   G06F3/06 303Z
【請求項の数】13
【全頁数】22
(21)【出願番号】特願2014-180165(P2014-180165)
(22)【出願日】2014年9月4日
(65)【公開番号】特開2016-53895(P2016-53895A)
(43)【公開日】2016年4月14日
【審査請求日】2016年1月12日
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】長谷川 徹
(72)【発明者】
【氏名】板垣 浩
(72)【発明者】
【氏名】渡邊 輝江
(72)【発明者】
【氏名】三間 慎介
(72)【発明者】
【氏名】山本 紀子
【審査官】 木村 雅也
(56)【参考文献】
【文献】 特開2005−128861(JP,A)
【文献】 特開2006−331472(JP,A)
【文献】 特開2004−029991(JP,A)
【文献】 国際公開第2013/054597(WO,A1)
【文献】 長谷川 徹,IBMプロフェッショナル論文4,PROVISION No.72 Winter 2012,日本,日本アイ・ビー・エム株式会社,2012年 2月 8日,第97-103頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
テープに書込まれたファイルに関連するメタ情報をテープに保管する方法であって、
(a)少なくとも1つのファイルについてのテープへのアクセス操作履歴の結果として、テープに保管された有効なファイルに関連するメタ情報をベース・メタ情報としてテープに保管することと、
(b)前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
(b1)前記所定のタイミングのメタ情報を保管することは、
前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することを含み、
前記所定のタイミングの保管は、定期的であることを特徴とするメタ情報を保管する方法。
【請求項2】
(b2)前記所定のタイミングのメタ情報を保管することは、
先行前記差分メタ情報をテープに保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を後続の差分メタ情報として所定のタイミングでテープに保管することとを含む、請求項1に記載の方法。
【請求項3】
前記メタ情報をテープに保管する方法は、テープを前記ファイルのデータを書き込むデータパーティションと、前記ファイルのメタ情報を保管するインデックスパーティションとに区分するテープ記録装置用ファイルシステムにより前記保管する方法であって、
前記ベース・メタ情報をテープのデータパーティションに追記することと、
前記ベース・メタ情報の追記後のテープへのファイルのアクセス操作履歴に対して、所定のタイミングで前記差分メタ情報をデータパーティションに追記することと、
テープをテープ記録装置から排出するときに、前記差分メタ情報を前記ベース・メタ情報に反映して最新のメタ情報(ベース・メタ情報)を構築してインデックスパーティションに保管することと、
前記差分メタ情報の追記後のテープへのファイルのアクセス操作履歴に対して、所定のタイミングで後続の差分メタ情報をデータパーティションに追記することと、
テープをテープ記録装置から排出するとき、または所定に命令を受け取ったとき、前記差分メタ情報を前記ベース・メタ情報に反映して最新のメタ情報(ベース・メタ情報)を構築してインデックスパーティションに保管することと、を含み、
前記ベース・メタ情報及び前記差分メタ情報の何れかの前記情報をテープに追記することは、前記情報がベース・メタ情報か差分メタ情報かを識別するタグ(識別タグ)を前記情報に含ませてデータパーティションに追記されることを特徴とする、請求項2に記載の方法。
【請求項4】
前記所定のタイミングのメタ情報を保管するステップ(b1)及び(b2)は、前記所定のタイミング以降での前記ファイルのアクセス操作履歴が既存の保管ファイルを削除することを含む場合に、前記保管ファイルの削除を指示する新規な削除フラグをメタ情報に新たに設け、前記差分メタ情報が前記保管済みファイルの削除を示す前記削除フラグを含み、テープに前記差分メタ情報として追記することを含む、請求項1または2に記載の方法。
【請求項5】
前記所定のタイミングのメタ情報を保管するステップ(b1)及び(b2)は、前記所定のタイミング以降での変更履歴が既存のファイルを変更によりデータを追加する場合、既存のファイルのデータ部分に後続する追加のデータのメタ情報を差分メタ情報として、テープに追記することを含む、請求項1または2に記載の方法。
【請求項6】
前記所定のタイミングのメタ情報を保管するステップ(b1)及び(b2)は、前記所定のタイミング以降での変更履歴が既存のファイルのファイル名を変更する場合、既存のファイルのファイルIDについてファイル名の変更するメタ情報を差分メタ情報として、テープに追記することを含む、請求項1または2に記載の方法。
【請求項7】
インデックスパーティションのインデックスを修復する方法であって、
請求項3の方法によりテープに保管された差分メタ情報から、最新のメタ情報(ベース・メタ情報)を構築してインデックスパーティションに保管することは、
(a)データパーティション上の前記識別タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
(b)次に書かれているメタ情報はあるかを確認するステップと、
(c)ステップaにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルIDを読み出すステップと、 (d)差分メタ情報に含まれるファイルIDは、ベース・メタ情報に含まれているものかを確認するステップと、
(e)ステップdでファイルIDがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイルやディレクトリのメタ情報を更新するステップと、を含む インデックスを修復する方法。
【請求項8】
(f)ステップdでファイルIDがベース・メタ情報に含まれていない場合、ベース・メタ情報に該当するファイルやディレクトリのメタ情報を追加することを、含む請求項7に記載の方法。
【請求項9】
(g)ステップbにおいて差分メタ情報がない場合、ステップaで読み出したベース・メタ情報をインデックスパーティションに保管することを、含む請求項7に記載の方法。
【請求項10】
テープに書込まれたファイルに関連するメタ情報をテープに保管するテープ記録システムであって、
(a)少なくとも1つのファイルについてのテープへのアクセス操作履歴の結果として、テープに保管された有効なファイルに関連するメタ情報をベース・メタ情報としてテープに保管することと、
(b)前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
(b1)前記所定のタイミングのメタ情報を保管することは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することを含む、メタ情報を保管することと、を実行し、
前記所定のタイミングの保管は、定期的であることを特徴とするテープ記録システム。
【請求項11】
テープに書込まれたファイルに関連したメタ情報をテープに保管するテープ記録システムのためのプログラムであって、
(a)少なくとも1つのファイルについてのテープへのアクセス操作履歴の結果として、テープに保管された有効なファイルに関連するメタ情報をベース・メタ情報としてテープに保管することと、
(b)前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
(b1)前記所定のタイミングのメタ情報を保管することは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管すること、をテープ記録システムに実行させ
前記所定のタイミングの保管は、定期的であることを特徴とするプログラム。
【請求項12】
インデックスパーティションのインデックスを修復するテープ記録装置システムであって、
請求項3の方法によりテープに保管された差分メタ情報から、最新のメタ情報(ベース・メタ情報)を構築してインデックスパーティションに保管することは、
(a)データパーティション上の前記識別タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
(b)次に書かれているメタ情報はあるかを確認するステップと、
(c)ステップaにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルIDを読み出すステップと、 (d)差分メタ情報に含まれるファイルIDは、ベース・メタ情報に含まれているものかを確認するステップと、
(e)ステップdでファイルIDがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイルやディレクトリのメタ情報を更新するステップと、
を実行するテープ記録装置システム。
【請求項13】
インデックスパーティションのインデックスを修復するプログラムであって、
請求項3の方法によりテープに保管された差分メタ情報から、最新のメタ情報(ベース・メタ情報)を構築してインデックスパーティションに保管することは、
(a)データパーティション上の前記指標タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
(b)次に書かれているメタ情報はあるかを確認するステップと、
(c)ステップaにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルIDを読み出すステップと、 (d)差分メタ情報に含まれるファイルIDは、ベース・メタ情報に含まれているものかを確認するステップと、
(e)ステップdでファイルIDがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新するステップと、
をテープ記録システムに実行させる修復するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、直前に保管したメタ情報からのファイルに関連するアクセス履歴の差分だけのメタ情報を、定期的に保管するテープ記録システムのための方法に関する。
【背景技術】
【0002】
テープドライブ用ファイルシステムのLTFS(Linear Tape FileSystem)は、テープカートリッジに、OS(Linux,Windows,MacOS X)上のアプリケーションからファイル単位でデータを書込み・読み出しすることを可能にする。LTFSフォーマットでは、テープカートリッジをインデックスパーティション(IP)とデータパーティション(DP)の2つのパーティションにわけることが規定されている。ここで、インデックスパーティションはファイルのアロケーション情報などのメタ情報を記録し、データパーティションにはデータ本体を記録する。テープはシーケンシャルアクセスデバイスであり、データは常に追記されるので、ひとつのパーティションに記録すると、アロケーション情報は常に末尾に記録することになる。テープカートリッジをマウントするときに、必ず末尾の情報を読み出すため、マウントに長い時間がかかってしまう。そこでLTFSでは、テープカートリッジをアンマウント(Unmount)するときに、メタ情報をインデックスパーティションの先頭部分に上書き記録する。テープカートリッジをマウント時には常にインデックスパーティションからメタ情報を読み出すことを可能としている。
【0003】
メタ情報はデータパーティションにも書き込みを行っている。突然の電源断などでインデックスパーティションのメタ情報を更新できなかった場合がある。この場合に、時間はかかるがデータパーティションに保管されたメタ情報を利用して、インデックスパーティションのメタ情報を修復できる。
【0004】
図1は、従来のLTFSを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープカートリッジに書き込む場合のファイル量を示す表を与える。
実際に、IBMのWindows版LTFSとLTO5テープドライブとを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープカートリッジに書き込むと、5分間でそれぞれ、表1のように3000個以上のファイルを書き込むことができる。
【0005】
表1は、書き込まれるファイルの数及びサイズを示す。
デフォルトの設定では5分ごとにメタ情報をデータパーティションに書き込むが、3000個のファイルのメタ情報はおよそ1440KBの記録領域を占有する。
5分で約3000個なので、10分後には約6000個分の2880KBのメタ情報を書き込むことになる。
【0006】
表2は、 データパーティションにおけるファイルとメタ情報の書き込み量を示す。
LTO5のテープカートリッジでは、データパーティションの大きさは1.425TBである。できるだけファイルを書き込んでいくと、表2のように、データパーティションの90%以上がメタ情報によって消費されてしまう。テープカートリッジのデータパーティション全体でファイルデータは10%以下しか保管することができない。突然の電源断に備えてメタ情報を定期的に書き込んでいると、メタ情報がデータパーティション領域の大部分を消費して、本来保管したいファイルの記録領域が少なくなってしまう。
【0007】
特許文献1は、障害や人的間違いによるデータの欠損を復元するために、データを記録手段に記録する毎に、別の記録手段にも記録する。その際、特許文献1は、変更記録手段に差分データの差分を記録していることを示す。
非特許文献1は、テープ用のファイルシステムとしてLTFSの規格を与える。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特許公開2002−55863号公報
【非特許文献】
【0009】
【非特許文献1】http://www.trustlto.com/LTFS_Format_To%20Print.pdf
【発明の概要】
【発明が解決しようとする課題】
【0010】
LTFSを使用しているユーザからすると、小さなファイルを書き込んでいたらいつの間にかデータパーティションの残り領域が少なくなってしまうように感じられる。この突然の電源断に対応するために、ユーザの意図しないタイミングでデータパーティションをメタ情報で大量に占有してしまう。従来のLTFSではデータパーティションにデータとメタ情報を追記で保管していく。しかしながら、突然の電源断に対応するために定期的にメタ情報を保管していると、メタ情報がデータパーティションを大量に消費してしまうという課題が存在する。
【0011】
従って、本発明の目的は、テープ記録システム用のファイルシステムを介して、直前に保管したメタ情報からの複数のファイルの更新操作(変更、追加、削除など)に関連した差分だけのメタ情報(差分メタ情報)を、定期的な保管する方法を提供する。
【課題を解決するための手段】
【0012】
かかる目的のもと、本発明は、テープに書込まれたファイルに関連するメタ情報をテープに保管する方法である。この方法は、
(a)少なくとも1つのファイルについてのテープへのアクセス操作履歴(追加、削除、変更)の結果として、テープに保管された有効なファイルに関連するメタ情報(ベース・メタ情報)をテープに保管することと、
(b)前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
(b1)前記所定のタイミングのメタ情報を保管するステップは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することを含む。
【0013】
また、上記保管する方法において、(b2)前記所定のタイミングのメタ情報をメタ情報として保管するステップは、先行する前記差分メタ情報をテープに保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を後続の差分メタ情報として所定のタイミングでテープに保管することとを含むことを特徴とする。
【0014】
また、上記保管する方法において、前記テープに書込み方法は、テープを前記ファイルのデータを書き込むデータパーティションと、前記ファイルのメタ情報を保管するインデックスパーティションとに区分するテープ記録装置用ファイルシステムであって、
前記ベース・メタ情報をテープのデータパーティションに追記することと、
前記ベース・メタ情報の追記後のテープへのファイルのアクセス操作履歴に対して、所定のタイミングで前記差分メタ情報をデータパーティションに追記することと、
テープを排出するときに、前記差分メタ情報を前記ベース・メタ情報に追加または変更して最新のメタ情報を構築してインデックスパーティションに保管することと、
前記差分メタ情報の追記後のテープへのファイルのアクセス操作履歴に対して、所定のタイミングで後続の差分メタ情報をデータパーティションに追記することと、
テープを前記装置から排出するとき、または所定に命令により、前記差分メタ情報を前記ベース・メタ情報に追加または変更して最新のメタ情報を構築してインデックスパーティションに保管することと、を含み、
前記ベース・メタ情報及び前記差分メタ情報の追記は、ベース・メタ情報か差分メタ情報かを識別するタグ(識別タグ)を前記情報に含ませてデータパーティションに追記されることを特徴とする。
【0015】
また、上記保管する方法において、前記所定のタイミングのメタ情報をメタ情報として保管するステップ(b1)及び(b2)は、前記先行のタイミング以降での前記後続のファイルのアクセス操作履歴が既存の保管ファイルを削除することを含む場合に、前記保管済みファイルの削除を指示する新規な削除フラグをメタ情報に新たに設け、前記後続の差分メタ情報が前記保管済みファイルの削除を示す前記削除フラグを含み、テープに前記後続の差分メタ情報として追記することを含むことを特徴とする。
【0016】
また、上記保管する方法において、前記所定のタイミングのメタ情報をメタ情報として保管するステップ(b1)及び(b2)は、前記先行のタイミング以降での変更履歴が既存のファイルを変更によりデータを追加することを含む場合に、既存のファイルのデータ部分に後続する追加のデータのメタ情報を差分メタ情報として、テープに追記することを含むことを特徴とする。
【0017】
また、上記保管方法において、前記所定のタイミングのメタ情報をメタ情報として保管するステップ(b1)及び(b2)は、前記前回のタイミング以降での変更履歴が既存のファイルのファイル名を変更することを含む場合に、既存のファイルのファイルIDについてファイル名の変更するメタ情報を差分メタ情報として、既存のファイルのデータ部分に関連付けて、テープに追記することを含むことを特徴とする。
【0018】
更に、かかる目的のもと、本発明は、上記保管する方法により差分メタ情報が保管されたテープから、インデックスパーティションのインデックスを修復する方法である。この方法は、
(a)データパーティション上の前記指標タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
(b)次に書かれているメタ情報はあるかを確認するステップと、
(c)ステップaにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルIDを読み出すステップと、
(d)差分メタ情報に含まれるファイルIDは、ベース・メタ情報に含まれているものかを確認するステップと、
(e)ステップdでファイルIDがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新するステップと、を含む。
【0019】
また、上記修復方法において、(f)ステップdでファイルIDがベース・メタ情報に含まれていない場合、ベース・メタ情報に該当するファイル等のメタ情報を追加することを、含むことを特徴とする。
【0020】
また、上記修復方法において、(g)ステップbにおいて差分メタ情報がない場合、ステップaで読み出したベース・メタ情報をインデックスパーティションに保管することを、含むことを特徴とする。
【0021】
更に、かかる目的のもと、本発明は、テープに書込まれたファイルに関連するメタ情報をテープに保管するテープ記録システムである。このステップは、
(a)少なくとも1つのファイルについてのテープへのアクセス操作履歴(追加、削除、変更)の結果として、テープに保管された有効なファイルに関連するメタ情報(ベース・メタ情報)をテープに保管することと、
(b)前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
(b1)前記所定のタイミングのメタ情報を保管するステップは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することを含む、メタ情報を保管することと、を実行する。
【0022】
更に、かかる目的のもと、本発明は、テープに書込まれたファイルに関連したメタ情報をテープに保管するテープ記録システムのためのプログラムである。このプログラムは、
(a)少なくとも1つのファイルについてのテープへのアクセス操作履歴(追加、削除、変更)の結果として、テープに保管された有効なファイルに関連するメタ情報(ベース・メタ情報)をテープに保管することと、
(b)前記ベース・メタ情報を保管した後に、前記有効なファイル及び新たなファイルについてのテープへのアクセス操作履歴の結果として、前記アクセス操作履歴を反映する前記ファイルに関連するメタ情報を所定のタイミングでテープに保管することと、を含み、
(b1)前記所定のタイミングのメタ情報を保管するステップは、前記ベース・メタ情報を保管した以降のみに生じたアクセス操作履歴を反映する前記ファイルに関連するメタ情報を先行の差分メタ情報として所定のタイミングでテープに保管することと、
をテープ記録システムに実行させる。
【0023】
更に、かかる目的のもと、本発明は、上記保管方法により差分メタ情報が保管されたテープから、インデックスパーティションのインデックスを修復するテープ記録装置システムである。このシステムは、
(a)データパーティション上の前記指標タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
(b)次に書かれているメタ情報はあるかを確認するステップと、
(c)ステップaにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルIDを読み出すステップと、
(d)差分メタ情報に含まれるファイルIDは、ベース・メタ情報に含まれているものかを確認するステップと、
(e)ステップdでファイルIDがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新するステップと、を実行する。
【0024】
更に、かかる目的のもと、本発明は、上記保管方法により差分メタ情報が保管されたテープから、インデックスパーティションのインデックスを修復するためのプログラムである。このプログラムは、
(a)データパーティション上の前記指標タグにより識別されるメタ情報のうち、一番最後に書かれた前記ベース・メタ情報を読み出すステップと、
(b)次に書かれているメタ情報はあるかを確認する。
(c)ステップaにおいて差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのファイルIDを読み出すステップと、
(d)差分メタ情報に含まれるファイルIDは、ベース・メタ情報に含まれているものかを確認するステップと、
(e)ステップdでファイルIDがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新するステップと、をテープ記録システムに実行させる。
【発明の効果】
【0025】
上述の本発明の適用により、突然の電源断の際にメタ情報の修正ができるように、ファイルのメタ情報を保管しながらデータパーティションを占有してしまうことを避けることができる。
【図面の簡単な説明】
【0026】
図1】従来のLTFSを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープカートリッジに書き込む場合のファイル量を示す表を与える。
図2】LTFSの2つのパーティションにより区分けされたテープを示す。
図3】ホストに接続されたテープドライブ(磁気テープ装置)を含むテープストレージシステム(テープ記録装置システム)のハードウェアを示す。
図4】LTFSフォーマットでのメディアのインデックスパーティションとデータパーティションの内容を示す。
図5】1つのファイルを部分的な書き換えの場合のインデックスファイルに含まれる位置メタ情報(エクステント)の変更内容を示す。
図6】LTFSでファイルをテープ上に書いた場合のテープカートリッジ上での情報の記録例を示す。
図7】データパーティションにメタ情報が1つしか書かれていない例を示す。
図8】メタ情報書き込みフローを示す。
図9】メタ情報の変更履歴(差分メタ情報)の保管のフローを示す。
図10】差分メタ情報の保管のフローを示す。
図11】例1として、テープ上の2つのファイルのデータとメタ情報の配置を示す。
図12】例2として、テープ上の2つのファイルの1つを削除したデータとメタ情報の配置を示す。
図13】例3として、テープ上の残っているファイルに追加データで更新し、そのファイル名を変更した場合データとメタ情報の配置を示す。
図14】修復プログラム(API)によるインデックスパーティションに書くべきメタ情報(インデックス)の作成のフローを示す。
図15】本発明を適用したLTFSを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープに書き込む場合のデータ量及びメタ情報量の対比を示す。
【発明を実施するための形態】
【0027】
直前にメタ情報を保管した以降のファイルへのアクセス操作履歴を反映するメタ情報を、所定のタイミングでテープに保管する実施の形態(実施例)を説明する。
本発明では、テープのデータパーティションに書き込むメタ情報を、メタ情報を書き込むタイミングを元にして次の2つのグループAとBにわける。グループAのメタ情報は、現行にメタ情報であり、本発明ではベース・メタ情報と呼ぶ。グループBのメタ情報は、直前のメタ情報からの差分だけをもつようにし、本発明では差分メタ情報と呼ぶ。ファイルシステム(LTFS)内部では、メタ情報を生成する際に、どちらのグループに入るかを判断することができる。
●グループA
・フォーマット時に先頭に書き込むメタ情報。
・アンマウント時に書き込むメタ情報。
・ユーザがFlushFileBuffers()のようなAPIで明示的に作成したメタ情報。
●グループB
・LTFSがその設定により、定期的もしくはファイルのCloseのタイミングで自動的に書き込むメタ情報。
【0028】
突然の電源断の際に使用するltfsck(現行の修復機能を組み込んだAPI:LTFS checkの略称)を本発明のメタ情報のグループを考慮した動作に変更する。この動作は、データパーティションのメタ情報からインデックスパーティションに書き込むべきメタ情報を作成(または修復)する。このメタ情報の修復の際、そのデータパーティションに書き込まれた、最後のグループAのメタ情報(ベース・メタ情報)を元とする。このベース・メタ情報が保管された以降にファイル関連して実行された操作履歴(追加、削除、変更など)のみを反映したメタ情報(差分メタ情報)を用いて、最終的なメタ情報を作成する。このメタ情報が最新のベース・メタ情報となり、データパーティションの最後尾とインデックスパーティションとに書き込むことで修復が完了する。
【0029】
本発明の実施例の基本動作を説明のため、LTFSフォーマット、テープドライブ、LTFSでのファイルのデータの書込みについて説明する。
図2は、LTFSの2つのパーティションにより区分けされたテープを示す。
LTO5テープドライブは、テープの長手方向に沿った書き込み領域のラップ(wrap)を往復しながらデータを書く。LTFSではこのラップ2本分(1往復分)をインデックスパーティションとして利用している。テープの先端部(BOT:Beginning of Tape)から終端部(EOT:End of tape)に渡ってIPとDPとの2つに区分される。ヘッドが同時に読み書きする単位がトラックであり、トラック16本がラップ1本に相当する。LTO5のテープカートリッジでは、テープ長手方向は約800m、横手方向はラップ数80本の幅である。IPとDPとは2本のラップの保護領域(guard band)で区分される。テープはラップの長手方向に前後に進行し、BOTおよびEOTにおいて進行する向きを反転することをラップターン(wrap turn)と呼ぶ。テープドライブのヘッドに対してテープの長手方向のBOTからEOTの移動時間は60〜90秒である。長手方向の半分のテープ移動時間は30〜45秒程度である。
【0030】
テープドライブ用のファイルシステム、例えばLTFSでは、メディア上に書かれたデータをファイルとして見せることができる。ユーザがLTFSを利用してテープメディアに書き込むと、テープメディアではファイル本体の他、インデックスファイル(単にインデックスとも言う)と呼ばれるメタ情報をテープメディアに書き込む。インデックスは、メタ情報としてディレクトリ名及びファイル名やファイル作成日、及び、メディア上の位置、サイズ、ファイル内のオフセットなどを含む位置メタ情報(図5で説明されるエクステント)をXML形式で含む。IPには、主に最新のインデックスが書き込まれる。DPには、ファイルの本体、及び、インデックスの履歴が書き込まれる。
【0031】
LTFS を用いてテープメディア上のファイルを読み書きする場合、レコードと呼ばれる単位でデータの読み書きを行う。レコードは、LTFSではブロックと呼んでLTFSフォーマットを与える。ブロックは、ファイルのデータが記録されるパーティション毎にパーティションの先頭から何番目のブロックであるという番号で管理される。インデックスファイルには、ファイルのデータに対するブロックの番号で指示される位置情報が含まれる。
【0032】
図3は、ホストに接続されたテープドライブ(テープ装置)を含むテープストレージシステム(テープ記録装置システム)のハードウェアを示す。
テープドライブ60は、ホスト300のアプリケーションからファイルシステム(LTFS)を介してファイルの読み書き要求を受け取る。テープドライブは、通信I/F(インターファース)110と、バッファ120と、記録チャネル130と、読書きヘッド140と、制御部150と、位置決め部160と、モータドライバ170と、モータ180とを含む。
【0033】
インターフェース110は、ネットワークを介してホスト300との通信を行う。例えばインターフェース110は、ホスト300から、テープカートリッジ(メディア、テープ)40へのデータの書込みを指示する書込みコマンドを受信する。またインターフェース110は、ホスト300から、メディア40からのデータ読出しを指示する読出しコマンドを受信する。インターファース110は、書込みデータの圧縮と、読み出しデータの非圧縮とを行う機能を有し、実際のデータに対してメディアへの記憶容量を約2倍近く高めている。
【0034】
テープドライブ60は、ホスト300のアプリケーションから送られた複数のレコードで構築されるデータセット(DataSet:DSと言う)単位でメディア40への読み書きを行う。DSの典型的な大きさは4MBである。ホスト300のアプリケーションは、ファイルシステム(例えばLTFS−API)によりファイルを指定して読み書きアクセスをテープドライブ60に発行する。ファイルシステムは、SCSIコマンドのレベルでレコードをテープドライブに書込み/読み出し要求(Write/Read)を送る。DSは複数のレコードで構成される。
【0035】
各DSは、データセットに関する管理情報を含む。ユーザデータはレコード単位で管理される。管理情報はデータセット情報テーブル(DSIT:Data Set Information Table)に含まれる。DSITは、そのDSに含まれるレコード又はブロック数およびFM(Filemark)数、更にはメディアの先頭から書かれた累積レコード数および累積FM数、を含む。
【0036】
バッファ120は、メディア40に書込むべきデータ、また、メディアから読み出したデータを一時的に蓄積するメモリである。例えばバッファ120は、DRAM(Dynamic Random Access Memory)によって構成される。記録チャネル130は、バッファ120に蓄積されたデータをメディア40に書き出すため、またはメディア40から読み出されたデータをバッファ120に一時的に蓄積するために用いられる通信経路である。
【0037】
読書きヘッド140は、データ読書き素子を有し、メディア40へのデータの書込み及びメディアからのデータの読出しを行う。本実施形態に係る読書きヘッド140はまたサーボ読取り素子を有し、メディア40に設けられたサーボトラックから信号を読み取る。位置決め部160は、カートリッジ40の短手方向(幅方向)に読書きヘッド140の移動を指示する。モータドライバ170は、モータ180を駆動する。
【0038】
テープドライブ60は、ホスト300から受取ったコマンドに従って、データのテ−プへの書込みやテ−プからの読出しをする。テ−プドライブ60は、バッファ、読み書きチャネル、ヘッド、モ−タ、テ−プを巻きつけるリ−ルと、読み書き制御と、ヘッド位置制御システムと、モ−タドライバとを含む。テ−プドライブは、テープカートリッジを着脱可能に搭載する。テ−プは、リ−ルの回転に伴い、長手方向に移動する。ヘッドは、テープの長手方向に移動してデータを書き込んだり、テ−プからデータを読出したりする。また、テープカートリッジ40はカートリッジメモリ(CM:Cartridge Memory)と呼ばれる非接触不揮発性メモリを備える。テープカートリッジ40に搭載されたCMは、テープドライブ60により非接触的に読み書きされる。CMはカートリッジ属性を保管する。テープドライブは、読出し及び書込み時に、CMからカートリッジ属性を取り出して最適な読み書きができるようにする。
【0039】
制御部150は、テープドライブ60の全体の制御を行う。すなわち、制御部150は、インターフェースで受信したコマンドに従って、データのメディア40への書込み及びメディア40からのデータの読出しを制御する。また、制御部150は、読取られたサーボドラックの信号に従って位置決め部160を制御する。更に制御部150は、位置決め部160及びモータドライバ170を介してモータの動作を制御する。なお、モータドライバ170は制御部150に直接接続されてもよい。
【0040】
図4は、LTFSフォーマットでのメディアのインデックスパーティションとデータパーティションの内容を示す。
(A)は、LTFSフォーマットで初期化した直後のテープメディアに書き込まれるメタ情報を示す。
テープメディアを LTFS フォーマットで初期化した直後には、テープメディアにはA)に示す情報が書き込まれる。
・FID(Format Identification Data set)は、テープドライブがテープメディアを初期化する際、テープメディアの先頭に書き込まれる特殊なデータであり、テープメディア上のパーティションの数や各パーティションの容量などの情報を持つ。
・VOL1 Labelは、ANSI Label とも呼ばれるもので、文字通りANSIで規定された一般的なフォーマットのラベルである。
・LTFS Labelは、LTFS フォーマットで規定されたラベルで、このテープメディアがLTFSフォーマットのどのバージョンに準拠してフォーマットされたかといった情報を保持するラベルである。ここでメディアに記録されるレコードのサイズを指示する。レコードサイズはブロック・サイズ(block size)とも言う。
・FM(Filemark)とは、テープメディアで一般的に利用される、いわば本のしおりのようなものであり、データの位置合わせ(seek)を行う際に利用される。
・Index#0とは、フォーマット時に書き込まれるインデックスであり、この段階ではファイル自体は一つも存在しないためファイル固有の情報は持たないもののテープメディアのボリューム名などの情報を保持するため書き込まれる。
【0041】
(B)は、LTFSフォーマットで初期化した後にファイルを書き込んだ場合にテープメディアに書き込まれる情報を示す。
LTFSフォーマットで初期化後、ファイル(File1)を書き込むと、テープメディア上に書き込まれたデータは(B)のようになる。太線で囲まれた部分が追加/更新されたデータである。Index#1はFile1のメタ情報(インデックス)を持つ。IPは最新のインデックスのみ保持する一方、DPはインデックスの履歴を保持する。インデックスを更新するタイミングはファイルシステムの実装にまかされており、例えば一定時間毎に更新したり、テープドライブからテープメディアを取り出す時のみ更新したりしている。更に使い続ける場合も、IPに置かれるインデックスは常に最新のインデックスのみが置かれ、DPは既存のインデックスを上書きすることなく、ファイルおよびインデックスを追記していく。
【0042】
図4の(C)は、(B)の状態の後、更にファイル(File2)を書き込んだ場合のテープメディアに書き込まれる情報を示す。
最初のファイル(File1)をテープメディア上に書き込んだ後、次のファイル(File2)を追加すると、格納されるFile1にFile2が連続してテープメディアに保管される。Index#2はFile1およびFile2のメタ情報(インデックス)を持つ。
【0043】
図4の(D)は、(B)の状態の後、File1の末尾に文字情報(File1-2)を追加してFile1を更新した後、メディア上に書き込まれるメタ情報を示す。
文書作成アプリケーション(例、マイクロソフト社のワード)は、メディア上に書き込まれたファイルを更新した後、1つのファイル(File1)がFile1-1及びFile1-2のようにフラグメント化(分散)して記録する。
【0044】
図5は、1つのファイルを部分的な書き換えの場合のインデックスファイルに含まれる位置メタ情報(エクステント)の変更内容を示す。
インデックス(index)はファイルの位置情報(ポインター)をエクステント(extent)と呼ぶ形式で保管する。エクステントの要素(element)は、ファイルの部分(データ部分)の先頭のブロックの番号(StartBlock),その番号のブロック内での開始オフセット(ByteOffset),データのサイズ(ByteCount),データ部分のファイルでの位置(FileOffset)を含む。ユーザデータはブロックサイズで指定されたサイズ(例えば512KB)単位のレコード単位でメディアに記録される。
StartBlockは、テープメディアの先頭から固定サイズのブロックの順番を指す。ByteOffsetは、特定番号のブロック内で書き始めるオフセットを示す。
ByteCountは、エクステントで指示されるデータ部分のデータサイズを指す。
FileOffsetは、エクステントで指示されるデータ部分のファイル位置を指す。
ブロックは、レコードまたはFM(FileMaker:レコードの区切り)を含み、LTFS Labelにおいてサイズが指定される。ユーザデータはブロックサイズで指定されたサイズ(例えば512KB)単位のレコード単位でメディアに記録される。
【0045】
File1のサイズがLをメディアに記録されている最初の場合(A)、インデックスはエクステント(x)であることを示す。File1は、テープメディアの長手方向にレコード単位で連続して書き込まれている斜線部分である。レコードはエクステントではブロックに相当する。データ部分の書換えの場合(B)は、(A)でFile1を書き込んだ後、そのFile1のMバイトから600KBを250KBのレコードで書換えた場合エクステント(x)(y)(z)の情報を示す。エクステント(y)は、File1のデータ部分600KBバイトを変更して書き込まれる250KBのデータ(レコード)を指示する。データ部分の連続ではなく、後続するBlock番号(StartBlock:N+4)のレコードとして追記書込む。
エクステント(y)は、StartBlock=N+4のオフセットByteOffset=0から250KBを追記(append write)する。
エクステント(x)は、StartBlock=NのByteCount=Mまでのデータ(レコード)を指示す。ブロックNのオフセットMから600KBのデータは変更される。
エクステント(z)は、StartBlock=N+2のByteOffset=(M+600K)mod DからByteCount=L-(M+600)のデータ部分を示す。Dはブロックサイズ(例えば512KB)である。ByteOffsetはM+600KBをDで割った余りであり、ブロック番号N+2でのオフセットを与える。
File1のインデックスは、データ部分な書換えにより、複数のエクステント(x)→(y)→(z)にように分散化した配置情報を含む。
【0046】
図6は、LTFSでファイルをテープ上に書いた場合のテープカートリッジ上での情報の記録例を示す。
インデックスパーティションには、特別に指定したファイルBと最新のメタ情報3とが記録される。データパーティションには、ファイルA、ファイルB、ファイルC、ファイルDだけでなく、メタ情報1、メタ情報2、メタ情報3も記録されている。ここで、メタ情報1及びメタ情報2は古い情報である。テープドライブでは基本的に情報は追記されるので、メタ情報は上書きされることなく追記(append write)して古いメタ情報も保管されている。メタ情報をデータパーティションに書き込むタイミングは、アプリケーションから明示的に指定されたときである。たとえば、Windowsで標準のAPIである、FlushFileBuffers()が呼ばれたときである。またファイルをCloseしたタイミングや、一定時間経過したとき、などを設定により指定することができる。
【0047】
図7は、 データパーティションにメタ情報が1つしか書かれていない例を示す。
テープカートリッジをフォーマットしてマウントした後、データパーティションにファイルA,B, C, Dを書き込んだときには、テープ上にはファイルのデータが記録されている。ここでメタ情報1はフォーマット直後のメタ情報のため、その後に書かれたどのファイルの情報も持っていない。図7の状態ではアンマウントせずに電源を落とした場合には、テープ上でファイルA, B, C, Dのデータ位置を特定することができない。ファイルのデータ位置を特定するメタ情報(特にエクステント)が無いため、すべてのファイルを失うことになる。
【0048】
IBMの現在のLTFSでは、突然の電源断でのデータロスを少なくするために、5分に一度、データパーティションにメタ情報を記録する設定を推奨し、そのように動作するようになっている。インデックスパーティションにメタ情報を記録することなく、突然の電源断が発生した場合には、修復用のコマンド(ltfsck)を用意している。データパーティションにファイルの最新のメタ情報が保管されていないテープに対して、ltfsckを実行することにより、最新のメタ情報を再生できる。この再生は、データパーティションに書かれている最新のメタ情報をインデックスパーティションに記録しなおすことにより、可能である。この修復処理により、電源断によりファイルの特定が出来なくなったテープカートリッジは通常のLTFSでマウントできるようになる。このように修復の手順も確立しているので、突然の電源断に対応するように、定期的にデータパーティションにメタ情報を記録する設定が通常用いられている。
【0049】
図8は、メタ情報書き込みフローを示す。
大量のファイルをLTFSに記録すると、大きなサイズのメタ情報が記録されてしまう。
具体的にLTFSにファイルを大量に書くと、定期的、例えば5分毎のタイミング(ステップ804、Yes)でメタ情報がデータパーティションに情報が書かれていく(ステップ806)。
ホストのファイルの書込みアクセス処理は、従来のファイルシステム(LTFS)を介して、テープドライブ・システムに対して各ステップ処理を実行される。
(802)ホストはファイルをLTFSを介してテープドライブに書き込む。
(804)最後にメタ情報を書いてから5分が経過したかを確認する。
(806)その時点でのメタ情報を作成し、データパーティションに書き込む。
(808)すべてのファイルを書き込んだかを確認する。
(810)テープへのファイルの書き込みを完了する。
【0050】
本発明は、通常のLTFSをS/Wとして拡張し、メタ情報をデータパーティションに書き込んだ後、ファイルやディレクトリのアクセス操作履歴(作成、削除、パスの変更、拡張属性の変更など)をメモリやHDDに一時的に保管する。次のメタデータ書き込みの際に、そのメタデータ書き込みがグループBに属するなら、履歴の分だけのメタ情報を作成し、データパーティションに書き込む。ここで、ファイル等の削除は現在のLTFSのメタ情報には保管されないが、削除されたファイル等には特別な拡張属性(削除フラグ)を設ける。削除フラグをメタ情報に含ませることにより、保管されたファイル等が削除されたことを意味するようにする。特別な拡張属性とは、たとえば、LTFSフォーマットでベンダー依存の属性として定義されている、ltfs.vendor.IBM.deleted という属性にTRUEという値を設定することで保持することができる。
【0051】
図9は、メタ情報の変更履歴(差分メタ情報)の保管のフローを示す。
ファイルやディレクトリの処理の履歴を、メタ情報の履歴または差分メタ情報と呼ぶこととすると、図のような流れで、メタ情報の履歴を保管する。本発明のファイルシステムは、アプリケーション(図3)からのアクセスに対して、各ステップ処理を実行する。
(902)ファイルやディレクトリへのアクセスを受け取る。
ファイルの処理のアクセス操作履歴として変更、追加、削除のアクセスをアプリケーションから受け取る。
(904)メタ情報に変更(差分メタ情報)が必要かを確認する。
グループAのインデックスを保管後のファイルについて上記の処理の履歴を反映する差分メタ情報が生じたかを確認する。Noの場合はメタ情報の変更が必要になるまで、ステップ902のアプリケーションのアクセスを待つ(908)。
(906)上記処理履歴には、例えば、ファイルやディレクトリの削除が含まれるかを確認する。アプリケーションからのファイル及びディレクトリ削除以外のファイルのアクセスの場合はNoとなる。Noの場合、ファイル名等の変更、ファイルの追加、及びファイルデータの変更に関するメタ情報を、差分メタ情報として与えられる。
(908)ステップ902において、アプリケーションからの次のファイルへの処理のアクセスを待つ。
ステップ904において差分メタ情報が生じるまで、ステップ902のホストのアクセスを待つ(908)
(910)メタ情報からファイルやディレクトリを削除する代わりに拡張属性のフラグltfs.vendor.IBM.deletedにTRUEを設定したものとする。
LTFSの拡張属性のフラグltfs.vendor.IBM.deletedを利用して、保管済みのファイルがアプリケーションのアクセス(ステップ902)により削除されたことを(ステップ906、Yes)をTRUEで示す。差分メタ情報はこの拡張属性フラグを含む。
(912)メタ情報の変更履歴として変更メタ情報をLTFSのメモリ中に保管する。
【0052】
図10は、差分メタ情報の保管のフローを示す。
このフローチャートは、図9でLTFSのメモリ中に保管したメタ情報の変更履歴をテープに保管する際のフローである。
LTFSの設定により、定期的もしくはファイルのCloseのタイミングでメタ情報を書き込むタイミングが来た際には、次のようにデータパーティションにグループBの差分メタ情報を書き込む。本発明のファイルシステムは、テープドライブ・システムに対して各ステップ処理を実行する。
(1002)図9のステップ912において、グループBの差分メタ情報の書き込み処理(保管)の開始をする。
(1004)LTFSのメモリ中に保管されたメタ情報の差分履歴から、履歴に入っている分のファイル及びディレクトリに関する差分メタ情報を作成する。
(1006)差分メタ情報をデータパーティションへ追記により書き込む。
(1008)LTFSのメモリ中に保存されたメタ情報の変更履歴を削除する。
アンマウントやFlushFileBuffers()が呼ばれたりして、グループAのメタ情報を書き込む際には、すべてのファイルやディレクトの情報を持つメタ情報を書き込み、メタ情報の変更履歴は単に削除する。このようにして、本発明では、LTFSを拡張することで、グループAまたはグループBに属するメタ情報を書き込むことができる。図9はLTFSのメモリ中に変更履歴を作成する時のフローであり、図10はその変更履歴をテープに書き込む際のフローである。
【0053】
本発明の拡張されたLTFSで書き込まれるメタ情報の具体例を説明する。
●メタ情報の例1 (グループA)
図11は、例1として、テープ上の2つのファイルのデータとメタ情報の配置を示す。
メタ情報0及びメタ情報1は、現在のLTFSによる通常のメタ情報と同様である。本発明では、フォーマット時のメタ情報0は、グループAに分類されるように指標タグ(creatorタグ)を含ませる。メタ情報0は、データパーティション及びインデックスパーティションに保管されている。また、メタ情報1は、グループAに属するメタ情報であることを特定の指標タグで識別しておく。なおこのceartタグ(XML表示で与える)の使用は、LTFSフォーマット上ベンダーが自由に内容を設定して使用することは許されている。この例1では、a.txt、b.txtのとb.txtという2つのファイルが記録されている。a.txt及びb.txtのメタ情報(ファイル名、タイムステップ、位置情報など)を含むメタ情報1は、2つのファイルに続いてデータパーティションに追記されている。メタ情報1はインデックスパーティションには保管されていない。
【0054】
●メタ情報の例2(グループB )
図12は、例2として、テープ上の2つのファイルの1つを削除したデータとメタ情報の配置を示す。例1の状態から、ファイルa.txtを削除してグループBのメタ情報を書き込むと、図のようなメタ情報2が追記書き込みされている。メタ情報2を表すXML表示の特定の指標(creatorタグ)によりグループBであることを指標する。また、ファイルが削除されたことを指示するために、拡張属性ltfs.vendor.IBM.deleted(削除フラグ)をTRUEとして保管する。ここで、特にファイルb.txtのメタ情報は保管しておらず、変更のあったのファイルの操作履歴を反映する「差分メタ情報」のみが保管される。この例2では、1つのファイルa.txtを削除しているが、テープ上にはa.txtは残存する。差分のメタ情報2は、a.txtが削除されたファイルであることを指示する削除フラグをa.txtに関連づけて含む。グループBの処理において、他方のファイルb.txtへのアクセスないので、差分のメタ情報2は、b.txtのメタ情報を含まない。差分のメタ情報2は、データパーティションにメタ情報1の後に保管される。
【0055】
●メタ情報の例3 (グループB)
図13は、例3として、テープ上の残っているファイルに追加データで更新し、そのファイル名を変更した場合データとメタ情報の配置を示す。
ファイル処理の履歴操作を与える順次、例1、例2、例3におけるファイルのアクセス操作履歴を反映するメタ情報1、メタ情報2、メタ情報3の追記あれたテープ上の情報配置を示す。例1及び例2の状態に続いて、ファイルb.txtに更にデータを追加して、さらにb.txtの名前をc.txtに変更したアクセス操作理履歴を行う。この操作のメタ情報3は、XML表示のcreateタグ中でグループBの差分メタ情報として書き込まれる。メタ情報3は、変更のあったファイルb.txtに関するメタ情報のみが保管される。詳細には、メタ情報3は、既存のファイルb.txtのファイル名をc.txtに変更するメタ情報と、c.txtの後半のデータ位置を特定するメタ情報(エクステント)とを含む。差分メタ情報としてメタ情報3は、データパーティションに追加されたc.txtの後半に後続して書き込まれる。最終的に図13は、ファイル処理の履歴操作を与える例1,2,3のファイルデータ及びメタ情報1,2,3のテープ上での物理配置を示す。
【0056】
図14は、修復プログラム(API)によるインデックスパーティションに書くべきメタ情報(インデックス)の作成のフローを示す。
突然の電源断が発生した際には、ltfsckが図のような流れでインデックスパーティションに書き込むべきメタ情報を作成する。本発明の機能を組み込んだLTFSは、ファイルシステムのAPIを、また、独立の修復プログラムとして与えられる。例えば、修復プログラムは、本発明の改良されたLTFSにより定期的に差分メタ情報が保管されたメディアについて、インデックスパーティションのインデックスを修復するステップである。修復機能を組み込んだプログラムは、テープドライブ・システムに対して各ステップ処理を実行する。
(1402)データパーティション上のグループAのメタ情報のうち、一番最後に書かれたものを読み出しベースのメタ情報(ベース・メタ情報)とする。
(1404)次に書かれているメタ情報はあるかを確認する。
本発明のLTFSのグループBのモードによりメディアに保管された一連の差分メタ情報をデータパーティションから読み出すステップである。
(1406)ステップ1404において差分メタ情報がある場合、そのメタ情報を読み出し、そのメタ情報に書かれている各ファイルやディレクトリのfileuid(ファイルID)を読み出す。fileuidは、メタ情報(インデックス)のXML表示で、ファイルを識別するファイルIDとして、与えられる。
(1408)ステップ1404において差分メタ情報がない場合、1402に読み出したベース・メタ情報をインデックスパーティションに保管する。
(1410)差分メタ情報に含まれるfileuid(ステップ1406)は、ベース・メタ情報に含まれているものかを確認する。
(1412)ステップ1410においてfileuidがベース・メタ情報に含まれている場合、ベース・メタ情報の該当するファイル等のメタ情報を更新する。
後続の差分メタ情報は、ベース・メタ情報に含まれるIDが共通するファイルについてアクセス操作履歴(削除、データ追加、ファイル名変更など)を反映するメタ情報を含んでいる。共通するファイルについて、最終的なインデックスを作成するために、共通するファイルについて、ベース・メタ情報に一連の差分情報を反映させた変更を行う。
(1414)ステップ1410においてfileuidがベース・メタ情報に含まれていない場合、ベース・メタ情報に該当するファイル等の情報を追加する。
後続の差分メタ情報は、ベース・メタ情報に含まれないファイルについてアクセス操作履歴(削除、データ追加、ファイル名変更など)を行っていることを示す。従って、新たなファイルについて、最終的なインデックスを作成するために、別のファイルにつての一連の差分メタ情報を、ベース・メタ情報に追加する。
【0057】
ここで、メタ情報は、テープ上でファイルマークと呼ばれる特殊な情報をつけて記録することがLTFSフォーマットで規定されているので、最後に書かれたメタ情報を探し出すことは容易に可能であり、実際に現在のIBMのLTFSの実装でも行われている。そのメタ情報から、前に書かれたファイルマークを探していくことで、前に書かれているメタ情報を探し出すことも可能である。よって、テープ上のメタ情報を最後に書かれたメタ情報から、書かれたのと逆順にメタ情報を読み出していくことができる。逆順にグループAのメタ情報が見つかるまでメタ情報の一覧を取得していくことで、上記の図14のフローチャートで必要となるメタ情報はすべて読み出すことができる。
【0058】
図15は、本発明を適用したLTFSを用いて、xcopyコマンドで10KB, 20KB、30KBのファイルをテープに書き込む場合のデータ量及びメタ情報量の対比を示す。図のような流れで、グループAのメタ情報にグループBのメタ情報による変更を適用することができるので、突然の電源断のときに、最後にメタ情報を書いた時点まで修復することができる。実際に、従来のLTFSと本発明を適用したLTFSとで、LTO5のテープカートリッジに10KB, 20KB、30KBのファイルを書けるだけ書き込んだ場合に想定される、データの書き込み量とその割合は下の表3、表4のようになる。表3は、従来のLTFSでの データパーティションにおけるファイルとメタ情報の書き込み量を示す。表4は、本発明適用のLTFSでの データパーティションにおけるファイルとメタ情報の書き込み量を示す。従来のLTFSではデータパーティションの90%以上の領域をメタ情報の書き込みで消費してしまっていたが、本発明を適用したLTFSでは5%以下の領域しか使用しない。
【0059】
以上より、上述の実施例の方法では、本発明を適用することで、突然の電源断のときの対応したメタ情報を記録しながら、データパーティションをメタ情報で大量に占有してしまうことを避けることができる。なお、本発明を実施の形態(実施例)を用いて説明したが、本発明の範囲は上記実施例には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【0060】
40…テープカートリッジ(メディア、テープ、テープメディア)、
60…テープドライブ(テープ記録装置)、
110…通信I/F(インターフェース)、
120…バッファ(ドライブバッファ)、
130…記録チャネル、
140…読み書きヘッド、
150…制御部(コントローラ、読み書き制御を含む)、
160…位置決め部
170…モータドライバ、
180…モータ、
300…ホスト(サーバ)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15