(57)【要約】      （修正有）【課題】ＬＴＦＳメディアをＳＣＳＩコマンドにより更新されて無効になったデータを読み出せないように複製する。【解決手段】コピー元メディアのインデックスパーティションからファイルのインデックスを読み出し、該インデックス情報を解析して有効レコード番号リストを作成し、前記コピー元メディアのデータパーティションからシーケンシャルに連続するレコードを読み出し、前記有効レコード番号リストを参照して読み出したレコードを区別し、前記有効レコード番号リストに含まれないレコード番号に対応するレコードは無効データとみなし、意味のないデータに置換してコピー先メディアに書込み、前記有効レコード番号リストに含まれるレコード番号に対応するレコードは有効データとみなし、そのインデックス情報と併せてそのまま前記コピー先メディアに書込む。【選択図】図５
2015005229.tif 000002
【特許請求の範囲】
【請求項１】
テープドライブのためのファイルシステムによりメディアに書き込まれたファイルを複製する方法であって、
（ａ）前記ファイルシステムにより前記ファイルの変更または削除されて更新されたレコードを記録データ終端に追記されたコピー元メディア（元メディア）であって、
前記元メディアは最新の前記更新ファイルを有効データとしてメタデータを保管するインデックス・パーティション（ＩＰ）と、
各更新時点で過程において全ての、前記更新ファイルのデータ部分について変更または削除されて無効化にされたデータ（無効データ）及び該インデックスと、前記有効データおよび該インデックスを保管する保管するデータ・パーティション（ＤＰ）とに区分された、前記元メディアを準備することと、
（ｂ）前記元メディアの先頭からシーケンシャルに前記インデックスおよび前記ファイルの無効データおよび有効データを含むデータ部分を読み出すことと、
（ｃ）前記元メディアのＩＰから前記ファイルのメタデータを含むインデックスを読み出し、該インデックスの情報を解析して前記ファイルの有効データのレコード番号の範囲を指示する有効レコード番号リストを作成することと、
（ｄ）前記元メディアのＤＰからシーケンシャルに連続するレコードを読み出して、前記有効レコード番号リストを参照して、
前記有効レコード番号リストに含まれないレコード番号に対応するレコードを無効データとして、データを意味のないデータに置換して連続して読み出したデータをコピー先メディア（先メディア）に書込み、
前記有効レコード番号リストに含まれるレコード番号に対応するレコードを有効データとしてそのインデックス情報と併せて、そのまま前記先メディアに書込むこと、
を含むファイルを複製する方法。
【請求項２】
前記元メディアおよび前記先メディアは、テープドライブのためのファイルシステムにより読み書きを可能にするために、前記ＩＰ及びＤＰが長手方向に区分され、
前記インデックスは、前記ファイルのレコードに対応するブロックの位置およびサイズ情報として、ブロック番号、ブロック・オフセット、サイズ、及び前記ファイルでのレコードのオフセットを含むエクステントを保管し、
前記ＤＰは、前記インデックスより指示された位置の前記レコード及び前記インデックスを保管し、
前記ＤＰは、更に記録データ終端に変更により更新されたレコード部分を追記することを特徴とする、請求項１に記載の複製する方法。
【請求項３】
前記シーケンシャルの読み出し、及び、書込みはＳＣＳＩコマンドのレベルで実行される請求項２に記載の方法。
【請求項４】
前記元メディアから読み出しステップ（ｂ）は、前記元メディアの先頭からデータをシーケンシャルにレコード単位でカウントしながら読み出し、
前記有効レコード番号リストを作成するステップ（ｃ）は、前記ＩＰから読み出した前記インデックスに含まれる複数のエクステントを解析して、更新されて有効データに対応するレコードのレコード番号の範囲を前記有効レコード番号リストとして作成し、
前記読み出したレコードを先メディア書き出すステップ（ｄ）は、前記元メディアの先頭からの読み出しレコードのカウント番号を確保して、前記有効レコード番号リストを参照して、読み出したレコードについて無効データと有効データとを区別する、ことを特徴する請求項３に記載の複製する方法。
【請求項５】
前記読み出したレコードを先メディア書き出すステップ（ｄ）は、
前記読み出したレコードが無効データである場合は、前記読み出したレコード及び古いインデックスのデータをゼロに置き換えて前記先メディアに書込み、
前記読み出したレコードが有効レコードである場合は、前記読み出したレコードをそのままそのインデックスとともに前記先メディアに書込む、ことを特徴とする請求項４に記載の複製する方法。
【請求項６】
テープドライブのためのファイルシステムによりメディアに書き込まれたファイルを複製するプログラムであって、
（ａ）前記ファイルシステムにより前記ファイルの変更または削除されて更新されたレコードを記録データ終端に追記されたコピー元メディア（元メディア）であって、
前記元メディアは最新の前記更新ファイルを有効データとしてメタデータを保管するインデックス・パーティション（ＩＰ）と、
各更新時点で過程において全ての、前記更新ファイルのデータ部分について変更または削除されて無効化にされたデータ（無効データ）及び該インデックスと、前記有効データおよび該インデックスを保管する保管するデータ・パーティション（ＤＰ）とに区分された、前記元メディアを準備することと、
（ｂ）前記元メディアの先頭からシーケンシャルに前記インデックスおよび前記ファイルの無効データおよび有効データを含むデータ部分を読み出すことと、
（ｃ）前記元メディアのＩＰから前記ファイルのメタデータを含むインデックスを読み出し、該インデックスの情報を解析して前記ファイルの有効データのレコード番号の範囲を指示する有効レコード番号リストを作成することと、
（ｄ）前記元メディアのＤＰからシーケンシャルに連続するレコードを読み出して、前記有効レコード番号リストを参照して、
前記有効レコード番号リストに含まれないレコード番号に対応するレコードを無効データとして、データを意味のないデータに置換して連続して読み出したデータをコピー先メディア（先メディア）に書込み、
前記有効レコード番号リストに含まれるレコード番号に対応するレコードを有効データとしてそのインデックス情報と併せて、そのまま前記先メディアに書込むこと、
をテープドライブに実行させるファイルを複製するプログラム。
【請求項７】
テープドライブのためのファイルシステムによりメディアに書き込まれたファイルを複製するテープドライブであって、
（ａ）前記ファイルシステムにより前記ファイルの変更または削除されて更新されたレコードを記録データ終端に追記されたコピー元メディア（元メディア）であって、
前記元メディアは最新の前記更新ファイルを有効データとしてメタデータを保管するインデックス・パーティション（ＩＰ）と、
各更新時点で過程において全ての、前記更新ファイルのデータ部分について変更または削除されて無効化にされたデータ（無効データ）及び該インデックスと、前記有効データおよび該インデックスを保管する保管するデータ・パーティション（ＤＰ）とに区分された、前記元メディアを準備することと、
（ｂ）前記元メディアの先頭からシーケンシャルに前記インデックスおよび前記ファイルの無効データおよび有効データを含むデータ部分を読み出すことと、
（ｃ）前記元メディアのＩＰから前記ファイルのメタデータを含むインデックスを読み出し、該インデックスの情報を解析して前記ファイルの有効データのレコード番号の範囲を指示する有効レコード番号リストを作成することと、
（ｄ）前記元メディアのＤＰからシーケンシャルに連続するレコードを読み出して、前記有効レコード番号リストを参照して、
前記有効レコード番号リストに含まれないレコード番号に対応するレコードを無効データとして、データを意味のないデータに置換して連続して読み出したデータをコピー先メディア（先メディア）に書込み、
前記有効レコード番号リストに含まれるレコード番号に対応するレコードを有効データとしてそのインデックス情報と併せて、そのまま前記先メディアに書込むこと、
を含むファイルを複製するテープドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープカートリッジ（カートリッジ、テープ、メディア）のファイルのデータ内容を選択的に複製（duplication）する方法、プログラム及びテープドライブに関する。
【背景技術】
【０００２】
ＬＴＦＳ（Linear TapeFile System）はテープストレージ（テープライブラリ）でファイルシステムである。ＬＴＦＳは、第５世代以降のＬＴＯ（Linear Tape Open）規格テープドライブおよびＩＢＭ エンタープライズテープドライブＴＳ１１４０と共に利用することができる。ＬＴＦＳの利用により、アプリケーション側でライブラリを意識する必要がなく、従来よりも容易にテープストレージおよびテープドライブを使用することができる。
【０００３】
従来、テープカートリッジの複製（コピー）は、テープ上のデータを二重化して保全性を高める目的で行われてきた。一般的なテープストレージにおいて、テープ上のデータの複製を別のテープに作成する、という用途がある。ＬＴＦＳを使ってデータが記録されたカートリッジの場合、この複製方法に大きく二通りの複製が考えられる。
（１）  ファイルシステム（ＬＴＦＳ）を通した複製の場合。
コピー元メディアのデータにファイルシステムを通してアクセスする。現在アクセス可能な一連のデータ（有効データ）により構成されたファイルとして読み出し、コピー先メディアのテープにファイルとして書き出す。
ＬＴＦＳにより複製されたカートリッジ（ＬＴＦＳカートリッジ）では、ファイルシステムを通してアクセスできるデータしか読み出さないので、先のデータセキュリティ上の問題は存在しない。つまりテープ上に残されている不要なデータ（無効データ）はコピー先メディアには記録されないので、複製後コピー元メディアを廃棄や再フォーマットすれば、該当する不要なデータにアクセスする手段はなくなる。
（２）ファイルシステム（ＬＴＦＳ）を使用しない複製の場合。
コピー元メディアのデータをＳＣＳＩコマンドにおけるレコード単位で読み出す。読み出したデータをそのままコピー先メディアのテープに書き出す。
ＬＴＦＳではそのフォーマット特性より、有効データと共に削除や上書きにより不要になったデータ（無効データ）も、テープ上にはそのまま残されている。データのセキュリティの視点で考える場合、無効データがなんらかの手段を用いると読み出すことができる、という事実は好ましくない。
【０００４】
しかしながら（１）の方法の問題点として、（２）の方法と比較して時間がかかることが挙げられる。特に、上書きや削除が頻繁に行われた後のＬＴＦＳカートリッジは、一つのファイルを構成する変更データ部分の配置がテープ上に分散することになる。（１）の複製方法では、変更データ部分への位置合わせが頻繁に発生すると同時に、テープの連続読み書きの高速性を生かすことができないために、（１）の方法による複製操作は時間のかかるオペレーションとなる。
【０００５】
特許文献１及び２は、磁気テープのガーベージコレクションに関連し、無効データを検出することを開示している。しかし、これらの引用文献は、ファイルシステムで書き込まれ更新されたファイルを保存する磁気テープを早く複製することについて言及していない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１４６４０８号公報
【特許文献２】特開２００６−３１４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、ＬＴＦＳのテープカートリッジの有効なデータだけを複製するためにファイルシステムレベルでの複製を行う際に、複製のための時間が長くかかるという課題を解決する。ファイルシステム（ＬＴＦＳ）により書き込まれ更新されたファイルを保管するカートリッジ（ＬＴＦＳカートリッジ）について、インデックスを参照して有効データの情報を確保して、ＬＴＦＳを通して削除または上書きにより無効となったデータ（無効データ）を判別して、ＳＣＳＩコマンドのレベルでの順次（シーケンシャル）読み出しにおいて、有効データを選択的に、別カートリッジに複製する方法である。または、連続する全てのデータ（レコード）から無効データと有効データを区別して、無効レコードデータを意味のないデータ（例えば、ゼロデータ）に置き換える複製方法である。
【０００８】
従って、本発明は、ＬＴＦＳカートリッジについて、ＳＣＳＩコマンドにより更新されて無効になったデータを検出して選択的に複製する方法、プログラム、及び、テープストレージを提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的のもと、本発明は、テープドライブのためのファイルシステムによりメディア（テープカートリッジ）に書き込まれたファイルを複製する方法である。
この複製する方法は、（ａ）前記ファイルシステムにより前記ファイルの変更または削除されて更新されたレコードを記録データ終端に追記（append write）されたコピー元メディア（元メディア）であって、
前記元メディアは最新の前記更新ファイルを有効なデータ（有効データ）としてメタデータを保管するインデックス・パーティション（ＩＰ）と、
各更新時点で過程において全ての、前記更新ファイルのデータ部分について変更または削除されて無効化にされたデータ（無効データ）及び該インデックスと、前記有効データおよび該インデックスを保管する保管するデータ・パーティション（ＤＰ）とに区分された、前記元メディアを準備（マウント）することと、
（ｂ）前記元メディアの先頭からシーケンシャルに前記インデックスおよび前記ファイルの無効データおよび有効データを含むデータ部分を読み出すことと、
（ｃ）前記元メディアのＩＰから前記ファイルのメタデータを含むインデックスを読み出し、該インデックスの情報を解析して前記ファイルの有効データのレコード番号の範囲を指示するリスト（有効レコード番号リスト）を作成することと、
（ｄ）前記元メディアのＤＰからシーケンシャルに連続するレコードを読み出して、前記有効レコード番号リストを参照して、
前記有効レコード番号リストに含まれないレコード番号に対応するレコードを無効データとして、データを意味のないデータに置換して連続して読み出したデータをコピー先メディア（先メディア）に書込み、
前記有効レコード番号リストに含まれるレコード番号に対応するレコードを有効データとしてそのインデックス情報と併せて、そのまま前記先メディアに書込むこと、を含む。
【００１０】
また、この複製する方法において、
前記元メディアおよび前記先メディアは、テープドライブのためのファイルシステムにより読み書きを可能にするために、前記ＩＰ及びＤＰが長手方向に区分され、
前記インデックスは、前記ファイルのレコードに対応するブロックの位置およびサイズ情報として、ブロック番号、ブロック・オフセット、サイズ、及び前記ファイルでのレコードのオフセットを含むエクステントを保管し、
前記ＤＰは、前記インデックスより指示された位置の前記レコード及び前記インデックスを保管し、
前記ＤＰは、更に記録データ終端に変更により更新されたレコード部分を追記することを特徴とする
【００１１】
また、この複製する方法において、前記シーケンシャルの読み出し、及び、書込みはＳＣＳＩコマンドのレベルで実行されることを特徴とする。
【００１２】
また、この複製する方法において、前記元メディアから読み出しステップ（ｂ）は、前記元メディアの先頭からデータをシーケンシャルにレコード単位でカウントしながら読み出し、
前記有効レコード番号リストを作成するステップ（ｃ）は、前記ＩＰから読み出した前記インデックスに含まれる複数のエクステントを解析して、更新されて有効データに対応するレコードのレコード番号の範囲を前記有効レコード番号リストとして作成し、
前記読み出したレコードを先メディア書き出すステップ（ｄ）は、前記元メディアの先頭からの読み出しレコードのカウント番号を確保して、前記有効レコード番号リストを参照して、読み出したレコードについて無効データと有効データとを区別する、ことを特徴する。
【００１３】
また、この複製する方法において、
前記読み出したレコードを先メディア書き出すステップ（ｄ）は、
前記読み出したレコードが無効データである場合は、前記読み出したレコード及び古いインデックスのデータをゼロに置き換えて前記先メディアに書込み、
前記読み出したレコードが有効レコードである場合は、前記読み出したレコードをそのままそのインデックスとともに前記先メディアに書込む、ことを特徴とする。
【００１４】
また、かかる目的のもと、本発明は、テープドライブのためのファイルシステムによりメディア（テープカートリッジ）に書き込まれたファイルを複製するプログラム（ファイルシステム）である。
この複製するプログラムは、
（ａ）前記ファイルシステムにより前記ファイルの変更または削除されて更新されたレコードを記録データ終端に追記（append write）されたコピー元メディア（元メディア）であって、
前記元メディアは最新の前記更新ファイルを有効なデータ（有効データ）としてメタデータを保管するインデックス・パーティション（ＩＰ）と、
各更新時点で過程において全ての、前記更新ファイルのデータ部分について変更または削除されて無効化にされたデータ（無効データ）及び該インデックスと、前記有効データおよび該インデックスを保管する保管するデータ・パーティション（ＤＰ）とに区分された、前記元メディアを準備（マウント）することと、
（ｂ）前記元メディアの先頭からシーケンシャルに前記インデックスおよび前記ファイルの無効データおよび有効データを含むデータ部分を読み出すことと、
（ｃ）前記元メディアのＩＰから前記ファイルのメタデータを含むインデックスを読み出し、該インデックスの情報を解析して前記ファイルの有効データのレコード番号の範囲を指示するリスト（有効レコード番号リスト）を作成することと、
（ｄ）前記元メディアのＤＰからシーケンシャルに連続するレコードを読み出して、前記有効レコード番号リストを参照して、
前記有効レコード番号リストに含まれないレコード番号に対応するレコードを無効データとして、データを意味のないデータに置換して連続して読み出したデータをコピー先メディア（先メディア）に書込み、
前記有効レコード番号リストに含まれるレコード番号に対応するレコードを有効データとしてそのインデックス情報と併せて、そのまま前記先メディアに書込むこと、
をテープドライブに実行させる。
【００１５】
また、かかる目的のもと、本発明は、テープドライブのためのファイルシステムによりメディア（テープカートリッジ）に書き込まれたファイルを複製するテープドライブである。
この複製するテープドライブは、その読み書き制御が、
（ａ）前記ファイルシステムにより前記ファイルの変更または削除されて更新されたレコードを記録データ終端に追記（append write）されたコピー元メディア（元メディア）であって、
前記元メディアは最新の前記更新ファイルを有効なデータ（有効データ）としてメタデータを保管するインデックス・パーティション（ＩＰ）と、
各更新時点で過程において全ての、前記更新ファイルのデータ部分について変更または削除されて無効化にされたデータ（無効データ）及び該インデックスと、前記有効データおよび該インデックスを保管する保管するデータ・パーティション（ＤＰ）とに区分された、前記元メディアを準備（マウント）することと、
（ｂ）前記元メディアの先頭からシーケンシャルに前記インデックスおよび前記ファイルの無効データおよび有効データを含むデータ部分を読み出すことと、
（ｃ）前記元メディアのＩＰから前記ファイルのメタデータを含むインデックスを読み出し、該インデックスの情報を解析して前記ファイルの有効データのレコード番号の範囲を指示するリスト（有効レコード番号リスト）を作成することと、
（ｄ）前記元メディアのＤＰからシーケンシャルに連続するレコードを読み出して、前記有効レコード番号リストを参照して、
前記有効レコード番号リストに含まれないレコード番号に対応するレコードを無効データとして、データを意味のないデータに置換して連続して読み出したデータをコピー先メディア（先メディア）に書込み、
前記有効レコード番号リストに含まれるレコード番号に対応するレコードを有効データとしてそのインデックス情報と併せて、そのまま前記先メディアに書込むこと、実行する。
【発明の効果】
【００１６】
上述の本発明を適用するテープドライブでは、テープ上に残されていた無効データを読み出せないようにデータセキュリティを確保しながら、高速なテープの複製を実現する。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施例が適用されるテープドライブのハードウェア構成の一例を示す。
【図２】ＬＴＦＳのよりテープドライブがテープの長手方法を往復してデータ書込み、その後複数のファイルを書き換えている。
【図３】ＬＴＦＳフォーマットでのメディアのインデックス・パーティションとデータ・パーティションの内容を示す。
【図４】サイズＬのＦｉｌｅ１を部分的な書換えの場合のインデックス情報の変更内容を示す。
【図５】本発明のＬＴＦＳカートリッジを特殊コマンドで複製する処理フローを示す。
【発明を実施するための形態】
【００１８】
複製対象のデータを保管したＬＴＦＳカートリッジについて高速に複製する方法の実施の形態（実施例）を説明する。
本発明は、ＬＴＦＳカートリッジについて無効データをゼロデータへの置き換え、有効データをそのまま複製する方法である。ＬＴＦＳを使って記録されたデータを複製する際に、コピー元テープ上のデータをその先頭から順番に読み出し、読み出しデータの有効性を判定しながらコピー先テープに複製することを考える。例えば、ファイルシステムを使用せずＳＣＳＩコマンドのレコードレベルで複製を行う。その時、ＬＴＦＳを通してアクセスする際の削除あるいは上書きされた無効データをあらかじめ判別しておき、レコードレベルの複製時に、レコードデータを意味のないデータに置き換える。
【００１９】
図１は、本発明の実施例が適用されるテープドライブ（テープ記憶装置）のハードウェア構成の一例を示す。このテープ記憶装置１００は、通信Ｉ／Ｆ（インターファース）１１０と、バッファ１２０と、記録チャネル１３０と、読書きヘッド１４０と、制御部１５０と、位置決め部１６０と、モータドライバ１７０と、モータ１８０とを含む。
【００２０】
インターフェース１１０は、ネットワークを介してホスト装置３００との通信を行う。例えばインターフェース１１０は、ホスト装置３００から、メディア１０へのデータの書込みを指示する書込みコマンドを受信する。またインターフェース１１０は、ホスト装置３００から、メディア１０からのデータ読出しを指示する読出しコマンドを受信する。インターファース１１０は、書込みデータを圧縮し、圧縮した読み出しデータを解凍する機能を有し、実際のデータに対してメディアへの記憶容量を約２倍近く高めている。同じデータ、例えばゼロデータ続くと書込みデータの圧縮率が高まりメディアの記憶容量の節約となる。
【００２１】
テープドライブ１００は、ホスト３００から送られた複数のレコードで構築されるデータセット（ＤａｔａＳｅｔ；ＤＳと言う）単位でテープカートリッジ１０への読み書きを行う。ＤＳの典型的な大きさは４ＭＢである。ホスト３００は、ファイルシステムはファイルを指定して、また、ＳＣＳＩコマンドはレコードを指定して、テープドライブに書込み／読み出し要求（Ｗｒｉｔｅ／Ｒｅａｄ）を送る。ＤＳは複数のレコードで構成される。
【００２２】
各ＤＳは、データセットに関する管理情報を含む。ユーザデータはレコード単位で管理される。管理情報はデータセット情報テーブル（ＤＳＩＴ：Data Set Information Table）に含まれる。ＤＳＩＴは、そのＤＳに含まれるレコード数およびＦＭ数、更にはメディア先頭から書かれた累積レコード数および累積ＦＭ数、を含む。
【００２３】
バッファ１２０は、メディア１０に書込むべきデータ、また、メディアから読み出したデータを一時的に蓄積するメモリである。例えばバッファ１２０は、ＤＲＡＭ(Dynamic Random Access Memory）によって構成される。記録チャネル１３０は、バッファ１２０に蓄積されたデータをメディア１０に書き出すため、またはメディア１０から読み出されたデータをバッファ１２０に一時的に蓄積するために用いられる通信経路である。
【００２４】
読書きヘッド１４０は、データ読書き素子を有し、メディア１０へのデータの書込み及びメディア１０からのデータの読出しを行う。本実施形態に係る読書きヘッド１４０はまたサーボ読取り素子を有し、メディア１０に設けられたサーボトラックから信号を読み取る。位置決め部１６０は、メディア１０の短手方向（幅方向）に読書きヘッド１４０の移動を指示する。モータドライバ１７０は、モータ１８０を駆動する。
【００２５】
テープドライブ１００は、ホスト３００から受取ったコマンドに従って、データのテープへの書込みやテープからの読出しをする。テープドライブ１００は、バッファ、読み書きチャネル、ヘッド、モ−タ、テープを巻きつけるリールと、読み書き制御と、ヘッド位置制御システムと、モータドライバとを含む。テープドライブは、テープカートリッジを着脱可能に搭載する。テープは、リールの回転に伴い、長手方向に移動する。ヘッドは、テテープの長手方向に移動してデータを書き込んだり、テープからデータを読出したりする。また、テープカートリッジ１０はカートリッジメモリ（ＣＭ：Cartridge Memory）と呼ばれる非接触不揮発性メモリを備える。テープカートリッジ１０に搭載されたＣＭは、テープドライブ１００により非接触的に読み書きされる。ＣＭはカートリッジ属性を保管する。テープドライブは、読出し及び書込み時に、ＣＭからカートリッジ属性を取り出して最適な読み書きができるようにする。
【００２６】
制御部１５０は、テープ記録装置１００の全体の制御を行う。すなわち、制御部１５０は、インターフェースで受信したコマンドに従って、データのメディア１０への書込み及びメディア１０からのデータの読出しを制御する。また、制御部１５０は、読取られたサーボドラックの信号に従って位置決め部１６０を制御する。更に制御部１５０は、位置決め部１６０及びモータドライバ１７０を介してモータの動作を制御する。なお、モータドライバ１７０は制御部１５０に直接接続されてもよい。
【００２７】
本発明では、ＳＣＳＩコマンドのレベルでテープメディアのシーケンシャルにデータを読み出して複製する特殊コマンド（ツール、プログラム）を提供する。特殊ツールは、インデックスからファイルの部分的な削除や変更により不要になったデータ部分（無効データ）を区別しながら、ファイルにとって現在有効なデータを別メディアに複製する。
【００２８】
図２は、ＬＴＦＳのよりテープドライブがテープの長手方法を往復してデータ書込み、その後複数のファイルの部分的データを変更している。各ファイルは模様分けして区別されている。上図（Ａ）は、初めは各ファイル（第１、第２、第３、第４）連続して記録されていることを示す。下図（Ｂ）は、第1のファイルのデータ部分１，３，５について上書や削除されて変更され、２，４は変更さていない。第２のファイルのデータ部分６が変更されている。第４のファイルのデータ部分７が変更されている。変更された元のデータ部分は無効データとしてメディア上にそのまま残る。第1のファイルの変更後のデータ部分１，３，５についての更新された新しいデータ部分はファイルのＥＯＤ(End of Data）以降に順番に追記（append write）される。（Ａ）（Ｂ）共に第1のファイルについてデータ部分をメディアから読み出す順番は１，２，３，４，５の順である。ファイル変更号後の（Ｂ）の場合に、第1のファイルの先頭からデータ部分を順番に読むためには、テープ上ではなんども位置あわせを行わなければならない。
【００２９】
例えば、ＳＣＳＩコマンドでの読み出しはテープに記録されているデータを先頭から順番に読み出す方法なので、テープドライブに有利な連続的な読み書きである。テープドライブは順番（シーケンシャル）に連続するレコードを読み出せればその読み出しパフォーマンスを充分に発揮できる。しかし、ＳＣＳＩコマンドレベルにおいて読み出したデータをそのまま書き込む場合無効データもそのまま複製され、データセキュリティ上の問題が残る。
【００３０】
図３は、ＬＴＦＳフォーマットでのメディアのインデックス・パーティションとデータ・パーティションの内容を示す。
ＬＴＦＳでは、テープメディア上のファイルを読み書きするにあたり、事前にテープメディアをＬＴＦＳ フォーマットで初期化する必要がある。テープメディアをＬＴＦＳで利用する場合、テープメディアをインデックス・パーティション（ＩＰ：Index Partition ）およびデータ・パーティション（ＤＰ：Data Partition ）と呼ばれる２つのパーティションに分割して利用する。ユーザがＬＴＦＳを利用してテープメディアに書き込むと、テープメディアではファイル本体の他、インデックス・ファイル（単に「インデックス」とも言う）と呼ばれるメタ情報をテープメディアに書き込む。インデックスは、ファイル名やファイル作成日などの情報を持つ。ＩＰには、主に最新のインデックスが書き込まれる。ＤＰには、ファイルの本体、及び、インデックスの履歴が書き込まれる。
【００３１】
ＬＴＦＳ を用いてテープメディア上のファイルを読み書きする場合、レコードと呼ばれる単位でデータの読み書きを行う。レコードは、レコードが記録されるパーティション毎にパーティションの先頭から何番目のレコードであるという番号で管理され、各ファイルとレコードの対応(ファイルＡはレコード#N〜N+α）で構成されるといった情報)もインデックスに格納されている。
【００３２】
一般的にテープメディアに書き込まれたデータを読み出す場合、データがテープメディア上に書き込まれた順に読み出す場合は、例えば第５世代ＬＴＯテープドライブ (ＬＴＯ５) であれば１４０MB/secの転送速度で読み出すことが可能である。一方、読み出すデータがテープメディア上に散在している場合、各データ片の位置合わせ(seek)に平均３０秒、最大 １分以上といったオーダーの時間が必要となるため、平均読み出し転送速度は著しく低下する。
【００３３】
１本のテープカートリッジのメディアがインデックス・パーティションとデータ・パーティションに区分されていることを示す。この図は、ＬＴＯ５に準拠したメディアの構成例を示す。テープの先頭部（ＢＯＴ：Beginning of Tape）から終端部（ＥＯＴ：End of tape）に渡ってインデックス・パーティション（ＩＰ）とデータ・パーティション（ＤＰ）との２つに区分される例を示す。メディアは、データを記録するトラックに沿って、先頭部のインデックス・パーティションと、テープ記憶域の大部分を占めるデータ・パーティションとに区分される。様々な仕様に応じてパーティション数は３以上の任意の数に変更することは可能である。
【００３４】
図３の（Ａ）は、ＬＴＦＳフォーマットで初期化した直後のテープメディアに書き込まれる情報を示す。
テープメディアを ＬＴＦＳ フォーマットで初期化した直後には、テープメディアには図２（Ａ）に示す情報が書き込まれる。
・ＦＩＤ(Format Identification Data set)は、テープドライブがテープメディアを初期化する際、テープメディアの先頭に書き込まれる特殊なデータであり、テープメディア上のパーティションの数や各パーティションの容量などの情報を持つ。
・ＶＯＬ１Ｌａｂｅｌは、ANSI Label とも呼ばれるもので、文字通り ANSI で規定された一般的なフォーマットのラベルである。
・ＬＴＦＳＬａｂｅｌは、ＬＴＦＳ フォーマットで規定されたラベルで、このテープメディアがＬＴＦＳフォーマットのどのバージョンに準拠してフォーマットされたかといった情報を保持するラベルである。ここでメディアに記録されるレコードのサイズを指示する。レコードサイズはブロック・サイズ（block size）とも言う）。ファイルの終端がレコード・サイズ（例えば、５１２ＫＢ）に満たない場合でもレコードサイズを確保する。
・ＦＭ(Filemark)とは、テープメディアで一般的に利用される、いわば本のしおりのようなものであり、データの頭出し(seek)を行う際に利用される。Index #0とは、フォーマット時に書き込まれるインデックスであり、この段階ではファイル自体は一つも存在しないためファイル固有の情報は持たないもののテープメディアのボリューム名などの情報を保持するため書き込まれる。
【００３５】
図３の（Ｂ）ＬＴＦＳフォーマットで初期化した後にファイルを書き込んだ場合にテープメディアに書き込まれる情報を示す。
ＬＴＦＳフォーマットで初期化後、ファイル（File1）を書き込むと、テープメディア上に書き込まれたデータは（Ｂ）のようになる。太線で囲まれた部分が追加/更新されたデータである。Index#1はＦｉｌｅ１の情報を持つ。ＩＰは最新のインデックスのみ保持する一方、ＤＰはインデックスの履歴を保持する。インデックスを更新するタイミングはファイルシステムの実装にまかされており、例えば一定時間毎に更新したり、テープドライブからテープメディアを取り出す時のみ更新したりしている。更に使い続ける場合も、ＩＰに置かれるインデックスは常に最新のインデックスのみが置かれ、ＤＰは既存のインデックスを上書きすることなく、ファイルおよびインデックスを追記していく。
【００３６】
図３の（Ｃ）は、（Ｂ）の状態の後、更にファイル（Ｆｉｌｅ2）を書き込んだ場合のテープメディアに書き込まれる情報を示す。
ディレクトリをテープメディアに書き込んだ後、他のファイルないしディレクトリをテープメディア上に書き込んだ後で、最初に書き込んだディレクトリにファイルを追加すると、に格納されるＦｉｌｅ１,Ｆｉｌｅ２が連続してテープメディアに保管される。
【００３７】
図３の（Ｄ）は、（Ｂ）の状態の後、Ｆｉｌｅ1の末尾に文字情報（Ｆｉｌｅ1-2）を追加してＦｉｌｅ1を更新した後、テープメディア上に書き込まれる情報を示す。
文書作成アプリケーションがメディア上に書き込まれたファイルを更新した後、１つのフィアル（Ｆｉｌｅ１）がFile1-1及びFile 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を追記（appendwrite）する。
エクステント（ｘ）は、StartBlock=NのByteCount=Mまでのデータ（レコード）を指示す。ブロックNのオフセットMから600KBのデータは変更される。
エクステント（ｚ）は、StartBlock=N+2のByteOffset=(M+600K)modDからByteCount=L-(M+600)のデータ部分を示す。Dはブロックサイズ（例えば５１２KB）である。ByteOffsetはM+600KBをDで割った余りであり、ブロック番号N+2でのオフセットを与える。
Ｆｉｌｅ１のインデックスは、データ部分な書換えにより、複数のエクステント（ｘ）→（ｙ）→（ｚ）にように分散化した配置情報を含む。ＬＴＦＳによる複数回変更によりこのようにエクステントが分散されたＦｉｌｅ１は、シーケンシャルアクセスができない。エクステント（ｘ）→（ｙ）→（ｚ）のアクセスはテープの巻き戻し操作が発生して、アクセスパフォーマンスに悪化する。
【００４０】
ＬＴＦＳフォーマットでの有効なファイルとレコード番号の関係について説明する。
ＬＴＦＳは、現在有効なファイルのリストとともに、そのファイルを構成するデータのレコード番号が記録されている。具体的には、ファイルを構成するデータの先頭レコード番号とそこから連続するデータの長さの記録であり、一つのファイルは複数のレコードのかたまり（先頭レコード番号と長さ）から構成される場合がある。
【００４１】
ＬＴＦＳはテープ上の２つのパーティションを利用しており、各パーティションの先頭には、ＶＯＬラベル（ＶＯＬ１ Ｌａｂｅｌ）とＬＴＦＳラベル（ＬＴＦＳＬａｂｅｌ）が記録されている。ＬＴＦＳラベルは、そのカートリッジがＬＴＦＳでフォーマットされていることを示すと同時に、そのカートリッジで使われているレコードサイズも記録している。このレコードサイズを用いれば、先の、（先頭レコードとそこから連続するデータの長さ）から、使用しているレコード番号を計算することができる。
【００４２】
ＳＣＳＩコマンドの読み出しでＬＴＦＳカートリッジの無効データと有効データ判別方法を説明する。ＳＣＳＩコマンドでの読み出しまたは書込みでは、メディアの先頭（ＥＯＴ）からのシーケンシャルな読み出しで、一つレコードを読んだら、レコード番号（ブロック番号）のカウントを一つ進めて、レコード位置をブロック番号で指示する。
一方、ＬＴＦＳフォーマットでは、インデックスにはファイルの有効データのレコード位置をブロック番号の範囲（オフセット、サイズ)により指定している。つまり、複数回の更新がされたファイルの有効データは、ＩＰの保管されたインデックスの複数のエクステントで指示されるブロック番号範囲を有効レコード番号のリスト確保できる。従って、無効データの判定は、ＳＣＳＩレベルでの順次の読み出しの際のレコードカウントから有効レコード番号以外のものは無効データとして判別できる。
【００４３】
図５は、本発明のＬＴＦＳカートリッジを特殊コマンドで複製する処理フローを示す。
具体的には、ＳＣＳＩコマンドでメディアの先頭からシーケンシャルにレコードを読み出し、各レコードを解析しながら、ＩＰに保管されたインデックスで指示されレコードを有効データと判定する。特殊コマンドはＬＴＦＳフォーマットを維持して、読み出された有効データと無効データとを区別しながら複製する。本発明での特殊コマンドでの複製（duplication）において、コピー先メディアでの以後のＬＴＦＳによる読み出しを保証する必要がある。そのために、コピー元メディアでのＬＴＦＳフォーマット情報はコピー先メディアにおいても維持される必要がある。従って無効データについてもそのサイズ通り書く。しかしながらデータ内容は、セキュリティ上他者からの内容把握をさせるために例えば全てゼロなどにするように変更して先メディアに複製する。無効データ及び／又は古いインデックス・ファイルを全てゼロとするのは書込みの際の圧縮率を高めるためである。なお、無効データの変更は本来の内容を変更したものであるならどんな値でもよい。
【００４４】
無効データは、上述のインデックスにより参照されていないレコードである。そこで、実際の複製作業を行う前にインデックスを読み出し、有効なレコード番号をリストしたうえで、参照されていないレコード番号のリストを作成する。
●４００：ファイルをＬＴＦＳにより保存したコピー元メディア（元メディア）の内容を、ＳＣＳＩコマンドにより複製先の先メディア（先メディア）に複製する処理フローを開始する。
●４０５：複製されるべきファイルを保存した元メディアと、先メディアとを指定する。
テープライブラリ・システムの場合は２以上のテープドライブを有するので、元メディアを１つのテープドライブに先メディアを他のメディアにマウントしておく。
テープストレージ・システムが１つのテープドライブの場合でも、元メディアをマウントしてＩＰおよびＤＰを読み出しデータを確保した後（４１０，４２０）、必要なデータをシステムメモリまたはホストに保管する。元メディアをアンマウントして、保管データが有効か無効かを判定して、先メディアをマウントして書込み手続き（４３０，４４０）を行う。ホスト及びシステムメモリのサイズ制限がある場合は、交互に元メディアと先メディアの１つのテープドライブへのマウントを繰り返す。
●４１０：ＬＴＦＳフォーマットにより書き込まれた元メディアのＩＰを読み出して、インデックス情報を確保する。インデックス情報から有効データ・リストを作成する。有効データ・リストは、後続のＤＰをシーケンシャルに読み出していく過程（４４０）で更新または削除により無効にされたデータであるかを区別するために、利用される。有効データ以外のデータについては無効データとして取り扱う。
●４２０：ＬＴＦＳフォーマットにより書き込まれた元メディアのＤＰを先頭から順次（シーケンシャルに）読み出して有効データと無効データを区別する。ＩＰを読み取り後に作成された有効レコード番号リストを参照しながら、読み出されたレコードは有効データ・リストに該当するか判断する。
●４３０：先メディアをテープドライブにマウントして準備する。
元メディアから獲得されたインディクスパーティションの複製を先メディアに行う。インデックスなどすべての情報は先メディアにそのままコピーする。
●４４０：先メディアをテープドライブにマウントして、準備する。
有効データ番号リストを参照して読み出されたレコードの内、有効データ及び／又は古いインデックスはコピー先メディアに複製する。元メディアから読み出されたレコードの内、該当する有効データ及びそのインデックスはそのまま先メディアのＤＰに複製する。
有効レコード番号リストを参照して、元メディアから読み出されたレコードの内、ＤＰに保管された有効データに該当しない無効データ及び／又はその古いインデックスはゼロデータに置き換えて先メディアのＤＰに複製する。
【００４５】
元メディアのシーケンシャルな読み出し（４１０）において読み出し過程でレコードをカウントして全レコードのレコード番号を確保できる。無効データの区別（４２０）において、ＩＰから確保したインデックスを解析して有効レコード番号リストを作成する。具体的には、インデックスに含まれる複数のエクステントから有効なレコードの番号範囲が特定できその番号範囲を有効レコード番号リストにまとめる。この有効レコード番号リスト内に読み出されたレコード（４１０）の番号があるか否か判断し、該当する番号が含まれない場合は読み出されレコードは無効データと判定できる（４２０）。有効レコード番号リストを利用して、複製作業（４３０、４４０）において元メディアから先メディアにレコードを書き出す際に無効レコードを意味のないデータとして複製できる。例えばＳＣＳＩコマンドのレベルでレコードをカウントしながら、無効データの該当するレコードはオールゼロのデータに置き換える。有効データの有効レコード番号に対応する場合は読み出したレコード及びそのインデックスをそのまま先メディアに書込む。無効データをランダムデータにして書き込まないのは、テープドライブによる圧縮率が変化しコピー先のカートリッジにすべてのデータが入りきらない状況を避けるためである。逆にデータをすべてゼロにした場合、圧縮率は非常に高くなるので、複製によりコピー先カートリッジの空き容量を増加させる効果が得られる。無効なレコードと連続してファイルマークを読み出した際は、そのままファイルマーク（ＦＭ）をコピー先のカートリッジに書き出し、ファイルマークはゼロデータに変換しない。
【００４６】
以上の実施例を適用するストレージシステムでは、上述の本発明を適用するテープドライブでは、テープ上に残されていた無効なデータを正しく読み出せないようにしながら、高速な複製を実現できる。なお、本発明を実施の形態（実施例）を用いて説明したが、本発明の範囲は上記実施例には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００４７】
１０…テープカートリッジ（メディア、テープ）
１００…テープドライブ、
１１０…通信Ｉ／Ｆ（インターフェース）、
１２０…バッファ（ＤＲＡＭ）、
１３０…読み書きチャネル、
１４０…ヘッド、
１８０…モータ、
１５０…制御部（コントローラ）、
１７０…モータドライバ、
３００…ホスト、
【図１】
2015005229.tif 000003
【図２】
2015005229.tif 000004
【図３】
2015005229.tif 000005
【図４】
2015005229.tif 000006
【図５】
2015005229.tif 000007