(57)【特許請求の範囲】
【請求項１】
ファイルシステムによって、メディア上への１つ以上のファイルの書き込みに伴って、追加して書き込まれていくメタ情報を保持する方法であって、
そのメタ情報が、メディアのフォーマット時にメディアの先頭に書き込むメタ情報、メディアのアンマウント時にメディアに書き込むメタ情報及びユーザがAPIで明示的に作成したメディアに書き込むメタ情報のグループＡに属しているのか、または、ファイルシステムによって定期的にメディアに書き込まれるメタ情報及びファイルシステムによってファイルのCloseのタイミングで自動的にメディアに書き込まれるメタ情報のグループＢに属しているのかについて、コンピュータが判断するステップと、
そのメタ情報がグループＡに属していると判断される場合に、そのメタ情報を、次にメディアに書き込むメタ情報のために、グループＢに属しているメタ情報からは区別することができるように、コンピュータがメモリに保持するステップと、
を含む、方法。
【請求項２】
グループＡに属してメモリに保持されているメタ情報でもって、追加して書き込まれたメタ情報が、その直前に追加して書き込まれたグループＡに属するメタ情報を指し示すようにされている、請求項１に記載の方法。
【請求項３】
追加して書き込まれていくメタ情報が、メディア上に記録されたメタ情報の世代、または、そのメタ情報がメディア上に記録された位置に関する情報である、
請求項２に記載の方法。
【請求項４】
メディアが、テープメディアであって、
前記テープメディアは、１つ以上のファイルの書き込みに伴ってメタ情報が追加で書き込まれるＤＰ（データパーティション）と、前記ＤＰとは分かれた場所にあり、メタ情報が上書きされるＩＰ（インデックスパーティション）との、両方を含むものである、
請求項１に記載の方法。
【請求項５】
ＤＰ（データパーティション）へ書き込まれるメタ情報には、世代番号を記録していて、かつ、前の世代が書き込まれているテープメディア上のブロック番号を記録している、
請求項４に記載の方法。
【請求項６】
ＩＰ（インデックスパーティション）へ上書きされるメタ情報には、最新のメタ情報のみを記録している、
請求項５に記載の方法。
【請求項７】
グループＡに属してメモリに保持されているメタ情報でもって、追加して書き込まれたメタ情報が、その直前に追加して書き込まれたグループＡに属するメタ情報を指し示すようにされている、請求項６に記載の方法。
【請求項８】
メタ情報の前後に、ファイルマークが書き込まれる、
請求項７に記載の方法。
【請求項９】
グループＡに属してメモリに保持されているメタ情報でもって、コンピュータが、追加して書き込まれたグループＡに属するメタ情報をたどるステップと、を含む、
請求項８に記載の方法。
【請求項１０】
グループＡに属してメモリに保持されているメタ情報でもって、コンピュータが、追加して書き込まれたグループＡに属するメタ情報をたどり、グループＡに属しているメタ情報だけの一覧を表示するステップと、を含む、
請求項８に記載の方法。
【請求項１１】
メディア上への１つ以上のファイルの書き込みに伴って、追加して書き込まれていくメタ情報を保持するファイルシステムであって、
そのメタ情報が、メディアのフォーマット時にメディアの先頭に書き込むメタ情報、メディアのアンマウント時にメディアに書き込むメタ情報及びユーザがAPIで明示的に作成したメディアに書き込むメタ情報のグループＡに属しているのか、または、ファイルシステムによって定期的にメディアに書き込まれるメタ情報及びファイルシステムによってファイルのCloseのタイミングで自動的にメディアに書き込まれるメタ情報のグループＢに属しているのかについて、判断して、
そのメタ情報がグループＡに属していると判断される場合に、そのメタ情報を、次にメディアに書き込むメタ情報のために、グループＢに属しているメタ情報からは区別することができるように、メモリに保持する、
ファイルシステム。
【請求項１２】
ファイルシステムによって実施されるメディア上への１つ以上のファイルの書き込みに伴って、追加してメタ情報が書き込まれているメディアであって、
そのメタ情報が、メディアのフォーマット時にメディアの先頭に書き込むメタ情報、メディアのアンマウント時にメディアに書き込むメタ情報及びユーザがAPIで明示的に作成したメディアに書き込むメタ情報のグループＡに属しているのか、または、ファイルシステムによって定期的にメディアに書き込まれるメタ情報及びファイルシステムによってファイルのCloseのタイミングで自動的にメディアに書き込まれるメタ情報のグループＢに属しているのかについて、区別されて書き込まれている、
メディア。
【請求項１３】
メディアが、テープメディアであって、
前記テープメディアは、１つ以上のファイルの書き込みに伴ってメタ情報が追加で書き込まれるＤＰ（データパーティション）と、前記ＤＰとは分かれた場所にあり、メタ情報が上書きされるＩＰ（インデックスパーティション）との、両方を含むものである、
請求項１２に記載のメディア。
【請求項１４】
ＤＰ（データパーティション）へ書き込まれるメタ情報には、世代番号を記録していて、かつ、前の世代が書き込まれているテープメディア上のブロック番号を記録している、
請求項１３に記載のメディア。
【請求項１５】
ＩＰ（インデックスパーティション）へ上書きされるメタ情報には、最新のメタ情報のみを記録している、
請求項１４に記載のメディア。
【請求項１６】
グループＡに属してメモリに保持されているメタ情報でもって、追加して書き込まれたメタ情報が、その直前に追加して書き込まれたグループＡに属するメタ情報を指し示すようにされている、請求項１５に記載のメディア。
【請求項１７】
メタ情報の前後に、ファイルマークが書き込まれている、
請求項１６に記載のメディア。
【請求項１８】
請求項１〜１０の何れかに記載された方法をコンピュータに実施させる、
コンピュータプログラム。
【請求項１９】
ファイルシステムによって、メディア上への１つ以上のファイルの書き込みに伴って、メディア上へメタ情報を追加して書き込む方法であって、
そのメタ情報が、メディアのフォーマット時にメディアの先頭に書き込むメタ情報、メディアのアンマウント時にメディアに書き込むメタ情報及びユーザがAPIで明示的に作成したメディアに書き込むメタ情報のグループＡに属しているのか、または、ファイルシステムによって定期的にメディアに書き込まれるメタ情報及びファイルシステムによってファイルのCloseのタイミングで自動的にメディアに書き込まれるメタ情報のグループＢに属しているのかについて、コンピュータが判断するステップと、
そのメタ情報がグループＡに属していると判断される場合に、そのメタ情報を、グループＢに属しているメタ情報からは区別することができるように、コンピュータがメディアに書き込むステップと、
を含む、方法。
【請求項２０】
グループＡに属してメモリに保持されているメタ情報でもって、追加して書き込まれたメタ情報が、その直前に追加して書き込まれたグループＡに属するメタ情報を指し示すようにされている、請求項１９に記載の方法。
【請求項２１】
追加して書き込まれていくメタ情報が、メディア上に記録されたメタ情報の世代、または、そのメタ情報がメディア上に記録された位置に関する情報である、
請求項２０に記載の方法。
【請求項２２】
メディアが、テープメディアであって、
前記テープメディアは、１つ以上のファイルの書き込みに伴ってメタ情報が追加で書き込まれるＤＰ（データパーティション）と、前記ＤＰとは分かれた場所にあり、メタ情報が上書きされるＩＰ（インデックスパーティション）との、両方を含むものである、
請求項１９に記載の方法。
【請求項２３】
ＤＰ（データパーティション）へ書き込まれるメタ情報には、世代番号を記録していて、かつ、前の世代が書き込まれているテープメディア上のブロック番号を記録している、
請求項２２に記載の方法。
【請求項２４】
ＩＰ（インデックスパーティション）へ上書きされるメタ情報には、最新のメタ情報のみを記録している、
請求項２３に記載の方法。
【請求項２５】
グループＡに属してメモリに保持されているメタ情報でもって、追加して書き込まれたメタ情報が、その直前に追加して書き込まれたグループＡに属するメタ情報を指し示すようにされている、請求項２４に記載の方法。
【請求項２６】
メタ情報の前後に、ファイルマークが書き込まれる、
請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メディアへ書き込まれるメタ情報の効率的な利用に関する。
【０００２】
より具体的には、ファイルシステムによるメディアへのファイル書き込みに伴って書き込まれるメタ情報を一覧に提供する際の効率化に関する。
【背景技術】
【０００３】
近年、テープの新しい使い方として、LTFS (Linear Tape File System)というファイルシステムが開発されている。
【０００４】
LTFSは、ファイルシステムのインターフェースを通じて、テープへのアクセスを可能とする、ハードウエア(H/W)と協働するソフトウエア(S/W)である。
【０００５】
LTFSは、オープンな仕様である。
【０００６】
LTFSフォーマットに従って、テープカートリッジ上にデータが保存され、その実装はIBM (IBM Corporationの商標）以外にも、HP社やQuantum社など、複数のベンダーによって行われている。
【０００７】
LTFSフォーマットでは、テープカートリッジをインデックスパーティション（IP)とデータパーティション（DP)との、２つのパーティションに分けることが規定されている。
【０００８】
インデックスパーティション（IP)と、データパーティション（DP)とは、テープメディア上の分かれた場所に設定される。
【０００９】
インデックスパーティション(IP)にはファイルのアロケーション情報などのメタ情報を記録する。
【００１０】
データパーティション(DP)には、データ本体を記録する。
【００１１】
このように設定することには次のような背景がある。
【００１２】
ファイルのアロケーション情報は頻繁に更新されるが、テープはシーケンシャルアクセスデバイスの代表例であるが、データは常に追記されるので、ひとつのパーティションに記録すると、アロケーション情報は常に末尾に記録することになる。
【００１３】
すると、テープカートリッジをマウントするときに、必ず末尾に記録されている情報を読み出すことになるため、マウントに長い時間がかかってしまう。
【００１４】
そこでLTFSでは、テープカートリッジをアンマウントするときに、メタ情報をインデックスパーティションの先頭部分に上書き記録することで、マウント時には常にインデックスパーティションからメタ情報を読み出すことを可能としている。
【００１５】
正確には、メタ情報はデータパーティションにも書き込みを行っていて、突然の電源断などでインデックスパーティションのメタ情報を上書きによって更新できなかった場合にも、時間はかかるが、データパーティションに記録されたメタ情報を元にマウントできるようになっている。
【００１６】
また、インデックスパーティションにも少量のデータを保存できる仕組みがあり、これは、マウント時に同時に読み込んでおきたいデータを、データパーティションだけでなくインデックスパーティションにもおくことで、インデックスパーティションから高速に読み出すことを可能としている。
【００１７】
図１は、テープカートリッジ上での情報の記録例を示す図である。
【００１８】
この例では、インデックスパーティションには、特別に指定したファイル(ファイルB)と最新のメタ情報(メタ情報3)とが記録され、データパーティションには、データ(ファイルA、ファイルB、ファイルC、ファイルD)だけでなく、メタ情報(メタ情報1、メタ情報2、メタ情報3)も記録されている。
【００１９】
ここで、メタ情報1、メタ情報2は古いメタ情報であり、テープでは基本的に情報は追記されるので、上書きされることなく保存されている。
【００２０】
メタ情報をデータパーティションに書き込むタイミングは、アプリケーションから明示的に指定されたとき(たとえば、Windows（Microsoft Corporationの商標）で標準のAPIである、FlushFileBuffers()が呼ばれたとき)だけでなく、IBMやHP社のLTFSではファイルをCloseしたタイミングや、一定時間経過したとき、などを設定により指定することができる。
【００２１】
これは、メタ情報をデータパーティションに書き込むことなく、大量のデータをデータパーティションに書き込みを行っていると、突然の電源断などが発生した際に、最後に記録したメタ情報より後のデータがすべて失われてしまうからである。
【００２２】
図２は、データパーティションにデータだけ書き込んだ例を示す図である。
【００２３】
たとえば、テープカートリッジをフォーマットしてマウントした後、データパーティションにファイルA, B, C, Dを書き込んだときには、テープ上には図２のように情報が記録されている。
【００２４】
ここでメタ情報1は、フォーマット直後のメタ情報のため、その後に書かれたどのファイルの情報も持っていない。
【００２５】
そのため、このタイミングでアンマウントせずに電源を落とした場合には、テープ上でファイルA, B, C, Dのデータがどこからどこまでに書かれているか、を特定することができないので、すべてのファイルを失うことになる。
【００２６】
通常のUSBメモリやHDDなどを想定したアプリケーションでは、データを書き込んだ後、必ずしもFlushFileBuffers()などのAPIを呼ぶような設計になっていない。
【００２７】
そこで、IBMやHP社のLTFSでは、突然の電源断でのデータロスを少なくするために、５分に一度、データパーティションにメタ情報を記録する設定を推奨し、デフォルトでそのように動作するようになっている。
【００２８】
データパーティションに書き込まれたメタ情報は、上書きされることがないので、LTFSでは古いメタ情報を用いてマウントすることも可能としている。
【００２９】
この機能を「ロールバック (Rollback)」と呼び、Rollbackを用いることで過去のある時点のスナップショットに戻ることができる。
【００３０】
LTFSフォーマットでは、Rollbackを実行する際に、テープ上のどこにメタ情報が書かれているかを特定する手段として、各メタ情報は、世代番号を持ち、前のメタ情報へのポインタ(正確には、前の世代が書かれているテープ上のブロック番号)を記録することが規定されている。
【００３１】
このポインタのことを、本願では「バックポインタ」と呼ぶこととする。
【００３２】
図３は、メタ情報の世代番号とバックポインタを示す図である。
【００３３】
図３の例では、世代番号3のメタ情報は世代番号2のメタ情報へのバックポインタを持ち、世代番号2のメタ情報は世代番号1のメタ情報へのバックポインタを持っている。
【００３４】
世代番号1のメタ情報のバックポインタには何も入らないが、これは最初のメタ情報だからである。
【００３５】
図４は、メタ情報前後のFile Markを示す図である。
【００３６】
LTFSフォーマットでは、図４のように、メタ情報をテープに記録する際にはその前後にFile Markという区切り情報を記録することも規定されている。
【００３７】
これらの規定により、次のような方法でテープ上に記録されたすべてのメタ情報を列挙することができる。
【００３８】
1. テープの最後尾にかかれたメタ情報からバックポインタを順にたどる
2. テープの先頭からFile Markを探していき、File Markで囲まれたメタ情報を読み出ことを繰りかえす
【００３９】
実際にIBMやHP社のLTFSでは、上記の1や2の方法で、ユーザーにデータパーティションに書かれたすべてのメタ情報の一覧を表示し、その中からユーザーが選択することで、任意の世代にRollbackできるようなインターフェースを用意している。
【００４０】
図５は、 Rollback Generationの選択画面 (IBM LTFS for Windowsでの例)を示すものである。
【００４１】
これは、IBMのWindows用LTFSでのメタ情報選択画面を記すものである。
【００４２】
ここで、上記の1,2のどちらの方法でも、テープ上に記録されたメタ情報の数が多くなると、メタ情報の一覧を表示するのに時間がかかるようになる。
【００４３】
特に、突然の電源断に対応するために、定期的にメタ情報をデータパーティションに書き込むような設定にしていると、ユーザの想定以上にメタ情報が多くなり、実際にRollbackを実行する際に、つぎのような問題が発生することがある。
【００４４】
- 想定以上の時間がかかってしまう
- どの世代のメタ情報を指定してよいか判断するのが難しくなってしまう
【００４５】
特許文献１には、データパティションとメタ情報に関連した記載があるが、本願の発明の趣旨とは大きく異なっており、関連性は低い。
【００４６】
特許文献２には、テープ媒体に記録された情報を管理することが記載されているが、本願とは関連性は低い。
【００４７】
これら２件の特許文献はいずれも「メタ情報が持つバックポインタは常に直前のグループAのメタ情報を指すようにする」点については、記載も示唆もされていない。
【００４８】
特許文献３は、参考事例にすぎない。
【先行技術文献】
【特許文献】
【００４９】
【特許文献１】特開平１０−６９３７５
【特許文献２】特開平５−３０７４４３
【特許文献３】特表２００９−５２１７６３
【発明の概要】
【発明が解決しようとする課題】
【００５０】
本発明の目的は、以上の背景技術について説明してきた課題を解決することにある。
【課題を解決するための手段】
【００５１】
データパーティションに書き込むメタ情報を次の2つのグループ、A、Bにわけ、メタ情報を生成する際に、そのメタ情報が持つバックポインタは常に直前のグループAのメタ情報を指すようにする。
【００５２】
グループA
フォーマット時に先頭に書き込むメタ情報
アンマウント時に書き込むメタ情報
ユーザがFlushFileBuffers()のようなAPIで明示的に作成したメタ情報
【００５３】
つまり、「グループA」は、「ユーザの意図によって書き込まれるグループ」として、ユーザにとって都合のよいメタ情報をグループに設定してしまえばよい。
【００５４】
その応用によって、ユーザーが選択しやすくなれば、任意の世代にRollbackできるようなインターフェースを構築することができる。
【００５５】
この点からも、「ユーザの意図によって書き込まれるグループ」という用語の意義は広く解釈されて然るべきである。
【００５６】
グループB
LTFSがその設定により、定期的もしくはファイルのCloseのタイミングで自動的に書き込むメタ情報
【００５７】
つまり、「グループB」は、「ファイルシステム(LTFS)によって自動的に書き込まれるグループ」として、「ユーザの意図によって書き込まれるグループ」には当てはまらないものをグループにしてしまえばよい。
【００５８】
これらのグループは論理的なグループであるが、LTFS内部では、メタ情報を生成する際に、どちらのグループに入るかを判断することができる。
【発明の効果】
【００５９】
本発明に従えば、Rollbackでメタ情報の一覧を提供する際に、最新のものから順に、バックポインタをたどることで、ユーザーが意図して書き込まれたメタ情報(グループA)だけの一覧を提供することができる。
【００６０】
ユーザーが想定したよりも時間がかかったり、意図しないメタ情報があるために、どの世代のメタ情報を指定してRollbackして良いかが難しくなる、という課題を解決することができる。
【図面の簡単な説明】
【００６１】
【図１】図１は、テープカートリッジ上での情報の記録例を示す図である。
【図２】図２は、データパーティションにデータだけ書き込んだ例を示す図である。
【図３】図３は、メタ情報の世代番号とバックポインタを示す図である。
【図４】図４は、メタ情報前後のFile Markを示す図である。
【図５】図５は、 Rollback Generationの選択画面 (IBM LTFS for Windowsでの例)を示すものである。
【図６】図６は、本発明の構成図を示す。
【図７】図７は、メタ情報書き込み時の流れを示す。
【図８】図８は、本発明適用時のメタ情報の世代とバックポインタを示す図である。
【図９】図９は、LTFSはファイルシステムのインターフェースを通じて、テープへのアクセスを可能とする構成の例を示す例である。
【発明を実施するための形態】
【００６２】
図６は、本発明の構成図を示す。
【００６３】
この構成は現在のLTFSの構成と変わらない。
【００６４】
現在のLTFSでは、バックポインタ保持部には、データパーティションへの書き込みが完了した最新のメタ情報のテープ上の位置(ブロック番号)を保持している。
【００６５】
本発明では、このバックポインタ保持部には、データパーティションへの書き込みが完了したグループAのメタ情報のうち最新のものの、テープ上の位置(ブロック番号)を保持する。
【００６６】
図７は、メタ情報書き込み時の流れを示す。
【００６７】
メタ情報をデータパーティションに書き込む際の流れはこの図のようになる。
【００６８】
このようにメタ情報をグループ分けして、データパーティションに書き込むことで、メタ情報のバックポインタは常に、直前のグループAに属するメタ情報を指すようになる。
【００６９】
図８は、本発明適用時のメタ情報の世代とバックポインタを示す図である。
【００７０】
図８は、具体的に、5つのメタ情報が、グループA(メタ情報1、4、5)とグループB(メタ情報2、3)とに分かれているときの例を示す。
【００７１】
メタ情報2、3、4のバックポインタはメタ情報1を指し、バックポインタをたどることで、グループAに属しているメタ情報をたどることができる。
【００７２】
本発明をLTFSに適用することで、Rollbackでメタ情報の一覧を提供する際に、最新のものから順に、バックポインタをたどることで、ユーザが意図して書き込まれたメタ情報だけの一覧を提供することができる。
【００７３】
ユーザが想定したよりも時間がかかったり、意図しないメタ情報があるためにどの世代のメタ情報を指定してRollbackして良いかが難しくなる、という課題を解決することができる。
【００７４】
また、従来と同様に、記録されているすべてのメタ情報の一覧を取得したい場合には、テープの先頭からFile Markを探していき、File Markで囲まれたメタ情報を読み出ことを繰りかえすことで、取得することができる。
【００７５】
つまり、本発明をLTFSへ実装する際には、Rollbackでメタ情報の一覧を提供する際に、ユーザに、意図的に作成したメタ情報の一覧を提供するか、すべてのメタ情報の一覧を提供するかを選択させるようなユーザインターフェースを実装することもできる。
【００７６】
図９は、LTFSはファイルシステムのインターフェースを通じて、テープへのアクセスを可能とする構成の例を示す例である。
【００７７】
テープドライブ１０の典型的な内部構成の例を示すものである。
【００７８】
本発明は、テープメディアに限らない他のメディアに対しても、広く適用することができる。
【００７９】
また、特徴的な複数のメタ情報が区別して書き込まれている（記録されている）点で、メディア自体にも特徴が現れてくる。
【００８０】
本発明は、ハードウエア(H/W)とソフトウエア(S/W)との組合せとして協働するファイルシステムとしてだけでなく、ファイルシステムに方法を実施させるプログラムコードがコーディングされた、コンピュータプログラム(S/W)としても実装することができる。
【図１】
0006218668.tif 000002
【図２】
0006218668.tif 000003
【図３】
0006218668.tif 000004
【図４】
0006218668.tif 000005
【図５】
0006218668.tif 000006
【図６】
0006218668.tif 000007
【図７】
0006218668.tif 000008
【図８】
0006218668.tif 000009
【図９】
0006218668.tif 000010