(57)【特許請求の範囲】
【請求項１】
ファイルシステムにおいて、データパーティションとインデックスパーティションを用いてテープ上へファイルを書き込むための方法であって、
複数のファイルを１つの結合ファイルとなるように連続してテープ上に書き込むステップと、
前記テープ上の前記結合ファイルの開始位置およびサイズを含む第１のインデックス情報を前記テープ上に書き込むステップと、
前記テープ上の前記結合ファイル中の前記複数のファイルの各々についての開始位置およびサイズを含む第２のインデックス情報を前記テープ上に書き込むステップと、を含み、
前記結合ファイル、前記第１のインデックス情報、及び前記第２のインデックス情報は、いずれも前記テープのデータパーティションに書きこまれ、
前記第１のインデックス情報は前記結合ファイルの後ろに書き込まれ、前記第２のインデックス情報は前記第１のインデックス情報の後ろに書き込まれる、方法。
【請求項２】
前記結合ファイルに含まれる前記複数のファイルの各々についてのパス名、オフセット位置、及びサイズを含むメタ情報を取得するステップと、
前記テープ上の前記結合ファイルの開始位置と前記メタ情報とを用いて前記第２のインデックス情報を作成するステップと、をさらに含む請求項１に記載の方法。
【請求項３】
テープドライブにおいて、データパーティションとインデックスパーティションを用いてテープ上へファイルを書き込むための方法であって、
複数のファイルを１つの結合ファイルとなるように連続してテープ上に書き込むステップと、
前記テープ上の前記結合ファイルの開始位置およびサイズを含む第１のインデックス情報を前記テープ上に書き込むステップと、
前記テープ上の前記結合ファイル中の前記複数のファイルの各々についての開始位置およびサイズを含む第２のインデックス情報を前記テープ上に書き込むステップと、を含み、
前記結合ファイル、前記第１のインデックス情報、及び前記第２のインデックス情報は、いずれも前記テープのデータパーティションに書きこまれ、
前記第１のインデックス情報は前記結合ファイルの後ろに書き込まれ、前記第２のインデックス情報は前記第１のインデックス情報の後ろに書き込まれる、方法。
【請求項４】
前記結合ファイルに含まれる前記複数のファイルの各々についてのパス名、オフセット位置、及びサイズを含むメタ情報を取得するステップをさらに含み、
前記第２のインデックス情報は、前記テープ上の前記結合ファイルの開始位置と前記メタ情報とを用いて作成される、請求項３に記載の方法。
【請求項５】
コンピュータと、当該コンピュータと通信可能に接続された少なくとも１つのテープドライブとを利用するファイルシステムにおいて、データパーティションとインデックスパーティションを用いてファイルの保管を行う方法であって、
前記コンピュータが、前記テープドライブで保管すべき複数のファイルの順番に従った、各々のファイルについてのパス情報、オフセット位置、及びサイズを含むメタ情報を取得するステップと
前記コンピュータが、前記複数のファイルを前記テープドライブへ転送するステップと、
前記テープドライブが、受信した前記複数のファイルを連続した１つの結合ファイルとしてテープ上に書き込むステップと、
前記テープドライブが、前記テープ上の前記結合ファイルの開始位置およびサイズを含む第１のインデックス情報を前記テープ上に書き込むステップと、
前記コンピュータが、前記メタ情報と前記テープ上の前記結合ファイルの開始位置とを用いて、前記テープ上の前記結合ファイル中の前記複数のファイルの各々についての開始位置およびサイズを含む第２のインデックス情報を作成するステップと、
前記テープドライブが、前記コンピュータから取得した前記第２のインデックス情報を前記テープ上に書き込むステップと、を含み、
前記結合ファイル、前記第１のインデックス情報、及び前記第２のインデックス情報は、いずれも前記テープのデータパーティションに書きこまれ、
前記第１のインデックス情報は前記結合ファイルの後ろに書き込まれ、前記第２のインデックス情報は前記第１のインデックス情報の後ろに書き込まれる、方法。
【請求項６】
前記メタ情報を取得するステップは、前記コンピュータが、前記テープドライブで保管すべき複数のファイルの前記順番を確定するステップを含む、請求項５に記載の方法。
【請求項７】
請求項１または２の各ステップを実行するためのコンピュータ・プログラム。
【請求項８】
請求項３または４の各ステップを実行するデープドライブ用の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ上へのファイル書き込み方法に関し、より具体的には、ファイルシステムにおいてテープ上へファイルを書き込むための方法に関する。
【背景技術】
【０００２】
テープドライブ上のデータをファイルシステムにおけるファイルとしてアクセスする仕組みとして、例えばＬＴＦＳ（Linear Tape File System）が実用化されている。ＬＴＦＳでは、ファイルを構成するデータ領域がテープ上のどこに存在するか等のメタ情報をインデックス情報として関連付けることにより、ファイルシステムを実現している。その仕組みにより、コンピュータ上で実行されるアプリケーション・プログラムから直接テープドライブ上のファイルへのアクセスができるようになっている。
【０００３】
データをテープに書き込む速度は、テープドライブの規格により決定される。例えばＬＴＯ規格の１つであるLTO5のテープドライブの場合は、データの転送速度は一般的なハードディスクよりも速く、非圧縮時の最高速度は約140MB/secであるが、そのほかにヘッドを移動する時間が加算される。LTFSの場合には、加えてファイルを構成するデータとともに上記したインデックス情報も保存することや、ファイルシステムではファイル単位ごとに”open”と”write”と”close” のAPIコール（システムコール）を発生させる必要があることから、更にデータの転送速度（データをテープに書き込む速度）が遅くなることが知られている。
【０００４】
この問題は、特にLTFSで小さいサイズのファイルを大量にテープ上に書き込む場合に顕著になることが指摘されている。例えば、LTO6のテープドライブでの検証では、ファイルサイズが512KBより小さくなるにつれてデータの転送速度（MB/sec）が低下していく傾向があることがわかっている。
【０００５】
この転送速度の低下は、ファイルの”open”と”close” の APIコールによるオーバーヘッド、あるいはファイルの追加によるインデックス情報の更新のオーバーヘッド等が主な原因として起こると考えられる。また、ひとつのファイルをクローズした後、次のファイルをオープンするまでのやり取りの間にもテープは走行し続けるために、書き込み速度を低速にして調整する必要もあり、その事も転送のパフォーマンスを低下させる原因となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2003-15941号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、上記した従来技術の問題を解決あるいは軽減しつつ、ファイルシステムにおけるテープ上へのデータ転送速度を向上させることであり、より具体的には、ファイルシステムにおいて、小さいサイズのファイルを大量にテープ上に書き込むような場合でも、上述のオーバーヘッドを軽減し高速に書き込みができる仕組み（方法）を提案することである。
【課題を解決するための手段】
【０００８】
本発明の一態様では、ファイルシステムにおいてテープ上へファイルを書き込むための方法を提供する。その方法では、
複数のファイルを１つの結合ファイルとなるように連続してテープ上に書き込むステップと、
テープ上の結合ファイルの開始位置およびサイズを含む第１のインデックス情報をテープ上に書き込むステップと、
テープ上の結合ファイル中の複数のファイルの各々についての開始位置およびサイズを含む第２のインデックス情報をテープ上に書き込むステップと、を含む。
【０００９】
本発明の一態様によれば、複数のファイルを１つの結合ファイルとなるように連続してテープ上に書き込むことにより、テープ上へのデータ書き込み時間を短くする、言い換えれば、書き込み時のオーバーヘッドを軽減することができる。さらに、本発明の一態様によれば、テープ上に記憶された、テープ上の結合ファイル中の複数のファイルの各々についての開始位置およびサイズを含む第２のインデックス情報により、結合ファイル中の個々のファイル単位でデータの読み出しをおこなうことができる。
【００１０】
本発明の他の一態様では、結合ファイルに含まれる複数のファイルの各々についてのパス名、オフセット位置、及びサイズを含むメタ情報を取得するステップと、テープ上の結合ファイルの開始位置とメタ情報とを用いて第２のインデックス情報を作成するステップと、をさらに含む。
【００１１】
本発明の他の一態様によれば、テープ上へのファイルの書き込みとは別個に（並行して）テープ上の結合ファイルの開始位置とメタ情報とを用いて第２のインデックス情報を作成することができる。その結果、ファイルシステムにおいてテープ上へファイルを書き込む際のパフォーマンス（処理時間等）をさらに向上させることが可能となる。
【００１２】
本発明の他の一態様では、結合ファイル、第１のインデックス情報、及び第２のインデックス情報は、いずれもテープのデータパーティションに書きこまれ、第１のインデックス情報は結合ファイルのデータ領域の後ろに書き込まれ、第２のインデックス情報は第１のインデックス情報の後ろに書き込まれる。
【００１３】
本発明の他の一態様によれば、ＬＴＯ規格のテープドライブにおけるパーティションの概念を利用して、本発明の方法を実行することができる。
【００１４】
本発明の他の一態様では、ファイルシステムにおいて利用可能なテープドライブにおいて読み書き可能なテープ上のデータ構造が提供される。そのデータ構造は、
テープのデータパーティションにおいて記憶された、連続した複数のファイルを含む結合ファイル領域と、
結合ファイル領域の後ろに記憶された、結合ファイルの開始位置およびサイズを含む第１のインデックス情報領域と、
第１のインデックス情報領域の後ろに記憶された、結合ファイル中の複数のファイルの各々についての開始位置およびサイズを含む第２のインデックス情報領域と、を含む。
【００１５】
本発明の他の一態様によれば、ＬＴＯ規格のテープドライブにおいて利用可能な形態でデータを保管したテープを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明のファイルシステムの構成例を示す図である。
【図２】本発明のテープドライブの構成例を示す図である。
【図３】本発明のホスト（サーバー）、ＰＣの構成例を示す図である。
【図４】従来のデータパーティションの構成例（データ構造）を示す図である。
【図５】本発明の方法のフローを示す図である。
【図６】本発明の方法において結合される複数のファイルの例を示す図である。
【図７】本発明で利用するデータパーティションへのファイル保管の実施例（データ構造）を示す図である。
【発明を実施するための形態】
【００１７】
図面を参照しながら本発明の実施の形態を説明する。図１は、本発明の方法が実施されるファイルシステムの構成例を示す図である。ファイルシステム１００は、ネットワーク３６を介して相互に通信可能なテープドライブ１０、ホスト（サーバー）３０、ＰＣ（端末）３２、３４からなる。図１では、テープドライブ１０とホスト（サーバー）３０は、それぞれ１つしか描かれていないが、これはあくまで例示であって、２以上のテープドライブ１０やホスト（サーバー）３０を含むことができることは言うまでもない。
【００１８】
ファイルシステム１００は、例えばＬＴＦＳとすることができる。ＬＴＦＳでは、ＨＤＤやＵＳＢメモリ、あるいはＣＤ−Ｒを始めとする他のリムーバブルな記録媒体同様に、テープカートリッジをテープドライブに挿入すれば、そのテープカートリッジ（テープ）に保存されたファイルに直接アクセスできる。テープドライブ上でファイルシステムを構築するためには、テープドライブがパーティション（データパーティション、インデックスパーティション）を有していることが必要である。このパーティションについてはさらに後述する。なお、本明細書における以下の説明では、各種データを含む“ファイル”を単にデータと表記し、両者を同様な意味で用いる場合がある（“データ”＝“ファイル”）。
【００１９】
図２は、本発明のテープドライブの構成例を示す図である。テープドライブ１０は、ホストインターフェイス（以下、「ホストＩ／Ｆ」という）１１と、バッファ１２と、チャネル１３と、ヘッド１４と、モータ１５とを含む。また、コントローラ１６と、ヘッド位置制御システム１７と、モータドライバ１８とを含む。更に、テープドライブ１０には、テープカートリッジ２０が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ２０も図示している。このテープカートリッジ２０は、リール２１、２２に巻かれたテープ２３を含む。テープ２３は、リール２１、２２の回転に伴い、リール２１からリール２２の方向へ、又は、リール２２からリール２１の方向へ、長手方向に移動する。なお、テープ２３としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【００２０】
また、テープカートリッジ２０は、カートリッジメモリ（ＣＭ）２４も含む。このＣＭ２４は、例えば、テープ２３上にどのようにデータが書かれたかの情報を記録する。そして、例えばＲＦインターフェイスを用いて非接触でテープ２３に書かれたデータのインデックスやテープ２３の使用状況等を調べることにより、データへの高速アクセスを可能としている。なお、図２では、このＲＦインターフェイスのようなＣＭ２４へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス（以下、「ＣＭＩ／Ｆ」という）１９として示している。
【００２１】
ここで、ホストＩ／Ｆ１１は、ホスト（サーバー）３０や他のＰＣ３２等との通信を行う。例えば、ホスト３０のＯＳから、テープ２３へのデータの書込みを指示するコマンド、テープ２３を目的の位置に移動させるコマンド、テープ２３からのデータの読出しを指示するコマンドを受け取る。上述したＬＴＦＳの例では、デスクトップＯＳなどから直接、テープドライブ内のデータを参照でき、ＨＤ内のファイルを扱うのと同様に、ダブルクリックでファイルを実行したり、ドラッグアンドドロップでコピーしたりできる。
【００２２】
バッファ１２は、テープ２３に書き込むべきデータやテープ２３から読み出されたデータを蓄積するメモリである。例えば、ＤＲＡＭによって構成される。また、バッファ１２は、複数のバッファセグメントからなり、各バッファセグメントが、テープ２３に対する読み書きの単位であるデータセットを格納している。
【００２３】
チャネル１３は、テープ２３に書き込むべきデータをヘッド１４に送ったり、テープ２３から読み出されたデータをヘッド１４から受け取ったりするために用いられる通信経路である。ヘッド１４は、テープ２３が長手方向に移動するとき、テープ２３に対して情報を書き込んだり、テープ２３から情報を読み出したりする。モータ１５は、リール２１、２２を回転させる。なお、図２では、１つの矩形でモータ１５を表しているが、モータ１５としては、リール２１、２２の各々に１つずつ、合計２個設けるのが好ましい。
【００２４】
一方、コントローラ１６は、テープドライブ１０の全体を制御する。例えば、ホストＩ／Ｆ１１で受け付けたコマンドに従って、データのテープ２３への書込みやテープ２３からの読出しを制御する。また、ヘッド位置制御システム１７やモータドライバ１８の制御も行う。ヘッド位置制御システム１７は、所望のラップを追跡するシステムである。ここで、ラップとは、テープ２３上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド１４を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム１７で行う。
【００２５】
モータドライバ１８は、モータ１５を駆動する。尚、上述したように、モータ１５を２個使用する場合であれば、モータドライバ１８も２個設けられる。ＣＭＩ／Ｆ１９は、例えば、ＲＦリーダライタにより実現され、ＣＭ２４への情報の書込みや、ＣＭ２４からの情報の読出しを行う。
【００２６】
図３は、図１のホスト（サーバー）３０、ＰＣ（端末）３２、３４の構成例を示すブロック図である。ホスト（サーバー）または端末は、バス330を介して相互に接続された演算処理装置（CPU）300、記憶手段310、及び各種I/F320を含む。
【００２７】
各種I/F320は、入力I/F、出力I/F、外部記憶I/F、外部通信I/F等を含む総称として用いられ、各I/Fが、それぞれ対応するタッチキー、タッチパネル、キーボード等の入力手段340、LCD等の表示手段350、無線あるいは有線の通信手段360、USB接続の半導体メモリやHDD等の外部記憶手段370等に接続する。記憶手段310は、RAM、ROM、Flash等の半導体メモリ、HDD等を含むことができる。
【００２８】
図４を参照しながら、本発明が実施されるＬＴＦＳにおけるパーティションおよびインデックスの構成について説明する。ＬＴＦＳでは、LTO5からサポートされるようになったパーティションと呼ばれるテープ上の論理的な区切りを使用している。パーティションには、インデックスパーティションとデータパーティションの２つがある。データパーティションは、ファイルを構成するデータそのものと、ファイルの書き込み完了後に一定の条件が整ったときに書き込むインデックス情報とで構成されている。インデックスパーティションには、最新のインデックス情報が格納されていて、カートリッジがロードされたときに読み込まれて、メディア上のどの位置にファイルを構成するデータが存在するかが判別できるようになっている。
【００２９】
図４にデータパーティションの構成例を示す。図４は、1つのファイルＡが、データ（data）と付随するインデックス（index）とから構成される。インデックス（index）の一部には、ファイルを構成する要素として、partition ID、start block、 byte offset、byte count、file offset等があり、これらをまとめてextentと呼んでいる。各要素の内容は下記に示す通りである。なお、以下の説明では、１つのファイルを構成するデータをデータあるいはデータ領域と呼ぶ。また、インデックス（index）に含まれるデータ領域の情報をインデックス情報またはメタ情報と呼ぶ。
【００３０】
（ａ）partition ID：データパーティション及び／又はインデックスパーティションに割り振られた論理的なIDである。複数のIDを持てることになっているが、現時点のＬＴＦＳではひとつのデータパーティションのみを使用している。従って、partition IDは常に一意である。
（ｂ）start block：ファイルを構成するデータの先頭部分が含まれているブロック番号を示す。テープ上のデータの位置を示すのにブロックという概念を使用しており、１つのブロックのサイズはデフォルトで512KBに設定されている。
（ｃ）byte offset：データの先頭位置がそのブロック上のどの位置から始まっているかを示すオフセットである。
（ｄ）byte count：そのデータを構成するバイト数を示している。
（ｅ）file offset：このextentを構成するデータ領域がファイル全体でどの位置にあるかを示す。
【００３１】
ＬＴＦＳのインデックス情報では、ファイルをテープ上に書き込むと、ファイル全体がひとつのextentとして書き込まれる。これによって、次に読み出すときに一度のアクセスで効率的に読み出すことができる。ここでは、図４に例示されるように、簡略化のためひとつしか存在しないpartition ID は表記せず、start blockとbyte offsetから求められるファイルの先頭位置をＸ１、データを構成するバイト数Ｌ１で表現する。その結果、ファイルＡのデータ領域は、インデックス情報として（Ｘ１、Ｌ１）と表すことができる。
【００３２】
図５を参照しながら本発明のテープ上へファイルを書き込むための方法のフローについて説明する。図５のフローは、図１のファイルシステム１００において、より具体的には、ホスト（サーバー）３０、ＰＣ（端末）３２、３４、及びテープドライブ１０で実行されるソフトウェアにより実施される。なお、以下の説明では、主にＬＴＦＳでの実施形態について説明するが、本発明の方法はこの実施形態に限定されるものではない。
【００３３】
ステップＳ１において、テープドライブ１０内のテープ上で保管すべき複数のファイル中のファイルの順番に従った、各々のファイルについてのパス情報、オフセット位置、及びサイズを含むメタ情報を取得する。ＬＴＳＦのコピーツール（Copy Tool）を用いた場合は例えば以下のように実施される。
（１）コピー元の全てのファイルをコピーする順番を確定する。テープからテープ（tape to tape）の場合には、コピー元のファイルのテープ上の位置から順番を確定するが、ＨＤＤからテープ（disk to tape）の場合には、順番は特に問わない。
（２）全てのファイルを結合した際の個々のファイルのパス名、先頭からのオフセット位置、及びファイルのサイズを全てのファイルについて取得して、LTFSに通知する。この通知により、LTFSは本発明の方法によってファイルの書き込みが始まることを認識する。
【００３４】
（３）通知されるパス情報、オフセット位置、及びサイズを含むメタ情報は、例えば以下のように構成される。ここでは、図６に示される５つのファイルFile A〜Eをコピーする場合についての例を示している。
File A、0、150KB：ここでは、ファイルパス、オフセット位置、ファイルサイズの順に並べている。
File B、150KB、150KB：同上
abc／File C、300KB、150KB：ファイル名をコピーするファイルの存在するフォルダからの相対パスで指定している。
abc／File D、450KB、200KB：同上
temp／File E、650KB、180KB：同上
【００３５】
図５に戻って、次のステップＳ２において、テープドライブ１０で保管すべき複数のファイルをテープドライブ１０へ転送する。ＬＴＳＦのコピーツール（Copy Tool）を用いた場合は、コピーする複数のファイルがコピー元から順に読み出されて、メモリ上のバッファにブロックサイズ単位で先頭から順に詰めて書き込まれ、それをブロックサイズ単位でコピー元からテープドライブ１０へ転送される。
【００３６】
ステップＳ３において、テープドライブ１０が、受信した複数のファイルからなる１つのファイル（結合ファイル）をテープ上に書き込む。ＬＴＳＦのコピーツール（Copy Tool）を用いた場合は例えば以下のように実施される。
（４）ファイルシステムのAPIでファイルを書き込むためにオープンする。
（５）オープンしたときの識別子（ファイルデスクリプタやFILEポインタなど）を使用して、ファイルを構成するデータをブロック単位で書き込む。ファイルサイズが小さいときには、一度に結合ファイルを一つのブロックにまとめて書ける場合もある。この操作は、通常のファイル書き込みの場合と同様である。
（６）そのファイルの続きがある場合は、上記（５）に進む。
（７）次に書き込むファイルがある場合は、そのファイルに対して上記（５）及び（６）の操作を繰り返す。
（８）ファイルをクローズする。
【００３７】
ステップＳ４において、テープドライブ１０が、ステップＳ３で書き込まれたテープ上の結合ファイルの開始位置およびファイルサイズを含む第１のインデックス情報をテープ上に書き込む。図７の（ａ）に、ステップＳ４において、図６に示される５つのファイルFile A〜Eが１つの結合ファイルとして書き込まれた後に、この第１のインデックス情報Index_1を書き込んだ場合の例を示している。図７の（ａ）の例では、第１のインデックス情報Index_1は、結合ファイルの開始位置（オフセット位置）として“0”、及びファイルサイズとして５つのファイルの合計値である”830KB”の情報を少なくとも含んでいる。第１のインデックス情報Index_1は、図に示すように、結合ファイルのデータ領域の後ろに書き込まれる。
【００３８】
ステップＳ５において、ステップＳ１で取得されたメタ情報と、ステップＳ３で得られる結合ファイルの開始位置とを用いて、テープ上の結合ファイル中の複数のファイルの各々についてのファイルパス、開始位置およびファイルサイズを含む第２のインデックス情報を作成する。第２のインデックス情報は、最初のファイル書き込みにより先頭ブロック番号が確定すると、テープドライブへの書き込みとは独立にステップＳ１で取得されたメタ情報から構築することができる。ステップＳ３のテープドライブへの書き込み中には、ホスト３０側のシステムの負荷は余りかかっていない。そこで、ステップＳ３の書き込みと並行してインデックスを作成することができる。ＬＴＳＦのコピーツール（Copy Tool）を用いた場合は例えば以下のように実施される。
【００３９】
（９）第２のインデックス情報の作成用に新規スレッドを作成する。元スレッドからの通知を受けられる状態にしておく。
（１０）テープ上に書き込みを行う元スレッドでは、内部にキャッシュを持っていて、アプリケーションから書き込まれたデータがキャッシュに保存され、ある条件に到達したら、まとめてキャッシュからメディアへの書き込みを行う。先頭のブロックの書き込みを行って、そのブロック位置が確定した段階で、上記（９）で起動したインデックスの作成用スレッドに先頭ブロック番号を通知する。
【００４０】
（１１）インデックス作成用スレッドが通知を受け取ったら、ステップＳ１で取得済みのメタ情報からディレクトリ情報の実体の作成（ここでは、実際のディレクトリ情報から独立している）を開始する。同時に、このディレクトリ情報からxml形式のインデックスファイルを作成する。作成したインデックスファイルは、メモリ３１０上、もしくは、ディスク３７０上に保管しておく。なお、この例では、スレッド間通信を行っているが、ステップＳ３で最初に書き込むファイルの先頭ブロックが確定した後にステップＳ５のスレッドを作成すれば、スレッド間通信をせずに実現することも可能である。
【００４１】
上記（１１）のxml形式のインデックスファイル（第２のインデックス情報）の作成は、ステップＳ１で通知されたメタ情報とステップＳ３での結合ファイルの第１のインデックス情報を元に、新たなインデックスとして作成される。例えば、ステップＳ３で作成したファイルがテープ上のxブロックのオフセットyから書き込まれているとする。そして、ステップＳ１でメタ情報として通知された、ファイルのオフセットaからbバイト分がファイルＡであるとする。この場合、ファイルＡ は、ブロックx+(y+a)/kの(y+a)%kバイト目から始まる、bバイトのファイルになる。ここで、kはLTFSがメディアに書き込む際のブロックサイズとする。また、%は剰余を表す。
【００４２】
具体的には例えば以下のようになる。
ブロックサイズが512KBであるときに、ブロック10のオフセット400KBからステップ３においてファイルが書かれていたとする。この時、図６に例示したFile Dがオフセット450KBから書かれた200KBのファイルだとする。このFile Dは、ブロック11のオフセット338KBから始まる200KBのファイルとして、すなわち、ブロック12のオフセット26KBまでのデータでファイルが構成されているとして、インデックスに記録される。
【００４３】
次のステップＳ６において、テープドライブ１０が、ステップＳ５で作成された第２のインデックス情報をテープ上に書き込む。図７の（ｂ）に、ステップＳ５において、テープ上に第１のインデックス情報Index_1を書き込んだ後に、第２のインデックス情報Index_2を書き込んだ場合の例を示している。第２のインデックス情報Index_2は、図に示すように、第１のインデックス情報Index_1の後ろに書き込まれる。なお、第１のインデックス情報を第２のインデックス情報で上書きしてもよい。
【００４４】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。さらに、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【符号の説明】
【００４５】
１０  テープドライブ
１１  ホストＩ／Ｆ
１２  バッファ
１３  チャネル
１４  ヘッド
１５  モータ
１６  コントローラ
１７  ヘッド位置制御システム
１８  モータドライバ
１９  カートリッジメモリＩ／Ｆ
２０  テープカートリッジ
２１、２２  リール
２３  テープ
２４  カートリッジメモリ（ＣＭ）
３０  サーバー（ホスト）
３２、３４  ＰＣ（端末）
３６  ネットワーク
１００  ファイルシステム（LTFS）
【図１】
0006391061.tif 000002
【図２】
0006391061.tif 000003
【図３】
0006391061.tif 000004
【図４】
0006391061.tif 000005
【図５】
0006391061.tif 000006
【図６】
0006391061.tif 000007
【図７】
0006391061.tif 000008