(57)【特許請求の範囲】
【請求項１】
ファイルシステムがテープ上のデータをロールバックするための方法であって、
テープドライブにマウントされた管理用テープからロールバックするデータ・ファイルに関するインデックス・ファイルを読み出すステップであって、前記管理用テープには、通常のテープ上に記録されたデータ・ファイルの開始位置および長さの情報と、当該通常のテープの識別情報とを含むインデックス・ファイルのみが記録されている、ステップと、
読み出された前記インデックス・ファイルの情報から特定される前記通常のテープがテープドライブにマウントされた後に、当該通常のテープから、前記インデックス・ファイルの情報によって開始位置が特定された前記ロールバックするデータ・ファイルを読み出すステップと、を含む方法。
【請求項２】
前記通常のテープ上に記録されたデータ・ファイルの更新毎に発生する前記インデックス・ファイルを所定のタイミングで前記管理用テープに追記するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記管理用テープは複数のパーティションを含み、前記パーティションの各々は前記通常のテープの１つに割り当てられ、前記インデックス・ファイルを前記管理用テープに追記するステップは、前記パーティションの対応する１つに前記インデックス・ファイルを追記するステップを含む、請求項２に記載の方法。
【請求項４】
前記管理用テープは、データパーティションとインデックスパーティションとを含み、前記インデックス・ファイルを前記管理用テープに追記するステップは、前記データパーティションに前記インデックス・ファイルを追記するステップを含む、請求項２に記載の方法。
【請求項５】
前記インデックス・ファイルを読み出すステップは、第２のテープドライブにマウントされた前記管理用テープから前記インデックス・ファイルを読み出すステップを含み、
前記ロールバックするデータ・ファイルを読み出すステップは、前記第２のテープドライブとは異なる第１のテープドライブにマウントされた前記通常のテープから前記ロールバックするデータ・ファイルを読み出すステップを含む、請求項１に記載の方法。
【請求項６】
管理用テープを用いてテープ上のデータをロールバックすることが可能なファイルシステムであって、
ホストと、
データ・ファイルが記録された通常のテープをマウントすることができる第１のテープドライブと、
前記通常のテープ上に記録されたデータ・ファイルの開始位置および長さの情報と、当該通常のテープの識別情報とを含むインデックス・ファイルのみが記録された管理用テープをマウントすることができる第２のテープドライブとを備え、
前記ホストは、
前記第２のテープドライブにマウントされた前記管理用テープからロールバックするデータ・ファイルに関する前記インデックス・ファイルを読み出し、当該インデックス・ファイルの情報から特定される前記通常のテープが前記第１のテープドライブにマウントされた後に、当該通常のテープから、前記インデックス・ファイルの情報によって開始位置が特定された前記ロールバックするデータ・ファイルを読み出すことを実行する、ファイルシステム。
【請求項７】
前記ホストは、前記通常のテープ上に記録されたデータ・ファイルの更新毎に発生する前記インデックス・ファイルを所定のタイミングで前記管理用テープに追記させる、請求項６に記載のファイルシステム。
【請求項８】
前記管理用テープは複数のパーティションを含み、前記パーティションの各々は前記通常のテープの１つ毎に割り当てられ、
前記ホストは、前記パーティションの対応する１つに前記インデックス・ファイルを追記させる、請求項７記載のファイルシステム。
【請求項９】
前記管理用テープは、データパーティションとインデックスパーティションとを含み、前記ホストは、前記データパーティションに前記インデックス・ファイルを追記させる、請求項７記載のファイルシステム。
【請求項１０】
請求項１〜５のいずれか１項の各ステップを前記ファイルシステムに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープドライブを含むファイルシステムに関し、より具体的には、そのファイルシステムにおいてテープ上のデータをロールバックする方法に関する。
【背景技術】
【０００２】
テープドライブ上のデータをファイルシステムにおけるファイルとしてアクセスする仕組みとして、例えばＬＴＦＳ（Linear Tape File System）が実用化されている。ＬＴＦＳでは、ファイルを構成するデータ領域がテープ上のどこに存在するか等のメタ情報をインデックスとして関連付けることにより、ファイルシステムを実現している。
【０００３】
ＬＴＦＳでは、テープの性質上、ファイルの編集時に、過去に書いたデータを上書きせずにそのデータの後方に編集されたデータを追記する仕組みになっている。これにより、過去に書いたファイルのデータを読み出すことができるというメリットがある。ＬＴＦＳでは、この過去のデータを読み出すことをロールバックと呼んでいる。
【０００４】
ＬＴＦＳで利用可能なＬＴＯ規格のテープドライブでは、テープを主にインデックスを書き込むインデックスパーティション（Index Partition）と、主にデータを書き込むデータパーティション（Data Partition）とに分けて使用している。データパーティションには、編集されたデータの追記の後ろに続けてそのデータのインデックスも追記される。追記されるインデックス、すなわち最新のインデックスには、１世代前及びそれ以前の（１つ前及びそれ以前の編集時の）データのメタ情報も含まれている。また、各インデックスには、１世代前のインデックスの位置を特定する情報（ポインタ）も含まれる。
【０００５】
ロールバックでは、データパーティション上の最新のインデックスから過去に書いた（数世代前の）ファイルのデータのメタ情報を読み出して、読み出すべきデータの位置等を特定した後にそのデータを読み出すことができる。ただし、過去のある世代のデータのファイルがファイルシステム上（論理的に）既に削除されている場合、その削除以降に編集されたデータのインデックスにはその削除されたデータのメタ情報が含まれないので、その削除以降に作成された最新のインデックスからその削除されたデータの位置などを直接的に特定することはできない。
【０００６】
その場合、最新のインデックスから１世代前のインデックスの位置を特定する情報（ポインタ）を読み出し、その１世代前のインデックスから２世代前のインデックスの位置を特定する情報（ポインタ）を読み出し、・・・というインデックスを遡る読み出し操作を繰り返して、削除前に記録されたインデックスからその削除されたデータの位置などを特定し、その削除されたデータのファイルを読み出すことになる。
【０００７】
しかし、その削除されたデータを読み出すためのロールバックには、時間がかかるという問題がある。その理由は、データパーティション上のインデックスは、各データの合間に書き込まれるため、目当ての世代のインデックスが見つかるまで、上述したようにインデックスを１つずつ遡って読み出していく必要があり、そのために大量のシーク（テープ及びヘッド移動等）が発生するからである。
【０００８】
また、テープドライブは一旦シークを始めると、その処理が完了するまで他の要求を受け付けることができない。このため、一旦ロールバックを開始してしまうと、途中でその処理をキャンセルすることができないという問題もある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開2005-018370号公報
【特許文献２】特開2006-190075号公報
【特許文献３】特開2012-009105号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
したがって、削除されたデータを読み出すためのロールバックにおいて、短時間でインデックスを遡って読み出すことができ、また、簡単にロールバックのキャンセルもできるような仕組みが求められている。本発明の目的は、そうした仕組みを提供可能なファイルシステム及びそのファイルシステムにおいてテープ上のデータをロールバックする方法を提供することである。
【課題を解決するための手段】
【００１１】
本発明の一態様では、ファイルシステムにおいてテープ上のデータをロールバックするための方法を提供する。その方法では、（ａ）通常のテープ上に記録されたデータ・ファイルの開始位置および長さの情報と、当該通常のテープの識別情報とを含むインデックス・ファイルのみが記録された管理用テープを準備するステップと、（ｂ）テープドライブにマウントされた管理用テープからロールバックするデータ・ファイルに関するインデックス・ファイルを読み出すステップと、（ｃ）読み出されたインデックス・ファイルの情報から特定される通常のテープがテープドライブにマウントされた後に、その通常のテープからロールバックするデータ・ファイルを読み出すステップと、を含む。
【００１２】
本発明の一態様によれば、インデックス・ファイルのみが記録された管理用テープからロールバックするデータ・ファイルの位置情報等を読み出すので、その読み出しを短時間で行うことができる結果、目標となるデータ・ファイルを迅速に読み出すことが可能となる。また、ロールバックの処理を途中でキャンセルする場合でも、データ・ファイルが記録された通常のテープには何ら処理要求を行っていないので、管理用テープでのシーク完了を待たずに、通常のテープに対する次の処理要求を出すことができる。
【００１３】
本発明の他の一態様では、管理用テープを用いてテープ上のデータをロールバックすることが可能なファイルシステムを提供する。そのファイルシステムは、（ａ）ホストと、（ｂ）データ・ファイルが記録された通常のテープをマウントすることができる第１のテープドライブと、（ｃ）通常のテープ上に記録されたデータ・ファイルの開始位置および長さの情報と、当該通常のテープの識別情報とを含むインデックス・ファイルのみが記録された管理用テープをマウントすることができる第２のテープドライブとを備える。
ホストは、第２のテープドライブにマウントされた管理用テープからロールバックするデータ・ファイルに関するインデックス・ファイルを読み出し、当該インデックス・ファイルの情報から特定される通常のテープが第１のテープドライブにマウントされた後に、当該通常のテープからロールバックするデータ・ファイルを読み出すことを実行する。
【００１４】
本発明の他の一態様によれば、通常のテープをマウントする第１のテープドライブとは異なる第２のテープドライブにおいて、インデックス・ファイルのみが記録された管理用テープからロールバックするデータ・ファイルの位置情報等を読み出すので、その読み出しを短時間で行うことができる結果、第１のテープドライブにおいて目標となるデータ・ファイルを迅速に読み出すことが可能となる。また、第２のテープドライブにおいてロールバックの処理を途中でキャンセルする場合でも、第１のテープドライブにおいてはデータ・ファイルが記録された通常のテープには何ら処理要求を行っていないので、第２のテープドライブにおける管理用テープでのシーク完了を待たずに、第１のテープドライブにおいて通常のテープに対する次の処理要求を出すことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明のファイルシステムの構成例を示す図である。
【図２】本発明のファイルシステムのホストの構成例を示す図である。
【図３】本発明のファイルシステムのテープドライブの構成例を示す図である。
【図４】従来の方法のロールバックを示すイメージ図である。
【図５】本発明の方法のフローを示す図である。
【図６】本発明の管理用テープの構成例を示す図である。
【図７】本発明の管理用テープの構成例を示す図である。
【図８】本発明の一実施形態の方法による効果を示すための図である。
【図９】本発明の一実施形態の方法による効果を示すための図である。
【発明を実施するための形態】
【００１６】
図面を参照しながら本発明の実施の形態を説明する。なお、以下の説明では、必要に応じて従来技術の内容と比較しながら本発明の実施の形態について説明する。図１は、本発明の方法が実施されるファイルシステムの構成例を示す図である。ファイルシステム１００は、ネットワーク３６を介して相互に通信可能なテープドライブ１０、ホスト（サーバー）３０、ＰＣ（端末）３２、３４からなる。図１では、テープドライブ１０とホスト（サーバー）３０は、それぞれ１つしか描かれていないが、これはあくまで例示であって、テープドライブ１０は例えばテープライブラリとして複数のテープドライブを含むことができ、ホスト（サーバー）３０も２以上のホストを含むことができる。
【００１７】
ファイルシステム１００は、例えばＬＴＦＳとすることができる。ＬＴＦＳでは、ＨＤＤやＵＳＢメモリ、あるいはＣＤ−Ｒを始めとする他のリムーバブルな記録媒体同様に、テープカートリッジをテープドライブに挿入すれば、そのテープカートリッジに保存されたファイルに直接アクセスできる。テープドライブ上でファイルシステムを構築するためには、例えばＬＴＯ規格（ＬＴＯ−５等）のテープドライブを使用することができる。そのＬＴＯ規格のテープドライブでは、使用するテープがパーティションを有していることが必要である。パーティションについては後述する。
【００１８】
図２は、図１のホスト（サーバー）３０の構成例を示すブロック図である。ホスト（サーバー）３０は、バス303を介して相互に接続された演算処理装置（CPU）301、記憶装置302、各種I/F304を含む。各種I/F304は、入力IF、出力I/F、外部記憶I/F、外部通信I/F等を含む総称として用いられ、各I/Fが、それぞれ対応するキーボード、マウス、通信アダプタ等の入出力手段305、CRT、LCD等の表示手段306、USB接続の半導体メモリやHDD等の外部記憶装置307等に接続する。記憶装置302は、RAM、ROM等の半導体メモリ、HDD等を含むことができる。本発明の機能（方法）は、ホスト（サーバー）３０が例えば記憶装置302、307に格納された所定のソフトウェア呼び出して実行することにより実施される。
【００１９】
図３は、本発明で使用可能なテープドライブの構成例を示す図である。テープドライブ１０は、ホストインターフェイス（以下、「ホストＩ／Ｆ」という）１１と、バッファ１２と、チャネル１３と、ヘッド１４と、モータ１５とを含む。また、コントローラ１６と、ヘッド位置制御システム１７と、モータドライバ１８とを含む。更に、テープドライブ１０には、テープカートリッジ２０が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ２０も図示している。このテープカートリッジ２０は、リール２１、２２に巻かれたテープ２３を含む。テープ２３は、リール２１、２２の回転に伴い、リール２１からリール２２の方向へ、又は、リール２２からリール２１の方向へ、長手方向に移動する。なお、テープ２３としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【００２０】
また、テープカートリッジ２０は、カートリッジメモリ（ＣＭ）２４も含む。このＣＭ２４は、例えば、テープ２３上にどのようにデータが書かれたかの情報を記録する。そして、例えばＲＦインターフェイスを用いて非接触でテープ２３に書かれたデータのインデックスやテープ２３の使用状況等を調べることにより、データへの高速アクセスを可能としている。なお、図２では、このＲＦインターフェイスのようなＣＭ２４へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス（以下、「ＣＭＩ／Ｆ」という）１９として示している。
【００２１】
ここで、ホストＩ／Ｆ１１は、ホスト（サーバー）３０や他のＰＣ３２等との通信を行う。例えば、ホスト３０のＯＳから、テープ２３へのデータの書込みを指示するコマンド、テープ２３を目的の位置に移動させるコマンド、テープ２３からのデータの読出しを指示するコマンドを受け取る。上述したＬＴＦＳの例では、デスクトップＯＳなどから直接、テープドライブ内のデータを参照でき、ＨＤ内のファイルを扱うのと同様に、ダブルクリックでファイルを実行したり、ドラッグアンドドロップでコピーしたりできる。
【００２２】
バッファ１２は、テープ２３に書き込むべきデータやテープ２３から読み出されたデータを蓄積するメモリである。例えば、ＤＲＡＭによって構成される。また、バッファ１２は、複数のバッファセグメントからなり、各バッファセグメントが、テープ２３に対する読み書きの単位であるデータセットを格納している。
【００２３】
チャネル１３は、テープ２３に書き込むべきデータをヘッド１４に送ったり、テープ２３から読み出されたデータをヘッド１４から受け取ったりするために用いられる通信経路である。ヘッド１４は、テープ２３が長手方向に移動するとき、テープ２３に対して情報を書き込んだり、テープ２３から情報を読み出したりする。モータ１５は、リール２１、２２を回転させる。なお、図３では、１つの矩形でモータ１５を表しているが、モータ１５としては、リール２１、２２の各々に１つずつ、合計２個設けるのが好ましい。
【００２４】
一方、コントローラ１６は、テープドライブ１０の全体を制御する。例えば、ホストＩ／Ｆ１１で受け付けたコマンドに従って、データのテープ２３への書込みやテープ２３からの読出しを制御する。また、ヘッド位置制御システム１７やモータドライバ１８の制御も行う。ヘッド位置制御システム１７は、所望のラップを追跡するシステムである。ここで、ラップとは、テープ２３上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド１４を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム１７で行う。
【００２５】
モータドライバ１８は、モータ１５を駆動する。尚、上述したように、モータ１５を２個使用する場合であれば、モータドライバ１８も２個設けられる。ＣＭＩ／Ｆ１９は、例えば、ＲＦリーダライタにより実現され、ＣＭ２４への情報の書込みや、ＣＭ２４からの情報の読出しを行う。
【００２６】
ここで本発明が実施されるＬＴＦＳにおけるパーティションおよびインデックスの構成について説明する。ＬＴＦＳでは、LTO5からサポートされるようになったパーティションと呼ばれるテープ上の論理的な区切りを使用している。ＬＴＦＳで使用するパーティションには、インデックスパーティションとデータパーティションの２つがある。データパーティションは、ファイルを構成するデータそのものと、ファイルの書き込み完了後に一定の条件が整ったときに書き込むインデックス情報とで構成されている。インデックスパーティションには、最新のインデックス情報が格納されていて、カートリッジがロードされたときに読み込まれて、メディア上のどの位置にファイルが存在するかが判別できるようになっている。
【００２７】
図４に従来からあるインデックスパーティションとデータパーティションの構成例を示す。図４では、同時に従来の方法によるロールバックによるインデックスの読み出し手順も示している。図４の例では、最初にインデックスパーティションでの最新のインデックス（gen#=3）を読み出して、データパーティションにおける最新のインデックス（gen#=3）の位置等を取得した後、その最新のインデックス（gen#=3）を読み出す（矢印１）。インデックス（gen#=3）から１世代前のインデックス（gen#=2）の位置等を取得した後、そのインデックス（gen#=2）を読み出す（矢印２）。同様にして、インデックス（gen#=2）から１世代前のインデックス（gen#=1）の位置等を取得した後、そのインデックス（gen#=1）を読み出す（矢印３）。
【００２８】
以上の流れによって、ロールバックにより目標となるgen#=1のデータ・ファイルの位置等の情報を取得し、そのファイルを読み出すことが可能となる。この場合、既に上述したように、データパーティション上のインデックスは、各データの合間に書き込まれるため、目当ての世代のインデックスが見つかるまで、上述したようにインデックスを１つずつ遡って読み出していく必要があり、そのために大量のシーク（テープ及びヘッド移動等）が発生してしまう。本発明は、以下に説明する方法によりこの大量のシークを回避して短時間で目当ての世代のインデックスを読み出すことを可能にする。
【００２９】
図５は、本発明の一実施形態の方法フローを示す図である。図５のフローは基本的な方法フローを示している。図５のフローは、例えば図１〜図３に示したファイルシステムの構成を用いて実施することができる。より具体的には、本発明の方法は、図１のホスト（サーバー）30が記憶装置302、307に格納された所定のソフトウェア呼び出して実行することにより実施される。
【００３０】
ステップＳ１において、管理用テープを準備する。ここで、管理用テープとは、通常のテープ上に記録されたデータ・ファイルの開始位置および長さの情報と、当該通常のテープの識別情報（Ｉｄ）とを含むインデックス・ファイルのみが記録されるテープを意味する。本発明では、通常のテープの他にこのインデックス・ファイルのみが記録される管理用テープを用いることに１つの特徴がある。管理用テープの詳細についてはさらに後述する。
【００３１】
ステップＳ２において、テープドライブにマウントされた管理用テープからロールバックするデータ・ファイルのメタ情報（位置等の情報）を含むインデックス・ファイルを読み出す。管理用テープがマウントされるテープドライブは、通常のテープ（ユーザテープ）がマウントされるテープドライブ（第１のテープドライブ）と同じ、あるいは異なるテープドライブ（第２のテープドライブ）を用いることができる。その際、管理用テープ用として専用のテープドライブを設定し、ホストからの要求に応じて直ちにインデックス・ファイルを読み出すことができるようにすることもできる。管理用テープからのインデックス・ファイルの読み出しについては、管理用テープの詳細の説明と共に後述する。
【００３２】
ステップＳ３において、管理用テープから読み出されたインデックス・ファイルの情報から特定される通常のテープがテープドライブ（第１のテープドライブ）にマウントされた後に、当該通常のテープからロールバックするデータ・ファイルを読み出す。この読み出し動作は通常のテープからのデータ・ファイルの読み出しと同様にして行われる。
【００３３】
図６と図７を参照しながら管理用テープの実施形態について説明する。図６と図７では、テープ上に既に複数のインデックス・ファイルが記録された状態を示している。図６の例では、管理用テープは複数のパーティション０〜Ｘに分けられる。パーティション０〜Ｘの各々は、通常のテープＡ〜Ｘの１つに割り当てられる。例えば、パーティション０はテープＡに、パーティション２はテープＣに、というように割り当てられる。
【００３４】
各テープのインデックス・ファイルは、パーティションの対応する１つに順番に追記されていく。例えば、パーティション１には、テープＢのインデックス・ファイルがその作成（更新）毎に、Ｂ−１、Ｂ−２、Ｂ−３、・・・と追記されていく。その追記は、所定のタイミング、例えばテープの同期（ｓｙｎｃ）あるいは取り出し（ｕｎｍｏｕｎｔ）処理のタイミングで行われる。
【００３５】
図６の例の場合、どのテープがどのパーティションに対応するかを記憶しておく必要があるが、これには例えば外部に対応表を保存する、あるいはテープ上に対応表を保存するためのパーティションを作ることにより対応することができる。この例では、各テープのインデックス・ファイルが連続して書き込まれるので、シーケンシャルにすべてのインデックス・ファイルを読み出すことができる。この時、従来方式とは異なり、図６の矢印Ｍ１に示すように、世代の古いインデックスから順に読み出されることになる。
【００３６】
従来方式ではユーザーデータの合間にインデックス・ファイルが書き込まれており、テープ上のインデックスの位置が不明なため、新しい世代のインデックスから古い世代のインデックスの場所を割り出す必要がある。しかし、図６の例では、テープにはインデックス・ファイルのみが書き込まれているため、インデックスの場所を割り出す必要はなく、古い世代のインデックスから読み出しても問題はない。この例ではテープを複数のパーティションに分割するため、容量は犠牲になる。テープの本数が少ない場合、または同期（ｓｙｎｃ）の頻度が高く、インデックス・ファイルを大量に書くためにシーク処理のコストが高い場合に適している。
【００３７】
図７の例では、管理用テープは、通常のＬＴＯ規格のテープと同様に、データパーティション（Data）とインデックスパーティション（Index）を含む。各テープのインデックス・ファイルを１つのデータとしてデータパーティション（Data）に書き込む。図７では、テープＡの１番目のインデックス・ファイルがＡ−１として、テープＡの２番目のインデックス・ファイルがＡ−２として、テープＢの１番目のインデックス・ファイルがＢ−１として、・・・というようにデータパーティション（Data）に追記されていく。その際、データパーティション（Data）上の各インデックスは、テープ名（Ｉｄ）、世代などが分かるようなファイル名にしておく。
【００３８】
そして、データパーティション（Data）に追記されるデータ（インデックス・ファイル）へのポインタ（位置情報）を示すインデックスをインデックスパーティション（Index）に書き込む。これにより、インデックスパーティション（Index）のインデックス読めば、ロールバック時に読み出したいインデックスの位置がわかるので、先頭もしくは最後のインデックスら順に読み出していかなくても、図７の矢印Ｍ２に示すように、目的の世代のインデックスに直接移動することが出来る。
【００３９】
図７の例では、すべてのテープのインデックス・ファイルが１つのデータパーティション（Data）に書き込まれるため、テープの容量を有効に使うことができる。その結果、この方式は大量にテープが存在し、図６のように管理用テープを本数分のパーティションに分けるのが難しい場合に有効である。一方で、各テープのインデックスを全て読み出したい場合には、シーケンシャルに読み出すことはできない。しかし、通常、インデックス・ファイルはユーザーデータに比べて小さいので、テープ上のインデックス・ファイル間の距離は通常のテープに比べて短くなるケースが多く、インデックス・ファイルを読み出すためのシーク時間も、通常のテープでの処理に比べて短くなると予想される。
【００４０】
図８と図９を参照しながら本発明の方法による効果について説明する。具体的には、従来方法と本発明の方法でのロールバックに必要な処理時間を比較する。図８と図９は、その処理時間の後述するシミュレーション結果である。横軸はインデックスの世代を示し、縦軸はロールバックに必要な処理時間を示す。インデックスの世代は、数字が大きくなるにつれて世代が新しくなることを示す。言い換えれば、数字が小さい程古い世代であることを意味する。
【００４１】
ここで、総インデックス数 = G (index 0〜index G-1) のテープにおいて、index X (0＜＝X＜G) に到達するまでの所要時間を計算する。ただし、この計算は大まかな数字を出すための概算であり、厳密にはテープの加減速などを考慮する必要がある。LTO5のテープドライブにおいて、シーク時のテープ走行速度は10m/secで、読み出し時の走行速度は8m/secである。また、LTO5テープの長手方向の長さは約800mである。
【００４２】
従来の方法では、１世代戻るごとに、以下の３つの処理を行う必要がある。
１．インデックス・ファイルへのシーク
２．読み出しアクション開始のためのバックヒッチ（巻き戻し）
３．データの読み出し
シークの距離を平均してテープの1/3の長さとすると、シーク時間は 800/3/10 秒となる。バックヒッチの時間は、経験上5秒とする。データの読み出しについては、インデックス・ファイルの大きさに依存するが、多くの場合LTOフォーマットでデータを読み書きする単位であるDS（データセット）1個に十分収まる大きさであるので、データの読み出しの時間はDS1個を読み出す時間とすることができる。DS1個の長さは約10cmなので、データの読み出しの時間は0.1/8 秒となる。よって、１世代巻き戻すために必要な時間は、
800/3/10+5+0.1/8≒31.68秒
となる。これを（G―X）回繰り返すので、ロールバックに必要な合計の処理時間Ｔ１は、
Ｔ１＝(G―X)＊31.68 秒
となる。
【００４３】
本発明の方法の例１（図６の方式）では、テープの先頭からインデックス・ファイルを読み出していく。よって必要な動作は、処理冒頭でのテープ先頭へのシークと、バックヒッチと、インデックス数分のDSの読み出しである。それぞれに必要な時間は前述の従来法の場合と同様の計算により、それぞれ800/3/10、5、0.1/8＊Xとなるので、ロールバックに必要な合計の処理時間Ｔ２は、
Ｔ２＝800/3/10+5+0.1/8＊X=31.67+0.0125X秒
となる。
【００４４】
本発明の方法の例２（図７の方式）では、インデックスパーティション（Index）に書かれているインデックスを読み出し、その情報から目的のインデックス・ファイルへ移動してデータを読み出す。つまり、シーク、バックヒッチ、及び読み出しをそれぞれ２回ずつ行うことになる。よって、必要な合計の処理時間Ｔ３は、
Ｔ３＝（800/3/10+5+0.1/8）＊2≒63.36 秒
となる。
【００４５】
図８は、総インデックス数G = １０とした時のロールバック時間を縦軸の処理時間としてプロットしたものである。ロールバック時間（処理時間）はシークの回数に大きく左右されるため、G―Xの値によっては従来の方法の方が短い時間でロールバックを完了できるケースもある。しかし、図８から、ほとんどの場合、例１及び例２のいずれにおいても本発明の方法の方が短い時間で処理を完了できることが確認できる。特に、本発明の方法では世代が古い場合に遡るほどより短時間でロールバックできることが分かる。
【００４６】
通常、ロールバック作業は以下の３つのステップで行われる。
１．テープ上の全インデックスの情報をリストアップする。
２．リストされた情報から、ロールバックしたい世代を選択する。
３．指定された世代までロールバックする。
前述の計算は、ステップ３の所要時間の概算である。実際にはこれにステップ１のリストアップの時間が必要になる。
【００４７】
従来の方法及び本発明の方法の例１（図６の方式）では、リストアップは全世代のロールバックと同様の作業になり、所要時間はそれぞれG＊31.68 秒、31.67＋0.0125X秒となる。本発明の方法の例２（図７の方式）では、リストアップする情報を全てインデックスパーティション（Index）のインデックスに保存しておけば、そのインデックスのみを読めば済むので、その所要時間はインデックスパーティション（Index）のインデックスへのシークとその読み出しの時間である31.68秒になる。上記の計算より、各方法のステップ１、ステップ３の処理時間の合計は、下記のようになる。
従来の方法  ： （2G-X）＊31.68秒
本発明の例１：  63.36＋0.025X秒
本発明の例２：  95.04秒
これをG=10の時のグラフにしたものが図９であり、ロールバック作業全体にかかる処理時間は、従来手法より本発明の方法の方が常に短くなることが分かる。特に、図８の場合と同様に、本発明の方法では世代が古い場合に遡るほどより短時間でロールバックできることが分かる。
【００４８】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。さらに、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【符号の説明】
【００４９】
１０  テープドライブ
１１  ホストＩ／Ｆ
１２  バッファ
１３  チャネル
１４  ヘッド
１５  モータ
１６  コントローラ
１７  ヘッド位置制御システム
１８  モータドライバ
１９  カートリッジメモリＩ／Ｆ
２０  テープカートリッジ
２１、２２  リール
２３  テープ
２４  カートリッジメモリ（ＣＭ）
３０  サーバー（ホスト）
３２、３４  ＰＣ
３６  ネットワーク
１００  ファイルシステム
【図１】
0005954751.tif 000002
【図２】
0005954751.tif 000003
【図３】
0005954751.tif 000004
【図４】
0005954751.tif 000005
【図５】
0005954751.tif 000006
【図６】
0005954751.tif 000007
【図７】
0005954751.tif 000008
【図８】
0005954751.tif 000009
【図９】
0005954751.tif 000010