(57)【要約】【課題】テープカートリッジに記録されたファイルへのアクセス時間を削減するために最適なレイアウトで情報を書き込むテープ装置を提供する。【解決手段】テープ装置は、第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む第１書込部に、第１トラックに書き込み対象情報を書き込ませる制御と、第１書込部の位置から第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込ませ、第１書込部を第２トラックに移動させる制御を行なう。【選択図】図６
2015133164.tif 000002
【特許請求の範囲】
【請求項１】
第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む第１書込部と、
前記第１書込部に、第１トラックに書き込み対象情報を書き込ませる制御と、該第１書込部の位置から前記第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込ませ、前記第１書込部を第２トラックに移動させる制御を行なう書込制御部
を備えることを特徴とするテープ装置。
【請求項２】
前記テープ装置は、さらに、
テープの始端と終端で折り返された複数のトラックを含む第２のテープ媒体に、前記書
き込み対象情報を書き込む第２書込部と、
を備え、
前記書込制御部は、前記第１のテープ媒体への前記書き込み対象情報の書込み途中で、前記第１のテープ媒体の最終トラックの終端を検出した場合、前記第２のテープ媒体に記録された情報を、前記第１のテープ媒体に上書きする制御を行なう
ことを特徴とする請求項１に記載のテープ装置。
【請求項３】
前記書込制御部は、前記書き込み対象情報の前記第１のテープ媒体への書込みが完了した場合、前記第１のテープ媒体に書き込まれた情報を前記第２のテープ媒体に上書きする制御を行なう
ことを特徴とする請求項１または２に記載のテープ装置。
【請求項４】
前記テープ装置は、さらに、
テープ媒体に含まれる複数のトラックのうちいずれかのトラックに書き込まれた情報を読み込む読込部と、
前記読込部に前記第１トラックに記録された情報を読み込ませる制御と、前記制御情報を読み込んだ場合、前記読込部を前記第２トラックに移動させる制御を行なう読込制御部
を備えることを特徴とする請求項１〜３のうちいずれか１項に記載のテープ装置。
【請求項５】
テープ媒体に情報を書き込む書込処理方法であって、
前記第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む第１書込部は、第１トラックに書き込み対象情報を書き込み、該第１書込部の位置から前記第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込み、第２トラックに移動する
ことを特徴とする書込処理方法。
【請求項６】
コンピュータに、
第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む第１書込部に第１トラックに書き込み対象情報を書き込ませ、該第１書込部の位置から前記第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込ませ、前記第１書込部を第２トラックに移動させる
処理を実行させることを特徴とする書込制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ装置の制御方法に関する。
【背景技術】
【０００２】
メインフレームのデータをテープカートリッジにバックアップする場合、正と副の二つのテープカートリッジに同じ内容のデータを記録することがある。その場合、正と副のそれぞれのテープカートリッジに対応する２つのドライブにより、２つのジョブが実行されて、データが記憶される。図１は、２つのテープカートリッジへのデータの記録の様子の一例を示す。図１に示すように、メインフレーム１はテープ装置Ａ（２ａ）とテープ装置Ｂ（２ｂ）に接続されている。そして、テープ装置Ａ（２ａ）には、テープ装置Ａ（２ａ）に挿入されたテープカートリッジＡへデータの読み書きを行う正ドライブ（４ａ）と、正ドライブを制御する制御部３ａが含まれる。また、テープ装置Ｂでは、テープ装置Ｂに挿入されたテープカートリッジＢへデータの読み書きを行う副ドライブ（４ｂ）と、副ドライブを制御する制御部３ｂとが含まれる。メインフレームが２つのテープカートリッジＡ、Ｂに対してデータの書き込みを行う場合、メインフレームでは、制御部３ａと制御部３ｂの各々に対して書き込みの要求を行う２つのジョブ５ａ、５ｂが実行される。
【０００３】
一方、テープのローディング時に短い時間で所望のファイルをアクセスすることができる磁気記録再生装置がある。この磁気記録再生装置は、ユーザーデータの記録終了端から磁気テープの記録開始端の間のほぼ中間の地点に隣接するアンローディング領域において、磁気テープをテープカセットに引き込む。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２５６６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記技術は、テープのローディングの直後のファイルへのアクセス時間を削減するものであり、連続してアクセスが発生する場合には適用できない。
【０００６】
そこで、１つの側面では、本発明は、テープカートリッジに記録されたファイルへのアクセス時間を削減するために最適なレイアウトで情報を書き込むテープ装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様によるテープ装置は、第１書込部と書込制御部を含む。第１書込部は、第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む。書込制御部は、第１書込部に、第１トラックに書き込み対象情報を書き込ませる制御と、第１書込部の位置から第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込ませ、第１書込部を第２トラックに移動させる制御を行なう。
【発明の効果】
【０００８】
１実施態様によれば、テープカートリッジに記録されたファイルへのアクセス時間を削減するために最適なレイアウトで情報を書き込むテープ装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】２つのテープカートリッジへのデータの記録の様子の一例を示す。
【図２】テープカートリッジに格納されるデータのデータ構造の一例を示す。
【図３】テープレイアウトの一例を示す。
【図４】テープの終端でラップの折り返しが行われるレイアウトにおいて、テープマークの番号を指定した検索の様子の一例を示す。
【図５】テープの終端でラップの折り返しが行われるレイアウトにおいて、検索対象のファイル名を指定した検索の様子の一例を示す。
【図６】テープ装置の一実施例の構成を図解した機能ブロック図である。
【図７】本実施形態に係る情報処理システムの構成の一例を示す。
【図８】ボリューム情報の一例を示す図である。
【図９】本実施形態に係る副カートリッジのテープレイアウトの一例を示す。
【図１０】制御マークのデータ構成を説明するための図である。
【図１１】本実施形態において、副カートリッジにデータを書き込む様子を説明するための図である。
【図１２】本実施形態に係る副カートリッジに対するテープマークを用いたファイルの検索の様子を示す。
【図１３】副カートリッジに対するファイル名を用いたファイルの検索の様子を示す。
【図１４】ファイル名による上書き対象ファイルの検索を行って、上書きを行う様子を示す。
【図１５】テープマークによる上書き対象ファイルの検索を行って、ファイルの上書きを行う様子を示す。
【図１６】書き込み対象データが正カートリッジへ書き込まれる様子を示す。
【図１７】副カートリッジへの書き込みの途中でＥＯＴが検出され、折り返し位置の変更後に、再度書込み対象データが書き込まれる様子を示す。
【図１８】制御部の全体の動作フローを図解したフローチャートである。
【図１９】ホストコマンド受信処理の動作フローを図解したフローチャートである。
【図２０】各ドライブのステータスの監視処理の動作を図解したフローチャートである。
【図２１】正カートリッジへのファイルの書込み処理の処理内容を図解したフローチャートの前半である。
【図２２】正カートリッジへのファイルの書込み処理の処理内容を図解したフローチャートの後半である。
【図２３】副カートリッジへのファイルの書込み処理の処理内容を図解したフローチャートである。
【図２４】制御マーク書込み処理の動作フローを図解したフローチャートである。
【図２５】副ドライブに対するテープマーク番号を指定したファイルの検索の動作フローを図解したフローチャートである。
【図２６】副ドライブに対するファイル名を指定したファイルの検索の動作フローを図解したフローチャートである。
【図２７】テープカートリッジの排出処理時の動作フローを図解したフローチャートである。
【図２８】テープ装置のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００１０】
先ず、テープカートリッジに格納されるデータのデータ構造について説明する。図２は、テープカートリッジに格納されるデータのデータ構造の一例を示す図である。図２に示すように、テープカートリッジに格納されるデータは、ＢＯＴ(Beginning Of Tape)６ａ、ＶＯＬ（Volume）６ｂ、ＨＤＲ（header）６ｃ,６ｉ、ファイルデータ６ｅ,６ｋ、ＥＯＦ（End Of File）６ｇ,６ｍの各領域を含む。さらに、テープカートリッジに格納されるデータは、Ｔ（Tape Mark）６ｄ,６ｆ,６ｈ,６ｉ,６ｌ,６ｎ,６ｏ、及びＥＯＴ(End Of Tape)６ｐの各領域を含む。
【００１１】
ここで、ＢＯＴ（６ａ）は、テープカートリッジのデータの書き込み領域の始端を示すマークである。また、ＥＯＴ（６ｐ）は、テープカートリッジのデータの書き込み領域の終端を示すマークである。このＢＯＴ（６ａ）とＥＯＴ（６ｐ）の間の領域にデータが格納される。
【００１２】
ＶＯＬ（６ｂ）は、ボリューム領域であり、ユーザやテープカートリッジに記録されるボリュームの識別ラベルが記録される。ＶＯＬ（６ｂ）は、各カートリッジ媒体につき一つ記録される。このＶＯＬ（６ｂ）のサイズは８０バイトである。
【００１３】
ＨＤＲ（６ｃ,６ｉ）は、ヘッダ領域であり、ファイルデータを識別するラベルが記録される。このＨＤＲ（６ｃ,６ｉ）のサイズは８０バイトである。
【００１４】
ファイルデータ（６ｅ,６ｋ）は、ユーザが格納したいデータの本体のデータである。
ＥＯＦ（６ｇ,６ｍ）は、ファイルデータの終わりを示す。このＥＯＦ（６ｇ,６ｍ）のサイズは８０バイトである。
【００１５】
Ｔ（６ｄ,６ｆ,６ｈ,６ｉ,６ｌ,６ｎ,６ｏ）は、カートリッジ媒体上にデータの読み書きを制御するために記録される特別の符号または符号列である。Ｔ（６ｄ,６ｆ,６ｈ,６ｉ,６ｌ,６ｎ,６ｏ）は、ファイルデータと、ＨＤＲやＥＯＦなどのラベルとの間、または、ラベル群の間の境界を示す。
【００１６】
カートリッジ媒体では、ＨＤＲ、Ｔ、ファイルデータ、Ｔ、ＥＯＦ、Ｔを一つのデータ書込み単位とし、以下の説明ではこれらをまとめて単にファイルと記す。尚、連続して記録された２つのＴにより、テープカートリッジへの書込みの終了が示される。すなわち図２に示す例では、Ｔ（６ｎ）の後に書込まれたＴ（６ｏ）は、書込みの終了を示す。
【００１７】
次に、テープカートリッジのテープレイアウトについて説明する。図３は、テープレイアウトの一例を示す。尚、図３の例の矢印は、ドライブのヘッドの位置の動きを示している。尚、図３と同様に以下の図４〜５、９〜１１、１３〜１７の矢印もドライブのヘッドの位置の動きを示すものとする。
【００１８】
テープへのデータの書込みは、テープの物理的な始端から終端にかけて、テープの走行方向（巻き取り方向）に沿って行われる。データの書込みが行われるテープ上のパスをトラックまたはラップと呼ぶ。このようなテープの走行方向に沿った複数のラップは、テープの走行方向とは垂直（この方向を幅方向と呼ぶ）に複数配置される。尚、以下の説明では、テープに含まれる複数のラップのうちで、データの書き込みが最後に行われるラップを最終ラップと記す。また、ＥＯＴは最終ラップの終端に位置するものとする。
【００１９】
図３の例において、例えば、先ずテープの始端からラップ１に対してデータの書き込みが行われ、テープの終端に達すると、テープの幅方向に書込み位置がずらされ、ラップ２に対して、テープの終端から始端に向けてデータの書き込みが行われる。ここで以下の説明では、テープの始端から終端に向かう方向を前進方向と記し、テープの終端から始端に向かう方向を後進方向と記す。すなわち、ラップ１の書込み方向は前進方向であり、ラップ２の書込み方向は後進方向である。
【００２０】
ラップ２へのデータの書き込みが行われ、テープの始端に到達すると、ラップ３に切り替えが行われ、データの書き込み方向を後進から前進に折り返して、データの書き込みが行われる。ラップ３への書き込みが終了すると、同様にラップの切り替えが行われ、書込み方向が折り返されてデータの書き込みが行われる。
【００２１】
そして、テープカートリッジに対する全ての書込み対象ファイルの書き込みが終了すると、最後に、データの書き込み終了を示すＴが書き込まれる。図３の例では、ラップ５のファイル８の後にＴが記録されており、ここで全てのファイルの書き込みが終了している。
【００２２】
このとき、仮にテープカートリッジに書込み可能なラップの数が１０個である場合、残りの５個のラップにはデータの書き込みは行われないこととなる。尚、汎用機システムでは、カートリッジのすべての記憶容量を使い切らない可能性が高いため、データが書き込まれないラップが複数存在することがある。
【００２３】
次に、テープの終端でラップの折り返しが行われる図３のようなレイアウトにおいて、ファイルの検索が行われる様子を説明する。ファイルの検索では、メインフレーム（以下、ホストと記す）からの検索対象のファイルの指定において、テープマークが用いられる方法と、ファイル名が用いられる方法がある。
【００２４】
先ずテープマークを用いたファイルの検索について説明する。この方法では、検索対象のファイルの指定において、検索対象のファイルのＨＤＲの直前のテープマークの番号がホストから指定される。すると制御部は、指定されたテープマークの位置に、データの読み込みを行うヘッドを位置づけるようにドライブを制御する。
【００２５】
図４は、テープの終端でラップの折り返しが行われるレイアウトにおいて、テープマークの番号を指定した検索の様子の一例を示す。ここで例えば、テープマークの９番（Ｔ９と記す）がホストから指定されたとする。すると先ず制御部は、指定されたテープマークが存在するラップへの切り替えを行い、そのラップの始端から、指定されたテープマークの位置まで順にテープを走行させるようにドライブを制御する。ここで図４の例におけるＴ９のように、指定されたテープマークがテープの終端に位置する場合、テープの走行距離は、ほぼテープの始端から終端までの距離となる。
【００２６】
次にファイル名を指定したファイルの検索について説明する。この方法では、検索対象のファイルの指定において、ホストから検索対象のファイル名が指定される。このような検索要求を受信すると制御部は、ドライブの制御を行って、指定されたファイル名のファイルの検索を行う。すなわち制御部は、テープに記憶されたＨＤＲの情報をラップ１の始端からデータの書込み順に読み込むようにドライブを制御する。そして制御部は、指定されたファイル名に対応するＨＤＲを特定し、特定したＨＤＲの位置に、ドライブのヘッドの位置づけを行うように制御する。
【００２７】
図５は、テープの終端でラップの折り返しが行われる図４のようなレイアウトにおいて、検索対象のファイル名を指定した検索の様子の一例を示す。図５は、検索対象のファイル名として、ファイル７が指定された例を示している。
【００２８】
図５に示すように、制御部は、ラップ１から順にテープを走行させ、順次、各ラップに記録されたＨＤＲが、指定されたファイル名に対応するものか否かを判定する。
【００２９】
具体的には、先ず制御部は、ラップ１の始端から終端にテープを走行させ、ラップ１に記録されたＨＤＲが、指定されたファイル名に対応するものか否かを順次判定する。ラップ１の終端まで達したら、次に制御部はラップの切り替えを行ってラップ２の終端から始端にテープを走行させ、ラップ１と同様に、ラップ２に記録されたＨＤＲが、指定されたファイル名に対応するものか否かを順次判定する。同様に制御部は、ラップ３の始端から終端にテープを走行させ、ラップ３に記録されたＨＤＲが、指定されたファイル名に対応するものか否かを順次判定していく。ここで制御部は、ラップ３に記録されたファイル７のＨＤＲが、指定されたファイル名に対応するか否かの判定を行い、その結果として、ファイル７のＨＤＲは指定されたファイル名に対応すると判定する。すると制御部は、ドライブのヘッドをファイル７のＨＤＲの位置に位置づけする。
【００３０】
ここで図５の例のファイル７のように、指定されたファイルが、テープに書き込まれたデータのうちで、書込み順において後方に位置するに従い、ファイル名を指定したファイルの検索におけるテープの走行距離は長くなる。
【００３１】
図６は、本実施形態に係るテープ装置の構成の一例を示す。図６において、テープ装置１０は、第１書込部１１、書込制御部１２、第２書込部１３、読込部１４、及び読込制御部１５を含む。
【００３２】
第１書込部１１は、第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む。
【００３３】
書込制御部１２は、第１書込部１１に、第１トラックに書き込み対象情報を書き込ませる制御と、第１書込部１１の位置から第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込ませ、第１書込部１１を第２トラックに移動させる制御を行なう。制御情報は、各トラックに記録された情報を特定するための情報を含む。ここで、所定の閾値は、例えば、書き込み対象情報が記憶されるテープ長を、第１のテープ媒体に含まれるトラック数で割った値である。
【００３４】
第２書込部１３は、テープの始端と終端で折り返された複数のトラックを含む第２のテープ媒体に、書き込み対象情報を書き込む。
【００３５】
書込制御部１２は、第１のテープ媒体への書き込み対象情報の書込み途中で、第１のテープ媒体の最終トラックの終端を検出した場合、第２のテープ媒体に記録された情報を、第１のテープ媒体に上書きする制御を行なう。また、書込制御部１２は、書き込み対象情報の第１のテープ媒体への書込みが完了した場合、第１のテープ媒体に書き込まれた情報を第２のテープ媒体に上書きする制御を行なう。
【００３６】
読込部１４は、テープ媒体に含まれる複数のトラックのうちいずれかのトラックに書き込まれた情報を読み込む。
【００３７】
読込制御部１５は、読込部１４に第１トラックに記録された情報を読み込ませる制御と、制御情報を読み込んだ場合、読込部１４を第２トラックに移動させる制御を行なう。また、読込制御部１５は、トラックに記録された制御情報のうち、テープの始端側に記録された制御情報を読み込み、読み込んだ制御情報に基いて、トラックに記録された情報を特定する。
【００３８】
図７は、本実施形態に係る情報処理システムの構成の一例を示す。図７において、情報処理システムは、メインフレーム２１、及びテープ装置２２を含み、メインフレーム２１とテープ装置２２は、例えばバスやネットワーク等を介して接続されている。メインフレーム２１はテープ装置２２にセットされたテープカートリッジにデータを記憶させ、また、テープカートリッジからテープ装置２２を介して、データを取得する。本実施形態では、メインフレーム２１は、正と副の２つのテープカートリッジに、同じデータを記憶させる構成とする。
【００３９】
メインフレーム２１では、正カートリッジにデータを書き込むための正ドライブに対応するジョブ２７が実行される。尚、図１の例では、正と副のテープカートリッジにデータを書き込むときに２つのジョブが実行されているが、図７の例では、１つのジョブが実行されている。図１の例と比較して図７の情報処理システムでは、メインフレームにかかる書込み処理の負荷が軽減されている。
【００４０】
テープ装置２２は、２つのテープカートリッジの挿入が可能であり、制御部２３、正ドライブ２４、副ドライブ２５、及び記憶部２６を含む。正ドライブ２４と副ドライブ２５のそれぞれは、挿入された２つのテープカートリッジの各々へデータの読み書きを行う。
【００４１】
尚、テープ装置２２は、テープ装置１０の一例である。制御部２３は、書込制御部１２及び読込制御部１５の一例である。副ドライブ２５のヘッドは、第１書込部１１の一例である。正ドライブ２４のヘッドは、第２書込部１３の一例である。
【００４２】
尚テープ装置２２は、メインフレーム２１から受信したデータを正と副のカートリッジに同時に書き込んでもよいし、先ず正カートリッジにデータを格納し、その後所定のタイミングで、正カートリッジのデータを副カートリッジに複製してもよい。
【００４３】
制御部２３は、テープカートリッジへのデータの読み書きに関する制御を行う。
データの書き込みに関して、具体的には制御部２３は、メインフレーム２１からテープカートリッジへのデータの書込み要求とともに、書き込み対象データを受信する。すると制御部２３は、受信したデータを正ドライブ２４または副ドライブ２５に転送するとともに、転送したデータを正カートリッジまたは副カートリッジに書き込ませるように正ドライブ２４または副ドライブ２５を制御する。
【００４４】
データの読み込みに関して制御部２３は、メインフレーム２１からテープカートリッジに記憶されたデータの読み込み要求を受信すると、テープカートリッジからデータを読み出すように正ドライブ２４及び副ドライブ２５を制御する。そして、正ドライブ２４及び副ドライブ２５が読み出したデータを取得し、取得したデータをメインフレーム２１へ転送する。
【００４５】
制御部２３は、正カートリッジに記憶されたデータを所定のタイミングで副カートリッジに複製してもよい。すなわち、正カートリッジからデータを読み出すように正ドライブ２４を制御して、読み出されたデータを副カートリッジに書き込ませるように副ドライブ２５を制御する。
【００４６】
記憶部２６は、制御部２３がテープへのデータを書き込む際に使用する種々の一時変数を記憶する。また記憶部２６は、テープ装置２２において、以前にテープカートリッジへの書込み処理を実行したことのあるボリュームと、そのボリュームのサイズとを対応付けたボリューム情報を記憶する。図８は、ボリューム情報の一例を示す図である。図８において、ボリューム情報は、ボリューム名３１と、ボリュームセクター値３２のデータ項目を含む。ボリューム名３１は、テープ装置２２が以前にテープカートリッジへの書込み処理を行ったことのあるボリュームを一意に識別するための識別情報である。尚、このボリューム名は、テープカートリッジに書き込まれるＶＯＬラベルと対応していてもよい。ボリュームセクター値３２は、ボリューム名で示されるボリュームの全てのデータをテープカートリッジに書き込んだときに使用されたテープ長をセクター値で表した値である。尚テープ長は、ドライブのヘッドが移動したテープ上の距離ともいえる。
【００４７】
尚、制御部２３は、書込み対象データの書込みが完了した場合、書込み対象データのボリューム名と、書込み対象データを書き込んだときに使用されたテープ長をセクター値で表した値とを対応付けて、ボリューム情報に格納する。
【００４８】
図７の例においては、メインフレーム２１のデータが正ドライブ２４にセットされた正カートリッジに書き込まれ、その後、正カートリッジに格納されたデータが、副ドライブ２５にセットされた副カートリッジに複製される例を示している。図７に示すように、メインフレーム２１では正ドライブ２４に対応するジョブが実行され、このジョブがテープ装置の制御部２３へデータの書き込み要求とともに、書込み対象データを送信する。書込み対象データを受信すると制御部２３は、受信したデータを正ドライブ２４に転送する。正ドライブ２４は、制御部２３からデータを受信すると、正ドライブ２４にセットされた正カートリッジに受信したデータを格納する。
【００４９】
その後、所定のタイミングで以下の複製処理が行われる。すなわち制御部２３は、正カートリッジからデータを読み出すように正ドライブ２４を制御して、読み出したデータを正ドライブ２４から取得する。そして制御部２３は、取得したデータを副ドライブ２５へ転送するとともに、転送したデータを副カートリッジに書き込ませるように副ドライブ２５を制御する。
【００５０】
次に、本実施形態に係るテープカートリッジのテープレイアウトについて説明する。正ドライブ２４にセットされる正カートリッジのテープレイアウトは、図３で説明したものと同様であるが、副ドライブ２５にセットされる副カートリッジのテープレイアウトは、図３で説明したものとは異なる。本実施形態の副カートリッジのテープレイアウトにおいては、テープの折り返し位置はテープの終端ではなく、テープに格納されるデータの総量に応じて変更される。
【００５１】
図９は、本実施形態に係る副カートリッジのテープレイアウトの一例を示す。図９に示すように、各ラップの折り返し位置は、テープの始端と終端の間の位置となっている。図９に示すように、各ラップの開始位置と終了位置には、制御マーク（ＭＫ１、ＭＫ２、・・・）が挿入されている。この制御マークにより、折り返し位置が管理される。
【００５２】
ここで各ラップの折り返し位置の決定方法について説明する。本実施形態においては、副カートリッジの各ラップに格納されるデータ量が均一となるように折り返し位置が決定される。ただし折り返し位置は、ファイルの途中では折り返されず、２つのファイルの間で折り返される。
【００５３】
各ラップの折り返し位置の決定方法は、副カートリッジに格納されるデータの総量が判明している場合と、そうでない場合とで異なる。先ず、副カートリッジに格納されるデータの総量が判明している場合について説明する。
【００５４】
各ラップの折り返し位置の決定において、副カートリッジに格納されるデータの総量が判明している場合には、先ず制御部２３は、副カートリッジに格納されるデータの総量を副カートリッジに記憶させた場合の記憶領域の総テープ長のセクター値を算出する。そしてここで算出した値を、制御部２３は、副カートリッジの全ラップ数で割り、その結果の値を平均セクター値として算出する。
【００５５】
例えば、副カートリッジに格納されるデータの総セクター値が「10,000」であり、カートリッジの総ラップ数が「20」である場合には、平均セクター値は「500」となる。
【００５６】
平均セクター値を算出すると、次に制御部２３は、各ラップの開始位置からのテープ長をセクター値で表した値が、平均セクター値と等しくなるような、各ラップ上の位置を特定する。そしてこの特定した位置に格納されるブロック（データ）が含まれるファイルの書込み終了位置を、制御部２３は、そのラップの折り返し位置として決定する。尚、以下の説明においては、テープ長をセクター値で表した値を単にセクター値と記す。
【００５７】
例えば、図９の例において平均セクター値が「500」であり、ファイル１の書込み終了位置からテープの始端までのセクター値が「700」である場合には、制御部２３は、ファイル１の書込み終了位置を折り返し位置として決定する。具体的には後ほど説明するが、１つのファイルの書き込みが終了する毎に制御部２３は、ファイルの書き込み終了位置からラップの始端までのセクター値と、平均セクター値とを比較する。そしてこの結果に基づいて、制御部２３は、ファイルの書き込み終了位置が折り返し位置であるか否かを判定する。
【００５８】
ラップ２についてもラップ１と同様にして制御部２３は折り返し位置を決定する。例えば、図９の例においてファイル２の書込み終了位置からラップ２の開始位置までのセクター値が「200」であり、ファイル３の書込み終了位置からラップ３の開始位置までのセクター値が「700」であるとする。この場合、制御部２３は、ファイル３の書込み終了位置を折り返し位置として決定する。
【００５９】
以上のようにして、副カートリッジに格納されるデータの総量が判明している場合は折り返し位置を決定する。次に、カートリッジに格納されるデータの総量が判明していない場合の、各ラップの折り返し位置の決定方法について説明する。
【００６０】
尚、カートリッジに格納されるデータの総量が判明している場合の一例として、書込み対象のボリュームと同じボリューム名のデータを、以前にテープ装置２２がテープカートリッジに書き込んだことがある場合がある。このような場合、記憶部２６に記憶されたボリューム情報には、ボリューム名３１の値が書き込み対象ボリュームのボリューム名と等しいレコードが存在することとなる。そこで制御部２３は、ボリューム名３１が書込み対象ボリューム名と等しいレコードを抽出し、抽出したレコードのボリュームセクター値３２を取得する。そして制御部２３は、取得したボリュームセクター値を、副カートリッジの総ラップ数で割った値を平均セクター値として算出する。
【００６１】
各ラップの折り返し位置の決定において、カートリッジに格納されるデータの総量が判明していない場合には、先ず制御部２３は、テープの始端から終端までのテープ長に対応するセクター値の1/2の値を、平均セクター値として算出する。尚、本実施形態においては、テープの始端から終端までのテープ長に対応するセクター値の1/2の値を平均セクター値として算出したが、テープの始端から終端までのテープ長のうちの所定のテープ長を平均セクター値としてもよい。
【００６２】
例えば、テープの始端から終端までのテープ長に対応するセクター値が「800」である場合、平均セクター値は「800」の1/2である「400」となる。
【００６３】
平均セクター値を算出すると、次に制御部２３は、カートリッジに格納されるデータの総量が判明している場合と同様に、各ラップの開始位置からのセクター値が平均セクター値と等しくなるような、各ラップ上の位置を特定する。そしてこの特定した位置に格納されるブロック（データ）が含まれるファイルの終了位置を、制御部２３は、そのラップの折り返し位置として決定する。
【００６４】
以上のようにして、テープカートリッジの折り返し位置は決定される。折り返し位置が決定されると、決定した折り返し位置に制御部２３は、折り返し位置であることを示す制御マークを挿入する。データの読み込み時に、副ドライブ２５のヘッドはこの制御マークを検出すると、その検出位置でラップの切り替えを行い、テープの走行方向を折り返す。
【００６５】
ただし制御部２３は、各ラップの開始位置にも制御マークの挿入を行う。すなわち、本実施形態において、副カートリッジに含まれる各ラップの開始位置と終了位置には、制御マークが記録されることとなる。
【００６６】
尚、ラップの開始位置は、正順にデータが書き込まれるラップの場合、テープの始端の位置にあり、後順にデータが書き込まれるラップの場合は、テープの終端の位置にある。また、ラップの終了位置は、正順にデータが書き込まれるラップの場合、テープの終端の位置にあり、後順にデータが書き込まれるラップの場合は、テープの始端の位置にある。
【００６７】
制御マークのデータ構成は、各ラップの開始位置に挿入されるものと、終了位置に挿入されるものとで、データの構成が異なる。さらに、終了位置に挿入される制御マークにおいても、正順にデータが書き込まれるラップと、後順にデータが書き込まれるラップとで、データの構成が異なる。以下、図１０を参照して、各々の場合について、制御マークの構成を説明する。図１０は、制御マークのデータ構成を説明するための図である。
【００６８】
先ず、各ラップの開始位置に挿入される制御マークのデータ構成を説明する。各ラップの開始位置に挿入される制御マークは、図１０の例においては、ＭＫ１、ＭＫ３（４１ａ）、ＭＫ５（４１ｃ）、ＭＫ７（４１ｄ）、ＭＫ９、・・・である。図１０に示すように、ラップの開始位置に挿入される制御マークは、一つ前のラップに記録されたファイルのファイル名を含む。ここで説明のためにあるラップに注目し、注目したラップを注目ラップＡと記すと、注目ラップＡの開始位置に挿入される制御マークは、注目ラップＡへの切り替え前（直前）のラップに格納されたファイルのファイル名を含む。
【００６９】
具体的には、例えば図１０において、ラップ２の開始位置に挿入される制御マークＭＫ３には、ラップ１に記録されたファイルであるファイル１のファイル名が含まれる。また、ラップ３の開始位置に挿入される制御マークＭＫ５には、ラップ２に格納されたファイルであるファイル２とファイル３のファイル名が含まれる。
【００７０】
次に、ラップの終了位置に挿入される制御マークであって、正順にデータが書き込まれるラップに挿入される制御マークのデータ構成を説明する。正順にデータが書き込まれるラップの終了位置に挿入される制御マークは、図１０の例においては、ＭＫ２（４１ａ）、ＭＫ６（４１ｄ）、・・・である。図１０に示すように、正順にデータが書き込まれるラップの終了位置に挿入される制御マークは、制御マークが挿入されるラップに記録されたファイルのファイル名を含む。ここで説明のためにある正順にデータが記録されるラップに注目し、注目したラップを注目ラップＢと記すと、注目ラップＢの終了位置に挿入される制御マークは、注目ラップＢに格納されたファイルのファイル名を含む。
【００７１】
具体的には、例えば図１０の例において、ラップ１の終了位置に挿入される制御マークＭＫ２には、ラップ１に格納されたファイルであるファイル１のファイル名が含まれる。また、ラップ３の終了位置に挿入される制御マークＭＫ６には、ラップ３に格納されたファイルであるファイル４のファイル名が含まれる。
【００７２】
次に、ラップの終了位置に挿入される制御マークであって、後順にデータが書き込まれるラップに挿入される制御マークのデータ構成を説明する。後順にデータが書き込まれるラップの終了位置に挿入される制御マークは、図１０の例においては、ＭＫ４（４１ｂ）、ＭＫ８（４１ｅ）・・・である。図１０に示すように、後順にデータが書き込まれるラップの終了位置に挿入される制御マークは、制御マークが挿入されるラップに記録されたファイルのファイル名と、その一つ前のラップに記録されたファイルのファイル名を含む。ここで説明のために、後順にデータが記録されるあるラップに注目し、注目したラップを注目ラップＣと記す。すると、注目ラップＣの終了位置に挿入される制御マークは、注目ラップＣに格納されたファイルのファイル名と、注目ラップＣへの切り替え前（直前）のラップに格納されたファイルのファイル名とを含む。
【００７３】
具体的には、例えば図１０の例において、ラップ２の終了位置に挿入される制御マークＭＫ４には、ラップ２に格納されたファイルであるファイル２、３と、ラップ１に格納されたファイルであるファイル１のファイル名が含まれる。また、ラップ４の終了位置に挿入される制御マークＭＫ８には、ラップ４に格納されたファイルであるファイル５と、ラップ３に格納されたファイルであるファイル４のファイル名が含まれる。
【００７４】
尚、本実施形態において、折り返し位置を２つのファイルの間としたのは、例えばファイルデータが重要なデータである場合に、ファイルデータの途中に制御マークを挿入することはデータの信頼性の観点から望ましくないためである。ファイルデータに信頼性が求められず、ファイルデータの途中に制御マークが挿入されても特に問題がない場合には、制御マークは所定の位置に挿入することができる。その場合は、さらにテープの効率的な使用が可能となる。
【００７５】
次に、副カートリッジへのデータの書込みについて説明する。副カートリッジへデータを書き込む場合、制御部２３は、図９において説明したテープレイアウトとなるように、データの書き込みを行う。尚、以下の説明では、書き込み対象のラップの開始位置から、そのラップに対してデータの書き込みが完了した完了位置までのテープ長をセクター値で表した値を書込みセクター値と記す。
【００７６】
図１１は、本実施形態において、副カートリッジにデータを書き込む様子を説明するための図である。
【００７７】
データの書き込みは、具体的には、制御部２３は先ず書込み対象データのうちのＶＯＬラベルの書き込みを行い、それに続いて、ラップ１の開始位置の制御マーク（図１１においてはＭＫと記す）を書き込む。そして制御部２３は、制御マークの書き込みに続いてファイル１の書き込みを行う。ファイル１の書込みが終了したら、制御部２３は書込みセクター値と平均セクター値とを比較する。ここで書込みセクター値が平均セクター値未満であると判定した場合は、制御部２３はファイル１に続けて、同じラップ１に次のファイル２の書き込みを行う。そして、ファイル２の書込みが終了したら、再び制御部２３は書込みセクター値と平均セクター値とを比較する。ここで書込みセクター値が平均セクター値未満であると判定した場合は、同様に制御部２３は、書き込んだファイルに続けて、同じラップ１に更に次のファイルの書き込みを行う。
【００７８】
このようにファイルの書込み終了時には、書込みセクター値と平均セクター値の比較が行われるが、その際、書込みセクター値が平均セクター値未満であると判定した場合には、制御部２３は、続けて同じラップに次のファイルを書き込む動作を、同様に繰り返す。
【００７９】
ファイルの書込み終了時の比較において、書込みセクター値が平均セクター値以上であると判定すると、制御部２３は、ファイルの書き込みが終了した時点のヘッドの位置を折り返し位置であると判定する。そして制御部２３は、書き込んだファイルに続いて制御マークを書込み、次のラップであるラップ２へ切り替えを行う。尚、この切り替えにおいては、ヘッドの位置をテープの幅方向にずらしてラップ２に切り替えるが、テープの走行方向にはヘッドをずらさないものとする。
【００８０】
図１１の例は、ファイル２の書込み終了時の書込みセクター値と平均セクター値の比較において、書込みセクター値が平均セクター値以上となる例を示している。よって、ファイル２に続いて制御マークが書き込まれ、ラップの切り替えが行われている。
【００８１】
ラップ２への切り替えを行うと制御部２３は、ラップ２の開始位置に制御マークを書込み、それに続いて新たなファイルの書き込みを行う。ファイルの書き込みが終了したら、制御部２３は、書込みセクター値と平均セクター値とを比較する。ここで書込みセクター値が平均セクター値未満であると判定した場合には、制御部２３は、続けて同じラップに次のファイルを書き込む動作を、ラップ１と同様に繰り返す。また、書込みセクター値が平均セクター値以上であると判定した場合には、ラップ１と同様に制御部２３は、書き込んだファイルに続いて制御マークを書込み、次のラップへ切り替えを行う。ラップ３以降の動作は、ラップ２と同様となる。
【００８２】
次に、副カートリッジに記録されたファイルの検索について説明する。上述したようにファイルの検索では、検索対象のファイルを指定するのに、テープマークを用いる方法と、ファイル名を指定する方法などがある。
【００８３】
図１２は、本実施形態に係る副カートリッジに対するテープマークを用いたファイルの検索の様子を示す。図１２において、テープマークの９番が読み込み対象ファイルとして指定された場合を説明する。
【００８４】
先ず制御部２３は指定されたテープマークが存在するラップへの切り替えを行い、テープの始端側から指定されたテープマークの位置まで順にテープを走行させる。
【００８５】
具体的には、制御部２３は先ずラップ２に切り替えを行い、テープマークの９番の位置までテープを走行させて、ドライブのヘッドを位置づけする。
【００８６】
ここで、テープマークを用いたファイルの検索について、図４と図１２の例を比較する。
【００８７】
図４においては、例えば、ホストから指定されたテープマークが、テープの終端に位置する場合、テープの走行距離は、テープの始端から終端までの距離となる。それに対して、図１２においては、テープマークは、テープの始端からラップの折り返し位置までに記録される。よって、図１２の例におけるテープの走行距離は、図４の例におけるテープの走行距離よりも短くなる。したがって、副カートリッジに対するテープマークを指定したファイルの検索時間は、正カートリッジに対するものよりも短くなる。
【００８８】
次にファイル名を指定したファイルの検索について説明する。この方法では、検索対象のファイルの指定において、ホストから検索対象のファイル名が指定される。
【００８９】
図１３は、副カートリッジに対するファイル名を用いたファイルの検索の様子を示す。図１３に示すように、制御部２３は先ず、各ラップのテープ始端側の制御マークの読み込みをドライブに指示し、読み込んだ制御マークの内容から、検索対象のファイルが記録されたラップを特定する。そして制御部２３は、特定したラップのファイルの前部にヘッドの位置づけを行うようにドライブを制御する。
【００９０】
ただし、カートリッジ始端側の制御マークの構成は、図１０を参照して説明したように３パターンあり、パターンにより制御マークの内容が異なることから、ラップによって、読み込み対象ファイルの特定の仕方が異なる。以下の説明では、正順にデータが記録されるラップを正順ラップと記し、後順にデータが記録されるラップを後順ラップと記す。
【００９１】
先ず、後順ラップに検索対象ファイルが含まれるか否かの特定について説明する。ここでは説明のために、検索対象ファイルが含まれているか否かの判定を行うラップを対象ラップＤと記す。すると、図１０を参照して説明したように、対象ラップＤの次の正順ラップの開始位置に記録される制御マークには、一つ前のラップである対象ラップに記録されたファイルのファイル名を含む。よって、対象ラップＤに検索対象データが記録されているか否かの判定は、制御部２３は、対象ラップＤの次の正順ラップの開始位置の制御マークに、検索対象ファイルが含まれているか否かを判定することによって行う。
【００９２】
次に、正順ラップに検索対象ファイルが含まれているか否かの特定について説明する。ここでは、説明のために、検索対象ファイルが含まれているか否かの判定を行う正順ラップを対象ラップＥ、対象ラップＥの次のラップをラップＦ、ラップＦの次のラップをラップＧと記す。すると、図１０を参照して説明したように、対象ラップＥの次の後順ラップＦの終了位置（テープの始端側）に記録される制御マークＭＫ（Ｆ）には、対象ラップＥとラップＦに記録されたファイルのファイル名が含まれる。一方、正順ラップＧの開始位置に記録される制御マークＭＫ（Ｇ）には、図１０を参照して説明したように、ラップＦに記録されたファイルのファイル名が含まれる。よって、ラップＦの終了位置に記録される制御マークＭＫ（Ｆ）に検索対象のファイル名が含まれていない場合には、制御部２３は、対象ラップＥには検索対象ファイルは記録されていないと判定する。また、ラップＦの終了位置の制御マークＭＫ（Ｆ）に検索対象のファイル名が含まれており、ラップＧの開始位置の制御マークＭＫ（Ｇ）に検索対象のファイル名が含まれていない場合には、制御部２３は対象ラップＥに検索対象ファイルが記録されていると判定する。
【００９３】
ここで図１３において、ファイル４を検索する場合の動作を説明する。先ず制御部２３は、ラップ１の制御マークＭＫ１を読み込む。ＭＫ１にはいずれのファイル名も含まれていないため、制御部２３は、次のラップであるラップ２に切り替え、制御マークＭＫ４を読み込む。尚、ＭＫ１にはファイル名は含まれないため、ＭＫ１の読み込みは省略してもよい。
【００９４】
次に、制御マークＭＫ４を読み込むと制御部２３は、制御マークＭＫ４に、ファイル４のファイル名が含まれるか否かを判定する。図１３の例では、ラップ２にファイル４が記録されているため、制御部２３は、制御マークＭＫ４にファイル４のファイル名が含まれると判定する。すると制御部２３は、制御マークＭＫ４が記録されたラップであるラップ２と、その直前のラップであるラップ１の何れかに、ファイル４が記録されていると判定する。
【００９５】
そして制御部２３は、次のラップであるラップ３に切り替え、制御マークＭＫ５を読み込み、制御マークＭＫ５にファイル４のファイル名が含まれるか否かを判定する。ここでは制御部２３は、ＭＫ５にはファイル４のファイル名が含まれると判定する。すると制御部２３は、ラップ２にファイル４が記録されていると判定する。これは、制御マークＭＫ５は、ラップの開始位置に挿入される制御マークであり、そのような制御マークには、図１０に示すように、その制御マークが記録されたラップの切り替え直前のラップに記録されたファイルのファイル名を含むからである。
【００９６】
検索対象のファイルが記録されたラップを特定すると制御部２３は、特定したラップを走行させ、検索対象ファイルの前部にヘッドの位置づけを行うようにドライブを制御する。
【００９７】
ここで、ファイル名を用いたファイルの検索について、図５と図１３の例を比較する。
図５においては、検索対象のファイル名に対応するＨＤＲを読み込むまで、ラップ１から順にテープの走査が行われる。それに対して、図１３においては、先ず、検索対象ファイルが記録されているラップを、テープの始端側に記録された制御情報を用いて特定し、特定したラップに対してＨＤＲの読み込みが行われるため、テープの走行距離が短くなる。
【００９８】
したがって、副カートリッジに対するファイル名を指定したファイルの検索時間は、正カートリッジに対するものよりも短くなる。
【００９９】
次に、カートリッジに書込み済みのファイルに対するデータの上書きの動作について、図１４及び図１５を用いて説明する。
【０１００】
図１４は、ファイル名による上書き対象ファイルの検索を行って、上書きを行う様子を示す。図１４においては、既に記憶されていたファイル４をファイル８に上書きする様子を示している。
【０１０１】
先ず制御部２３は、上書きの対象であるファイル４の検索を行う。ここでは、検索対象ファイルとしてファイル４がホストにより指定される。ファイル４の検索の方法は図１３を用いて説明したものと同様である。ファイル４の前部にドライブのヘッドの位置づけが完了したら、制御部２３は、ファイル４に対してファイル８を上書きする。
【０１０２】
図１５は、テープマークによる上書き対象ファイルの検索を行って、ファイルの上書きを行う様子を示す。図１５においては、既に記憶されていたファイル４をファイル８に上書きする様子を示している。
【０１０３】
先ず制御部２３は、上書きの対象であるファイル４の検索を行う。ここでは、ファイル４の前に位置するテープマークがホストにより指定される。ファイル４の検索の方法は図１２を用いて説明したものと同様である。ファイル４の前部にドライブのヘッドの位置づけが完了したら、制御部２３は、ファイル４に対してファイル８を上書きする。
【０１０４】
尚、テープマークによるファイルの検索は、図１５に示すようにテープの前進方向に行われる場合（スペースファイル）と、テープの後進方向に行われる場合（バックスペースファイル）がある。
【０１０５】
次に、副カートリッジの折り返し位置の変更について説明する。副カートリッジの折り返し位置は、テープの始端と終端で折り返されるため、副カートリッジへ記録されるデータのデータ量が予め判明していない場合には、書込み対象データの量によっては、全てのデータを書ききれない場合がある。また、副カートリッジへファイルの追記を行う場合にも、追記するファイルのサイズによっては、副カートリッジにすべてのデータを書ききれない場合がある。そのような場合には制御部２３は、副カートリッジの折り返しの位置を変更することによって、副カートリッジに書込み対象の全てのデータを格納する。
【０１０６】
本実施形態では、正カートリッジと副カートリッジには同じ書込み対象データが記録される。ここでは、正カートリッジと副カートリッジに同時に書込み対象ファイルが書き込まれるときの動作を説明する。
【０１０７】
図１６及び図１７Ａ、１７Ｂは、副カートリッジの折り返し位置の変更について説明するための図である。図１６は、書き込み対象データが正カートリッジへ書き込まれる様子を示す。図１７Ａは、書き込み対象データが、最初に副カートリッジへ書き込まれ、書き込みの途中でＥＯＴが検出される様子を示す。図１７Ｂは、折り返し位置の変更後に、再度副カートリッジへ書込み対象データが書き込まれる様子を示す。
【０１０８】
先ず制御部２３は、図１６、図１７Ａに示すように、正ドライブ２４と副ドライブ２５にセットされた正副のカートリッジへ書込み対象ファイルの書き込みを行う。ここで、制御部２３は、ファイルの書込みとともに、書込み対象ファイルが書き込まれた正カートリッジのセクター値を、記憶部２６に記録する。
【０１０９】
その後、副ドライブ２５への書き込みが進行していくと、最終ラップへの切り替えが行われる。最終ラップへの切り替え時には、制御部２３は、切り替え前に最後に書き込んだブロックのブロックＩＤを記憶部２６に記憶しておく。尚、ブロックＩＤは、書込み対象データに含まれる各ブロックを一意に識別するための識別情報である。
【０１１０】
そして図１７Ａに示すように、制御部２３は、副カートリッジへの書込み対象データの書き込みの途中でＥＯＴを検出すると、副カートリッジへのデータの書き込みを停止する。尚、副カートリッジへの書き込みが停止しても、図１６に示すように、正カートリッジへの書込みは継続され、全ての書込み対象データが正カートリッジへ書き込まれる。
【０１１１】
図１６において、全ての書込み対象データの正カートリッジへの書き込みが終了すると、制御部２３は、副カートリッジの最終ラップへの切り替え前の位置に対応する位置に正ドライブ２４のヘッドを移動させる。具体的には、制御部２３は先ず、記憶部２６から、副カートリッジの最終ラップへの切り替え前に最後に書き込まれたブロックのブロックＩＤを取得する。そして、制御部２３は、取得したブロックＩＤをもつブロックが記憶された正カートリッジの位置に、正ドライブ２４のヘッドを位置付けする。
【０１１２】
また図１７Ｂに示すように制御部２３は、副カートリッジの最終ラップへの切り替え前に最後に書き込んだブロックが記憶された位置に、副ドライブ２５のヘッドを位置づけする。
【０１１３】
そして、制御部２３は、正カートリッジに書き込まれた書込み対象ファイルのセクター値に基づいて、副カートリッジに書込み対象ファイルの全てが書込み可能なように折り返し位置を変更する。具体的には制御部２３は、正カートリッジに書き込まれた書込み対象ファイルのセクター値の1/2の値を平均セクター値として設定して、制御部２３は折り返し位置を決定する。
【０１１４】
そして制御部２３は、位置づけを行った正ドライブ２４のヘッドの位置から、ファイルの読み出しを行う。そして、図１７Ｂに示すように制御部２３は、位置づけを行った副ドライブ２５のヘッドの位置を再書込みの開始点として、正ドライブ２４から読み出したデータに上書きする。
【０１１５】
データの再書込みにおいても、データの書き込みと同様に制御部２３は、ラップの開始位置からのセクター値が平均セクター値と等しくなるようなラップ上の位置を特定する。そして制御部２３は、特定した位置に格納されるブロック（データ）が含まれるファイルの終了位置で、ラップを切り替える。
【０１１６】
尚、折り返し位置の変更において、全ての書込み対象データの正カートリッジへの書き込み完了後に移動させるヘッドの位置は、書込み対象ファイルのうちで最初に書き込まれるファイルのＨＤＲのブロックの位置としてもよい。ただしその場合、制御部２３は、正カートリッジへの書込み処理時に、書込み対象ファイルのうちで最初に書き込まれるファイルのＨＤＲのブロックＩＤを記憶部２６に記録しておき、このブロックＩＤに基づいて、移動させるヘッドの位置を制御部は特定する。またこの場合、再書込みにおける平均セクター値は、正カートリッジに書き込まれた書込み対象ファイルのセクター値を、再書込みが開始されるラップから最終ラップまでのラップ数で割った値としてもよい。
【０１１７】
次に、本実施形態に係る制御部２３の動作フローについて、図１８〜図２７を参照して説明する。図１８は、制御部２３の全体の動作フローを図解したフローチャートである。
【０１１８】
図１８において、先ず制御部２３は、ホストからのコマンドの受信処理を行う（Ｓ１０１）。コマンドの受信処理の詳細については、後ほど図１９を用いて説明する。
【０１１９】
次に制御部２３は、各ドライブのステータスがレディか、オフラインかの監視を行う（Ｓ１０２）。このドライブのステータスの監視の処理の詳細については、後ほど図２０を用いて説明する。
【０１２０】
次に制御部２３は、副ドライブ２５のレディフラグがオンか否かを判定する（Ｓ１０３）。ここでドライブのレディフラグとは、ドライブにカートリッジが挿入されているか否か（マウントされているか否か）を示すフラグである。ドライブにカートリッジが挿入されている場合は、レディフラグの値はオンとなり、挿入されていない場合は、レディフラグの値はオフとなる。レディフラグは記憶部２６に記憶される。副ドライブ２５のレディフラグがオフであると判定された場合は（Ｓ１０３でＮｏ）、処理はＳ１０１に遷移する。
【０１２１】
Ｓ１０３においてドライブのレディフラグがオンであると判定した場合（Ｓ１０３でＹｅｓ）、制御部２３は、正ドライブ２４のライトフラグがオンか否かを判定する（Ｓ１０４）。ここで正ドライブ２４のライトフラグとは、正ドライブ２４のカートリッジへのデータの書き込みが発生したかを示すフラグである。正ドライブ２４のカートリッジへのデータの書き込みが発生した場合、ライトフラグの値はオンとなり、データの書き込みが発生していない場合、ライトフラグの値はオフとなる。ライトフラグは記憶部２６に記憶される。正ドライブ２４のライトフラグがオフであると判定された場合（Ｓ１０４でＮｏ）、処理はＳ１０１に遷移する。
【０１２２】
Ｓ１０４において正ドライブ２４のライトフラグがオンであると判定した場合（Ｓ１０４でＹｅｓ）、制御部２３は、副ドライブ２５のＥＯＴフラグがオンか否かを判定する（Ｓ１０５）。ここでＥＯＴフラグとは、副カートリッジへデータが書き込まれた結果、最終ラップの終端（ＥＯＴ）にヘッドが達したか否かを示すフラグである。すなわち、副ドライブ２５のＥＯＴフラグがオンである場合には、副ドライブ２５のテープには、データの追加ができない状態である。ＥＯＴフラグは記憶部２６に記憶される。副ドライブ２５のＥＯＴフラグがオンであると判定されると（Ｓ１０５でＹｅｓ）、処理はＳ１０１に遷移する。
【０１２３】
Ｓ１０５において、副ドライブ２５のＥＯＴフラグがオフであると判定した場合（Ｓ１０５でＮｏ）、制御部２３は、副ドライブ２５のファイル書き込み処理を開始する（Ｓ１０６）。副ドライブ２５のファイル書き込み処理については、後ほど図２３を参照して説明する。
【０１２４】
次に、Ｓ１０１の処理である、ホストからのコマンドの受信処理の動作フローの詳細について説明する。図１９は、ホストコマンド受信処理の動作フローを図解したフローチャートである。
【０１２５】
図１９において、制御部２３は先ず、ホストからコマンドを受信する（Ｓ２０１）。
次に制御部２３は、受信したコマンドを解析し、コマンドの種類を特定する（Ｓ２０２）。ここで、コマンドの種類の一例について説明する。コマンドの種類には例えば、書込み（ＷＴ（Write））コマンド、読み込み（ＲＤ（Read)）コマンド、ＳＰ（Space Block）コマンド、ＳＰＦ（Space File）コマンドなどがある。また例えばコマンドの種類には、ＢＳＰ（Back Space Block）コマンド、ＢＳＰＦ（Back Space File）コマンド、ＦｉｌｅＳｅａｒｃｈコマンドなどがある。
【０１２６】
書込みコマンドは、データを書込むコマンドである。読み込みコマンドは、データを読込むコマンドである。ＳＰコマンドは、ブロックを１つ分進むコマンドである。ＳＰＦコマンドは、テープマークで挟まれたファイルを１つ分進むコマンドである。ＢＳＰコマンドは、ブロックを１つ分後退するコマンドである。ＢＳＰＦコマンドは、テープマークで挟まれたファイルを１つ分後退するコマンドである。ＦｉｌｅＳｅａｒｃｈコマンドは、指定されたファイル名のファイルを検索するコマンドである。
【０１２７】
そして制御部２３は、受信したコマンドの種類に応じて、各コマンドに対応する処理を実行する（Ｓ２０３）。各コマンドに対応する処理のフローについては、後ほど図２１〜図２６を参照して説明する。
【０１２８】
各コマンドに対応する処理が終了すると、制御部２３は、Ｓ２０３の処理のステータスの確認を行い、ステータスに応じた処理を実行する（Ｓ２０４）。例えば、制御部２３は、Ｓ２０３の処理が正常に終了したか否かの判定において、記憶部２６に記憶された正常フラグ及び異常フラグの値を参照し、正常フラグがオンであれば、処理が正常に終了したと判定し、異常フラグがオンであれば、処理が異常終了したと判定する。制御部２３は、Ｓ２０３の処理が異常終了したと判定すると、異常が発生した旨の通知をホストに送信してもよい。そして処理は終了する。
【０１２９】
次に、Ｓ１０２の処理である、制御部２３が各ドライブのステータスがレディか、オフラインかの監視処理の動作の詳細について説明する。図２０は、各ドライブのステータスの監視処理の動作を図解したフローチャートである。
【０１３０】
図２０において、制御部２３は先ず、正ドライブ２４と副ドライブ２５のステータスを取得する（Ｓ３０１）。すなわち、制御部２３は、正ドライブ２４と副ドライブ２５の各々にテープカートリッジが挿入されている（マウントされている）か否かを示す情報を各ドライブから取得する。
【０１３１】
そして制御部２３は、Ｓ３０１で各ドライブから取得した情報に基いて、正ドライブ２４と副ドライブ２５の各々にテープカートリッジが挿入されている（マウントされている）か否かの判定を行う（Ｓ３０２）。以下の説明では、ドライブにテープカートリッジが挿入されている（マウントされている）ことをレディ状態と記し、ドライブにテープカートリッジが挿入されていない（マウントされていない）ことをオフライン状態と記す場合がある。
【０１３２】
そして副ドライブ２５がレディ状態であると判定すると（Ｓ３０２でＹｅｓ）、制御部２３は、副ドライブ２５のレディフラグをオンにする（Ｓ３０３）。そして処理は終了する。
【０１３３】
一方、Ｓ３０２において、副ドライブ２５がレディ状態でないと判定すると（Ｓ３０２でＮｏ）、制御部２３は、副ドライブ２５のレディフラグをオフにする（Ｓ３０４）。そして処理は終了する。
【０１３４】
次に、正カートリッジへのファイルの書込み処理の動作フローについて、図２１、図２２を参照して説明する。図２１は、正カートリッジへのファイルの書込み処理の処理内容を図解したフローチャートの前半である。図２２は、正カートリッジへのファイルの書込み処理の処理内容を図解したフローチャートの後半である。図２１、２２のフローでは、書き込み対象データには、ＶＯＬ、ＨＤＲ、ファイルデータ、ＥＯＦが含まれる。
【０１３５】
図２１において、書き込みコマンドを受信すると、制御部２３は先ず、書込みコマンドとともにホストから受信した書き込み対象データを、テープ装置の所定のバッファに格納する（Ｓ４０１）。
【０１３６】
次に制御部２３は、Ｓ４０１で受信した書込みコマンドの直前にホストから受信したコマンドが、副ドライブ２５に対する検索コマンドか否かを判定する（Ｓ４０２）。ここで検索コマンドとは、具体的には例えば、ＳＰコマンド、ＳＰＦコマンド、ＢＳＰコマンド、ＢＳＰＦコマンド、ＦｉｌｅＳｅａｒｃｈコマンドである。
【０１３７】
直前のコマンドが検索コマンドであると判定した場合（Ｓ４０２でＹｅｓ）、制御部２３は、副ドライブ２５に対してデータの書き込み処理を行う（Ｓ４０３）。副ドライブ２５に対するデータの書き込み処理の詳細については、後ほど図２３を参照して説明する。
【０１３８】
一方、Ｓ４０２において、直前のコマンドが検索コマンドではないと判定した場合（Ｓ４０２でＮｏ）、制御部２３は、バッファにおいて、書込み対象ファイルが格納されている領域の開始アドレスを記憶部２６に格納する（Ｓ４０４）。そして処理は図２２のＳ４０５に遷移する。
【０１３９】
図２２のＳ４０５において制御部２３は、バッファに格納された書込み対象データのうち、ドライブへ送信する送信対象のデータ（以下送信データと記す）を選択する（Ｓ４０５）。ここで選択される送信データは正ドライブ２４へ送信されると、正ドライブ２４により正カートリッジに書き込まれる。
【０１４０】
次に制御部２３は、送信データのバイト数を記憶部２６に記憶する（Ｓ４０６）。ここで記憶される送信データのバイト数は、書込み対象データのうち、現在までに送信されたデータのバイト数の累積値である。これにより制御部２３は、書き込み対象データのうち、どこまで書込みが終了したかの管理を行う。
【０１４１】
次に制御部２３は、送信データのサイズが８０バイトか否かを判定する（Ｓ４０７）。送信データのサイズが８０バイトでないと判定した場合（Ｓ４０７でＮｏ）、処理はＳ４１２に遷移する。一方、送信データのサイズが８０バイトであると判定した場合（Ｓ４０７でＹｅｓ）、制御部２３は、送信データがＶＯＬラベルか否かを判定する（Ｓ４０８）。
【０１４２】
Ｓ４０８において、送信データがＶＯＬラベルであると判定した場合（Ｓ４０８でＹｅｓ）、制御部２３は、折り返し位置を決定するための平均セクター値を算出する（Ｓ４０９）。
【０１４３】
平均セクター値を算出では、具体的には先ず制御部２３は、送信データのＶＯＬラベルが示すボリュームの書込み処理が以前に行われたか否かを判定する。送信データのＶＯＬラベルが示すボリュームの書込み処理が以前に行われたことがあると判定した場合、制御部２３は、以前に書き込まれたセクター値を取得する。そして取得したセクター値を、制御部２３は、副カートリッジの総ラップ数で割り、その結果の値を平均セクター値として算出する。
【０１４４】
さらに具体的には先ず制御部２３は、記憶部２６に記憶されたボリューム情報に、送信データのＶＯＬラベルが示すボリューム名と同じボリューム名３１を有するレコードが存在するか否かを判定する。そして、送信データのＶＯＬラベルが示すボリューム名と同じボリューム名３１を有するレコードが存在すると判定した場合、制御部２３は、ボリューム名３１に対応するボリュームセクター値３２の値を取得する。そして、制御部２３は、取得したボリュームセクター値を、副カートリッジの総ラップ数で割った値を平均セクター値として算出する。
【０１４５】
一方、送信データのＶＯＬラベルが示すボリュームの書込み処理が以前に行われていないと判定した場合、制御部２３は、テープの始端から終端までのテープ長に対応するセクター値の1/2の値を、平均セクター値として算出する。
そして処理はＳ４１３に遷移する。
【０１４６】
Ｓ４０８において、送信データがＶＯＬラベルでないと判定した場合（Ｓ４０８でＮｏ）、制御部２３は、送信データが、書込み対象データのうちで、最初に正ドライブ２４に送信されたＨＤＲラベルであるか否かを判定する（Ｓ４１０）。送信データが、書込み対象データのうちで最初に正ドライブ２４に送信されたＨＤＲラベルであると判定した場合（Ｓ４１０でＹｅｓ）、制御部２３は、送信データのブロックＩＤを記憶部２６に格納する（Ｓ４１１）。すなわち、書込み対象データのうちで最初に正ドライブ２４に送信されたＨＤＲラベルのブロックＩＤが記憶部２６に記憶される。
【０１４７】
Ｓ４１０において、送信データが書込み対象データのうちで最初に正ドライブ２４に送信されたＨＤＲラベルでないと判定した場合（Ｓ４１０でＮｏ）、制御部２３は、正ドライブ２４のライトフラグの値がオンか否かを判定する（Ｓ４１２）。正ドライブ２４のライトフラグの値がオンでない、すなわちオフであると判定した場合（Ｓ４１２でＮｏ）、処理はＳ４１３に遷移する。正ドライブ２４のライトフラグの値がオンであると判定した場合（Ｓ４１２でＹｅｓ）、処理はＳ４１４に遷移する。
【０１４８】
Ｓ４１３では、制御部２３は、正ドライブ２４のライトフラグの値をオンに設定する（Ｓ４１３）。次に制御部２３は、Ｓ４０５で選択した送信データを正ドライブ２４に送信する（Ｓ４１４）。正ドライブ２４に送信されたデータは、正ドライブ２４により正カートリッジに書き込まれる。
【０１４９】
次に制御部２３は、Ｓ４１４で正ドライブ２４に送信したデータの正カートリッジへの書込みが正常に終了したか否かを判定する（Ｓ４１５）。具体的には制御部２３は、正ドライブ２４から書込みが正常に終了したか否かを示す情報を受信することにより、正ドライブ２４に送信したデータの正カートリッジへの書込みが正常に終了したか否かを判定する。
【０１５０】
Ｓ４１５において、正カートリッジへの書込みが正常に終了しなかったと判定した場合（Ｓ４１５でＮｏ）、制御部２３は、異常フラグの値をオンに設定する（Ｓ４１７）。そして処理は終了する。
【０１５１】
一方、Ｓ４１５において、正カートリッジへの書込みが正常に終了したと判定した場合（Ｓ４１５でＹｅｓ）、制御部２３は、正常フラグの値をオンに設定する（Ｓ４１６）。
【０１５２】
次に制御部２３は、全ての書込み対象データを正ドライブに送信したか否かを判定する（Ｓ４１８）。制御部２３が、書込み対象データのいずれかを未だ正ドライブに送信していないと判定した場合（Ｓ４１８でＮｏ）、処理はＳ４０５に遷移する。一方、制御部２３が、全ての書込み対象データを正ドライブに送信したと判定した場合（Ｓ４１８でＹｅｓ）、処理は終了する。
【０１５３】
次に、副カートリッジへのファイルの書込み処理の動作フローについて説明する。図２３は、副カートリッジへのファイルの書込み処理の処理内容を図解したフローチャートである。尚、図２３のフローにおいては、図２１、２２で説明した正カートリッジへの書き込み対象ファイルの書込みが終了したのちに開始されるものとして説明する。
【０１５４】
図２３において、先ず制御部２３は、Ｓ４０４において記憶部２６に記録した、バッファに格納された書込み対象ファイルの開始アドレスを取得する（Ｓ５０１）。
【０１５５】
次に制御部２３は、Ｓ４０６において記憶部２６に記録した、正ドライブ２４への送信データのバイト数を取得する（Ｓ５０２）。
【０１５６】
次に制御部２３は、バッファに格納された書込み対象データのうち、副ドライブ２５へ送信する送信データを選択する（Ｓ５０３）。ここで選択する送信データのサイズは、正ドライブ２４と合わせるため、Ｓ５０２で取得した送信データのバイト数としてもよい。
【０１５７】
次に制御部２３は、Ｓ５０３で選択した送信データを副ドライブ２５に送信する（Ｓ５０４）。この送信データは副ドライブ２５へ送信されると、副ドライブ２５により副カートリッジに書き込まれる。
【０１５８】
次に制御部２３は、書込み対象データのうち、副カートリッジの書き込み対象ラップへ書き込んだデータのセクター値である書込みセクター値と平均セクター値との比較を行い、書込みセクター値が平均セクター値以上か否かを判定する（Ｓ５０５）。尚、平均セクター値は、Ｓ４０９またはＳ９０９で算出された値である。書込みセクター値が平均セクター値以上であると判定した場合（Ｓ５０５でＹｅｓ）、制御部２３は、Ｓ５０４で送信した送信データの書込み終了時のヘッダの位置が折り返し位置であると判定し、制御マークの書込み処理を行う（Ｓ５０６）。尚Ｓ５０５において、書込み対象ラップが最終ラップである場合にはそれ以上折り返し処理はできないので、処理はＳ５０７に遷移するものとする。制御マークの書込み処理については、後ほど図２４を参照して説明する。そして処理は、Ｓ５１３に遷移する。
【０１５９】
Ｓ５０５において、書込みセクター値が平均セクター値未満であると判定した場合（Ｓ５０５でＮｏ）、制御部２３は、Ｓ５０４において副ドライブ２５に送信した送信データの副カートリッジへの書込みが異常終了したか否かを判定する（Ｓ５０７）。具体的には制御部２３は、副ドライブ２５から書込みが正常に終了したか否かを示す情報を受信することにより、副ドライブ２５に送信した送信データの副カートリッジへの書込みが異常終了したか否かを判定する。
【０１６０】
Ｓ５０７において、副カートリッジへの書込みが異常終了したと判定した場合（Ｓ５０７でＹｅｓ）、制御部２３は、異常フラグの値をオンに設定する（Ｓ５０８）。そして処理は終了する。
【０１６１】
Ｓ５０７において、副カートリッジへの書込みが正常終了したと判定した場合（Ｓ５０７でＮｏ）、制御部２３は、副カートリッジのＥＯＴを検出したか否かを判定する（Ｓ５０９）。具体的には例えば、制御部２３は副ドライブ２５から、Ｓ５０４で送信した送信データの書き込み中に最終ラップの終端（ＥＯＴ）を検出したことを示す通知を受信し、この通知の受信を確認することによって、副カートリッジのＥＯＴを検出したと判定する。
【０１６２】
Ｓ５０９において、ＥＯＴを検出したと判定した場合（Ｓ５０９でＹｅｓ）、制御部２３は、ＥＯＴフラグをオンに設定する（Ｓ５１０）。そして処理は終了する。
【０１６３】
Ｓ５０９において、ＥＯＴを検出していないと判定した場合（Ｓ５０９でＮｏ）、制御部２３は、Ｓ５０４で送信した送信データが、書込み対象データのうちで、最初に副ドライブ２５に送信されたＨＤＲラベルであるか否かを判定する（Ｓ５１１）。送信データが、書込み対象データのうちで、最初に副ドライブ２５に送信されたＨＤＲラベルであると判定した場合（Ｓ５１１でＹｅｓ）、制御部２３は、送信データのブロックＩＤを記憶部２６に格納する（Ｓ５１２）。そして処理はＳ５１３に遷移する。
【０１６４】
Ｓ５１１において、送信データが、書込み対象データのうちで、最初に副ドライブ２５に送信されたＨＤＲラベルではないと判定された場合（Ｓ５１１でＮｏ）、処理はＳ５１３に遷移する。
【０１６５】
Ｓ５１３において、制御部２３は、送信対象データのうち、全てのデータの送信が完了したか否かを判定する（Ｓ５１３）。送信対象データのうち、全てのデータの送信が完了したと判定された場合（Ｓ５１３でＹｅｓ）、処理は終了する。送信対象データのうち、全てのデータの送信が完了していないと判定された場合（Ｓ５１３でＮｏ）、処理はＳ５０２に遷移する。
【０１６６】
次に、Ｓ５０５の処理である、制御マーク書込み処理の動作フローについて説明する。図２４は、制御マーク書込み処理の動作フローを図解したフローチャートである。
【０１６７】
図２４において、制御部２３は先ず、制御マーク書込み処理が行われる直前に副カートリッジへ書き込まれたブロックのブロックＩＤを記憶部２６に記憶する（Ｓ６０１）。
【０１６８】
次に制御部２３は、現在データの書き込みが行われているラップ（このラップを対象ラップと記す）のラップ番号が奇数か否かを判定する（Ｓ６０２）。ここで、ラップ番号が奇数のラップは、正順にデータが書き込まれるラップであり、ラップ番号が偶数のラップは、後順にデータが書き込まれるラップである。対象ラップのラップ番号が奇数であると判定した場合（Ｓ６０２でＹｅｓ）、制御部２３は、対象ラップに記録されたファイルのファイル名の情報を制御マークに含める。そしてその制御マークを、制御部２３は、直前に副カートリッジへ書き込まれたブロックの直後の対象ラップの終了位置に書き込むように、副ドライブ２５に指示する。そして処理はＳ６０５に遷移する。
【０１６９】
Ｓ６０２において、対象ラップのラップ番号が偶数であると判定した場合（Ｓ６０２でＮｏ）、制御部２３は、対象ラップ及び対象ラップの切り替え直前のラップに記憶されたファイルのファイル名を制御マークに記録する。この制御マークを、制御部２３は、直前に副カートリッジへ書き込まれたブロックの直後の位置に書き込むように副ドライブ２５に指示する（Ｓ６０４）。そして処理はＳ６０５に遷移する。
【０１７０】
Ｓ６０５において、制御部２３は、制御マーク番号をインクリメントする（Ｓ６０５）制御マークの番号は、副カートリッジへ記録される複数の制御マークのうち、各々の制御マークを一意に識別するための識別情報である。
【０１７１】
次に制御部２３は、副ドライブ２５にラップの切り替えを指示する（Ｓ６０６）。副ドライブ２５は、切り替え指示を受信すると、次のラップへ切り替えを行う。
【０１７２】
次に制御部２３は、Ｓ６０６で切り替えたラップの開始位置に、切り替え前のラップに記録されたファイルのファイル名を含む制御マークの書き込みを指示する（Ｓ６０７）。
【０１７３】
制御部２３は、制御マークの番号をインクリメントする（Ｓ６０８）。そして処理は終了する。
【０１７４】
次に、テープマーク番号を指定したファイルの検索の動作フローについて説明する。図２５は、副ドライブ２５に対するテープマーク番号を指定したファイルの検索の動作フローを図解したフローチャートである。
【０１７５】
図２５において、先ず制御部２３は、ホストから指定されたテープマーク番号を記憶部２６に格納する（Ｓ７０１）。
【０１７６】
次に制御部２３は、指定されたテープマーク番号にヘッドの位置づけを行うように、副ドライブ２５に指示する（Ｓ７０２）。そして制御部２３は、指定されたテープ番号への位置づけが正常に完了したか否かを判定する（Ｓ７０３）。すなわち制御部２３は、副ドライブ２５から、指定したテープマーク番号の位置にドライブの位置づけが正常に完了したか否かを示す通知を受信し、受信した通知に基づいて、指定されたテープ番号への位置づけが正常に完了したか否かを判定する。
【０１７７】
Ｓ７０３において、指定されたテープ番号への位置づけが正常に完了したと判定した場合（Ｓ７０３でＹｅｓ）、制御部２３は正常フラグの値をオンに設定する（Ｓ７０４）。そして処理は終了する。
【０１７８】
一方、Ｓ７０３において、指定されたテープ番号への位置づけが正常に完了していないと判定した場合（Ｓ７０３でＮｏ）、制御部２３は異常フラグの値をオンに設定する（Ｓ７０５）。そして処理は終了する。
【０１７９】
次に、ファイル名を指定したファイルの検索の動作フローについて説明する。図２６は、副ドライブ２５に対するファイル名を指定したファイルの検索の動作フローを図解したフローチャートである。
【０１８０】
図２６において、先ず制御部２３は、ホストから指定されたファイル名を記憶部２６に格納する（Ｓ８０１）。
【０１８１】
次に制御部２３は、副カートリッジのラップに書き込まれているテープの始端側の制御マークを読み込むように、副ドライブに指示する（Ｓ８０２）。副ドライブは、副カートリッジのテープの始端側の制御マークを読み込むように指示されると、テープの始端側の制御マークの読み込みを行い、読み込んだ制御マークの内容を制御部２３に送信する。制御部２３は、制御マークの読み込み指示の応答として制御マークの内容を受信すると、制御マークに含まれるファイル名に基づいて、指定されたファイルが記録されたラップを特定する（Ｓ８０３）。
【０１８２】
Ｓ８０３において、指定されたファイルが記録されたラップを特定できなかった場合（Ｓ８０３でＮｏ）、制御部２３は、副ドライブ２５にラップ切り替えの指示を送信する（Ｓ８０５）。そして処理はＳ８０２に戻る。
【０１８３】
一方Ｓ８０３において、指定されたファイルが記録されたラップを特定した場合（Ｓ８０３でＹｅｓ）、制御部２３は、特定したラップを走行させて、指定されたファイルのＨＤＲの前部にヘッドの位置づけを行うように副ドライブ２５に指示する（Ｓ８０４）。
【０１８４】
次に制御部２３は、指定されたファイルのＨＤＲの前部に位置付けが正常に完了したか否かを判定する（Ｓ８０６）。すなわち制御部２３は、副ドライブ２５から、指定したファイルのＨＤＲの前部の位置にドライブのヘッドの位置づけが正常に完了したか否かを示す通知を受信し、受信した通知に基づいて、指定されたテープ番号への位置づけが正常に完了したか否かを判定する。
【０１８５】
Ｓ８０６において、指定されたテープ番号への位置づけが正常に完了したと判定した場合（Ｓ８０６でＹｅｓ）、制御部２３は正常フラグの値をオンに設定する（Ｓ８０７）。そして処理は終了する。
【０１８６】
一方、Ｓ８０６において、指定されたテープ番号への位置づけが正常に完了していないと判定した場合（Ｓ８０６でＮｏ）、制御部２３は異常フラグの値をオンに設定する（Ｓ８０８）。そして処理は終了する。
【０１８７】
次に、テープカートリッジ排出処理の動作フローについて説明する。図２７は、テープカートリッジの排出処理時の動作フローを図解したフローチャートである。
【０１８８】
図２７において、先ず制御部２３は、副ドライブ２５のＥＯＴフラグがオフか否かを判定する（Ｓ９０１）。ＥＯＴフラグがオフであると判定した場合（Ｓ９０１でＹｅｓ）、制御部２３は、正ドライブ２４が直近で書込みを行ったブロックＩＤと、副ドライブ２５が直近で書き込みを行ったブロックＩＤとが等しいか否かを判定する（Ｓ９０２）。
【０１８９】
正ドライブ２４が直近で書込みを行ったブロックＩＤと、副ドライブ２５が直近で書き込みを行ったブロックＩＤとが等しいと判定された場合（Ｓ９０２でＹｅｓ）、処理はＳ９１２に遷移する。
【０１９０】
Ｓ９０２において、正ドライブ２４が直近で書込みを行ったブロックＩＤと、副ドライブ２５が直近で書き込みを行ったブロックＩＤとが異なると判定した場合（Ｓ９０２でＮｏ）、制御部２３は以下の処理を行う。すなわち制御部２３は、副ドライブ２５に対して、書込み対象データの追加前のブロックＩＤの位置に、ドライブのヘッドを位置づけするように指示する（Ｓ９０３）。具体的には制御部２３は、Ｓ５１２で記憶部２６に記録したブロックＩＤが書き込まれた副カートリッジの位置に、ヘッドの位置付けを行うように副ドライブ２５を制御する。
【０１９１】
そして制御部２３は、正ドライブ２４に対して、書込み対象データの追加前のブロックＩＤの位置に、ドライブのヘッドを位置づけするように指示する（Ｓ９０４）。具体的には制御部２３は、Ｓ５１２で記憶部２６に記録したブロックＩＤに対応するブロックが記録された、正カートリッジの位置に、ヘッドの位置づけを行うように正ドライブ２４を制御する。
【０１９２】
次に、制御部２３は、副ドライブ２５に対して、Ｓ９０３でヘッドの位置付けをした位置から、副カートリッジのデータを読み込むように指示する（Ｓ９０５）。読み込み指示を受信した副ドライブ２５は、読み込んだデータをテープ装置内のバッファに格納する。そして制御部２３は、正ドライブ２４に対して、Ｓ９０５で読み込んだデータを正カートリッジへ書き込むように指示する（Ｓ９０６）。そして処理はＳ９１２に遷移する。
【０１９３】
Ｓ９０１においてＥＯＴフラグがオンであると判定すると（Ｓ９０１でＮｏ）、制御部２３は、正ドライブ２４に対して、書込み対象データの追加前のブロックＩＤの位置に、ドライブのヘッドを位置づけするように指示する（Ｓ９０７）。具体的には制御部は、Ｓ４１１で記憶部２６に記録したブロックＩＤが書き込まれた正カートリッジの位置に、ヘッドの位置付けを行うように正ドライブ２５を制御する。
【０１９４】
そして制御部２３は、副ドライブ２５に対して、書込み対象データの追加前のブロックＩＤの位置に、ドライブのヘッドを位置づけするように指示する（Ｓ９０８）。具体的には制御部２３は、Ｓ４１１で記憶部２６に記録したブロックＩＤに対応するブロックが記録された、副カートリッジの位置に、ヘッドの位置づけを行うように副ドライブ２５を制御する。
【０１９５】
次に制御部２３は、書込み対象ファイルのすべてのブロックを正ドライブ２４に書き込んだときの書込みセクター値の合計値に基づいて、平均セクター値を算出する（Ｓ９０９）。具体的には例えば、制御部２３は、正カートリッジに書き込まれた書込み対象ファイルのセクター値を、再書込みが開始されるラップから最終ラップまでのラップ数で割った値を平均セクター値として算出する。
【０１９６】
次に、制御部２３は、正ドライブ２４に対して、Ｓ９０７で指示した位置から、正カートリッジのデータを読み込むように指示する（Ｓ９１０）。読み込み指示を受信した正ドライブ２４は、読み込んだデータをテープ装置内のバッファに格納する。そして制御部２３は、副ドライブ２５に対して、Ｓ９１０で読み込んだデータを副カートリッジへ書き込むように指示する（Ｓ９１１）。尚、副カートリッジへの書込み処理は、図２３で説明したものと同様である。そして処理はＳ９１２に遷移する。
【０１９７】
Ｓ９１２において、制御部２３は記憶部２６に記憶されたすべてのフラグの値をクリアする（Ｓ９１２）。すなわち制御部２３は、レディフラグ、ライトフラグ、ＥＯＴフラグ、正常フラグ、及び異常フラグの値をクリアする。そして制御部２３は、記憶部２６に記憶された、正ドライブ２４及び副ドライブ２５に対するデータブロックＩＤをクリアする（Ｓ９１３）。そして処理は終了する。
【０１９８】
尚、Ｓ９０７においては、制御部２３により指示される正ドライブ２４の位置は、Ｓ６０１で記憶部２６に記憶されたブロックＩＤのブロックが記憶された正カートリッジの位置としてもよい。その場合、Ｓ９０８において、制御部２３により指示される副ドライブ２５の位置は、Ｓ６０１で記憶部２６に記憶されたブロックＩＤのブロックが記憶された副カートリッジの位置としてもよい。また、Ｓ９０７において制御部２３が、正ドライブ２４に対して、書込み対象データの追加前のブロックＩＤの位置に、ドライブのヘッドを位置づけするように指示する場合には、Ｓ６０１は省略してもよい。
【０１９９】
次に、本実施形態に係るテープ装置の構成について説明する。図２８は、テープ装置２２のハードウェア構成の一例を示す。
【０２００】
テープ装置２２は、ＣＰＵ（Central Processing Unit）４０１、主メモリ４０２、不揮発性メモリ４０３、バッファ４０４（４０４ａ、４０４ｂ、４０４ｃ）、正ドライブ４０５、副ドライブ４０６、及び通信インタフェース４０７を含む。ＣＰＵ４０１、メモリ４０２、記憶装置４０３、及びバッファ４０４（４０４ａ、４０４ｂ、４０４ｃ）は、バスを介して接続される。通信インタフェース４０７とバッファ４０４ａ、正ドライブ２４とバッファ４０４ｂ、副ドライブ２５とバッファ４０４ｃは、それぞれバスを介して接続される。
【０２０１】
ＣＰＵ４０１は、主メモリ４０２を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、制御部２３の一部または全部の機能を提供する。
【０２０２】
主メモリ４０２は、例えば半導体メモリであり、ＲＡＭ（Random Access Memory）領域およびＲＯＭ（Read Only Memory）領域を含んで構成される。
【０２０３】
不揮発性メモリ４０３は、例えばＲＯＭやフラッシュメモリである。また、不揮発性メモリ４０３は、ハードディスクなどの記憶装置であってもよい。不揮発性メモリ４０３は、記憶部２６の機能の一部または全てを提供する。
【０２０４】
バッファ４０４ａは、ホストと通信インタフェース４０７を介して送受信されるデータを一時的に記憶する。
【０２０５】
バッファ４０４ｂは、正ドライブ２４がテープカートリッジから読み出したデータや、テープカートリッジに書き込むデータを一時的に記憶する。
【０２０６】
バッファ４０４ｃは、副ドライブ２５がテープカートリッジから読み出したデータや、テープカートリッジに書き込むデータを一時的に記憶する。
【０２０７】
正ドライブ４０５は、リードライトヘッド４０８を含む。正ドライブ４０５は、正ドライブ２４の一例である。リードライトヘッド４０８は、正ドライブ４０５にセットされたテープカートリッジのテープ媒体にデータの読み書きを行うヘッドである。リードライトヘッド４０８は、第２書込部１３の一例である。
【０２０８】
副ドライブ４０６は、リードライトヘッド４０９を含む。正ドライブ４０５は、正ドライブ２５の一例である。リードライトヘッド４０９は、副ドライブ４０６にセットされたテープカートリッジのテープ媒体にデータの読み書きを行うヘッドである。リードライトヘッド４０９は、第１書込部１１の一例である。
【０２０９】
通信インタフェース４０７は、ホストに接続し、ＣＰＵ４０１の指示に従ってネットワークやバス等を介して、ホストとの間でデータを送受信する。
【０２１０】
実施形態のプログラムは、例えば、下記の形態でテープ装置２２に提供される。
（１）不揮発性メモリ４０３に予めインストールされている。
（２）プログラムサーバ（図示せず）から通信インタフェース４０７を介して提供される。
【０２１１】
さらに、実施形態のテープ装置２２の一部は、ハードウェアで実現してもよい。或いは、実施形態のテープ装置２２は、ソフトウェアおよびハードウェアの組み合わせで実現してもよい。
【０２１２】
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０２１３】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）
第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む第１書込部と、
前記第１書込部に、第１トラックに書き込み対象情報を書き込ませる制御と、該第１書込部の位置から前記第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込ませ、前記第１書込部を第２トラックに移動させる制御を行なう書込制御部
を備えることを特徴とするテープ装置。
（付記２）
前記テープ装置は、さらに、
テープの始端と終端で折り返された複数のトラックを含む第２のテープ媒体に、前記書き込み対象情報を書き込む第２書込部と、
を備え、
前記書込制御部は、前記第１のテープ媒体への前記書き込み対象情報の書込み途中で、前記第１のテープ媒体の最終トラックの終端を検出した場合、前記第２のテープ媒体に記録された情報を、前記第１のテープ媒体に上書きする制御を行なう
ことを特徴とする付記１に記載のテープ装置。
（付記３）
前記書込制御部は、前記書き込み対象情報の前記第１のテープ媒体への書込みが完了した場合、前記第１のテープ媒体に書き込まれた情報を前記第２のテープ媒体に上書きする制御を行なう
ことを特徴とする付記１または２に記載のテープ装置。
（付記４）
前記テープ装置は、さらに、
テープ媒体に含まれる複数のトラックのうちいずれかのトラックに書き込まれた情報を読み込む読込部と、
前記読込部に前記第１トラックに記録された情報を読み込ませる制御と、前記制御情報を読み込んだ場合、前記読込部を前記第２トラックに移動させる制御を行なう読込制御部
を備えることを特徴とする付記１〜３のうちいずれか１項に記載のテープ装置。
（付記５）
前記制御情報は、各トラックに記録された情報を特定するための情報を含む
ことを特徴とする付記１〜４のうちいずれか１項に記載のテープ装置。
（付記６）
前記閾値は、前記書き込み対象情報が記憶されるテープ長を、前記第１のテープ媒体に含まれるトラック数で割った値である
ことを特徴とする付記１〜５のうちいずれか１項に記載のテープ装置。
（付記７）
前記読込制御部は、前記トラックに記録された制御情報のうち、テープの始端側に記録された前記制御情報を読み込み、読み込んだ該制御情報に基いて、前記トラックに記録された情報を特定する
ことを特徴とする付記５に記載のテープ装置。
（付記８）
テープ媒体に情報を書き込む書込処理方法であって、
前記第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む第１書込部は、第１トラックに書き込み対象情報を書き込み、該第１書込部の位置から前記第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込み、第２トラックに移動する
ことを特徴とする書込処理方法。
（付記９）
コンピュータに、
第１のテープ媒体に含まれる複数のトラックのうちいずれかのトラックに情報を書き込む第１書込部に第１トラックに書き込み対象情報を書き込ませ、該第１書込部の位置から前記第１トラックの開始位置までの長さが所定の閾値以上である場合、トラックの終端を示す制御情報を書き込ませ、前記第１書込部を第２トラックに移動させる
処理を実行させることを特徴とする書込制御プログラム。
【符号の説明】
【０２１４】
１０      テープ装置
１１      第１書込部
１２      書込制御部
１３      第２書込部
１４      読込部
１５      読込制御部
２１      メインフレーム
２２      テープ装置
２３      制御部
２４      正ドライブ
２５      副ドライブ
２６      記憶部
【図１】
2015133164.tif 000003
【図２】
2015133164.tif 000004
【図３】
2015133164.tif 000005
【図４】
2015133164.tif 000006
【図５】
2015133164.tif 000007
【図６】
2015133164.tif 000008
【図７】
2015133164.tif 000009
【図８】
2015133164.tif 000010
【図９】
2015133164.tif 000011
【図１０】
2015133164.tif 000012
【図１１】
2015133164.tif 000013
【図１２】
2015133164.tif 000014
【図１３】
2015133164.tif 000015
【図１４】
2015133164.tif 000016
【図１５】
2015133164.tif 000017
【図１６】
2015133164.tif 000018
【図１７】
2015133164.tif 000019
【図１８】
2015133164.tif 000020
【図１９】
2015133164.tif 000021
【図２０】
2015133164.tif 000022
【図２１】
2015133164.tif 000023
【図２２】
2015133164.tif 000024
【図２３】
2015133164.tif 000025
【図２４】
2015133164.tif 000026
【図２５】
2015133164.tif 000027
【図２６】
2015133164.tif 000028
【図２７】
2015133164.tif 000029
【図２８】
2015133164.tif 000030