(57)【要約】【課題】バックアップに用いる磁気テープの数の増加を抑制できる。【解決手段】テープ装置１０は、制御装置１１と複数のテープドライブ１２，１３とを有する。制御装置１１は、複数のテープドライブ１２，１３を用いて、磁気テープに対する読み書きを制御する。また、制御装置１１は、データの書き込み要求を受信すると、受信したデータを磁気テープ２１ａ，２１ｂのいずれかと磁気テープ２２の両方に書き込む。また、制御装置１１は、データの書き込み要求を受信するたびに、受信したデータ１，２をそれぞれ個別の磁気テープ２１ａ，２１ｂに書き込む一方、受信したデータ１，２を共通の磁気テープ２２に追記する。【選択図】図１
2015087906.tif 000002
【特許請求の範囲】
【請求項１】
複数のテープドライブと、
前記複数のテープドライブを用いて、磁気テープに対する読み書きを制御する制御装置と、
を有し、
前記制御装置は、データの書き込み要求を受信すると、受信したデータを正データ用磁気テープと副データ用磁気テープの両方に書き込み、データの書き込み要求を受信するたびに、受信したデータをそれぞれ個別の正データ用磁気テープに書き込む一方、受信したデータを共通の副データ用磁気テープに追記する、
ことを特徴とするテープ装置。
【請求項２】
前記制御装置は、第１のデータを第１の正データ用磁気テープと前記副データ用磁気テープとに書き込む処理の実行中に、第２のデータの書き込み要求を受信したとき、前記第２のデータを第２の正データ用磁気テープに書き込むとともに、前記第１のデータの前記副データ用磁気テープへの書き込みが完了するまで、前記第２のデータの前記副データ用磁気テープへの書き込みを中断する、
ことを特徴とする請求項１記載のテープ装置。
【請求項３】
前記制御装置は、前記第２のデータの前記第２の正データ用磁気テープへの書き込みが完了し、かつ、前記第１のデータの前記副データ用磁気テープへの書き込みが完了した後、前記第２のデータを前記第２の正データ用磁気テープから読み出して前記副データ用磁気テープに追記する、
ことを特徴とする請求項２記載のテープ装置。
【請求項４】
前記制御装置は、データの読み出し要求を受信すると、読み出しが要求されたデータが書き込まれた正データ用磁気テープからデータを読み出し、当該正データ用磁気テープからの読み出しに失敗した場合、読み出しに失敗した位置に対応するデータを前記副データ用磁気テープから読み出す、
ことを特徴とする請求項１記載のテープ装置。
【請求項５】
前記制御装置は、書き込みが要求された第１のデータを第１の正データ用磁気テープと前記副データ用磁気テープとに書き込む書き込み処理と、読み出しが要求された第２のデータを対応する第２の正データ用磁気テープから読み出す読み出し処理とを並列に実行しているとき、前記第２のデータの前記第２の正データ用磁気テープからの読み出しに失敗した場合、前記第２のデータのうち、読み出しに失敗した位置に対応するデータを前記副データ用磁気テープから読み出し、当該データの前記副データ用磁気テープからの読み出しが完了するまで、前記副データ用磁気テープへの前記第１のデータの書き込みを中断する、
ことを特徴とする請求項４記載のテープ装置。
【請求項６】
前記制御装置は、前記第２のデータの前記第２の正データ用磁気テープからの読み出しに失敗したとき、前記第１のデータの前記副データ用磁気テープへの書き込み処理を中断するとともに、前記第１のデータの前記第１の正データ用磁気テープへの書き込みを続行し、前記第１のデータの前記第１の正データ用磁気テープへの書き込みが完了し、かつ、前記第２のデータのうち、読み出しに失敗した位置に対応するデータの前記副データ用磁気テープからの読み出しが完了した後、前記第１のデータのうち、前記副データ用磁気テープへ書き込まれていない残りのデータを、前記第１の正データ用磁気テープから読み出して前記副データ用磁気テープに追記する、
ことを特徴とする請求項５記載のテープ装置。
【請求項７】
磁気テープに対するデータの読み書きを制御する記憶制御装置において、
データの書き込み要求を受信する受信部と、
受信したデータを正データ用磁気テープと副データ用磁気テープの両方に書き込み、データの書き込み要求を受信するたびに、受信したデータをそれぞれ個別の正データ用磁気テープに書き込む一方、受信したデータを共通の副データ用磁気テープに追記する制御部と、
を有することを特徴とする記憶制御装置。
【請求項８】
磁気テープに対するデータの読み書きを制御する記憶制御方法であって、
第１のデータの書き込み要求を受信すると、前記第１のデータを第１の正データ用磁気テープと副データ用磁気テープの両方に書き込み、
前記第１のデータの書き込み要求の後に、第２のデータの書き込み要求を受信したとき、前記第２のデータを第２の正データ用磁気テープに書き込むとともに、前記第２のデータを前記副データ用磁気テープにおける前記第１のデータの後に追記する、
ことを特徴とする記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ装置、記憶制御装置および記憶制御方法に関する。
【背景技術】
【０００２】
磁気テープは、可搬型の記録媒体の中でも、記憶容量が大きく、かつ、記憶容量当たりのコストが低いものとして知られている。磁気テープは、例えば、バックアップ用の記録媒体として広く使用されている。
【０００３】
磁気テープを用いたバックアップ方法の一例として、正データ用の磁気テープにデータをバックアップするとともに、正データ用の磁気テープに保存したデータと同一のデータを副データ用の磁気テープにもバックアップする方法がある。これにより、バックアップデータを復元する際、正データ用の磁気テープに異常が発生したときでも、副データ用の磁気テープからデータを復元できるため、バックアップデータを失うリスクを抑制できる。また、バックアップの際、バックアップ元の記憶領域に対応付けられた正データ用の磁気テープが用いられる。これにより、記憶領域に対応するバックアップ先の正データ用の磁気テープの管理が容易になる。
【０００４】
正データ用の磁気テープおよび副データ用の磁気テープにデータをバックアップする技術には次のようなものがある。例えば、ホスト装置より出力されるデータを同時並列的に磁気テープに記録することで、オペレーションを簡略化し、バックアップに要する時間を短縮することができるようにする技術が提案されている。
【０００５】
また、ホストサーバからのデータと該データの書き込み指示を受信し、データをディスクアレイに書き込み、ディスクアレイからテープにデータを書き込み、テープまたはデータ内容が所定の条件に該当する場合には、予備テープにもデータを書き込むことで、少ないテープ巻数でデータの保全性を高める技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２０９５０１号公報
【特許文献２】特開２０１１−１０８０９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ある記憶領域（例えば、ディスクボリューム、論理ボリューム等）のデータをバックアップする際に、記憶領域毎にそれぞれ個別の磁気テープに対してバックアップが行われる場合がある。これにより、記憶領域に対応するバックアップ先の磁気テープの管理が容易になる。
【０００８】
ここで、記憶領域毎に、１本の正データ用の磁気テープにバックアップを行うとともに、もう１本の副データ用の磁気テープにもバックアップを行って、正データ用の磁気テープと副データ用の磁気テープとが１対１で対応付けられるようにすると、バックアップに用いる磁気テープの数が増大するという問題がある。
【０００９】
１つの側面では、本発明は、バックアップに用いる磁気テープの数を抑制させるテープ装置、記憶制御装置および記憶制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、テープ装置が提供される。テープ装置は、制御装置と複数のテープドライブとを有する。制御装置は、複数のテープドライブを用いて、磁気テープに対する読み書きを制御する。また、制御装置は、データの書き込み要求を受信すると、受信したデータを正データ用磁気テープと副データ用磁気テープの両方に書き込む。また、制御装置は、データの書き込み要求を受信するたびに、受信したデータをそれぞれ個別の正データ用磁気テープに書き込む一方、受信したデータを共通の副データ用磁気テープに追記する。
【００１１】
また、１つの案では、磁気テープに対するデータの読み書きを制御する記憶制御装置が提供される。記憶制御装置は、受信部と制御部とを有する。受信部は、データの書き込み要求を受信する。制御部は、受信したデータを正データ用磁気テープと副データ用磁気テープの両方に書き込む。制御部は、データの書き込み要求を受信するたびに、受信したデータをそれぞれ個別の正データ用磁気テープに書き込む一方、受信したデータを共通の副データ用磁気テープに追記する。
【００１２】
また、１つの案では、記憶制御方法が提供される。記憶制御方法では、第１のデータの書き込み要求を受信すると、第１のデータを第１の正データ用磁気テープと副データ用磁気テープの両方に書き込む。第１のデータの書き込み要求の後に、第２のデータの書き込み要求を受信したとき、第２のデータを第２の正データ用磁気テープに書き込むとともに、第２のデータを副データ用磁気テープにおける第１のデータの後に追記する。
【発明の効果】
【００１３】
一側面では、バックアップに用いる磁気テープの数の増加を抑制できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態のテープ装置の構成例および処理例を示す図である。
【図２】第２の実施の形態のバックアップシステムの例を示す図である。
【図３】ホスト装置のハードウェア構成例を示す図である。
【図４】テープ装置のハードウェア構成例を示す図である。
【図５】テープコントローラの機能の構成例を示す図である。
【図６】ボリューム管理テーブルの例を示す図である。
【図７】アクセス管理テーブルの例を示す図である。
【図８】バックアップジョブによる複製の書き込み例を示す図である。
【図９】副媒体が容量不足の場合の複製の書き込み例を示す図である。
【図１０】複数のバックアップジョブの並列実行の例を示す図である。
【図１１】複数のバックアップジョブの並列実行の例を示す図（続き）である。
【図１２】リストアジョブによるリカバリ例を示す図である。
【図１３】リストアジョブによるリカバリ例を示す図（続き）である。
【図１４】リストアジョブによるリカバリ例を示す図（続き２）である。
【図１５】バックアップジョブとリストアジョブとの並列実行の例を示す図である。
【図１６】バックアップジョブとリストアジョブとの並列実行の例を示す図（続き）である。
【図１７】バックアップジョブとリストアジョブとの並列実行の例を示す図（続き２）である。
【図１８】バックアップ処理の例を示すフローチャートである。
【図１９】データの書き込み処理の例を示すフローチャートである。
【図２０】データの書き込み処理の例を示すフローチャート（続き）である。
【図２１】副媒体への書き込み処理の例を示すフローチャートである。
【図２２】副媒体への書き込みを再開する処理の例を示すフローチャートである。
【図２３】副媒体への書き込みを再開する処理の例を示すフローチャート（続き）である。
【図２４】リストア処理の例を示すフローチャートである。
【図２５】リストア処理の例を示すフローチャート（続き）である。
【図２６】リカバリ処理の例を示すフローチャートである。
【図２７】リカバリ処理の例を示すフローチャート（続き）である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のテープ装置の構成例および処理例を示す図である。テープ装置１０は、データの磁気テープへのバックアップを制御する装置である。テープ装置１０は、制御装置１１およびテープドライブ１２，１３を有する。
【００１６】
制御装置１１は、テープドライブ１２，１３を用いて、磁気テープに対する読み書きを制御する。また、制御装置１１は、データの書き込み要求を受信すると、受信したデータを正データ用磁気テープと副データ用磁気テープの両方に書き込む。データとしては、例えば、データをボリューム単位で管理している場合、そのボリュームのデータが挙げられる。また、データとして、データをセグメント単位で管理している場合、そのセグメントに属するデータが挙げられる。
【００１７】
正データ用磁気テープは、対応するデータを記憶するための磁気テープである。正データ用磁気テープは、書き込みを要求されたデータ毎に個別のものを用いる。これにより、バックアップしたデータの管理が容易になる。副データ用磁気テープは、正データ用磁気テープ内のデータの複製を記憶した磁気テープである。副データ用磁気テープは、正データ用磁気テープに故障が生じたときや、正データ用磁気テープが紛失したときに用いられる。
【００１８】
また、制御装置１１は、データの書き込み要求を受信するたびに、受信したデータをそれぞれ個別の正データ用磁気テープに書き込む一方、受信したデータを共通の副データ用磁気テープに追記する。“追記”は、記憶媒体に格納されているデータに続けて、新たなデータを書き込むことを意味する。
【００１９】
例えば、テープドライブ１２に磁気テープ２１ａが装着されている。磁気テープ２１ａは、正データ用磁気テープである。また、テープドライブ１３に磁気テープ２２が装着されている。磁気テープ２２は、副データ用磁気テープである。
【００２０】
このとき、制御装置１１がデータ１を受信したとする。データ１の識別子は、“＃１”である。この場合、制御装置１１は、テープドライブ１２を用いてデータ１を磁気テープ２１ａに書き込む一方、テープドライブ１３を用いてデータ１を磁気テープ２２へ書き込む。
【００２１】
その後、テープドライブ１２に磁気テープ２１ｂが装着された状態で、制御装置１１がデータ２を受信したとする。データ２の識別子は、“＃２”である。また磁気テープ２１ｂは、正データ用磁気テープである。この場合、制御装置１１は、テープドライブ１２を用いてデータ２を磁気テープ２１ａとは別の磁気テープ２１ｂに書き込む一方、テープドライブ１３を用いてデータ２を共通の磁気テープ２２へ追記する。
【００２２】
すると、図１に示すように、磁気テープ２１ａは、データ１を記憶し、磁気テープ２１ｂは、データ２を記憶する。また、磁気テープ２２は、磁気テープ２１ａ，２１ｂが個別に記憶するデータ１，２をまとめて記憶することとなる。
【００２３】
第１の実施の形態のテープ装置１０によれば、制御装置１１がデータを受信するたびに、受信したデータをそれぞれ個別の正データ用磁気テープに書き込む一方、受信したデータを共通の副データ用磁気テープに追記する。これにより、複数のデータを１つの副データ用磁気テープにまとめて記憶することができる。
【００２４】
ここで、副データ用磁気テープとして、正データ用磁気テープと同様に、データ毎に個別のものを用いるとすると、正データ用磁気テープと同じ数の副データ用磁気テープが必要となり、バックアップに用いる磁気テープの数が増大する。また、近年、磁気テープの容量が増加しており、１６００Ｇバイト分のデータの書き込みが可能なものも存在する。一方、バックアップ元のデータのデータ長は、２〜３Ｇバイトであることが多い。そのため、データ毎に個別の副データ用磁気テープを用いると、データが書き込まれた副データ用磁気テープの空き容量が大きくなり、副データ用磁気テープの記憶領域を有効に活用できなくなる。
【００２５】
上記のように、複数のデータを１つの副データ用磁気テープにまとめて記憶することで、正データ用磁気テープによりデータの管理の容易性を保ちつつ、バックアップに用いる磁気テープの数を減らすことができる。また、磁気テープの容量を有効に活用することができる。
【００２６】
さらに、テープ装置１０は、１回の書き込み要求で受信したデータを、正データ用磁気テープおよび副データ用磁気テープに書き込む。ここで、正データ用磁気テープおよび副データ用磁気テープに個別に書き込み要求をする方法では、２回の書き込み要求が必要である。一方、上記の方法では１回の書き込み要求で、正データ用磁気テープおよび副データ用磁気テープにデータが書き込まれるため、バックアップの操作を効率的に実行できる。
【００２７】
［第２の実施の形態］
図２は、第２の実施の形態のバックアップシステムの例を示す図である。バックアップシステム３は、ホスト装置１００およびテープ装置２００を有する。ホスト装置１００とテープ装置２００とは、例えば、ネットワークを介して接続されている。また、テープ装置２００には複数のホスト装置１００が接続されていてもよい。テープ装置２００は、第１の実施例のテープ装置１０の一例である。
【００２８】
ホスト装置１００は、複数の記憶装置を備えるコンピュータである。ホスト装置１００は、バックアップ先の記録媒体を指定して、所望の記憶領域（以下、“ボリューム”と記載する場合がある）のデータのバックアップをテープ装置２００へ要求する。本システムでは、１つのボリュームは、１つの記憶装置内の全記憶領域により構成されるものとするが、記憶装置上で分割されたセグメント単位により構成されてもよい。また、１つのボリュームは、記憶領域に論理的に形成された論理ボリュームであってもよい。ホスト装置１００は、リストア元の記録媒体を指定して、所望の記憶装置のデータのリストアをテープ装置２００へ要求する。
【００２９】
テープ装置２００は、後述するように、複数のテープドライブと、それらのテープドライブを用いた磁気テープに対するデータの読み書きを制御する制御装置（テープコントローラ）とを有する。テープ装置２００は、ホスト装置１００からの要求に応じて、データのバックアップやリストアを実行する。
【００３０】
バックアップ処理では、テープ装置２００は、ホスト装置１００から指定されたテープ媒体（以下、“正媒体”と記載する場合がある）に、指定されたボリュームのデータを書き込む。この際、テープ装置２００は、このバックアップデータをもう１つのテープ媒体（以下、“副媒体”と記載する）に追記する。“追記”は、テープ媒体に格納されているデータに続けて、新たなデータを書き込むことを意味する。副媒体は、ホスト装置１００から認識されない。
【００３１】
また、リストア処理とは、テープ媒体に記憶されたデータをホスト装置１００へ読み出す処理である。テープ装置２００は、ホスト装置１００からの要求に応じて、指定された正媒体のデータをホスト装置１００にリストアする。また、テープ装置２００は、正媒体からのリストアに失敗したとき、副媒体からリストアに失敗したデータを取得し、取得したデータを用いてリストアする。以下、正媒体からのリストアに失敗したときの処理を“リカバリ”と記載する場合がある。
【００３２】
テープ装置２００は、上記で説明したバックアップやリストアをジョブに実行させる。以下、１つのボリュームのバックアップ要求に応じてテープ装置２００で実行されるバックアップ処理を、“バックアップジョブ”と記載する場合がある。また、１つのボリュームのリストア要求に応じてテープ装置２００で実行されるリストア処理を、“リストアジョブ”と記載する場合がある。テープ装置２００は、複数のバックアップジョブを並列に実行する機能を有する。また、テープ装置２００は、バックアップジョブとリストアジョブを並列に実行する機能を有する。
【００３３】
図３は、ホスト装置のハードウェア構成例を示す図である。ホスト装置１００は、プロセッサ１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ（Hard Disk Drive）１０３、画像信号処理部１０４、入力信号処理部１０５、ディスクドライブ１０６および通信インタフェース１０７を有する。これらのユニットは、ホスト装置１００内でバス１０８に接続されている。
【００３４】
プロセッサ１０１は、プログラムの命令を実行する演算器を含むプロセッサであり、例えばＣＰＵ（Central Processing Unit）である。プロセッサ１０１は、ＨＤＤ１０３に記憶されているプログラムやデータの少なくとも一部をＲＡＭ１０２にロードしてプログラムを実行する。なお、プロセッサ１０１は複数のプロセッサコアを備えてもよい。また、ホスト装置１００は、複数のプロセッサを備えてもよい。また、ホスト装置１００は、複数のプロセッサまたは複数のプロセッサコアを用いて並列処理を行ってもよい。また、２以上のプロセッサの集合、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）等の専用回路、２以上の専用回路の集合、プロセッサと専用回路の組み合わせ等を「プロセッサ」と呼んでもよい。
【００３５】
ＲＡＭ１０２は、プロセッサ１０１が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、ホスト装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
【００３６】
ＨＤＤ１０３は、ＯＳ（Operating System）やファームウェアやアプリケーションソフトウェア等のソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、ホスト装置１００は、フラッシュメモリ等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００３７】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、ホスト装置１００に接続されたディスプレイ３１に画像を出力する。ディスプレイ３１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイ等を用いることができる。
【００３８】
入力信号処理部１０５は、ホスト装置１００に接続された入力デバイス３２から入力信号を取得し、プロセッサ１０１に通知する。入力デバイス３２としては、マウスやタッチパネル等のポインティングデバイス、キーボード等を用いることができる。
【００３９】
ディスクドライブ１０６は、記録媒体３３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体３３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤ等の磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）等の光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ１０６は、プロセッサ１０１からの命令に従って、記録媒体３３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００４０】
通信インタフェース１０７は、他の情報処理装置（例えば、テープ装置２００等）と通信を行う。
なお、ホスト装置１００はディスクドライブ１０６を備えていなくてもよく、専ら他の端末装置から制御される場合には、画像信号処理部１０４や入力信号処理部１０５を備えていなくてもよい。また、ディスプレイ３１や入力デバイス３２は、ホスト装置１００の筐体と一体に形成されていてもよい。
【００４１】
図４は、テープ装置のハードウェア構成例を示す図である。テープ装置２００は、正媒体ドライブ２０１ａ，２０１ｂ、副媒体ドライブ２０２、ディスプレイ２０３、ダンプスイッチ２０４およびテープコントローラ２１０を有する。テープコントローラ２１０は、プロセッサ２１１、ＲＡＭ２１２、フラッシュメモリ２１３、通信インタフェース２１４、テープインタフェース２１５、画像信号処理部２１６および入力信号処理部２１７を有する。正媒体ドライブ２０１ａ，２０１ｂは、第１の実施の形態のテープドライブ１２の一例である。副媒体ドライブ２０２は、第１の実施の形態のテープドライブ１３の一例である。
【００４２】
テープコントローラ２１０内の各ユニットは、バス２１８に接続されている。正媒体ドライブ２０１ａ，２０１ｂおよび副媒体ドライブ２０２は、テープインタフェース２１５に接続されている。ディスプレイ２０３は、画像信号処理部２１６に接続されている。入力信号処理部２１７は、ダンプスイッチ２０４に接続されている。
【００４３】
正媒体ドライブ２０１ａ，２０１ｂおよび副媒体ドライブ２０２は、装着されたテープ媒体からデータを読み取ったり、装着されたテープ媒体にデータを書き込んだりする駆動装置である。正媒体ドライブ２０１ａ，２０１ｂには、正媒体が装着され、副媒体ドライブ２０２には、副媒体が装着される。
【００４４】
ここで、本実施の形態では、例として、正媒体が装着されるテープドライブと副媒体が装着されるテープドライブとを、それぞれ“正媒体ドライブ”“副媒体ドライブ”として区別している。そして、正媒体ドライブ２０１ａ，２０１ｂはホスト装置１００から認識される一方、副媒体ドライブ２０２はホスト装置１００から認識されないものとする。これは、ユーザがホスト装置１００を操作してバックアップを要求する際に、正媒体への書き込みを実行させる正媒体ドライブだけを指定することで、副媒体への複製処理を意識せずにバックアップを要求できるようにするためである。
【００４５】
なお、テープ媒体は、例えば、ＬＴＯ（Linear Tape Open、登録商標）等の規格に準拠した磁気テープである。また、図４に示していないが、テープ媒体はテープカートリッジに収容されており、テープカートリッジにはカートリッジメモリが取り付けられている。カートリッジメモリは、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の非接触型の不揮発性メモリである。正媒体ドライブ２０１ａ，２０１ｂおよび副媒体ドライブ２０２は、カートリッジメモリに対するデータの読み書きを行う装置を有している。カートリッジメモリには、例えば、テープカートリッジに収容されたテープ媒体を管理するための管理情報が記録される。
【００４６】
ディスプレイ２０３は、プロセッサ２１１からの命令に従って副媒体に関する情報等を表示する。ディスプレイ２０３としては、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）ディスプレイ等を用いることができる。
【００４７】
ダンプスイッチ２０４は、副媒体の管理情報の表示を要求する信号（以下、“管理情報要求信号”と記載する場合がある）をテープコントローラ２１０へ入力するためのスイッチである。
【００４８】
プロセッサ２１１は、前述のプロセッサ１０１と同様に、プログラムの命令を実行する演算器を含む。ＲＡＭ２１２は、前述のＲＡＭ１０２と同様に、プロセッサ２１１が実行するプログラムやデータを一時的に記憶する揮発性メモリである。
【００４９】
フラッシュメモリ２１３は、ＯＳやファームウェアやアプリケーションソフトウェア等のプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、テープコントローラ２１０は、ＨＤＤ等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００５０】
通信インタフェース２１４は、他の情報処理装置（例えば、ホスト装置１００）と通信を行う。テープインタフェース２１５は、プロセッサ２１１からの命令に従って、正媒体ドライブ２０１ａ，２０１ｂまたは副媒体ドライブ２０２の少なくとも１つに対するデータの入出力を行う。画像信号処理部２１６は、プロセッサ２１１からの命令に従って、ディスプレイ２０３に画像を出力する。入力信号処理部２１７は、ダンプスイッチ２０４から管理情報要求信号を取得し、プロセッサ２１１に通知する。
【００５１】
なお、プロセッサ２１１に実行させるプログラムは、フラッシュメモリ２１３に他の記憶装置からコピーするようにしてもよい。
図５は、テープコントローラの機能の構成例を示す図である。なお、図５では、カートリッジメモリに記録される情報についても示す。
【００５２】
図５では例として、正媒体ドライブ２０１ａに正媒体４０ａが装着され、正媒体ドライブ２０１ｂに正媒体４０ｂが装着され、副媒体ドライブ２０２に副媒体５０が装着されているものとする。なお、正媒体４０ａ，４０ｂは、第１の実施の形態の磁気テープ２１ａ，２１ｂの一例である。副媒体５０は、第１の実施の形態の磁気テープ２２の一例である。
【００５３】
正媒体４０ａが収容されているテープカートリッジに取り付けられたカートリッジメモリ４１ａには、複製フラグ４２ａが記録される。複製フラグ４２ａは、対応する正媒体４０ａに記憶されているバックアップデータを複製した複製ボリュームが、他のテープ媒体（すなわち、副媒体）に存在するかを示す。本システムでは、バックアップデータの複製が存在する場合、複製フラグ４２ａには“ＴＲＵＥ”が設定され、バックアップデータの複製が存在しない場合、複製フラグ４２ａには“ＦＡＬＳＥ”が設定される。なお、正媒体４０ｂ等、他の正媒体に対応するカートリッジメモリにも、上記と同様の複製フラグが記録される。
【００５４】
副媒体５０が収容されているテープカートリッジに取り付けられたカートリッジメモリ５１には、ボリューム管理テーブル５２が記録される。ボリューム管理テーブル５２には、対応する副媒体５０内の複製ボリュームに対応する複製元のボリュームの格納場所に関する情報が登録される。以下、ボリューム管理テーブル５２に登録されている複製元のボリュームの格納場所に関する情報を“ボリューム管理情報”と記載する場合がある。なお、他の副媒体に対応するカートリッジメモリにも、上記と同様のボリューム管理テーブルが記録される。
【００５５】
テープコントローラ２１０は、データ一時記憶部２２０、管理情報記憶部２３０、ホスト入出力部２４０、テープ入出力部２５０およびジョブ制御部２６０を有する。データ一時記憶部２２０および管理情報記憶部２３０は、ＲＡＭ２１２またはフラッシュメモリ２１３上の記憶領域により実現される。ホスト入出力部２４０は、通信インタフェース２１４により実現される。テープ入出力部２５０は、テープインタフェース２１５により実現する。ジョブ制御部２６０は、プロセッサ２１１が所定のプログラムを実行することで実現する。
【００５６】
データ一時記憶部２２０は、バックアップやリストアするためのデータを一時的に格納する。管理情報記憶部２３０は、バックアップやリストアの状況に関する情報を格納したアクセス管理テーブルを記憶する。また、管理情報記憶部２３０は、バックアップジョブやリストアジョブの実行結果に関する情報を格納したログファイルを記憶する。ログファイルは、ホスト装置１００からアクセス可能である。バックアップシステム３のユーザは、ホスト装置１００からログファイルを参照することで、過去のバックアップやリストアの実行結果を把握できる。
【００５７】
ホスト入出力部２４０は、ホスト装置１００からコマンドを受信して、ジョブ制御部２６０に渡す。また、ホスト入出力部２４０は、コマンドに応じた処理の実行結果をジョブ制御部２６０から受け取って、ホスト装置１００へ送信する。
【００５８】
例えば、ホスト入出力部２４０は、ボリュームのバックアップを要求するコマンドをホスト装置１００から受信する。以下、バックアップを要求するコマンドを“バックアップコマンド”と記載する場合がある。バックアップコマンドには、データのバックアップ先の正媒体の識別子、その正媒体をマウントさせるテープドライブの識別子、バックアップ元のボリュームの識別子が含まれる。
【００５９】
また、ホスト入出力部２４０は、バックアップコマンドで指定された正媒体のマウントを実行した旨の通知をホスト装置１００へ送信する。“マウント”は、テープドライブ（例えば、正媒体ドライブ２０１ａ）にテープ媒体（例えば、正媒体４０ａ）を装着し、装着されたテープ媒体へアクセス可能な状態にすることを意味する。
【００６０】
その後、ホスト入出力部２４０は、データの書き込み要求コマンドをホスト装置１００から受信する。書き込み要求コマンドには、バックアップデータの複製の指示の有無を示す情報（以下、“複製指示情報”と記載する場合がある）が含まれる。例えば、複製を指示する場合、複製指示情報には“有”が設定され、複製を指示しない場合、複製指示情報には“無”が設定される。書き込み要求コマンドには、所定のデータ長分（例えば、１ブロック分）のデータが含まれる。また、この書き込み要求コマンドは、受信回数が、バックアップの対象となるボリュームのブロック数に達するまで、繰り返し受信される。
【００６１】
また、ホスト入出力部２４０は、ボリュームのリストアを要求するコマンドをホスト装置１００から受信する。以下、リストアを要求するコマンドを“リストアコマンド”と記載する場合がある。リストアコマンドには、データのリストア元の正媒体ドライブの識別子や、リストア先のボリュームの識別子が含まれる。
【００６２】
また、ホスト入出力部２４０は、リストアコマンドで指定された正媒体のマウントを実行した旨の通知をホスト装置１００へ送信する。その後、ホスト入出力部２４０は、データの読み出し要求コマンドをホスト装置１００から受信する。ホスト入出力部２４０は、読み出し要求コマンドに応じて、読み出しが要求されたデータをジョブ制御部２６０から受け取って、ホスト装置１００へ送信する。読み出し要求コマンドは、受信回数が、リストアの対象となるボリュームのブロック数に達するまで、繰り返し受信される。
【００６３】
テープ入出力部２５０は、ジョブ制御部２６０の要求に応じて、指定されたテープドライブに対してコマンドを送信することで、ジョブ制御部２６０から要求された処理を指定されたテープドライブに実行させる。また、テープ入出力部２５０は、要求された処理の実行結果をテープドライブから受信して、ジョブ制御部２６０に渡す。
【００６４】
テープ入出力部２５０がテープドライブに実行させる処理としては、例えば、テープ媒体やカートリッジメモリへのデータの書き込み、テープ媒体やカートリッジメモリからのデータの読み出し、テープ媒体のリワインド、テープ媒体のアンロード等がある。“リワインド”は、テープ媒体を指定されたアクセス位置まで巻き戻すことを意味する。“アンロード”は、テープ媒体をテープドライブから取り出すことを意味する。
【００６５】
ジョブ制御部２６０は、バックアップジョブおよびリストアジョブの実行を制御する。ジョブ制御部２６０は、ホスト入出力部２４０がバックアップコマンドを受信したとき、バックアップジョブを起動する。ジョブ制御部２６０は、ホスト入出力部２４０がリストアコマンドを受信したとき、リストアジョブを起動する。
【００６６】
ジョブ制御部２６０は、バックアップ処理部２６１およびリストア処理部２６２を有する。バックアップ処理部２６１は、バックアップコマンドの受信に応じてバックアップジョブを実行する。リストア処理部２６２は、リストアコマンドの受信に応じてリストアジョブを実行する。
【００６７】
バックアップ処理部２６１は、バックアップコマンドで指示された正媒体ドライブに、指示された正媒体をマウントさせる。マウントが実行されたら、バックアップ処理部２６１は、正媒体へのアクセスが可能である旨の通知をホスト装置１００へ送信する。以下、正媒体へのアクセスが可能である旨の通知を“アクセス可能通知”と記載する場合がある。
【００６８】
バックアップ処理部２６１は、ホスト入出力部２４０が受信した書き込み要求コマンドに含まれるデータをデータ一時記憶部２２０へ一時的に格納する。バックアップ処理部２６１は、バックアップコマンドで指定された正媒体ドライブに装着された正媒体に、テープ入出力部２５０を介して、データ一時記憶部２２０に一時的に格納したデータを書き込む。
【００６９】
このとき、バックアップ処理部２６１は、書き込み要求コマンドによる複製指示情報が“有”である場合、テープ入出力部２５０を介して、一時的に格納したデータを正媒体のデータの複製として副媒体５０に書き込む。バックアップ処理部２６１は、副媒体５０にデータの複製を書き込んだとき、書き込んだデータの位置に基づいてボリューム管理情報を生成し、生成したボリューム管理情報をボリューム管理テーブル５２に登録する。
【００７０】
ここで、他のバックアップジョブにより副媒体５０に書き込み中であったり、リストアジョブにより書き込みの中断を要求されたりした場合、バックアップ処理部２６１は、以下のように、副媒体５０にデータを書き込む。
【００７１】
まず、バックアップ処理部２６１は、書き込みを中断したときの正媒体上の位置を、アクセス管理テーブルに格納する。他のバックアップジョブにより副媒体５０に書き込み中の場合、中断したときの正媒体上の位置は、正媒体の先頭位置となる。このとき、バックアップ処理部２６１は、副媒体５０が使用可能になるまでの間、正媒体への書き込みを継続し、書き込み終了後、アクセス管理テーブルを参照し、書き込みを中断したときの位置、すなわち先頭位置まで正媒体をリワインドさせる。そして、副媒体５０が使用可能となったとき、バックアップ処理部２６１は、リワインドされた正媒体の位置からデータを読み出し、副媒体５０に書き込む。これにより、副媒体５０にデータの複製が書き込まれる。
【００７２】
リストア処理部２６２は、リストアコマンドで指示された正媒体ドライブに、指示された正媒体をマウントさせる。マウントが実行されたら、リストア処理部２６２は、アクセス可能通知をホスト装置１００へ送信する。
【００７３】
リストア処理部２６２は、読み出し要求コマンドにより指定された正媒体からデータを、テープ入出力部２５０を介して読み出し、読み出したデータをデータ一時記憶部２２０へ格納する。リストア処理部２６２は、正媒体からのデータの読み出しに失敗したとき、次のように、読み出しに失敗したデータの複製を、副媒体５０から読み出す。
【００７４】
まず、リストア処理部２６２は、読み出しに失敗したデータの位置をアクセス管理テーブルに記憶する。次に、リストア処理部２６２は、アクセス管理テーブルおよびボリューム管理テーブル５２に基づいて、読み出しに失敗したデータの複製が格納された副媒体５０の記憶領域を特定する。次にリストア処理部２６２は、テープ入出力部２５０を介して、特定した記憶領域からデータを読み出し、読み出したデータをデータ一時記憶部２２０に格納する。このとき、バックアップジョブにより副媒体５０へのデータの書き込み中の場合、そのバックアップジョブによる書き込みを中断させるよう要求する。以下、副媒体５０を使用するために書き込みを中断させる要求を、“副媒体使用要求”と記載する場合がある。
【００７５】
また、リストア処理部２６２は、データ一時記憶部２２０に格納したデータを、ホスト入出力部２４０を介して、ホスト装置１００へ送信する。
バックアップ処理部２６１およびリストア処理部２６２は、副媒体５０について排他制御を実現する機能を有する。排他制御の詳細は、図１０〜１１および図１５〜１７で後述する。
【００７６】
次に、図６〜７を用いて、バックアップシステム３が用いるテーブルについて説明する。
図６は、ボリューム管理テーブルの例を示す図である。ボリューム管理テーブル５２のレコードは、登録された順に格納される。すなわち、直近に登録されたレコードほど、最後（下）に格納されることとなる。例えば、図６のボリューム管理テーブル５２では、識別子が“ＶＯＬ９９９”であるボリュームに関する情報は、識別子が“ＶＯＬ００１”であるボリュームに関する情報より後に登録されたことを示す。
【００７７】
ボリューム管理テーブル５２は、ボリューム、開始位置、最終位置および状態の項目を有する。ボリュームの項目には、対応する副媒体５０に複製されたボリュームの識別子が設定される。開始位置の項目には、副媒体５０において対応するボリュームが記憶されている領域の開始位置を示す情報が設定される。最終位置の項目には、副媒体５０において対応するボリュームが記憶されている領域の最終位置を示す情報が設定される。バックアップシステム３では、開始位置および最終位置を１ブロック単位で表すが、バイト単位等別の単位で表してもよい。また、各媒体のブロック位置は、０ブロック目から開始するものとする。
【００７８】
状態の項目には、格納された該当ボリュームのデータの状態を示す情報が設定される。例えば、状態が“ＯＮ”の場合、そのボリュームのデータが有効であることを示す。状態が“ＯＦＦ”の場合、そのボリュームのデータが無効であることを示す。状態が“ＥＲＲ”の場合、複製の途中で書き込みに失敗したボリュームであることを示す。このとき、最終位置の項目には、例えば、位置を示す情報の後ろに“（ｌａｓｔ）”を示す情報が格納される。
【００７９】
図７は、アクセス管理テーブルの例を示す図である。アクセス管理テーブル２３１は、バックアップやリストア等のアクセスの状況に関する情報を一時的に格納する。アクセス管理テーブル２３１は、管理情報記憶部２３０に記憶されている。アクセス管理テーブル２３１は、ボリューム、書込失敗位置、リワインド位置および読出失敗位置の項目を有する。ボリュームの項目には、複製中のボリュームの識別子が設定される。
【００８０】
書込失敗位置の項目には、バックアップジョブにより副媒体５０への書き込みに失敗したときの、副媒体５０上の書き込み位置を示す情報が設定される。書き込みを失敗していない場合、書込失敗位置の項目には、“ＮＵＬＬ”が設定される。
【００８１】
リワインド位置の項目には、バックアップジョブによる副媒体５０への書き込みを再開するために用いられる、正媒体をリワインドさせる位置を示す情報が設定される。バックアップジョブにおいてリワインドする必要がない場合、リワインド位置の項目には、“ＮＵＬＬ”が設定される。
【００８２】
読出失敗位置の項目には、リストアジョブによる正媒体の読み出しに失敗したときの、正媒体上の読み出し位置を示す情報が設定される。読み出しに失敗していない場合、読出失敗位置の項目には、“ＮＵＬＬ”が設定される。
【００８３】
次に、図８〜１１を用いて、バックアップジョブについて説明する。
図８は、バックアップジョブによる複製の書き込み例を示す図である。正媒体４０ａは、例えば、正媒体ドライブ２０１ａに装着されている。副媒体５０は、副媒体ドライブ２０２に装着されている。また、副媒体５０にはボリュームが１つも記録されていないものとする。
【００８４】
この状態で、テープ装置２００は、識別子が“ＶＯＬ００１”であるボリュームから正媒体４０ａへのデータのバックアップを指示するバックアップコマンドを、ホスト装置１００から受信したとする。以下、識別子が“ＶＯＬ００１”であるボリュームを、「ボリューム“ＶＯＬ００１”」と記載する場合がある。また、ボリューム“ＶＯＬ００１”のデータは、１００ブロック分のデータである。すると、ボリューム“ＶＯＬ００１”のデータについてのバックアップジョブが、テープ装置２００により起動される。以下、ボリューム“ＶＯＬ００１”のデータのバックアップを実行するバックアップジョブを「バックアップジョブ“ＶＯＬ００１”」と記載する場合がある。また、その後に受信する書き込み要求コマンドでは、複製指示情報が“有”であるものとし、以下同様とする。
【００８５】
バックアップジョブ“ＶＯＬ００１”の実行の際、バックアップ処理部２６１は、図８の上段が示すように、正媒体４０ａと副媒体５０とに並列にボリューム“ＶＯＬ００１”のデータを書き込む。また、バックアップ処理部２６１は、副媒体５０のボリューム管理テーブル５２に、ボリューム“ＶＯＬ００１”に関するボリューム管理情報を登録する。このときの、ボリューム管理情報は、ボリュームが“ＶＯＬ００１”となり、開始位置が“０”となる。また、最終位置が、開始位置である０ブロックから１００ブロック目である“９９”となり、状態が、“ＯＮ”となる。そして、バックアップ処理部２６１は、正媒体４０ａをアンロードする。
【００８６】
次に、テープ装置２００は、識別子が“ＶＯＬ０１０”であるボリュームから正媒体４０ｂへの、データのバックアップを指示するバックアップコマンドを、ホスト装置１００から受信したとする。ボリューム“ＶＯＬ０１０”のデータは、９００ブロック分のデータである。すると、バックアップジョブ“ＶＯＬ０１０”が、テープ装置２００により起動される。
【００８７】
バックアップジョブ“ＶＯＬ０１０”の実行の際、バックアップ処理部２６１は、図８の下段が示すように、正媒体４０ｂと副媒体５０とに並列にボリューム“ＶＯＬ０１０”のデータを書き込む。このとき、図８の下段が示すように、副媒体５０に書き込まれるボリューム“ＶＯＬ０１０”のデータは、ボリューム“ＶＯＬ００１”の最終位置の次の位置から追記される。
【００８８】
また、副媒体５０にデータを書き込み後、バックアップ処理部２６１は、副媒体５０のボリューム管理テーブル５２に、ボリューム“ＶＯＬ０１０”に関するボリューム管理情報を登録する。このときの、ボリューム管理情報は、ボリュームが“ＶＯＬ０１０”となり、開始位置が直近に書き込まれたデータの最終位置の次のブロックである“１００”となる。また、最終位置が開始位置である１００ブロックから９００ブロック目である“９９９”となり、状態が“ＯＮ”となる。
【００８９】
このように、バックアップデータは、バックアップジョブにより正媒体と副媒体に並列に書き込まれる。このとき、副媒体には、直近に書き込まれたデータの後ろにバックアップデータが追記される。これにより、１つの副媒体に複数の正媒体のボリュームの複製が書き込まれ、副媒体の媒体数を減らすことができる。
【００９０】
図９は、副媒体が容量不足の場合の複製の書き込み例を示す図である。ボリューム管理テーブル５２ａは、副媒体５０ａのボリューム管理テーブルであり、ボリューム管理テーブル５２ｂは、副媒体５０ｂのボリューム管理テーブルである。図９の初期状態では、正媒体４０ｃは、正媒体ドライブ２０１ａに装着されている。副媒体５０ａは、副媒体ドライブ２０２に装着されている。
【００９１】
また、図９に示すように、副媒体５０ａには、ボリューム“ＶＯＬ００１”のデータと、ボリューム“ＶＯＬ０１０”のデータとが記憶されている。ボリューム“ＶＯＬ００１”には、１００００ブロック分のデータが記憶され、ボリューム“ＶＯＬ０１０”には、３０００ブロック分のデータが記憶されている。すなわち、副媒体５０ａには、１３０００ブロック分のデータが記憶されている。また、副媒体５０ａは、１５０００ブロック分のデータを記憶できる。一方、副媒体５０ｂには、データが書き込まれておらず、少なくとも３０００ブロック以上の空き容量が存在する。
【００９２】
この状態で、テープ装置２００は、ボリューム“ＶＯＬ９９９”から正媒体４０ｃへのデータのバックアップを指示するバックアップコマンドを、ホスト装置１００から受信したとする。また、ボリューム“ＶＯＬ９９９”のデータは、３０００ブロック分のデータである。すると、バックアップジョブ“ＶＯＬ９９９”が、テープ装置２００により起動される。
【００９３】
バックアップジョブ“ＶＯＬ９９９”の実行の際、バックアップ処理部２６１は、副媒体５０ａの空き容量がボリューム“ＶＯＬ９９９”のデータ長より小さいため、図９の上段が示すように、正媒体４０ｃおよび副媒体５０ａにはデータのバックアップをせず、副媒体の交換を要求するメッセージをディスプレイ２０３に表示する。
【００９４】
その後、副媒体ドライブ２０２に装着する副媒体が副媒体５０ｂに交換された状態で、テープ装置２００は、再度、図９の上段で説明したときと同様のバックアップコマンドをホスト装置１００から受信したとする。すると、再度、バックアップジョブ“ＶＯＬ９９９”が、テープ装置２００により起動される。
【００９５】
副媒体５０ｂの空き容量がボリューム“ＶＯＬ９９９”のデータ長以上であるため、バックアップ処理部２６１は、正媒体４０ｃおよび副媒体５０ｂに、ボリューム“ＶＯＬ９９９”のデータを並列に書き込む。
【００９６】
また、バックアップ処理部２６１は、副媒体５０ｂのボリューム管理テーブル５２ｂに、ボリューム“ＶＯＬ９９９”のボリューム管理情報を登録する。このときのボリューム管理情報は、ボリュームが“ＶＯＬ９９９”となり、開始位置が“０”となる。また、最終位置が開始位置である０ブロックから３０００ブロック目である“２９９９”となり、状態が“ＯＮ”となる。
【００９７】
図１０は、複数のバックアップジョブの並列実行の例を示す図である。正媒体４０ａは、正媒体ドライブ２０１ａに装着されており、正媒体４０ｂは、正媒体ドライブ２０１ｂに装着されている。副媒体５０は、副媒体ドライブ２０２に装着されている。
【００９８】
この状態で、テープ装置２００は、ボリューム“ＶＯＬ００１”から正媒体４０ａへのデータのバックアップを指示するバックアップコマンドを、ホスト装置１００から受信したとする。すると、バックアップジョブ“ＶＯＬ００１”がテープ装置２００により起動される。また、ボリューム“ＶＯＬ００１”のデータのバックアップが終了する前に、ボリューム“ＶＯＬ００２”から正媒体４０ｂへのデータのバックアップを指示するバックアップコマンドを、ホスト装置１００から受信したとする。すると、バックアップジョブ“ＶＯＬ００２”がテープ装置２００により起動される。ボリューム“ＶＯＬ００１”のデータは、１００ブロック分のデータであり、ボリューム“ＶＯＬ００２”のデータは、９００ブロック分のデータである。
【００９９】
この場合、バックアップジョブ“ＶＯＬ００１”は次のように実行される。図１０に示すように、バックアップ処理部２６１は、まず、正媒体４０ａおよび副媒体５０へボリューム“ＶＯＬ００１”のデータを並列に書き込む。そして、ボリューム“ＶＯＬ００１”のデータの書き込み終了後、バックアップ処理部２６１は、正媒体４０ａをアンロードする。また、バックアップ処理部２６１は、ボリューム管理テーブル５２に、ボリューム“ＶＯＬ００１”のボリューム管理情報を登録する。このときのボリューム管理情報は、ボリュームが“ＶＯＬ００１”となり、開始位置が“０”となる。また、最終位置が開始位置である０ブロックから１００ブロック目である“９９”となり、状態が“ＯＮ”となる。
【０１００】
一方、バックアップ処理部２６１は、バックアップジョブ“ＶＯＬ００２”を実行しようとしたとき、図１０に示すように、副媒体５０がバックアップジョブ“ＶＯＬ００１”に使用されているため、正媒体４０ｂと副媒体５０とに並列にボリューム“ＶＯＬ００２”のデータを書き込むことができない。この場合、バックアップジョブ“ＶＯＬ００２”は次のように実行される。
【０１０１】
バックアップ処理部２６１は、まず、正媒体４０ｂにのみボリューム“ＶＯＬ００２”のデータを書き込む。また、バックアップ処理部２６１は、アクセスの状態に関する情報をアクセス管理テーブル２３１へ登録する。登録されるアクセスの状態に関する情報は、ボリュームが“ＶＯＬ００２”となり、書込失敗位置および読出失敗位置は“ＮＵＬＬ”となり、リワインド位置は“０”となる。
【０１０２】
バックアップ処理部２６１は、ボリューム“ＶＯＬ００２”のデータを正媒体４０ｂに書き込み終えたら、正媒体４０ｂをアンロードせずに、正媒体４０ｂを、アクセス管理テーブル２３１に登録したリワインド位置、すなわち先頭位置へリワインドする。
【０１０３】
図１１は、複数のバックアップジョブの並列実行の例を示す図（続き）である。図１１に示すように、バックアップジョブ“ＶＯＬ００２”では、バックアップ処理部２６１は、次に、正媒体４０ｂに書き込まれたデータを読み出して、副媒体５０に追記する。このとき、ボリューム“ＶＯＬ００２”のデータは、直近に書き込まれたデータ（すなわち、ボリューム“ＶＯＬ００１”のデータ）の最終位置の次のブロックにリワインド位置を加算したブロック（すなわち、“９９＋１＋０＝１００”ブロック目）から追記される。そして、正媒体４０ｂのデータを副媒体５０に書き込み終えたら、バックアップ処理部２６１は、正媒体４０ｂをアンロードする。
【０１０４】
また、バックアップ処理部２６１は、ボリューム管理テーブル５２に、ボリューム“ＶＯＬ００２”のボリューム管理情報を登録する。このときのボリューム管理情報は、ボリュームが、“ＶＯＬ００２”となり、開始位置が、直近に書き込まれたデータの最終位置の次のブロックである“１００”となる。また、最終位置が、開始位置から９００ブロック目である“９９９”となり、状態が、“ＯＮ”となる。
【０１０５】
このように、複数のバックアップジョブが並列に実行される場合、副媒体５０に対して排他制御が実行される。これにより、先に実行されるバックアップジョブと、その途中から実行されるバックアップジョブとを、正常に完了することができる。
【０１０６】
また、上記の例において、バックアップジョブ“ＶＯＬ００２”での副媒体５０への書き込みは、正媒体４０ｂが先頭位置までリワインドされ、正媒体４０ｂから読み出されたデータが副媒体５０へ書き込まれることで行われる。これにより、例えば、副媒体５０へ書き込むべきボリューム“ＶＯＬ００２”のすべてのデータを、テープ装置２００内の記憶領域に保持しておく必要がなくなる。したがって、テープ装置２００が備えるべき記憶容量を削減することができる。
【０１０７】
次に、図１２〜１７を用いて、リストアジョブについて説明する。
図１２は、リストアジョブによるリカバリ例を示す図である。図１２において、正媒体４０ａは、正媒体ドライブ２０１ａに装着されており、副媒体５０は、副媒体ドライブ２０２に装着されている。
【０１０８】
正媒体４０には、ボリューム“ＶＯＬ００２”のデータが格納されている。副媒体５０には、ボリューム“００１”のデータおよびボリューム“ＶＯＬ００２”のデータが書き込まれた状態である。ボリューム“ＶＯＬ００１”のデータは、１００ブロック分のデータであり、ボリューム“ＶＯＬ００２”のデータは、９００ブロック分のデータである。また、ボリューム管理テーブル５２には、ボリュームが“ＶＯＬ００１”であり、開始位置が“０”であり、最終位置が“９９”であり、状態が“ＯＮ”であるレコードが格納されている。さらに、ボリューム管理テーブル５２には、ボリュームが“ＶＯＬ００２”であり、開始位置が“１００”であり、最終位置が“９９９”であり、状態が“ＯＮ”であるレコードが格納されている。
【０１０９】
この状態で、テープ装置２００は、正媒体４０ａからボリューム“ＶＯＬ００２”のデータをリストアするように指示するリストアコマンドを、ホスト装置１００から受信したとする。すると、ボリューム“ＶＯＬ００２”のデータをリストアするためのリストアジョブがテープ装置２００により起動される。以下、ボリューム“ＶＯＬ００２”のデータをリストアするためのリストアジョブを「リストアジョブ“ＶＯＬ００２”」と記載する場合がある。リストアジョブ“ＶＯＬ００２”の実行の際、リストア処理部２６２は、正媒体４０ａからボリューム“ＶＯＬ００２”のデータを読み出し、読み出したデータをホスト装置１００へ送信することを、１ブロック単位で繰り返す。
【０１１０】
ここで、リストアジョブ“ＶＯＬ００２”の実行中に、リストア処理部２６２が、正媒体４０ａの２００ブロック目からの読み出しに失敗したとする。このとき、まず、リストア処理部２６２は、アクセスの状態に関する情報をアクセス管理テーブル２３１へ登録する。登録されるアクセスの状態に関する情報は、ボリュームが“ＶＯＬ００２”となり、書込失敗位置およびリワインド位置は“ＮＵＬＬ”となり、読出失敗位置は“２００”となる。
【０１１１】
図１３は、リストアジョブによるリカバリ例を示す図（続き）である。次に、リストア処理部２６２は、アクセス管理テーブル２３１に登録した読出失敗位置と、ボリューム“ＶＯＬ００２”に関する情報とに基づいて、読み出しに失敗したデータの複製が格納されている副媒体５０上の位置を算出する。以下、読み出しに失敗したデータの複製が格納されている副媒体上の位置を“リカバリ位置”と記載する場合がある。図１３に示すように、ボリューム“ＶＯＬ００２”のボリューム管理情報は、ボリューム管理テーブル５２に登録されている。
【０１１２】
この場合、読出失敗位置が“２００”で、副媒体５０上のボリューム“ＶＯＬ００２”の記憶領域の開始位置が“１００”であるため、リカバリ位置として“３００”が算出される。
【０１１３】
そして、リストア処理部２６２は、算出したリカバリ位置から対応するブロックのデータを読み出し、読み出したデータをホスト装置１００へ送信する。以下、上記のように、正媒体の読み出しに失敗したデータの複製を副媒体から読み出し、読み出したデータをホスト装置１００へ送信することを“リカバリ”と記載する場合がある。
【０１１４】
図１４は、リストアジョブによるリカバリ例を示す図（続き２）である。リストア処理部２６２は、副媒体５０からのリカバリを実行後、正媒体４０ａにおける読出失敗位置の次のブロックから、データのリストアを再開する。以下、リストアを再開する正媒体上のブロック位置を“再開位置”と記載する場合がある。また、この場合、正媒体４０ａにおけるリストアジョブ“ＶＯＬ００２”の再開位置は、“２００＋１＝２０１”ブロック目となる。
【０１１５】
図１２〜１４で説明したように、リストアジョブでは、正媒体からのデータのリストアに失敗したとき、リストアするボリュームのボリューム管理情報と、読出失敗位置とに基づき算出された副媒体上のリカバリ位置から、読み出しに失敗したデータがリカバリされる。
【０１１６】
図１５は、バックアップジョブとリストアジョブとの並列実行の例を示す図である。図１５において、正媒体４０ａは、正媒体ドライブ２０１ａに装着されており、正媒体４０ｂは、正媒体ドライブ２０１ｂに装着されている。副媒体５０は、副媒体ドライブ２０２に装着されている。
【０１１７】
正媒体４０ｂおよび副媒体５０には、ボリューム“ＶＯＬ００２”のデータが格納されている。ボリューム“ＶＯＬ００２”のデータは、１０００ブロック分のデータである。また、ボリューム管理テーブル５２には、ボリュームが“ＶＯＬ００２”であり、開始位置が“０”であり、最終位置が“９９９”であり、状態が“ＯＮ”であるレコードが格納されている。
【０１１８】
この状態で、テープ装置２００は、ボリューム“ＶＯＬ００１”から正媒体４０ａへのデータのバックアップを指示するバックアップコマンドを、ホスト装置１００から受信したとする。すると、バックアップジョブ“ＶＯＬ００１”がテープ装置２００により起動される。また、正媒体４０ｂからボリューム“ＶＯＬ００２”のデータをリストアするように指示するリストアコマンドを、ホスト装置１００から受信したとする。すると、リストアジョブ“ＶＯＬ００２”がテープ装置２００により起動される。
【０１１９】
すると、バックアップジョブ“ＶＯＬ００１”の実行の際に、バックアップ処理部２６１は、まず、正媒体４０ａおよび副媒体５０へボリューム“ＶＯＬ００１”のデータを並列に書き込む。また、リストアジョブ“ＶＯＬ００２”は、バックアップジョブ“ＶＯＬ００１”と並行して実行され、リストア処理部２６２は、正媒体４０ｂからデータをリストアする。
【０１２０】
ここで、リストア処理部２６２は、ボリューム“ＶＯＬ００１”のデータのバックアップが終了する前に、正媒体４０ｂの２００ブロック目で読み出しに失敗したとする。このとき、まず、リストア処理部２６２は、アクセスの状態に関する情報をアクセス管理テーブル２３１へ登録する。登録されるアクセスの状態に関する情報は、ボリュームが“ＶＯＬ００２”となり、書込失敗位置およびリワインド位置は“ＮＵＬＬ”となり、読出失敗位置は“２００”となる。次に、リストア処理部２６２は、リカバリ元の副媒体５０を使用しているバックアップジョブ“ＶＯＬ００１”に対する副媒体使用要求を出力する。
【０１２１】
バックアップジョブ“ＶＯＬ００１”を実行しているバックアップ処理部２６１は、副媒体使用要求に応じて、副媒体５０へのデータの書き込み（すなわち、副媒体５０の使用）を中断する。バックアップ処理部２６１は、このときの正媒体４０の書き込み位置をリワインド位置として、アクセス管理テーブル２３１へ登録する。具体的には、データの書き込みを中断したときの正媒体４０ａの書き込み位置を“２００”とすると、登録されるアクセスの状態に関する情報は、ボリュームが“ＶＯＬ００１”となり、書込失敗位置および読出失敗位置は“ＮＵＬＬ”となり、リワインド位置は“２００”となる。
【０１２２】
その後、バックアップ処理部２６１は、正媒体４０ａへのバックアップを継続し、正媒体４０ａへの書き込みが終了したとき、正媒体４０ａを登録したリワインド位置へリワインドする。
【０１２３】
図１６は、バックアップジョブとリストアジョブとの並列実行の例を示す図（続き）である。リストア処理部２６２は、書き込みを中断した位置（以下、“中断位置”と記載する場合がある）からリカバリ位置へ、副媒体５０のアクセス位置を移動させる。リカバリ位置は、図１３で説明した方法と同様に算出する。図１６に示すように、読出失敗位置が“２００”で、副媒体５０上のボリューム“ＶＯＬ００２”の記憶領域の開始位置が“０”であるため、リカバリ位置は“２００”となる。そして、リストア処理部２６２は、算出したリカバリ位置からデータをリカバリする。
【０１２４】
図１７は、バックアップジョブとリストアジョブとの並列実行の例を示す図（続き２）である。バックアップ処理部２６１は、リストアジョブ“ＶＯＬ００２”がリカバリを終了したら（すなわち、副媒体５０の使用を終了したら）、リカバリ位置から中断位置へ副媒体５０のアクセス位置を移動させる。
【０１２５】
中断位置は、バックアップ対象のボリュームの開始位置にリワインド位置を加算することで算出する。バックアップ対象のボリュームの開始位置は、直近に副媒体５０に書き込まれたボリュームのデータの最終位置の次の位置である。図１７では、ボリューム“ＶＯＬ００２”のデータが直近に格納されているため、“９９９＋１＋２００＝１２００”が中断位置として算出される。
【０１２６】
そして、バックアップ処理部２６１は、正媒体４０ａのリワインド位置からボリューム“ＶＯＬ００１”のデータを読み出し、中断位置から副媒体５０への書き込みを再開する。
【０１２７】
そして、バックアップ処理部２６１は、ボリューム管理テーブル５２に、ボリューム“ＶＯＬ００１”のボリューム管理情報を登録する。このときのボリューム管理情報は、ボリュームが、“ＶＯＬ００１”となり、開始位置が、直近に格納されたデータの最終位置の次のブロックである“１０００”となる。また、ボリューム“ＶＯＬ００１”のデータは、１０００ブロック分のデータであるとすると、最終位置が、開始位置から１０００ブロック目である“１９９９”となり、状態が“ＯＮ”となる。
【０１２８】
図１６〜１７で説明したように、バックアップジョブによる副媒体５０への書き込み中に、リストアジョブによるリカバリが開始されたとき、バックアップジョブを実行しているバックアップ処理部２６１は、リストアジョブによるリカバリが終了するまで、副媒体５０への書き込みを中断する。これにより、リストアジョブを優先的に実行させることができる。
【０１２９】
また、上記の例において、バックアップジョブ“ＶＯＬ００１”での副媒体５０への中断位置からの書き込みは、正媒体４０ｂにおけるリワインド位置から読み出されたデータが副媒体５０へ書き込まれることで行われる。これにより、例えば、副媒体５０へ書き込むべきボリューム“ＶＯＬ００２”の残りのデータのすべてを、テープ装置２００内の記憶領域に保持しておく必要がなくなる。したがって、テープ装置２００が備えるべき記憶容量を削減することができる。
【０１３０】
次に、図１８〜２３を用いて、バックアップジョブの処理例について、フローチャートを用いて説明する。図１８〜２３では、正媒体ドライブ２０１ａには、正媒体４０ａが装着され、正媒体ドライブ２０１ｂには、正媒体４０ｂが装着され、副媒体ドライブ２０２には、副媒体５０が装着されているものとする。また、図１８〜２３では、バックアップコマンドでは、バックアップ先のドライブとして、正媒体ドライブ２０１ａが指定されたものとする。
【０１３１】
また、以下の処理では“副媒体使用情報”が参照される。副媒体使用情報は、バックアップジョブおよびリストアジョブで共通に使用される情報である。副媒体使用情報には、副媒体を使用して実行されているジョブ（バックアップジョブまたはリストアジョブ）が書き込みまたは読み出しの対象にしているボリュームの識別子が設定される。また、副媒体がいずれのジョブでも使用されていない場合には、副媒体使用情報には“ＮＵＬＬ”が設定される。副媒体使用情報は、例えば、管理情報記憶部２３０の記憶領域に格納されている。
【０１３２】
図１８は、バックアップ処理の例を示すフローチャートである。図１８で説明する処理は、ホスト装置１００からバックアップコマンドを受信したことに応じて実行される。バックアップコマンドには、データのバックアップ先の正媒体ドライブの識別子や、バックアップ元のボリュームの識別子が含まれる。以下、バックアップコマンドやリストアコマンドにより指定されるボリュームを“指示ボリューム”と記載する場合がある。
【０１３３】
以下、図１８に示す処理をステップ番号に沿って説明する。
（Ｓ１１）バックアップ処理部２６１は、バックアップコマンドで指定された正媒体ドライブ２０１ａに、正媒体４０ａをマウントする。
【０１３４】
（Ｓ１２）バックアップ処理部２６１は、副媒体使用情報に“ＮＵＬＬ”が設定されているか判定する。すなわち、バックアップ処理部２６１は、副媒体５０が他のジョブにより使用されているか判定する。
【０１３５】
副媒体使用情報に“ＮＵＬＬ”が設定されている場合（他のジョブに使用されていない場合）、処理をステップＳ１３へ進める。副媒体使用情報に“ＮＵＬＬ”が設定されていない場合（他のジョブに使用されている場合）、処理をステップＳ１５へ進める。
【０１３６】
（Ｓ１３）バックアップ処理部２６１は、副媒体使用情報に、バックアップコマンドで指示された指示ボリュームの識別子を設定する。これにより、自己のジョブによる副媒体５０の使用中に、他のジョブによって副媒体５０へアクセスされなくなる。
【０１３７】
（Ｓ１４）バックアップ処理部は、副媒体５０のアクセス位置を“最終書き込み位置＋１”に移動する。“最終書き込み位置”は、直近で副媒体５０に書き込まれたデータの最終位置を意味する。直近で副媒体５０に書き込まれたデータの最終位置は、ボリューム管理テーブル５２の最後のレコードの最終位置を参照することで得られる。
【０１３８】
（Ｓ１５）バックアップ処理部２６１は、ホスト入出力部２４０を介してアクセス可能通知をホスト装置１００へ送信する。
（Ｓ１６）バックアップ処理部２６１は、テープ入出力部２５０を介して、正媒体４０ａおよび副媒体５０に指示ボリュームのデータを書き込む。詳細は、図１９〜２０で説明する。
【０１３９】
（Ｓ１７）バックアップ処理部２６１は、正媒体４０ａをアンマウントする。
（Ｓ１８）バックアップ処理部２６１は、当該バックアップジョブに対応するアクセス管理情報をアクセス管理テーブル２３１から削除する。“アクセス管理情報”は、アクセス管理テーブル２３１に登録されるアクセスの状況に関する情報を意味する。具体的には、バックアップ処理部２６１は、アクセス管理テーブル２３１から指示ボリュームが含まれるレコードを検索し、検索したレコードを削除する。
【０１４０】
（Ｓ１９）バックアップ処理部２６１は、副媒体使用情報に“ＮＵＬＬ”を設定する。これにより、他のジョブによる副媒体５０の使用が可能な状態となる。
図１９は、データの書き込み処理の例を示すフローチャートである。図１９〜２０の処理は、前述のステップＳ１６で実行される。以下、図１９〜２０に示す処理をステップ番号に沿って説明する。
【０１４１】
（Ｓ１６１）バックアップ処理部２６１は、ホスト入出力部２４０を介して書き込み要求コマンドをホスト装置１００から受信する。書き込み要求コマンドには、バックアップの対象となるボリューム内の１ブロック分のデータが含まれる。また、書き込み要求コマンドには、複製指示情報が含まれる。
【０１４２】
（Ｓ１６２）バックアップ処理部２６１は、受信した書き込み要求コマンドに含まれる書き込みデータをデータ一時記憶部２２０に一時的に格納する。
（Ｓ１６３）バックアップ処理部２６１は、テープ入出力部２５０を介して、一時的に格納したデータを正媒体４０ａへ書き込む。
【０１４３】
（Ｓ１６４）バックアップ処理部２６１は、一時的に格納したデータを副媒体５０へ書き込む。詳細は、図２１で説明する。
（Ｓ１６５）バックアップ処理部２６１は、ステップＳ１６４の処理が副媒体５０の残量不足により終了したか判定する。残量不足により終了した場合処理をステップＳ１６８へ進める。残量不足により終了しなかった場合、処理をステップＳ１６６へ進める。
【０１４４】
（Ｓ１６６）バックアップ処理部２６１は、ステップＳ１６３において、正媒体４０ａへの書き込みが正常終了したか判定する。正常終了した場合、処理をステップＳ１６７へ進める。正常終了しなかった場合、処理をステップＳ１６８へ進める。
【０１４５】
（Ｓ１６７）バックアップ処理部２６１は、ボリュームの全ブロック数分のデータを書き込み済か判定する。全ブロック数分のデータを書き込み済の場合、処理をステップＳ１７１へ進める。全ブロック数分のデータを書き込み済でない場合、処理をステップＳ１６１へ進める。バックアップシステム３では、各ボリュームのブロック数は、予め規定されている。例えば、ボリュームのブロック数を示す情報は、管理情報記憶部２３０の記憶領域に予め格納されているものとする。
【０１４６】
なお、バックアップコマンドにボリュームのブロック数を示す情報を含むようにし、バックアップ処理部２６１は、そのブロック数分の書き込み要求コマンドを受信するようにしてもよい。
【０１４７】
（Ｓ１６８）バックアップ処理部２６１は、ホスト入出力部２４０を介してバックアップ失敗通知をホスト装置１００へ送信する。
（Ｓ１６９）バックアップ処理部２６１は、バックアップジョブを異常終了させる。そして、処理を終了する。
【０１４８】
図２０は、データの書き込み処理の例を示すフローチャート（続き）である。
（Ｓ１７１）バックアップ処理部２６１は、書き込み要求コマンドで複製指示がされているか判定する。具体的には、バックアップ処理部２６１は、図１８のステップＳ１６１で受信した書き込み要求コマンドに含まれる複製指示情報が“有”であるか判定する。複製指示がされている場合、処理をステップＳ１７２へ進める。複製指示がされていない場合、処理を終了する。
【０１４９】
（Ｓ１７２）バックアップ処理部２６１は、リワインド位置がアクセス管理テーブル２３１に登録されているか判定する。すなわち、バックアップ処理部２６１は、副媒体５０への書き込みを中断したか判定する。
【０１５０】
具体的には、まず、バックアップ処理部２６１は、指示ボリュームを含むレコードをアクセス管理テーブル２３１から検索する。レコードが検索され、かつ、検索したレコードに含まれるリワインド位置が“ＮＵＬＬ”でなければ、リワインド位置が登録されていると判断できる。なお、リワインド位置が“ＮＵＬＬ”でない場合には、リワインド位置が“０”である場合も含まれる。
【０１５１】
リワインド位置が登録されている場合、処理をステップＳ１７３へ進める。リワインド位置が登録されていない場合、処理を終了する。
（Ｓ１７３）バックアップ処理部２６１は、副媒体５０への書き込みを再開する。この処理は、ボリュームの途中から、あるいは先頭からのデータを、副媒体５０へ書き込むことができなかった場合に、正媒体４０ａへの書き込み完了後に実行されるものである。詳細は、図２２〜２３で説明する。
【０１５２】
なお、ステップＳ１７３の書き込み処理が行われる場合でも、バックアップ処理部２６１は、ステップＳ１６７の実行後からステップＳ１７３の実行前までのいずれかの段階で、ホスト装置１００に対してバックアップジョブの完了通知を行ってもよい。この場合、テープ装置２００は、バックグラウンドで副媒体５０への残りの書き込み処理を実行する。ホスト装置１００は、バックグラウンドで副媒体５０への書き込み処理が行われているにもかかわらず、要求したバックアップジョブが終了したと判断して次の処理を行うことができる。このため、テープ装置２００側での副媒体５０への書き込み待ちの発生が、ホスト装置１００を用いた業務に与える影響を低減できる。
【０１５３】
（Ｓ１７４）バックアップ処理部２６１は、書込失敗位置がアクセス管理テーブル２３１に登録されているか判定する。すなわち、バックアップ処理部２６１は、ステップＳ１６４またはステップＳ１７３での書き込み処理で副媒体５０への書き込みに失敗したか判定する。
【０１５４】
具体的には、まず、バックアップ処理部２６１は、指示ボリュームを含むレコードをアクセス管理テーブル２３１から検索する。レコードが検索され、かつ、検索したレコードに含まれる書込失敗位置が“ＮＵＬＬ”でなければ、書込失敗位置が登録されていると判断できる。
【０１５５】
書込失敗位置が登録されている場合、処理をステップＳ１７６へ進める。書込失敗位置が登録されていない場合、処理をステップＳ１７５へ進める。
（Ｓ１７５）バックアップ処理部２６１は、正媒体４０ａの複製フラグ４２ａに“ＴＲＵＥ”を設定する。
【０１５６】
（Ｓ１７６）バックアップ処理部２６１は、副媒体５０への書き込みに失敗したことを示す情報および書込失敗位置を示す情報等の情報をログファイルに記録する。ログファイルはホスト装置１００から参照可能であるため、ホスト装置１００を操作する管理者等がログファイルを参照することで、バックアップの状況を把握できる。なお、ログファイルには、書き込み失敗日時を示す情報が記録されていてもよい。
【０１５７】
（Ｓ１７７）バックアップ処理部２６１は、指示ボリュームを書き込んだ位置についてボリューム管理情報を生成する。このとき、バックアップ処理部２６１は、ボリューム管理情報において、ボリュームの項目に指示ボリュームの識別子を設定し、開始位置の項目に“最終書き込み位置＋１”を設定する。最終書き込み位置は、図１８のステップＳ１４と同様の方法で取得する。
【０１５８】
また、バックアップ処理部２６１は、書込失敗位置が登録されていない場合、最終位置の項目に“開始位置＋バックアップ元のボリュームのデータ長−１”を設定し、状態の項目に“ＯＮ”を設定する。バックアップ元のボリュームのデータ長は、バックアップコマンドに含まれているボリュームのデータ長を参照する。
【０１５９】
書込失敗位置が登録されていない場合、最終位置の項目に書込失敗位置と“（ｌａｓｔ）”とを結合した情報を設定し、状態の項目に“ＥＲＲ”を設定する。
バックアップ処理部２６１は、生成したボリューム管理情報を副媒体５０のボリューム管理テーブル５２に登録する。このとき、既にボリューム管理テーブル５２に指示ボリュームを含むレコードが存在する場合、そのレコードの状態を“ＯＦＦ”に更新して無効化する。
【０１６０】
図２１は、副媒体への書き込み処理の例を示すフローチャートである。図２１の処理は、前述のステップＳ１６４で実行される。以下、図２１に示す処理をステップ番号に沿って説明する。
【０１６１】
（Ｓ２０１）バックアップ処理部２６１は、図２０のステップＳ１７１と同様に、書き込み要求コマンドで複製指示がされているか判定する。複製指示がされている場合、処理をステップＳ２０２へ進める。複製指示がされていない場合、処理をステップＳ２０３へ進める。
【０１６２】
（Ｓ２０２）バックアップ処理部２６１は、書込失敗位置がアクセス管理テーブル２３１に登録されているか判定する。すなわち、バックアップ処理部２６１は、同じバックアップジョブにおいて副媒体５０への書き込みに既に失敗したか判定する。書込失敗位置の登録の有無の判定は、図２０のステップＳ１７４と同様に行う。
【０１６３】
書込失敗位置が登録されている場合、処理をステップＳ２０３へ進める。書込失敗位置が登録されていない場合、処理をステップＳ２０４へ進める。
（Ｓ２０３）バックアップ処理部２６１は、副媒体使用情報に“ＮＵＬＬ”を設定する。これにより、他のジョブが副媒体５０を使用可能となる。
【０１６４】
（Ｓ２０４）バックアップ処理部２６１は、リカバリジョブを実行中のリストア処理部２６２から副媒体使用要求を受信したか判定する。副媒体使用要求を受信した場合、処理をステップＳ２０５へ進める。副媒体使用要求を受信していない場合、処理をステップＳ２０６へ進める。
【０１６５】
（Ｓ２０５）バックアップ処理部２６１は、ステップＳ２０３と同様に、副媒体使用情報に“ＮＵＬＬ”を設定する。これにより、リストアジョブが副媒体５０を使用可能となる。
【０１６６】
（Ｓ２０６）バックアップ処理部２６１は、副媒体使用情報が指示ボリュームであるか判定する。すなわち、バックアップ処理部２６１は、自己のジョブにより副媒体５０を使用中か判定する。
【０１６７】
副媒体使用情報が自己のジョブの指示ボリュームである場合、処理をステップＳ２０８へ進める。副媒体使用情報が自己のジョブの指示ボリュームでない場合、処理をステップＳ２０７へ進める。
【０１６８】
（Ｓ２０７）バックアップ処理部２６１は、リワインド位置をアクセス管理テーブル２３１に次のように登録する。
まず、バックアップ処理部２６１は、副媒体使用要求を受信した場合（ステップＳ２０４でＹＥＳに分岐した場合）、リワインド位置を、副媒体使用要求を受信した時点の正媒体４０ａへの書き込み位置と判定する。他のジョブが副媒体５０を使用中の場合（ステップＳ２０６でＮＯに分岐した場合）、バックアップ処理部２６１は、リワインド位置を、“０”と判定する。なお、後者の場合とは、自己のジョブの開始時に、他のバックアップジョブ、またはリストアジョブにおけるリカバリ処理が既に開始されていた場合である。
【０１６９】
次に、バックアップ処理部２６１は、アクセス管理テーブル２３１から指示ボリュームを含むレコードを検索する。レコードが検索されたとき、検索されたレコードのリワインド位置が未登録である場合、判定したリワインド位置をそのレコードに登録し、検索されたレコードにリワインド位置が既に登録済の場合、リワインド位置をそのままにする。リワインド位置が未登録か否かは、“ＮＵＬＬ”が設定されているかで判断できる。
【０１７０】
レコードが検索されなかったとき、バックアップ処理部２６１は、まず、ボリュームの項目に指示ボリュームが設定され、書込失敗位置の項目および読出失敗位置の項目に“ＮＵＬＬ”が設定されたレコードを生成する。続けて、バックアップ処理部２６１は、生成したレコードのリワインド位置の項目に、判定したリワインド位置を設定する。そして、バックアップ処理部２６１は、生成したレコードをアクセス管理テーブル２３１に登録する。
【０１７１】
（Ｓ２０８）バックアップ処理部２６１は、受信した書き込み要求コマンドが、ジョブの起動後、初回の書き込み要求コマンドか判定する。初回の書き込み要求コマンドである場合、処理をステップＳ２０９へ進める。２回目以降の書き込み要求コマンドである場合、処理をステップＳ２１１へ進める。
【０１７２】
（Ｓ２０９）バックアップ処理部２６１は、副媒体５０の空き容量がボリュームのブロック数以上か判定する。副媒体５０の空き容量は、副媒体５０の全容量から最終書き込み位置を減算することで算出できる。
【０１７３】
副媒体５０の空き容量がボリュームのブロック数以上の場合、処理をステップＳ２１１へ進める。副媒体５０の空き容量がボリュームのブロック数未満の場合、処理をステップＳ２１０へ進める。
【０１７４】
（Ｓ２１０）バックアップ処理部２６１は、副媒体の交換を要求するメッセージをディスプレイ２０３に表示させる。
（Ｓ２１１）バックアップ処理部２６１は、テープ入出力部２５０を介して、図１９のステップＳ１６２で一時的に格納したデータを副媒体５０へ書き込む。
【０１７５】
（Ｓ２１２）バックアップ処理部２６１は、副媒体５０への書き込みが正常終了したか判定する。正常終了した場合、処理を終了する。正常終了しなかった場合、処理をステップＳ２１３へ進める。
【０１７６】
（Ｓ２１３）バックアップ処理部２６１は、書込失敗位置をアクセス管理テーブル２３１に次のように登録する。
まず、バックアップ処理部２６１は、アクセス管理テーブル２３１から指示ボリュームを含むレコードを検索する。レコードが検索されたとき、そのレコードの書込失敗位置の項目を、ステップＳ２１１でデータの書き込みに失敗した位置で更新する。
【０１７７】
レコードが検索されなかったとき、バックアップ処理部２６１は、まず、ボリュームの項目に指示ボリュームが設定され、リワインド位置の項目および読出失敗位置の項目に“ＮＵＬＬ”が設定されたレコードを生成する。続けて、バックアップ処理部２６１は、生成したレコードの書込失敗位置の項目には、ステップＳ２１１でデータの書き込みに失敗した位置を設定する。そして、バックアップ処理部２６１は、生成したレコードをアクセス管理テーブル２３１に登録する。
【０１７８】
図２２は、副媒体への書き込みを再開する処理の例を示すフローチャートである。図２２〜２３の処理は、前述のステップＳ１７３で実行される。以下、図２２〜２３に示す処理をステップ番号に沿って説明する。
【０１７９】
（Ｓ２２１）バックアップ処理部２６１は、リワインド位置に正媒体４０ａをリワインドする。リワインド位置を示す情報は、図２０のステップＳ１７２で検索されたレコードのリワインド位置の項目を参照する。
【０１８０】
ここで、自己のジョブの開始時に、他のバックアップジョブ、またはリストアジョブにおけるリカバリ処理が開始されており、副媒体５０への書き込みが不可能であった場合には、リワインド位置は正媒体４０ａの先頭位置となる。一方、自己のジョブの実行中に、リストアジョブにおけるリカバリ処理が開始された場合には、リワインド位置は、副媒体５０への書き込みを中断した際の正媒体４０ａの位置となる。
【０１８１】
（Ｓ２２２）バックアップ処理部２６１は、複製中である旨のメッセージをディスプレイ２０３に表示する。
（Ｓ２２３）バックアップ処理部２６１は、副媒体使用情報に“ＮＵＬＬ”が設定されているか判定する。副媒体使用情報に“ＮＵＬＬ”が設定されている場合（他のジョブに使用されていない場合）、処理をステップＳ２２４へ進める。副媒体使用情報に“ＮＵＬＬ”が設定されていない場合（他のジョブに使用されている場合）、処理をステップＳ２２３へ進める。
【０１８２】
すなわち、バックアップ処理部２６１は、他のジョブが副媒体５０の使用を終了するまで、待機する。
（Ｓ２２４）バックアップ処理部２６１は、副媒体使用情報に自己のジョブにおける指示ボリュームの識別子を設定する。これにより、自己のジョブが副媒体５０を使用中であることを、他のジョブが認識できる。
【０１８３】
（Ｓ２２５）バックアップ処理部２６１は、副媒体５０のアクセス位置を“最終書き込み位置＋１＋リワインド位置”に移動する。リワインド位置を示す情報は、図２０のステップＳ１７２で検索されたレコードのリワインド位置の項目を参照する。
【０１８４】
図２３は、副媒体への書き込みを再開する処理の例を示すフローチャート（続き）である。
（Ｓ２３１）バックアップ処理部２６１は、図２１のステップＳ２０９と同様に、副媒体５０の空き容量がボリュームのブロック数以上か判定する。
【０１８５】
副媒体５０の空き容量がボリュームのブロック数以上の場合、処理をステップＳ２３３へ進める。副媒体５０の空き容量がボリュームのブロック数未満の場合、処理をステップＳ２３２へ進める。
【０１８６】
（Ｓ２３２）バックアップ処理部２６１は、副媒体の交換を要求するメッセージをディスプレイ２０３に表示する。
（Ｓ２３３）バックアップ処理部２６１は、テープ入出力部２５０を介して正媒体４０ａから１ブロック分のデータを読み出し、読み出したデータをデータ一時記憶部２２０に一時的に格納する。
【０１８７】
（Ｓ２３４）バックアップ処理部２６１は、一時的に格納したデータを副媒体５０へ書き込む。
（Ｓ２３５）バックアップ処理部２６１は、副媒体５０への書き込みが正常終了したか判定する。正常終了した場合、処理をステップＳ２３７へ進める。
【０１８８】
正常終了しなかった場合、処理をステップＳ２３６へ進める。この場合、副媒体５０への書き込みに失敗した位置を示す情報がテープ入出力部２５０から通知される。
（Ｓ２３６）バックアップ処理部２６１は、図２１のステップＳ２１３と同様に、書込失敗位置をアクセス管理テーブル２３１に登録する。
【０１８９】
（Ｓ２３７）バックアップ処理部２６１は、再書き込みのブロック数分のデータを書き込み済か判定する。副媒体使用要求の受信により書き込み処理を中断していた場合（ステップＳ２０４でＹＥＳに分岐した場合）、再書き込みのブロック数は、“１”となる。他のジョブが副媒体５０を使用中により書き込み処理を中断していた場合（ステップＳ２０４でＮＯに分岐した場合）、再書き込みのブロック数は、予め規定されたボリュームのブロック数となる。
【０１９０】
再書き込みのブロック数分のデータを書き込み済の場合、処理をステップＳ２３８へ進める。再書き込みのブロック数分のデータを書き込み済でない場合、処理をステップＳ２３３へ進める。
【０１９１】
（Ｓ２３８）バックアップ処理部２６１は、ディスプレイ２０３について、複製中である旨のメッセージを非表示にする。
次に、図２４〜２７を用いて、リストアジョブの処理をフローチャートを用いて説明する。図２４〜２７において、正媒体ドライブ２０１ａには、正媒体４０ａが装着され、正媒体ドライブ２０１ｂには、正媒体４０ｂが装着され、副媒体ドライブ２０２には、副媒体５０が装着されているものとする。また、図２４〜２７は、リストアコマンドにより、正媒体ドライブ２０１ａがリストア元のドライブとして指定されたものとする。
【０１９２】
図２４は、リストア処理の例を示すフローチャートである。図２４〜２５で説明する処理は、ホスト装置１００からリストアコマンドを受信したことに応じて実行される。リストアコマンドには、データのリストア元の正媒体ドライブの識別子や、リストア先のボリュームの識別子が含まれる。以下、図２４〜２５に示す処理をステップ番号に沿って説明する。
【０１９３】
（Ｓ３１）リストア処理部２６２は、リストアコマンドで指定された正媒体ドライブ２０１ａに、正媒体４０ａをマウントする。また、リストア処理部２６２は、マウントされた正媒体４０ａを先頭までリワインドするように正媒体ドライブ２０１ａに要求する。
【０１９４】
（Ｓ３２）リストア処理部２６２は、ホスト入出力部２４０を介してアクセス可能通知をホスト装置１００へ送信する。
（Ｓ３３）リストア処理部２６２は、ホスト入出力部２４０を介して読み出し要求コマンドをホスト装置１００から受信する。読み出し要求コマンドには、リストアの対象となるボリューム内の１ブロック分のデータを示す情報が含まれる。リストア処理部２６２は、テープ入出力部２５０を介して正媒体４０ａから、読み出しが要求されたデータを読み出し、読み出したデータをデータ一時記憶部２２０に一時的に格納する。
【０１９５】
（Ｓ３４）リストア処理部２６２は、正媒体４０ａからの読み出しが正常終了したか判定する。正常終了した場合、処理をステップＳ４２へ進める。
正常終了しなかった場合、処理をステップＳ３５へ進める。この場合、正媒体４０ａからの読み出しに失敗した位置を示す情報が、テープ入出力部２５０から通知される。
【０１９６】
（Ｓ３５）リストア処理部２６２は、副媒体５０からリカバリ処理を実行する。詳細は図２６〜２７で説明する。
図２５は、リストア処理の例を示すフローチャート（続き）である。
【０１９７】
（Ｓ４１）リストア処理部２６２は、図２４のステップＳ３５で実行したリカバリ処理が正常終了したか判定する。正常終了した場合、処理をステップＳ４２へ進める。正常終了しなかった場合、処理をステップＳ４４へ進める。
【０１９８】
（Ｓ４２）リストア処理部２６２は、図２４のステップＳ３３で一時的に格納したデータを、ホスト入出力部２４０を介してホスト装置１００へ送信する。
（Ｓ４３）リストア処理部２６２は、リストアするボリュームの全ブロック数分のデータを読み出し済か判定する。全ブロック数分のデータを読み出し済の場合、処理をステップＳ４６へ進める。読み出し済でないデータが存在する場合、処理を図２４のステップＳ３３へ進める。
【０１９９】
（Ｓ４４）リストア処理部２６２は、ホスト入出力部２４０を介してリストア失敗通知をホスト装置１００へ送信する。
（Ｓ４５）リストア処理部２６２は、リストアジョブを異常終了させる。
【０２００】
（Ｓ４６）リストア処理部２６２は、読出失敗位置がアクセス管理テーブル２３１に登録されているか判定する。すなわち、リストア処理部２６２は、正媒体４０ａからの読み出しの失敗がリストア中に発生したか判定する。
【０２０１】
具体的には、まず、バックアップ処理部２６１は、指示ボリュームを含むレコードをアクセス管理テーブル２３１から検索する。レコードが検索され、かつ、検索したレコードに含まれる読出失敗位置が“ＮＵＬＬ”でなければ、読出失敗位置が登録されていると判断できる。
【０２０２】
読出失敗位置が登録されている場合、処理をステップＳ４７へ進める。読出失敗位置が登録されていない場合、処理をステップＳ４８へ進める。
（Ｓ４７）リストア処理部２６２は、正媒体４０ａからの読み出しの失敗に関する情報をログファイルに記録する。読み出しの失敗に関する情報には、例えば、読み出しに失敗したことを示す情報や、読出失敗位置を示す情報等が含まれる。
【０２０３】
（Ｓ４８）リストア処理部２６２は、正媒体４０ａをアンマウントする。
（Ｓ４９）リストア処理部２６２は、図１８のステップＳ１８と同様に、アクセス管理情報をアクセス管理テーブル２３１から削除する。
【０２０４】
図２６は、リカバリ処理の例を示すフローチャートである。図２６〜２７の処理は、前述のステップＳ３５で実行される。以下、図２６〜２７に示す処理をステップ番号に沿って説明する。
【０２０５】
（Ｓ３５１）リストア処理部２６２は、読出失敗位置をアクセス管理テーブル２３１に次のように登録する。
まず、リストア処理部２６２は、指示ボリュームを含むレコードをアクセス管理テーブル２３１から検索する。レコードが検索されたとき、検索されたレコードの読出失敗位置が未登録である場合、図２４のステップＳ３４で通知された位置をそのレコードに更新する。
【０２０６】
レコードが検索されなかったとき、リストア処理部２６２は、まず、ボリュームの項目に指示ボリュームが設定され、リワインド位置の項目および読出失敗位置の項目に“ＮＵＬＬ”が設定されたレコードを生成する。続けて、リストア処理部２６２は、生成したレコードの読出失敗位置の項目に、図２４のステップＳ３４で通知された位置を設定する。そして、リストア処理部２６２は、生成したレコードをアクセス管理テーブル２３１に登録する。
【０２０７】
（Ｓ３５２）リストア処理部２６２は、正媒体４０ａの複製フラグ４２ａが“ＴＲＵＥ”であるか判定する。複製フラグ４２ａが“ＴＲＵＥ”である場合、処理をステップＳ３５３へ進める。複製フラグ４２ａが“ＦＡＬＳＥ”である場合、処理をステップＳ３７０へ進める。
【０２０８】
（Ｓ３５３）リストア処理部２６２は、指示ボリュームを含むレコードを、現在副媒体ドライブ２０２に装着されている副媒体５０のボリューム管理テーブル５２から検索する。
【０２０９】
（Ｓ３５４）リストア処理部２６２は、ステップＳ３５３でレコードが検索されたか判定する。すなわち、リストア処理部２６２は、副媒体５０に指示ボリュームのデータが存在するか判定する。
【０２１０】
レコードが検索された場合、処理をステップＳ３５７へ進める。レコードが検索されなかった場合、処理をステップＳ３５５へ進める。なお、ステップＳ３５４で一度「ＮＯ」と判定された後、２回目以降に「ＹＥＳ」と判定される場合とは、副媒体ドライブ２０２に装着される副媒体が交換された場合である。
【０２１１】
（Ｓ３５５）リストア処理部２６２は、副媒体の交換を要求するメッセージをディスプレイ２０３に表示する。
（Ｓ３５６）リストア処理部２６２は、ステップＳ３５５でメッセージを表示してから、タイムアウト時間が経過したか判定する。タイムアウト時間を示す情報は、例えば、管理情報記憶部２３０に記憶されている。タイムアウト時間が経過した場合、処理をステップＳ３７０へ進める。タイムアウト時間が経過していない場合、処理をステップＳ３５３へ進める。この場合、タイムアウト時間が経過するまでの間、ステップＳ３５３〜Ｓ３５６の処理が一定時間毎に繰り返される。
【０２１２】
（Ｓ３５７）リストア処理部２６２は、ディスプレイ２０３について、副媒体の交換を要求するメッセージを非表示にする。
（Ｓ３５８）リストア処理部２６２は、ステップＳ３５３で検索されたレコードのうち、状態の項目が“ＯＮ”または“ＥＲＲ”であるレコードを検索する。レコードが検索された場合、ステップＳ３５９へ進める。レコードが検索されなかった場合、処理をステップＳ３７０へ進める。
【０２１３】
（Ｓ３５９）リストア処理部２６２は、最終位置が“開始位置＋読出失敗位置”以上か判定する。開始位置および最終位置は、ステップＳ３５８で検索されたレコードの開始位置の項目および最終位置の項目を参照する。読出失敗位置には、ステップＳ３５１で登録した読出失敗位置を用いる。
【０２１４】
最終位置が“開始位置＋読出失敗位置”以上である場合、処理をステップＳ３６１へ進める。最終位置が“開始位置＋読出失敗位置”未満である場合、処理をステップＳ３７０へ進める。
【０２１５】
図２７は、リカバリ処理の例を示すフローチャート（続き）である。
（Ｓ３６１）リストア処理部２６２は、副媒体使用情報に“ＮＵＬＬ”が設定されているか判定する。副媒体使用情報に“ＮＵＬＬ”が設定されている場合（装着されている副媒体５０が他のジョブに使用されていない場合）、処理をステップＳ３６４へ進める。副媒体使用情報に“ＮＵＬＬ”が設定されていない場合（装着されている副媒体５０が他のジョブに使用されている場合）、処理をステップＳ３６２へ進める。
【０２１６】
（Ｓ３６２）リストア処理部２６２は、副媒体使用要求を送信済か判定する。副媒体使用要求を送信済の場合、処理をステップＳ３６１へ進める。副媒体使用要求を未送信の場合、処理をステップＳ３６３へ進める。
【０２１７】
（Ｓ３６３）リストア処理部２６２は、副媒体使用要求を送信する。副媒体５０を使用中のジョブは、ステップＳ３６１で参照した副媒体使用情報に設定されているボリュームを書き込みまたは読み出しの対象としているジョブである。副媒体使用要求の送信により、副媒体５０を使用中のジョブでの、副媒体５０の使用が中断され、副媒体使用情報が“ＮＵＬＬ”に変更される。これにより、副媒体５０の使用が可能になる。
【０２１８】
その後、副媒体使用情報に“ＮＵＬＬ”が設定されるまで（すなわち、装着されている副媒体５０が他のジョブに使用されていない状態になるまで）、ステップＳ３６１〜Ｓ３６２を繰り返す。
【０２１９】
（Ｓ３６４）リストア処理部２６２は、副媒体使用情報に、自己のジョブでの指示ボリュームを設定する。これにより、リカバリ中に他のジョブによる副媒体５０の使用を防止できる。
【０２２０】
（Ｓ３６５）リストア処理部２６２は、副媒体５０のアクセス位置を“開始位置＋読出失敗位置”に移動する。開始位置は、図２６のステップＳ３５８で検索されたレコードの開始位置を参照する。
【０２２１】
（Ｓ３６６）リストア処理部２６２は、副媒体５０からデータを読み出し、読み出したデータをデータ一時記憶部２２０に一時的に格納する。
（Ｓ３６７）リストア処理部２６２は、副媒体５０からの読み出しが正常終了したか判定する。正常終了した場合、処理をステップＳ３６８へ進める。正常終了しなかった場合、処理をステップＳ３７０へ進める。
【０２２２】
（Ｓ３６８）リストア処理部２６２は、リカバリ処理（図２６〜２７で説明する処理）の処理結果を示す情報に正常終了を示す情報を設定する。処理結果を示す情報は、例えば、管理情報記憶部２３０に記憶する。
【０２２３】
（Ｓ３６９）リストア処理部２６２は、ステップＳ３５１で登録した読出失敗位置を未登録の状態にする。具体的には、リストア処理部２６２は、指定ボリュームを含むレコードをアクセス管理テーブル２３１から検索し、検索したレコードの読出失敗位置の項目の値を“ＮＵＬＬ”で更新する。
【０２２４】
（Ｓ３７０）リストア処理部２６２は、処理結果を示す情報に異常終了を示す情報を設定する。
（Ｓ３７１）バックアップ処理部２６１は、副媒体使用情報に“ＮＵＬＬ”を設定する。これにより、他のジョブが副媒体５０を使用可能な状態となる。
【０２２５】
第２の実施の形態によれば、テープ装置２００は、ボリュームのバックアップを指示するバックアップコマンドをホスト装置１００から受信するたびに、それぞれ異なる正媒体にそのボリュームのデータを書き込むとともに、同じデータを副媒体５０に追記する。これにより、複数の正媒体それぞれが記憶するデータの複製を１つの副媒体５０にまとめることができる。よって、バックアップデータを保存する記録媒体の数を減らすことができる。また、複数の正媒体それぞれが記憶するデータの複製を１つの副媒体５０にまとめることで、副媒体５０の記憶領域を有効に活用することができる。さらに、１回のバックアップコマンドにより、正媒体および副媒体５０にバックアップデータが書き込まれるため、ホスト装置１００でのバックアップの操作を効率的に実行できる。
【０２２６】
また、１のバックアップジョブにより副媒体５０にデータを書き込み中に、他のバックアップジョブが起動されたとき、他のバックアップジョブでは、１のバックアップジョブでの副媒体５０へのデータの書き込みが済んでから、副媒体５０へのデータの書き込みが行われる。これにより、複数のバックアップジョブが起動中の場合に、副媒体５０の排他制御を実現できる。
【０２２７】
また、リストアジョブの実行時に正媒体からの読み出しに失敗したとき、テープ装置２００は、読み出しに失敗したデータに対応するデータを副媒体５０から取得し、取得したデータをホスト装置１００へ送信する。これにより、ホスト装置１００は、正媒体からのリストアに失敗したとき、再度副媒体５０からのリストアを要求する必要がなくなる。すなわち、１回のリストアコマンドの発行により、正媒体からの読み出しに失敗したときのリカバリ処理を自動的に実行できる。よって、正媒体からの読み出しの成否にかかわらず、リストアを効率よく実行できる。
【０２２８】
また、バックアップジョブにより副媒体５０にデータを書き込み中に、リストアジョブにおける正媒体からの読み出しに失敗したとき、リストアジョブを実行するリストア処理部２６２は、副媒体使用要求を送信して、バックアップジョブによる副媒体５０への書き込みを中断させ、副媒体５０からリカバリ処理を実行する。これにより、リカバリの際、たかが１ブロック分のデータを副媒体５０から読み出すために、バックアップジョブによる複数ブロック分のデータの書き込みを待たずに済むため、リカバリを効率よく実行できる。また、リストアは、バックアップ元のボリュームに異常が発生した場合に行われるものなので、緊急性が高い。上記処理により、バックアップジョブの実行中でもリストアジョブを優先的に実行することができる。
【０２２９】
さらに、テープ装置２００は、副媒体５０にデータを書き込み後、ボリューム管理テーブル５２に書き込んだデータの格納先に関する情報を格納し、リカバリの際、格納した情報に基づいてリカバリの対象となるデータを副媒体５０から取得する。これにより、複数の正媒体それぞれのデータの複製をまとめた副媒体５０から、リカバリの対象となるデータを効率よく取得できる。
【０２３０】
なお、前述のように、第１の実施の形態の情報処理は、テープ装置１０にプログラムを実行させることで実現でき、第２の実施の形態の情報処理は、ホスト装置１００やテープ装置２００にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体３３）に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等を使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。
【０２３１】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置（例えば、フラッシュメモリ２１３）に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、ＤＳＰ（Digital Signal Processing）、ＡＳＩＣ、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することも可能である。
【０２３２】
以上、説明した実施の形態に関し、さらに以下の付記を開示する。
（付記１）  複数のテープドライブと、
前記複数のテープドライブを用いて、磁気テープに対する読み書きを制御する制御装置と、
を有し、
前記制御装置は、データの書き込み要求を受信すると、受信したデータを正データ用磁気テープと副データ用磁気テープの両方に書き込み、データの書き込み要求を受信するたびに、受信したデータをそれぞれ個別の正データ用磁気テープに書き込む一方、受信したデータを共通の副データ用磁気テープに追記する、
ことを特徴とするテープ装置。
【０２３３】
（付記２）  前記制御装置は、第１のデータを第１の正データ用磁気テープと前記副データ用磁気テープとに書き込む処理の実行中に、第２のデータの書き込み要求を受信したとき、前記第２のデータを第２の正データ用磁気テープに書き込むとともに、前記第１のデータの前記副データ用磁気テープへの書き込みが完了するまで、前記第２のデータの前記副データ用磁気テープへの書き込みを中断する、
ことを特徴とする付記１記載のテープ装置。
【０２３４】
（付記３）  前記制御装置は、前記第２のデータの前記第２の正データ用磁気テープへの書き込みが完了し、かつ、前記第１のデータの前記副データ用磁気テープへの書き込みが完了した後、前記第２のデータを前記第２の正データ用磁気テープから読み出して前記副データ用磁気テープに追記する、
ことを特徴とする付記２記載のテープ装置。
【０２３５】
（付記４）  前記制御装置は、データの読み出し要求を受信すると、読み出しが要求されたデータが書き込まれた正データ用磁気テープからデータを読み出し、当該正データ用磁気テープからの読み出しに失敗した場合、読み出しに失敗した位置に対応するデータを前記副データ用磁気テープから読み出す、
ことを特徴とする付記１記載のテープ装置。
【０２３６】
（付記５）  前記制御装置は、書き込みが要求された第１のデータを第１の正データ用磁気テープと前記副データ用磁気テープとに書き込む書き込み処理と、読み出しが要求された第２のデータを対応する第２の正データ用磁気テープから読み出す読み出し処理とを並列に実行しているとき、前記第２のデータの前記第２の正データ用磁気テープからの読み出しに失敗した場合、前記第２のデータのうち、読み出しに失敗した位置に対応するデータを前記副データ用磁気テープから読み出し、当該データの前記副データ用磁気テープからの読み出しが完了するまで、前記副データ用磁気テープへの前記第１のデータの書き込みを中断する、
ことを特徴とする付記４記載のテープ装置。
【０２３７】
（付記６）  前記制御装置は、前記第２のデータの前記第２の正データ用磁気テープからの読み出しに失敗したとき、前記第１のデータの前記副データ用磁気テープへの書き込み処理を中断するとともに、前記第１のデータの前記第１の正データ用磁気テープへの書き込みを続行し、前記第１のデータの前記第１の正データ用磁気テープへの書き込みが完了し、かつ、前記第２のデータのうち、読み出しに失敗した位置に対応するデータの前記副データ用磁気テープからの読み出しが完了した後、前記第１のデータのうち、前記副データ用磁気テープへ書き込まれていない残りのデータを、前記第１の正データ用磁気テープから読み出して前記副データ用磁気テープに追記する、
ことを特徴とする付記５記載のテープ装置。
【０２３８】
（付記７）  磁気テープに対するデータの読み書きを制御する記憶制御装置において、
データの書き込み要求を受信する受信部と、
受信したデータを正データ用磁気テープと副データ用磁気テープの両方に書き込み、データの書き込み要求を受信するたびに、受信したデータをそれぞれ個別の正データ用磁気テープに書き込む一方、受信したデータを共通の副データ用磁気テープに追記する制御部と、
を有することを特徴とする記憶制御装置。
【０２３９】
（付記８）  磁気テープに対するデータの読み書きを制御する記憶制御方法であって、
第１のデータの書き込み要求を受信すると、前記第１のデータを第１の正データ用磁気テープと副データ用磁気テープの両方に書き込み、
前記第１のデータの書き込み要求の後に、第２のデータの書き込み要求を受信したとき、前記第２のデータを第２の正データ用磁気テープに書き込むとともに、前記第２のデータを前記副データ用磁気テープにおける前記第１のデータの後に追記する、
ことを特徴とする記憶制御方法。
【０２４０】
（付記９）  前記第１のデータの書き込みの実行中に前記第２のデータの書き込み要求を受信したとき、前記第２のデータを前記第２の正データ用磁気テープに書き込むとともに、前記第１のデータの前記副データ用磁気テープへの書き込みが完了するまで、前記第２のデータの前記副データ用磁気テープへの書き込みを中断する、
ことを特徴とする付記８記載の記憶制御方法。
【０２４１】
（付記１０）  前記第２のデータの前記第２の正データ用磁気テープへの書き込みが完了し、かつ、前記第１のデータの前記副データ用磁気テープへの書き込みが完了した後、前記第２のデータを前記第２の正データ用磁気テープから読み出して前記副データ用磁気テープに追記する、
ことを特徴とする付記９記載の記憶制御方法。
【０２４２】
（付記１１）  前記第１のデータの前記第１の正データ用磁気テープおよび前記副データ用磁気テープへの書き込み完了後、前記第１のデータの読み出し要求を受信すると、前記第１の正データ用磁気テープから前記第１のデータを読み出し、前記第１の正データ用磁気テープからの読み出しに失敗した場合、読み出しに失敗した位置に対応するデータを前記副データ用磁気テープから読み出す、
ことを特徴とする付記８記載の記憶制御方法。
【０２４３】
（付記１２）  前記第２のデータを前記第２の正データ用磁気テープと前記副データ用磁気テープとに書き込む書き込み処理と、前記読み出し要求に応じた前記第１のデータの前記第１の正データ用磁気テープからの読み出し処理とを並列に実行しているとき、前記第１のデータの前記第１の正データ用磁気テープからの読み出しに失敗した場合、前記第１のデータのうち、読み出しに失敗した位置に対応するデータを前記副データ用磁気テープから読み出し、当該データの前記副データ用磁気テープからの読み出しが完了するまで、前記副データ用磁気テープへの前記第２のデータの書き込みを中断する、
ことを特徴とする付記１１記載の記憶制御方法。
【０２４４】
（付記１３）  前記第１のデータの前記第１の正データ用磁気テープからの読み出しに失敗したとき、前記第２のデータの前記副データ用磁気テープへの書き込み処理を中断するとともに、前記第２のデータの前記第２の正データ用磁気テープへの書き込みを続行し、前記第２のデータの前記第２の正データ用磁気テープへの書き込みが完了し、かつ、前記第１のデータのうち、読み出しに失敗した位置に対応するデータの前記副データ用磁気テープからの読み出しが完了した後、前記第２のデータのうち、前記副データ用磁気テープへ書き込まれていない残りのデータを、前記第２の正データ用磁気テープから読み出して前記副データ用磁気テープに追記する、
ことを特徴とする付記１２記載の記憶制御方法。
【符号の説明】
【０２４５】
１，２  データ
１０  テープ装置
１１  制御装置
１２，１３  テープドライブ
２１ａ，２１ｂ，２２  磁気テープ
【図１】
2015087906.tif 000003
【図２】
2015087906.tif 000004
【図３】
2015087906.tif 000005
【図４】
2015087906.tif 000006
【図５】
2015087906.tif 000007
【図６】
2015087906.tif 000008
【図７】
2015087906.tif 000009
【図８】
2015087906.tif 000010
【図９】
2015087906.tif 000011
【図１０】
2015087906.tif 000012
【図１１】
2015087906.tif 000013
【図１２】
2015087906.tif 000014
【図１３】
2015087906.tif 000015
【図１４】
2015087906.tif 000016
【図１５】
2015087906.tif 000017
【図１６】
2015087906.tif 000018
【図１７】
2015087906.tif 000019
【図１８】
2015087906.tif 000020
【図１９】
2015087906.tif 000021
【図２０】
2015087906.tif 000022
【図２１】
2015087906.tif 000023
【図２２】
2015087906.tif 000024
【図２３】
2015087906.tif 000025
【図２４】
2015087906.tif 000026
【図２５】
2015087906.tif 000027
【図２６】
2015087906.tif 000028
【図２７】
2015087906.tif 000029