(57)【要約】      （修正有）【課題】テープドライブ用ファイルシステムを介した編集によりフラグメントしたファイルの読み出し速度を改善する。【解決手段】ホストから変更されたファイルの読み出し要求を受取ると、メディアのインデックス・パーティションに保管されているインデックスを外部記憶装置にコピーし、メディアのインデックスを参照して、読み出し対象の前記ファイルの変更されないデータ部分（非変更データ部分）に対して前記ファイルのデータの変更データ部分（変更データ部分）が前記メディア上でフラグメント化しているかを確認する。フラグメント化されており、且つ変更データ部分が外部記憶装置に保管されていると、非変更データ部分をシーケンシャルにドライブのバッファから読み出し、変更データ部分を外部記憶装置から読み出し、更新されたファイルのデータとして順次、ホストに転送することにより読み出し速度を改善する。【選択図】図７
2015069290.tif 000002
【特許請求の範囲】
【請求項１】
ホストに接続されたテープドライブからなるシステムにおいて、メディアに書込まれているファイルの更新のための書込み方法であって、
（ａ）ホストから更新対象の前記ファイルの変更するデータ部分（変更データ部分）を受け取ることと、
（ｂ）前記メディアにシーケンシャルに保管された前記ファイルの変更しないデータ部分（非変更データ部分）を含む前記メディアのデータ終端位置に前記変更データ部分を書き込むことと、
（ｃ）前記ドライブのヘッドを、前記非変更データのメディア位置から前記変更データ部分のメディア位置に位置合わせするのに要する時間（位置合わせ時間）を算定することと、
（ｄ）前記位置合わせ時間が所定値以上である場合に、前記変更データ部分を外部記憶装置にコピーすることと、を含む書込み方法。
【請求項２】
前記メディアが、ファイルのインデックスを保管するインデック・パーティション（ＩＰ）と前記ファイルのデータを保管するデータ・パーティション（ＤＰ）とに区分され、
前記インデックスは、ＤＰおよびＩＰに保管された前記ファイルのデータ部分のメタデータを含み、
前記メタデータは、ＤＰおよびＩＰに保管された前記データ部分のそれぞれの位置情報（エクステント）を含むファイルシステムによる前記書込み方法であって、
（ｅ）ＩＰは更に前記変更データ部分を保管することと、
（ｆ）ＩＰに保管されたインデックスに含まれる前記ファイルのデータ部分の位置情報は、更に前記変更データ部分を保管している外部記憶装置の位置情報を含むこと、を特徴とする請求項１に記載の方法。
【請求項３】
前記（ｄ）の変更データ部分は、前記ドライブが前記メディアをロードすると同時に、前記ＩＰから前記外部記憶装置にコピーする、請求項２に記載の方法。
【請求項４】
前記外部記憶装置は、前記ホストまたは前記ドライブが管理するキャッシュである、請求項１または２に記載の方法。
【請求項５】
前記（ｃ）の位置合わせ時間は、前記ヘッドが前記変更データ部分の位置と前記非変更データ部分の位置との間を移動する往復時間に基づいて算定される、請求項１または２に記載の方法。
【請求項６】
前記（ｃ）の位置合わせ時間は、ＩＰに保管されたインデックスに含まれる前記変更データ部分および前記非変更データ部分の位置情報（エクステント）から計算される、請求項２に記載の方法。
【請求項７】
前記（ｄ）の所定値は、バックヒッチ所要時間の２倍であることを特徴とする、請求項１または２に記載の方法。
【請求項８】
請求項２に記載の方法により更新されたファイルを、ホストに接続されたテープドライブからなるシステムにおいて、テープメディア（メディア）から読み出す方法であって、
（ａ）ホストから変更されたファイルの読み出し要求を受取ることと、
（ｂ）テープドライブに前記メディアからロードされると同時に、前記メディアのＩＰに保管されているインデックスを外部記憶装置にコピーすることと、
（ｃ）前記メディアのインデックスを参照して、読み出し対象の前記ファイルの変更されないデータ部分（非変更データ部分）に対して前記ファイルのデータの変更データ部分（変更データ部分）が前記メディア上でフラグメント化しているかを確認することと、
（ｄ）前記変更データ部分が前記外部記憶装置に保管されていることを確認することと、
（ｅ）前記非変更データ部分をシーケンシャルに前記ドライブのバッファから読み出し、前記変更データ部分を外部記憶装置から読み出し、前記更新されたファイルのデータとして順次、ホストに転送することと、を含む前記ファイルの読み出す方法。
【請求項９】
前記（ｄ）において前記外部記憶装置に前記変更データ部分が保管されていない場合、ＩＰに保管されている前記変更データ部分を前記外部記憶装置にコピーすることと、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
ホストに接続されたテープドライブからなるシステムにおいて、メディアに書込まれているファイルの更新のため書込む前記システムであって、
（ａ）ホストから更新対象の前記ファイルの変更するデータ部分（変更データ部分）を受け取ることと、
（ｂ）前記メディアにシーケンシャルに保管された前記ファイルの変更しないデータ部分（非変更データ部分）を含む前記メディアのデータ終端位置に前記変更データ部分を書き込むことと、
（ｃ）前記ドライブのヘッドを、前記非変更データのメディア位置から前記変更データ部分のメディア位置に位置合わせするのに要する時間（位置合わせ時間）を算定することと、
（ｄ）前記位置合わせ時間が所定値以上である場合に、前記変更データ部分を外部記憶装置にコピーすることと、を実行するシステム。
【請求項１１】
ホストに接続されたテープドライブからなるシステムにおいて、メディアに書込まれているファイルを更新するための書込むプログラムであって、
（ａ）ホストから更新対象の前記ファイルの変更するデータ部分（変更データ部分）を受け取ることと、
（ｂ）前記メディアにシーケンシャルに保管された前記ファイルの変更しないデータ部分（非変更データ部分）を含む前記メディアのデータ終端位置に前記変更データ部分を書き込むことと、
（ｃ）前記ドライブのヘッドを、前記非変更データのメディア位置から前記変更データ部分のメディア位置に位置合わせするのに要する時間（位置合わせ時間）を算定することと、
（ｄ）前記位置合わせ時間が所定値以上である場合に、前記変更データ部分を外部記憶装置にコピーすることと、前記システムに実行させるプログラム。
【請求項１２】
請求項２に記載の方法により更新されたファイルを、ホストに接続されたテープドライブからなるシステムにおいて、テープメディア（メディア）から読み出す前記システムであって、
（ａ）ホストから変更されたファイルの読み出し要求を受取ることと、
（ｂ）テープドライブに前記メディアからロードされると同時に、前記メディアのＩＰに保管されているインデックスを外部記憶装置にコピーすることと、
（ｃ）前記メディアのインデックスを参照して、読み出し対象の前記ファイルの変更されないデータ部分（非変更データ部分）に対して前記ファイルのデータの変更データ部分（変更データ部分）が前記メディア上でフラグメント化しているかを確認することと、
（ｄ）前記変更データ部分が前記外部記憶装置に保管されていることを確認することと、
（ｅ）前記非変更データ部分をシーケンシャルに前記ドライブのバッファから読み出し、前記変更データ部分を外部記憶装置から読み出し、前記更新されたファイルのデータとして順次、ホストに転送することと、を実行するシステム。
【請求項１３】
請求項２に記載の方法により更新されたファイルを、ホストに接続されたテープドライブからなるシステムにおいて、テープメディア（メディア）から読み出すためのプログラムであって、
（ａ）ホストから変更されたファイルの読み出し要求を受取ることと、
（ｂ）テープドライブに前記メディアからロードされると同時に、前記メディアのＩＰに保管されているインデックスを外部記憶装置にコピーすることと、
（ｃ）前記メディアのインデックスを参照して、読み出し対象の前記ファイルの変更されないデータ部分（非変更データ部分）に対して前記ファイルのデータの変更データ部分（変更データ部分）が前記メディア上でフラグメント化しているかを確認することと、
（ｄ）前記変更データ部分が前記外部記憶装置に保管されていることを確認することと、
（ｅ）前記非変更データ部分をシーケンシャルに前記ドライブのバッファから読み出し、前記変更データ部分を外部記憶装置から読み出し、前記更新されたファイルのデータとして順次、ホストに転送することと、を前記システムに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープメディア上のデータをテープドライブ用のファイルシステム経由で読み書きする技術において、ファイルの読み出し所要時間の削減に関する。詳しくは、本発明は、テープテープドライブ用ファイルシステムを介した編集（変更）によりフラグメント（分散化）したファイルの読み出し速度を改善する方法に関する。
【背景技術】
【０００２】
ＬＴＦＳ(Linear TapeFile System)は、テープドライブ用ファイルシステムとして、第５世代ＬＴＯ（Linear TapeOpen）テープドライブ（ＬＴＯ５）、及び第４世代ＩＢＭエンタープライズテープドライブＴＳ１１４０と共に利用することができる。一般的にテープメディア（テープ、メディア）に書き込まれたデータを順に読み出す場合は、ＨＤＤと同程度の読み出しパフォーマンスを発揮する。例えばＬＴＯ５であれば１４０MB/sec の転送速度で読み出すことが可能である。
【０００３】
しかしながら、読み出すデータがテープメディア上に散在している場合、各データ片の位置合わせ (seek) に平均３０秒、最大１分以上のオーダーの時間が必要となるため、平均読み出し転送速度は著しく低下する。また、メディア上に分散したデータ部分への位置合わせのために、テープドライブはテープメディアを巻戻す、バックヒッチ（back hitch）と呼ばれる２〜５秒の処理を実行する。フラグメント化したファイルのデータの読み出しにはテープ巻き戻すバックヒッチ操作が必要になりパフォーマンスを低下させる要因になる。
【０００４】
特許文献１は、追記前データを追記したデータの側に書き直す(デフラグする)ことにより、データを追記した場合の読み出し所要時間を短縮する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１６４０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
シーケンシャルにファイルを保管するテープドライブにおいて、ファイルのデータがメディア上の複数の場所に分散して保管されている場合にファイルを読み出す所要時間が長くなるという課題が存在する。
【０００７】
従って、本発明の目的は、テープテープドライブ用ファイルシステムを介した編集によりフラグメント（分散化）したファイルの読み出し速度を改善する方法を提供することである。
【課題を解決するための手段】
【０００８】
かかる目的のもと、本発明は、ファイルをテープメディア（メディア）の長手方向にシーケンシャルに書き込む、ホストに接続されたテープドライブからなるシステムにおいて、メディアに書込まれているファイルの更新のための書込む方法である。この方法は、
（ａ）ホストから更新対象の前記ファイルの変更するデータ部分（変更データ部分）を受け取ることと、
（ｂ）前記メディアにシーケンシャルに保管された前記ファイルの変更しないデータ部分（非変更データ部分）を含む前記ファイルのデータ終端位置に前記変更データ部分を書き込むことと、
（ｃ）前記ドライブのヘッドを、更新しない前記ファイルのデータをシーケンシャルな位置合する場合に対して、前記変更データ部分のメディア位置に位置合わせするのに要する時間（位置合わせ時間）を算定することと、
（ｄ）前記位置合わせ時間が所定値以上である場合に、前記変更データ部分を外部記憶装置に保管することと、を含む。
【０００９】
また、この書込み方法は、メディアが、ファイルのインデックスを保管するインデック・パーティション（ＩＰ）と前記ファイルのデータを保管するデータ・パーティション（ＤＰ）とに区分され、前記インデックスは、ＤＰおよびＩＰに保管された前記ファイルのデータ部分のメタデータを含み、前記メタデータは、ＤＰおよびＩＰに保管された前記データ部分のそれぞれの位置情報（エクステント）を含むファイルシステム（ＬＴＦＳ）による書込み方法である。この書込み方法は、
（ｅ）ＩＰは更に前記変更データ部分を保管することと、
（ｆ）ＩＰに保管されたインデックスに含まれる前記ファイルのデータ部分の位置情報は、更に前記変更データ部分を保管している外部記憶装置の位置情報を含むこと、を特徴とする。
【００１０】
また、この書込み方法において、前記（ｄ）の変更データ部分は、前記ドライブが前記メディアをロードすると同時に、前記ＩＰから外部記憶装置にコピーすることを特徴とする
【００１１】
また、この書込み方法において、前記外部記憶装置は、ホストまたはテープドライブが管理するキャッシュ、例えば不揮発性メモリ（ＨＤＤ、ＳＤＤ）、揮発性メモリ（ＤＲＡＭ）などであることを特徴とする。
【００１２】
また、この書込み方法において、前記（ｃ）の位置合わせ時間は、前記ヘッドが前記変更データ部分の位置と前記非変更データ部分の位置との間を移動する往復時間に基づいて算定される。
【００１３】
また、この書込み方法において、前記（ｃ）の位置合わせ時間は、ＩＰに保管されたインデックスに含まれる前記変更データ部分および前記非変更データ部分の位置情報（エクステント）を参照して計算される。
【００１４】
また、この書込み方法において、前記（ｄ）の所定値は、バックヒッチ所要時間の２倍であることを特徴とする。
【００１５】
更に、かかる目的のもと、本発明は、ファイルのインデックスを保管するインデック・パーティション（ＩＰ）と前記ファイルのデータを保管するデータ・パーティション（ＤＰ）とに区分され、前記インデックスは、ＤＰおよびＩＰに保管された前記ファイルのデータ部分のメタデータを含み、前記メタデータは、ＤＰおよびＩＰに保管された前記データ部分のそれぞれの位置情報（エクステント）を含むテープメディア（メディア）から、上記の書込み方法により更新されたファイルを、ホストに接続されたテープドライブからなるシステムにおいて、読み出す方法である。この読み出し方法は、
（ａ）ホストから変更されたファイルの読み出し要求を受取ることと、
（ｂ）テープドライブに前記メディアからロードされると同時に、前記メディアのＩＰに保管されているインデックスを外部記憶装置にコピーすることと、
（ｃ）前記メディアのインデックスを参照して、読み出し対象の前記ファイルの変更されないデータ部分（非変更データ部分）に対して前記ファイルのデータの変更データ部分（変更データ部分）が前記メディア上でフラグメント化しているかを確認することと、
（ｄ）前記変更データ部分が前記外部記憶装置に保管されていることを確認することと、
（ｅ）前記非変更データ部分をシーケンシャルに前記ドライブのバッファから読み出し、前記変更データ部分を外部記憶装置から読み出し、前記更新されたファイルのデータとして順次、ホストに転送することと、を含む。
【００１６】
また、この読み出し方法は、前記（ｄ）において前記外部記憶装置に前記変更データ部分が保管されていない場合、ＩＰに保管されている前記変更データ部分を前記外部記憶装置にコピーすることを特徴とする。
【００１７】
更に、かかる目的のもと、本発明は、ファイルをテープメディア（メディア）の長手方向にシーケンシャルに書き込む、ホストに接続されたテープドライブからなるシステムにおいて、メディアに書込まれているファイルの更新のため書込む前記システムである。このシステムは、
（ａ）ホストから更新対象の前記ファイルの変更するデータ部分（変更データ部分）を受け取ることと、
（ｂ）前記メディアにシーケンシャルに保管された前記ファイルの変更しないデータ部分（非変更データ部分）を含む前記メディアのデータ終端位置に前記変更データ部分を書き込むことと、
（ｃ）前記ドライブのヘッドを、前記非変更データのメディア位置から前記変更データ部分のメディア位置に位置合わせするのに要する時間（位置合わせ時間）を算定することと、
（ｄ）前記位置合わせ時間が所定値以上である場合に、前記変更データ部分を外部記憶装置にコピーすることと、を実行する。
【００１８】
更に、かかる目的のもと、本発明は、ファイルをテープメディア（メディア）の長手方向にシーケンシャルに書き込む、ホストに接続されたテープドライブからなるシステムにおいて、メディアに書込まれているファイルを更新するための書込みプログラムである。このプログラムは、
（ａ）ホストから更新対象の前記ファイルの変更するデータ部分（変更データ部分）を受け取ることと、
（ｂ）前記メディアにシーケンシャルに保管された前記ファイルの変更しないデータ部分（非変更データ部分）を含む前記メディアのデータ終端位置に前記変更データ部分を書き込むことと、
（ｃ）前記ドライブのヘッドを、前記非変更データのメディア位置から前記変更データ部分のメディア位置に位置合わせするのに要する時間（位置合わせ時間）を算定することと、
（ｄ）前記位置合わせ時間が所定値以上である場合に、前記変更データ部分を外部記憶装置にコピーすることと、前記システムに実行させる。
【００１９】
更に、かかる目的のもと、本発明は、ファイルのインデックスを保管するインデック・パーティション（ＩＰ）と前記ファイルのデータを保管するデータ・パーティション（ＤＰ）とに区分され、前記インデックスは、ＤＰおよびＩＰに保管された前記ファイルのデータ部分のメタデータを含み、前記メタデータは、ＤＰおよびＩＰに保管された前記データ部分のそれぞれの位置情報（エクステント）を含むテープメディア（メディア）から、上記書込み方法により更新されたファイルを、ホストに接続されたテープドライブからなるシステムにおいて、読み出す前記システムである。このシステムは、
（ａ）ホストから変更されたファイルの読み出し要求を受取ることと、
（ｂ）テープドライブに前記メディアからロードされると同時に、前記メディアのＩＰに保管されているインデックスを外部記憶装置にコピーすることと、
（ｃ）前記メディアのインデックスを参照して、読み出し対象の前記ファイルの変更されないデータ部分（非変更データ部分）に対して前記ファイルのデータの変更データ部分（変更データ部分）が前記メディア上でフラグメント化しているかを確認することと、
（ｄ）前記変更データ部分が前記外部記憶装置に保管されていることを確認することと、
（ｅ）前記非変更データ部分をシーケンシャルに前記ドライブのバッファから読み出し、前記変更データ部分を外部記憶装置から読み出し、前記更新されたファイルのデータとして順次、ホストに転送することと、を実行する。
【００２０】
更に、かかる目的のもと、本発明は、ファイルのインデックスを保管するインデック・パーティション（ＩＰ）と前記ファイルのデータを保管するデータ・パーティション（ＤＰ）とに区分され、前記インデックスは、ＤＰおよびＩＰに保管された前記ファイルのデータ部分のメタデータを含み、前記メタデータは、ＤＰおよびＩＰに保管された前記データ部分のそれぞれの位置情報（エクステント）を含むテープメディア（メディア）から、上記書込み方法により更新されたファイルを、ホストに接続されたテープドライブからなるシステムにおいて、読み出すプログラムである。このプログラムは、
（ａ）ホストから変更されたファイルの読み出し要求を受取ることと、
（ｂ）テープドライブに前記メディアからロードされると同時に、前記メディアのＩＰに保管されているインデックスを外部記憶装置にコピーすることと、
（ｃ）前記メディアのインデックスを参照して、読み出し対象の前記ファイルの変更されないデータ部分（非変更データ部分）に対して前記ファイルのデータの変更データ部分（変更データ部分）が前記メディア上でフラグメント化しているかを確認することと、
（ｄ）前記変更データ部分が前記外部記憶装置に保管されていることを確認することと、
（ｅ）前記非変更データ部分をシーケンシャルに前記ドライブのバッファから読み出し、前記変更データ部分を外部記憶装置から読み出し、前記更新されたファイルのデータとして順次、ホストに転送することと、を前記システムに実行させる。
【発明の効果】
【００２１】
上述の本発明を適用する方法により、ＬＴＦＳを介して更新されたファイルについて読み出し速度の改善ができる。
【図面の簡単な説明】
【００２２】
【図１】ＬＴＦＳの２つのパーティションにより区分けされたテープを示す。
【図２】本発明が適用されるホストに接続されたテープドライブ（磁気テープ装置）を含むストレージシステムのハードウェア構成例を示す。
【図３】ＬＴＦＳのよりテープドライブがテープの長手方法を往復してデータ書込み、その後複数のファイルの部分的データを変更している。
【図４】ＬＴＦＳフォーマットでのメディアのインデックス・パーティションとデータ・パーティションの内容を示す。
【図５】サイズＬのＦｉｌｅ１を部分的な書き換えの場合のインデックス情報の変更内容を示す。
【図６】本発明のファイル読み出し時のフローチャートを示す。
【図７】本発明のファイル読み出し時のフローチャートを示す。
【発明を実施するための形態】
【００２３】
以下において、ホストに接続されたテープドライブを含むストレージシステムにおいてファイルを変更する書込み、および読み出す場合の実施の形態（実施例）を説明する。本発明は、ファイルシステムがファイルのテープメディア上の位置がフラグメント化していることを検知する。実施例は、フラグメント化したファイルの一部をキャッシュに格納することにより、テープメディア上にフラグメント化した状態で書き込まれたファイルの読み出し所要時間を削減する。
【００２４】
本発明は、アプリケーションがテープメディアに書き込まれたファイルを更新するにあたり、ファイルの一部のみ書き込む場合が対象である。つまり、あるファイルをテープメディア上の複数の領域に分断して書き込む場合、更新時に書き込む部分（変更データ部分）をテープ以外のキャッシュに格納する。ファイルの更新時に書き込む部分（変更データ部分）をＩＰに記録し、テープメディアのマウント時にテープドライブ用のファイルシステム（ＬＴＦＳ）がＩＰに記録されたファイルの断片を事前に読み出しメモリにコピーする。更に、ＬＴＦＳが、ディスクなど外部のキャッシュに保持しておくことにより、フラグメント化したファイルの読み出し所要時間を削減する。
【００２５】
図１は、ＬＴＦＳの２つのパーティションにより区分けされたテープを示す。
ＬＴＯ５テープドライブは、テープの長手方向に沿った書き込み領域のラップ（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）以降に順番に追記（append write）される。（Ａ）および（Ｂ）共に第1のファイルについてデータ部分をメディアから読み出す順番は１，２，３，４，５の順である。ファイル変更号後の（Ｂ）の場合に、第1のファイルの先頭からデータ部分を順番に読むためには、テープドライブの読み取りヘッドに対してテープ上では何度もファイルの断片に位置合わせをしなければならない。テープドライブ用のファイルシステム（ＬＴＦＳ）では、シーケンシャルにファイルを読み出す際に位置合わせを実施する必要があるため、読み出しに時間がかかるという特有の課題である。
【００３８】
図４は、ＬＴＦＳフォーマットのメディアでのファイルの追加および変更でのインデックス・パーティションとデータ・パーティションの内容変化を示す。
（Ａ）は、ＬＴＦＳフォーマットで初期化した直後のテープメディアに書き込まれるメタ情報を示す。
テープメディアを ＬＴＦＳ フォーマットで初期化した直後には、テープメディアにはＡ）に示す情報が書き込まれる。
・ＦＩＤ(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)のデータ部分を示す。Dはブロックサイズ（例えば５１２KB）である。ByteOffsetはM+600KBをDで割った余りであり、ブロック番号N+2でのオフセットを与える。
Ｆｉｌｅ１のインデックスは、データ部分な書換えにより、複数のエクステント（ｘ）→（ｙ）→（ｚ）にようにフラグメント（分散）化した配置情報を含む。ＬＴＦＳによるＦｉｌｅ１が編集されるとこのようにエクステントが分散し、変更されたＦｉｌｅ１へのシーケンシャルなアクセスができない。エクステント（ｘ）→（ｙ）→（ｚ）の位置合わせはテープの巻き戻し操作が発生させ、読み出しパフォーマンスを悪化させる課題を生じさせる。
【００４４】
読み出しパフォーマンスの悪化を定量化するために、「位置合わせ所要時間」を算定する。テープドライブのヘッドをメディアのデータ部分の「位置合わせの所要時間」は、ファイルの更新により、ファイルの変更されないデータ部分（非変更データ部分:none-change data part）の位置とファイルの変更部分（変更データ部分：change data part）の位置との間での移動の往復時間である。往復時間は、厳密には、非変更データ部分の末尾位置から変更データ部分の先頭位置までの位置合わせ所要時間と、その変更データ部分の末尾位置からその次の別の変更データ部分の先頭位置への位置合わせ所要時間との合計時間である。ファイルの非変更データ部分がメディアの長手方向に連続的に追記（append）されている位置に対して、変更データ部分はメディア上にフラグメント化（分散）している。余計な移動距離や方向反転によるバックヒッチなど、ヘッドを変更データ部分の位置に位置合わせさせるのに所与の時間を必要とする。これが、幾多の編集がされた場合に位置合わせ時間の過剰な経過により読み出しパフォーマンス向上に限界あることになる要因である。この課題を解決する実施例を以下で説明する。
【００４５】
図６は、本発明のファイル更新時のフローチャートを示す。
ファイルを読み出すために必要な位置合わせの総所要時間が十分小さい場合は従来通りに振る舞っても良いし、位置合わせが発生する場合は常にキャッシュを利用するようにしても良い。
●（６００）：ファイルシステム（ＬＴＦＳ）がファイル更新要求を受け取る。
ホスト３００のアプリケーションがメディア上のファイルに対して一部変更の要求をＬＴＦＳ介して行う。
●（６１０）：ＬＴＦＳは、ファイルがフラグメントするかを確認する。
テープドライブ６０は、更新対象のファイルが保管されたメディア４０をロードしている。
メディア４０からインデックスを読み出し、外部記憶装置（キャッシュ）８０にコピーする。外部記憶装置はテープドライブ内のメモリ（ＤＲＡＭ）などであってもよい。テープドライブがメディアをロードすると同時に、メディアのＩＰに保管されたインデックスは外部記憶装置にロードされている。ＬＴＦＳは、事前に外部記憶装置にコピーされたインデックスを参照して、ファイルのフラグメント化するかを確認する。具体的には、
インデックス内の複数のエクステントの分析により、図５の更新前のファイルのエクステント（Ａ）から書き換え後のエクステント（Ｂ）のように、ファイルのデータ部分が分散化しているかを確認できる。ファイルの書き換えにより、ファイルのデータ断片がメディア上に分散する場合（ＹＥＳ）、ステップ６３０の処理に移動する。
●（６２０）：ファイル読み出しに必要な総位置合わせ所要時間が一定以上であるかを確認する。
編集ファイルの読み出しのための「総位置合わせ所要時間」は、複数の変更データ部分のそれぞれの「位置合わせ所要時間」の合計値である。ここでは、編集ファイルについて変更データ部分が１つのみの場合を想定している。テープメディア上のファイルについて、非変更データ部分の位置から変更データ部分の位置への「位置合わせ所要時間」が、静的ないし動的に定められる閾値以上であるかどうかを判断する。例えば、位置合わせの所要時間がバックヒッチ所要時間（２〜５秒）の２倍（閾値）以上と算定できる場合は、選択的に変更データ部分をキャッシュなどにコピーする（ステップ６３０）。
●（６３０）：更新時に書き込む部分をキャッシュに格納する。
ＩＰに保管された変更データ部分は事前にキャッシュ８０にコピーする。インデックスには変更データ部分をコピーするキャッシュの位置情報をエクステントとして含ませることができる。
●（６４０）：ＬＴＦＳがテープドライブに対しテープメディアへファイルの書き込み要求を実行する。
従来通り、変更データ部分をメディアのＤＰのデータ終端（ＥＯＤ）に追記（append write）する。また、本発明ではメディアのＩＰに変更データ部分に保管する。テープドライブ６０がメディア４０をマウントすると同時に、ＩＰに保管されたインデックスおよび変更データ部分をキャッシュ８０にコピーする。
なお、メディア４０から変更データ部分をコピーする前にキャッシュ８０に格納した状態でもよい。インデックスには変更データ部分をコピーするキャッシュ８０の位置情報をエクステントとして含ませることができる。ファイル更新時にＩＰではなくキャッシュのＨＤＤに保存し、テープメディアのマウント時にＩＰからファイルの断片を事前に読み出す処理を省略することもできる。
【００４６】
図７は、本発明のファイル読み出し時のフローチャートを示す。
●（７００）：ＬＴＦＳがファイルの読み出し要求を受け取る。
ホスト３００のアプリケーションがメディアの一部変更の要求をＬＴＦＳ介してファイルシステム単位で行う。
●（７１０）：ファイルがフラグメント化しているかを確認する。
テープドライブ６０は、更新対象のファイルが保管されたメディア４０をロードしている。
メディアからインデックスを読み出し、キャッシュ８０にコピーする。外部記憶装置はテープドライブ内のメモリ（ＤＲＡＭ）などであってもよい。テープドライブがメディアをロードすると同時に、メディアのＩＰに保管されたインデックスは外部記憶装置にロードされている。ＬＴＦＳは、外部記憶装置に早くロードされたインデックスを参照して、ファイルのフラグメント化するかを確認する。具体的には、インデックスのエクステントを分析により、図５の更新前のファイルのエクステント（Ａ）から書き換え後のエクステント（Ｂ）のように、ファイルのデータ部分が分散化しているかを確認できる。ファイルの書き換えにより、ファイルのデータ断片がメディア上に分散する場合（ＹＥＳ）、ステップ７２０の処理に移動する。ファイルのデータ断片がメディア上にフラグメント（分散）化していない場合（ＮＯ）、ステップ７４０の処理に移動する。
●（７２０）：ファイルの一部がキャッシュにあるかを確認する。
ＬＴＦＳは、インデックスの参照により、ＩＰに保管されたインデックスおよび変更データ部分がキャッシュ８０に保管されているかを確認できる。キャッシュの変更データ部分の確認は、テープドライブはメディアのロード同時にＩＰに保管されたインデックスおよび変更データ部分をキャッシュにコピーした後でもよい。インデックスは変更データ部分をコピーするキャッシュの位置情報を指示するエクステントを含む。従って、インデックス（のエクステント）を参照することにより、キャッシュに変更データ部分が存在することを確認できる。キャッシュが変更データ部分を含んでいる場合（ＹＥＳ）、ステップ７３０の処理に移動する。キャッシュが変更データ部分を含んでいない場合（ＮＯ）、ステップ７４０の処理に移動する。
●（７３０）（７４０）：キャッシュに格納された部分はテープメディアではなくキャッシュから読み出す。
前記非変更データ部分はシーケンシャルにバッファを介して読み出す（ステップ７４０）。
前記変更データ部分は外部記憶装置から読み出す（７３０）。
ステップ７４０の処理では、非変更データ部分について、メディアのファイルの非変更データに対する位置合わせをシーケンシャルで読み出し可能としている。同時に、ステップ７３０では、編集されたファイルの変更データ部分について、メディア上のヘッドの位置合わせ移動を省略させているため、変更データ部分の位置合わせの所要時間を省略できる。具体的には、編集ファイルの非変更データ部分から変更データ部分への位置合わせに伴う所定の距離移動、および、バックヒッチに起因する方向反転、減速加速を無効化できる。ＬＴＦＳは、最終的にテープメディアからの非変更データ部分とキャッシュからの変更データ部分とを、インデックスを参照して全体として１つの編集されたファイルとして順次、アプリケーションに転送する。
【００４７】
以上より、上述の実施例の方法では、変更データ部分を外部のキャッシュに保管することにより、更新されたファイルの読み出しパフォーマンスを改善できる。なお、本発明を実施の形態（実施例）を用いて説明したが、本発明の範囲は上記実施例には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００４８】
４０…テープカートリッジ（メディア、テープ）、
６０…テープドライブ、
８０…外部記憶装置（例、ＨＤＤ）、キャッシュ、
１１０…通信Ｉ／Ｆ（インターフェース）、
１２０…バッファ（ドライブバッファ）、
１３０…記録チャネル、
１４０…読み書きヘッド、
１５０…制御部（コントローラ、読み書き制御を含む）、
１６０…位置決め部
１７０…モータドライバ、
１８０…モータ、
３００…ホスト（サーバ）
【図１】
2015069290.tif 000003
【図２】
2015069290.tif 000004
【図３】
2015069290.tif 000005
【図４】
2015069290.tif 000006
【図５】
2015069290.tif 000007
【図６】
2015069290.tif 000008
【図７】
2015069290.tif 000009