(57)【特許請求の範囲】
【請求項１】
可搬型記録媒体にデータの読み書きを行う複数のドライブ装置と、
前記複数のドライブ装置のうちの第１のドライブ装置を通じて第１の可搬型記録媒体にデータを書き込む処理と、前記複数のドライブ装置のうちの第２のドライブ装置を通じて第２の可搬型記録媒体に前記データを書き込む処理とを並列に実行し、前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可搬型記録媒体への前記データの書き込み処理をキャンセルする制御装置と、
を備え、
前記制御装置は、
前記複数のドライブ装置の使用状況または前記データの属性の少なくとも一方に基づく条件に従って、前記第１のドライブ装置を通じて前記第１の可搬型記録媒体に前記データを書き込む処理および前記第２のドライブ装置を通じて前記第２の可搬型記録媒体に前記データを書き込む処理を並列に実行する並列書き込み処理と、前記第１のドライブ装置を通じて前記第１の可搬型記録媒体に前記データを書き込む単独書き込み処理とのどちらを実行するかを判定し、
前記並列書き込み処理を実行した場合には、前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可搬型記録媒体への前記データの書き込み処理をキャンセルし、
前記制御装置は、
前記第１の可搬型記録媒体および前記第２の可搬型記録媒体を除く他の複数の可搬型記録媒体に格納されたデータの一部をキャッシュ装置に格納し、
前記並列書き込み処理の優先度が、前記キャッシュ装置に空き領域を生成するために前記キャッシュ装置内のデータを前記他の複数の可搬型記録媒体のいずれかに書き込む処理、および、キャッシュミス状態のデータを前記他の複数の可搬型記録媒体のいずれかから読み出して前記キャッシュ装置に格納する処理より低いと判定するとともに、ホスト装置から前記キャッシュ装置に書き込まれたデータを前記ホスト装置からの書き込みとは非同期に前記他の複数の可搬型記録媒体のいずれかに書き込む処理より高いと判定する、
ことを特徴とするストレージシステム。
【請求項２】
前記制御装置は、前記複数のドライブ装置のうち読み書きを行っていないドライブ装置の台数と、前記複数のドライブ装置のうち前記並列書き込み処理より優先度の低い処理が行われているドライブ装置の台数との合計が２台以上ある場合に、前記並列書き込み処理を実行すると判定することを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記制御装置は、前記並列書き込み処理を実行すると判定した際に、読み書きを行っていないドライブ装置が１台以下の場合、前記並列書き込み処理より優先度の低い処理が行われているドライブ装置に処理を中断させ、当該ドライブ装置を用いて前記並列書き込み処理を行うことを特徴とする請求項２記載のストレージシステム。
【請求項４】
前記制御装置は、前記並列書き込み処理の実行中で、かつ前記複数のドライブ装置のすべてで読み書きが行われているときに、前記並列書き込み処理より優先度の高い他の処理が発生した場合には、前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうち進捗が遅い方に対する書き込み処理をキャンセルすることを特徴とする請求項２または３記載のストレージシステム。
【請求項５】
前記制御装置は、
前記並列書き込み処理および前記単独書き込み処理での書き込み対象として所定の複数のデータを指定し、
少なくとも、前記複数のデータの総容量が所定の閾値を超えている場合、または、前記複数のデータのそれぞれの容量の平均が所定の閾値より低い場合に、前記並列書き込み処理を実行すると判定する、
ことを特徴とする請求項２記載のストレージシステム。
【請求項６】
前記制御装置は、前記並列書き込み処理で先に書き込み処理が完了しなかった回数を書き込み先の可搬型記録媒体ごとにカウントし、カウント数が所定回数に達した可搬型記録媒体を使用不可状態として登録することを特徴とする請求項１〜５のいずれか１項に記載のストレージシステム。
【請求項７】
前記制御装置は、前記並列書き込み処理で先に書き込み処理が完了しなかった回数を書き込みで使用されたドライブ装置ごとにカウントし、カウント数が所定回数に達したドライブ装置を使用不可状態として登録することを特徴とする請求項１〜６のいずれか１項に記載のストレージシステム。
【請求項８】
前記制御装置は、前記第１の可搬型記録媒体および前記第２の可搬型記録媒体のうち書き込み処理をキャンセルした方の記録データを無効化することを特徴とする請求項１〜７のいずれか１項に記載のストレージシステム。
【請求項９】
複数のドライブ装置を通じて複数の可搬型記録媒体にアクセスする処理を制御する制御装置におけるストレージ制御方法であって、
前記複数のドライブ装置のうちの第１のドライブ装置を通じて第１の可搬型記録媒体にデータを書き込む処理と、前記複数のドライブ装置のうちの第２のドライブ装置を通じて第２の可搬型記録媒体に前記データを書き込む処理とを並列に実行し、
前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可搬型記録媒体への前記データの書き込み処理をキャンセルし、
前記複数のドライブ装置の使用状況または前記データの属性の少なくとも一方に基づく条件に従って、前記第１のドライブ装置を通じて前記第１の可搬型記録媒体に前記データを書き込む処理および前記第２のドライブ装置を通じて前記第２の可搬型記録媒体に前記データを書き込む処理を並列に実行する並列書き込み処理と、前記第１のドライブ装置を通じて前記第１の可搬型記録媒体に前記データを書き込む単独書き込み処理とのどちらを実行するかを判定し、
前記並列書き込み処理を実行した場合には、前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可搬型記録媒体への前記データの書き込み処理をキャンセルし、
前記制御装置は、
前記第１の可搬型記録媒体および前記第２の可搬型記録媒体を除く他の複数の可搬型記録媒体に格納されたデータの一部をキャッシュ装置に格納し、
前記並列書き込み処理の優先度が、前記キャッシュ装置に空き領域を生成するために前記キャッシュ装置内のデータを前記他の複数の可搬型記録媒体のいずれかに書き込む処理、および、キャッシュミス状態のデータを前記他の複数の可搬型記録媒体のいずれかから読み出して前記キャッシュ装置に格納する処理より低いと判定するとともに、ホスト装置から前記キャッシュ装置に書き込まれたデータを前記ホスト装置からの書き込みとは非同期に前記他の複数の可搬型記録媒体のいずれかに書き込む処理より高いと判定する、
ことを特徴とするストレージ制御方法。
【請求項１０】
複数のドライブ装置を通じて複数の可搬型記録媒体にアクセスする処理を制御するためのストレージ制御プログラムにおいて、
コンピュータに、
前記複数のドライブ装置のうちの第１のドライブ装置を通じて第１の可搬型記録媒体にデータを書き込む処理と、前記複数のドライブ装置のうちの第２のドライブ装置を通じて第２の可搬型記録媒体に前記データを書き込む処理とを並列に実行し、
前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可搬型記録媒体への前記データの書き込み処理をキャンセルし、
前記複数のドライブ装置の使用状況または前記データの属性の少なくとも一方に基づく条件に従って、前記第１のドライブ装置を通じて前記第１の可搬型記録媒体に前記データを書き込む処理および前記第２のドライブ装置を通じて前記第２の可搬型記録媒体に前記データを書き込む処理を並列に実行する並列書き込み処理と、前記第１のドライブ装置を通じて前記第１の可搬型記録媒体に前記データを書き込む単独書き込み処理とのどちらを実行するかを判定し、
前記並列書き込み処理を実行した場合には、前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可搬型記録媒体への前記データの書き込み処理をキャンセルし、
前記第１の可搬型記録媒体および前記第２の可搬型記録媒体を除く他の複数の可搬型記録媒体に格納されたデータの一部をキャッシュ装置に格納し、
前記並列書き込み処理の優先度が、前記キャッシュ装置に空き領域を生成するために前記キャッシュ装置内のデータを前記他の複数の可搬型記録媒体のいずれかに書き込む処理、および、キャッシュミス状態のデータを前記他の複数の可搬型記録媒体のいずれかから読み出して前記キャッシュ装置に格納する処理より低いと判定するとともに、ホスト装置から前記キャッシュ装置に書き込まれたデータを前記ホスト装置からの書き込みとは非同期に前記他の複数の可搬型記録媒体のいずれかに書き込む処理より高いと判定する、
処理を実行させることを特徴とするストレージ制御プログラム。
【請求項１１】
可搬型記録媒体にデータの読み書きを行う複数のドライブ装置と、
前記複数のドライブ装置のうちの第１のドライブ装置を通じて第１の可搬型記録媒体にデータを書き込む処理と、前記複数のドライブ装置のうちの第２のドライブ装置を通じて第２の可搬型記録媒体に前記データを書き込む処理とを並列に実行し、前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可搬型記録媒体への前記データの書き込み処理をキャンセルする制御装置と、
を備え、
前記制御装置は、前記複数のドライブ装置の使用状況または前記データの属性の少なくとも一方に基づく条件に従って、前記第１のドライブ装置を通じて前記第１の可搬型記録媒体に前記データを書き込む処理および前記第２のドライブ装置を通じて前記第２の可搬型記録媒体に前記データを書き込む処理を並列に実行する並列書き込み処理を行う際に、
前記条件として、
前記複数のドライブ装置のうち読み書きを行っていないドライブ装置の台数と、前記複数のドライブ装置のうち前記並列書き込み処理より優先度の低い処理が行われているドライブ装置の台数との合計が２台以上ある場合を前提条件とし、
前記可搬型記録媒体への前記データの書き込み処理時における前記データの総容量が閾値を超えている場合を第１の条件とし、
前記可搬型記録媒体への前記データの書き込み処理時における前記データの平均サイズが閾値を下回る場合を第２の条件とし、
前記可搬型記録媒体への前記データの書き込み処理時における前記データの平均圧縮率が閾値を下回る場合を第３の条件とし、
前記可搬型記録媒体への前記データの書き込み処理で使用される前記ドライブ装置のエラー点数の平均が閾値を超える場合を第４の条件とし、
前記データの書き込み処理で使用される前記可搬型記録媒体のエラー点数の平均が閾値を超える場合を第５の条件とした場合に、
前記前提条件を満たし、かつ前記第１の条件から前記第５の条件の中で、少なくとも２つの条件が満たされる場合に、前記並列書き込み処理を実行する、
ことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ制御方法およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
可般型の記録媒体として、磁気テープや光ディスク、光磁気ディスクなどがある。特に磁気テープは、ストレージシステムにおけるバックエンドの大容量記憶領域を実現する記録媒体として利用されている。
【０００３】
可般型の記録媒体にデータを記録する技術としては、例えば、データを複数の記録媒体に２重化して記録するもの、複数のデータセット、またはデータを分割した分割データを、複数の記録媒体に分散させて記録するものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３４４９２２号公報
【特許文献２】特開２００１−２３６２５３号公報
【特許文献３】特開２００５−１８４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
可搬型の記録媒体にデータを書き込む際、例えば、一時的な異常の発生などによって書き込みが停止することがある。このような場合、書き込みをリトライすることで、書き込み処理を完了できることがあるが、書き込みをリトライする分だけ、書き込み処理を完了するまでの時間が長くなってしまう。
【０００６】
１つの側面では、本発明は、書き込み完了時間の遅延を抑制するストレージシステム、ストレージ制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、ストレージシステムが提供される。ストレージシステムは、可搬型記録媒体にデータの読み書きを行う複数のドライブ装置と、複数のドライブ装置のうちの第１のドライブ装置を通じて第１の可搬型記録媒体にデータを書き込む処理と、複数のドライブ装置のうちの第２のドライブ装置を通じて第２の可搬型記録媒体にデータを書き込む処理とを並列に実行し、第１の可搬型記録媒体と第２の可搬型記録媒体のうちの一方に対するデータの書き込み処理が完了すると、他方の可搬型記録媒体へのデータの書き込み処理をキャンセルする制御装置とを備え、制御装置は、複数のドライブ装置の使用状況またはデータの属性の少なくとも一方に基づく条件に従って、第１のドライブ装置を通じて第１の可搬型記録媒体にデータを書き込む処理および第２のドライブ装置を通じて第２の可搬型記録媒体にデータを書き込む処理を並列に実行する並列書き込み処理と、第１のドライブ装置を通じて第１の可搬型記録媒体にデータを書き込む単独書き込み処理とのどちらを実行するかを判定し、並列書き込み処理を実行した場合には、第１の可搬型記録媒体と第２の可搬型記録媒体のうちの一方に対するデータの書き込み処理が完了すると、他方の可搬型記録媒体へのデータの書き込み処理をキャンセルし、制御装置は、第１の可搬型記録媒体および第２の可搬型記録媒体を除く他の複数の可搬型記録媒体に格納されたデータの一部をキャッシュ装置に格納し、並列書き込み処理の優先度が、キャッシュ装置に空き領域を生成するためにキャッシュ装置内のデータを他の複数の可搬型記録媒体のいずれかに書き込む処理、および、キャッシュミス状態のデータを他の複数の可搬型記録媒体のいずれかから読み出してキャッシュ装置に格納する処理より低いと判定するとともに、ホスト装置からキャッシュ装置に書き込まれたデータをホスト装置からの書き込みとは非同期に他の複数の可搬型記録媒体のいずれかに書き込む処理より高いと判定する。
【０００８】
また、１つの案では、上記制御装置と同様の処理を実行するストレージ制御方法が提供される。
さらに、１つの案では、コンピュータに上記制御装置と同様の処理を実行させるストレージ制御プログラムが提供される。
【発明の効果】
【０００９】
１態様によれば、ストレージシステム、ストレージ制御方法およびストレージ制御プログラムにおいて、書き込み完了時間の遅延を抑制することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態に係るストレージシステムの構成例を示す図である。
【図２】第２の実施の形態に係るストレージシステムのシステム構成例を示す図である。
【図３】制御装置のハードウェア構成例を示す図である。
【図４】テープライブラリ装置のハードウェア構成例を示す図である。
【図５】制御装置が備える処理機能の例を示すブロック図である。
【図６】コマンドキューに登録される情報の例を示す図である。
【図７】ボリューム管理テーブルに登録される情報の例を示す図である。
【図８】エクスポート用磁気テープ管理テーブルの構成例を示す図である。
【図９】ドライブ管理テーブルの構成例を示す図である。
【図１０】エクスポート並列処理の動作フローを示す図である。
【図１１】エクスポート並列処理の動作フローを示す図である。
【図１２】エクスポート並列処理の動作フローを示す図である。
【図１３】終了処理の動作フローを示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係るストレージシステムの構成例を示す図である。ストレージシステム１０は、制御装置１１、ドライブ装置１２−１〜１２−ｎおよび可搬型記録媒体１３−１〜１３−ｎを備える。
【００１２】
ドライブ装置１２−１〜１２−ｎは、可般型記録媒体１３−１〜１３−ｎそれぞれにデータの読み書きを行う。
制御装置１１は、ドライブ装置１２−１〜１２−ｎのうちのドライブ装置１２−１を通じて可般型記録媒体１３−１にデータを書き込む処理と、ドライブ装置１２−２を通じて可般型記録媒体１３−２にデータを書き込む処理とを並列に実行する。なお、制御装置１１は、データの書き込みに使用する２つのドライブ装置を任意に選択可能である。
【００１３】
制御装置１１は、可般型記録媒体１３−１、１３−２のうちの一方に対するデータの書き込み処理が完了すると、他方の可般型記録媒体へのデータの書き込み処理をキャンセルする。例えば、可搬型記録媒体１３−１、１３−２におけるデータ書き込み並列処理を行った場合、可搬型記録媒体１３−１の方が可搬型記録媒体１３−２よりも先にデータが書き込まれた場合は、可搬型記録媒体１３−２の書き込み処理をキャンセルする。
【００１４】
ここで、１つの可搬型記録媒体に対してデータ書き込み処理が行われる場合、異常発生等によって書き込みが停止すると、書き込み処理のリトライを行うことになり、書き込み処理の完了時間に遅延が生じていた。これに対し、ストレージシステム１０では、上記のように、可搬型記録媒体１３−１、１３−２へのデータ書き込み処理を並列に実行し、可般型記録媒体１３−１に対する書き込み処理が完了すると、他方の可般型記録媒体１３−２への書き込み処理をキャンセルする構成とした。
【００１５】
このように、２つの可搬型記録媒体へのデータ書き込み処理を並列実行するので、どちらか一方の書き込み処理に異常が発生したとしても、他方の書き込み処理は、正常に終了する可能性が高い。そして、書き込み処理が先に完了した方を有効な可搬型記録媒体とするので、書き込みリトライ処理は不要になる。従って、書き込みリトライ処理によって生じていた書き込み完了時間の遅延を抑制することが可能になる。
【００１６】
次に、ストレージシステム１０を仮想テープライブラリシステムに適用した実施の形態について以降説明する。
［第２の実施の形態］
図２は、第２の実施の形態に係るストレージシステムのシステム構成例を示す図である。ストレージシステム１００は、仮想テープ装置２００、テープライブラリ装置３００およびホスト装置４００を含む。
【００１７】
テープライブラリ装置３００は、記録媒体として磁気テープを用いた記憶装置である。後述するように、テープライブラリ装置３００は、磁気テープに対するデータアクセスを行う複数のテープドライブ（図１のドライブ装置１２−１〜１２−ｎに該当）や、磁気テープを収容したテープカートリッジを搬送する機構などを備える。
【００１８】
なお、テープライブラリ装置３００は、例えば、仮想テープ装置２００と同じ筐体内に設けられていてもよい。
仮想テープ装置２００は、制御装置２０１、２０２（図１の制御装置１１に該当）と、ディスクアレイ装置５００とを備える。ディスクアレイ装置５００は、複数のＨＤＤ（Hard Disk Drive）を備える記憶装置である。
【００１９】
なお、本実施の形態では、制御装置２０１、２０２とディスクアレイ装置５００とが同じ筐体内に設けられているものとするが、これらの装置は個別の筐体に設けられていてもよい。
【００２０】
制御装置２０１、２０２は、ホスト装置４００とディスクアレイ装置５００との間のデータ転送動作や、ディスクアレイ装置５００とテープライブラリ装置３００との間のデータ転送動作を制御する。
【００２１】
制御装置２０１、２０２は、冗長構成を有し、ストレージシステム１００が、テープライブラリ装置３００内の磁気テープをバックエンドのライブラリ装置とし、ディスクアレイ装置５００内のＨＤＤをキャッシュ装置とした階層型の仮想テープライブラリシステムとして動作するように制御する。ここで、仮想テープライブラリシステムとは、テープライブラリ装置３００によって実現される大容量の記憶領域を、ホスト装置４００が、ディスクアレイ装置５００を通じて仮想的に利用できるようにしたものである。
【００２２】
なお、仮想テープライブラリシステムのバックエンドとして用いる記録媒体としては、磁気テープの他、例えば、光ディスク、光磁気ディスクなどの可搬型の記録媒体を利用することもできる。
【００２３】
また、仮想テープライブラリシステムのキャッシュ装置として用いる記憶装置としては、ＨＤＤの他、ＳＳＤ（Solid State Drive）などを利用することもできる。
制御装置２０１と制御装置２０２は、例えば、互いに異なる論理ボリュームについてのデータ転送動作を制御する。また、例えば、制御装置２０１、２０２のうちの一方に故障が発生した場合には、他方の制御装置のみによって仮想テープライブラリシステムの運用を続行できるようになっている。
【００２４】
さらに、制御装置２０１、２０２は、ホスト装置４００から排出を要求された論理ボリュームのデータを、排出用の磁気テープにコピーし、その磁気テープをテープライブラリ装置３００から外部に排出させる「エクスポート（export）処理」を実行可能になっている。エクスポート処理によって、外部に排出された磁気テープ内の論理ボリュームは、例えば、他の仮想テープライブラリシステムで利用可能である。
【００２５】
ホスト装置４００は、ユーザの入力操作に応じて制御装置２０１、２０２の少なくとも一方にアクセス要求を発することで、仮想テープライブラリシステム内の論理ボリュームにアクセスする。また、ホスト装置４００は、制御装置２０１、２０２に対して、任意の論理ボリュームを指定し、指定した論理ボリュームのエクスポート処理を実行させることもできる。
【００２６】
次に制御装置２０１のハードウェア構成について説明する。図３は、制御装置のハードウェア構成例を示す図である。なお、制御装置２０１と制御装置２０２は、同様のハードウェア構成を有し、また同様の処理を実行可能である。従って、これ以後、制御装置２０１、２０２のうち制御装置２０１の構成および処理について説明することとし、制御装置２０２の説明については省略する。
【００２７】
制御装置２０１は、例えば、図３のようなコンピュータとして実現される。制御装置２０１は、ＣＰＵ（Central Processing Unit）２１１によって装置全体が制御されている。ＣＰＵ２１１には、バス２１９を介して、ＲＡＭ（Random Access Memory）２１２および複数の周辺機器が接続されている。
【００２８】
ＲＡＭ２１２は、制御装置２０１の主記憶装置として使用される。ＲＡＭ２１２には、ＣＰＵ２１１に実行させるファームウェアプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２１２には、ＣＰＵ２１１による処理に必要な各種データが格納される。
【００２９】
バス２１９に接続されている周辺機器としては、フラッシュメモリ２１３、入力インタフェース２１４、光学ドライブ装置２１５、ホストインタフェース２１６、ディスクインタフェース２１７およびテープインタフェース２１８がある。
【００３０】
フラッシュメモリ２１３は、制御装置２０１の二次記憶装置として使用される。フラッシュメモリ２１３には、ファームウェアプログラムおよび各種データが格納される。なお、二次記憶装置としては、ＨＤＤなどの他の種類の不揮発性記憶装置が使用されてもよい。
【００３１】
入力インタフェース２１４には、例えば、各種の操作キーなどを備える入力装置２１４ａが接続可能になっている。入力インタフェース２１４は、入力装置２１４ａからの信号をバス２１９を介してＣＰＵ２１１に送信する。なお、入力装置２１４ａは、制御装置２０１に搭載されていてもよい。
【００３２】
光学ドライブ装置２１５は、レーザ光などを利用して、光ディスク２１５ａに記録されたデータの読み取りを行う。光ディスク２１５ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。
【００３３】
光ディスク２１５ａには、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）などがある。
【００３４】
ホストインタフェース２１６は、ホスト装置４００との間でデータを送受信する通信インタフェースである。ディスクインタフェース２１７は、ディスクアレイ装置５００との間でデータを送受信する通信インタフェースである。テープインタフェース２１８は、テープライブラリ装置３００との間でデータを送受信する通信インタフェースである。
【００３５】
なお、ホスト装置４００についても、制御装置２０１と同様に、ＣＰＵ、ＲＡＭ、周辺機器などを備えるコンピュータとして実現することができる。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。また、コンピュータで本実施の形態の処理機能を実現する場合、制御装置２０１が有する機能の処理内容を記述したプログラムが提供される。
【００３６】
そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００３７】
コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。なお、プログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
【００３８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００３９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。
【００４０】
なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００４１】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【００４２】
次にテープライブラリ装置３００のハードウェア構成について説明する。図４は、テープライブラリ装置のハードウェア構成例を示す図である。テープライブラリ装置３００は、コントローラ３０１、ＲＡＭ３０２、フラッシュメモリ３０３、テープドライブ３１１〜３１４（図１のドライブ装置１２−１〜１２−ｎに該当）、テープ格納部３２１およびテープ搬送部３２２およびテープ投入排出口３２３を備える。
【００４３】
コントローラ３０１は、例えばＣＰＵを備え、テープライブラリ装置３００全体を統括的に制御する。ＲＡＭ３０２は、コントローラ３０１に実行させるファームウェアプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ３０２には、コントローラ３０１による処理に必要な各種データが格納される。フラッシュメモリ３０３には、ファームウェアプログラムや各種データが格納される。
【００４４】
テープドライブ３１１〜３１４は、それぞれ、テープ搬送部３２２によって搬送されたテープカートリッジを１つずつマウントし、コントローラ３０１の制御の下で、マウントしたテープカートリッジ内の磁気テープに対するデータの書き込みや、磁気テープからのデータの読み出しを行う。
【００４５】
なお、本実施の形態では、テープライブラリ装置３００は例として４つのテープドライブを備えているが、テープドライブの数は２つ以上であれば特に限定されるものではない。ただし、テープドライブの数を３つ以上とすることで、後述する２つのテープドライブを用いたエクスポート並列処理を実行しているときに、残りの１つのテープドライブを用いてエクスポート処理以外の処理を実行できるようになる。
【００４６】
テープ格納部３２１には、複数のテープカートリッジが格納されている。テープ格納部３２１に格納されたテープカートリッジは、仮想テープライブラリシステムの一部として使用されるものと、エクスポート処理用のものとに大別される。
【００４７】
以下の説明では、前者のテープカートリッジ内の磁気テープを「ライブラリ用磁気テープ」、後者のテープカートリッジ内の磁気テープを「エクスポート用磁気テープ」と呼ぶ。どの磁気テープをどちらの用途に使用するかは、制御装置２０１、２０２によって決定される。
【００４８】
テープ搬送部３２２は、コントローラ３０１による制御の下で、テープカートリッジを搬送する。テープ搬送部３２２は、例えば、テープ格納部３２１に格納されたテープカートリッジを、テープドライブ３１１〜３１４のいずれかに搬送してマウントする。また、テープ搬送部３２２は、テープドライブ３１１〜３１４からテープカートリッジをアンマウントし、テープ格納部３２１に搬送して格納する。
【００４９】
さらに、テープ搬送部３２２には、テープ投入排出口３２３が設けられている。テープ搬送部３２２は、コントローラ３０１からの要求に応じて、テープドライブ３１１〜３１４やテープ格納部３２１から搬送したテープカートリッジを、テープ投入排出口３２３から外部に排出する。また、テープ投入排出口３２３から投入されたテープカートリッジを、テープドライブ３１１〜３１４やテープ格納部３２１に搬送したりすることもできる。
【００５０】
次に制御装置２０１の機能ブロック構成について説明する。図５は、制御装置が備える処理機能の例を示すブロック図である。
制御装置２０１は、アクセス制御部２２０、仮想テープ制御部２３０およびエクスポート制御部２４０を備える。これらの各部の処理は、例えば、制御装置２０１のＣＰＵ２１１が所定のファームウェアプログラムを実行することによって実現される。
【００５１】
また、制御装置２０１が備える不揮発性記憶装置（例えばフラッシュメモリ２１３）には、ボリューム管理テーブル２５１、エクスポート用磁気テープ管理テーブル２５２およびドライブ管理テーブル２５３が記憶される。さらに、制御装置２０１が備える記憶装置（例えばＲＡＭ２１２）には、コマンドキュー２６１が生成される。
【００５２】
次にアクセス制御部２２０の動作について説明する。アクセス制御部２２０は、仮想テープ制御部２３０およびエクスポート制御部２４０からの指示に従って、ディスクアレイ装置５００内のＨＤＤと、テープライブラリ装置３００内の磁気テープとの間のデータ転送を実行する。
【００５３】
例えば、アクセス制御部２２０は、仮想テープ制御部２３０またはエクスポート制御部２４０から、磁気テープへのデータの書き込みを指示された場合、書き込みを行うテープドライブをテープライブラリ装置３００に指定する。そして、アクセス制御部２２０は、指定したテープドライブに磁気テープをマウントするようにテープライブラリ装置３００に指示する。アクセス制御部２２０は、書き込みデータをディスクアレイ装置５００から読み出して、磁気テープがマウントされたテープドライブに対して送信し、データの書き込みを実行させる。
【００５４】
また、アクセス制御部２２０は、ディスクアレイ装置５００から読み出したデータを磁気テープに書き込む際に、書き込むデータを圧縮する機能を備える。
さらに、アクセス制御部２２０は、テープライブラリ装置３００のテープドライブ３１１〜３１４を通じて、磁気テープからのデータの読み出しまたは磁気テープへのデータの書き込みを行った際に、エラーが発生すると、発生したエラーの種類に応じたエラー点数を記録する機能を備える。アクセス制御部２２０は、エラーが発生したとき、発生したエラーの種類に応じたエラー点数を、エラーが発生したテープドライブごとにドライブ管理テーブル２５３に登録する。
【００５５】
また、アクセス制御部２２０は、エクスポート用磁気テープに対するデータの書き込み時にエラーが発生すると、発生したエラーの種類に応じたエラー点数を、エラーが発生した磁気テープごとにエクスポート用磁気テープ管理テーブル２５２に登録する。
【００５６】
ここで、コマンドキュー２６１について説明する。図６は、コマンドキューに登録される情報の例を示す図である。
アクセス制御部２２０は、仮想テープ制御部２３０またはエクスポート制御部２４０から発行されたコマンド情報を、発行された順にコマンドキュー２６１に登録する。コマンドキュー２６１に登録される情報としては、例えば、「ＩＤ（Identifier）」、「コマンド名」、「ＬＶ（Logical Volume：論理ボリューム）名」、「テープ名」、「優先度」および「実行フラグ」がある。
【００５７】
「ＩＤ」は、コマンド情報の識別情報である。「コマンド名」は、指示の内容を識別する情報である。「コマンド名」により、少なくとも、後述する「リコール」、「非同期マイグレーション」、「緊急マイグレーション」、「エクスポート」および「磁気テープ初期化」を識別可能になっている。
【００５８】
「ＬＶ名」は、読み出しまたは書き込みの対象の論理ボリュームを示す識別情報である。「テープ名」は、書き込み先または読み出し元の磁気テープを識別する情報である。
「優先度」は、コマンド名に対応付けられ、例えば値が大きいほど先に実行すべきとされる。「優先度」は、基本的にコマンド名ごとに決まるが、エクスポートに関しては、単独実行する場合より並列実行（多重実行）する場合の方が高く設定される。
【００５９】
「実行フラグ」は、現在実行中であるか否かを示すフラグ情報である。例えば、初期値は「０」であり、コマンドの実行を開始すると、アクセス制御部２２０が「１」に変更する。本実施の形態ではドライブを４台としたので、コマンドキュー２６１内の最大４つのコマンド情報の実行フラグが「１」となる。
【００６０】
アクセス制御部２２０は、実行するコマンドの対象となるテープドライブを選定し、選定したテープドライブを通じてコマンドに応じた処理を行う。また、アクセス制御部２２０は、コマンドキュー２６１に登録されたコマンドを、優先度が高い順に処理する。また、アクセス制御部２２０は、コマンドに対応する処理が終了したとき、そのコマンドをコマンドキュー２６１から破棄する。
【００６１】
アクセス制御部２２０は、テープライブラリ装置３００に空きドライブがない状態で、実行中のコマンドより優先度の高いコマンドがコマンドキュー２６１に登録されると、より優先度の低いいずれかのコマンド（実行開始が最も遅いもの）の処理を停止する。そして、アクセス制御部２２０は、停止したコマンドの処理で使用していた磁気テープをテープドライブからアンマウントさせ、優先度の高いコマンドの処理で使用する磁気テープをそのテープドライブにマウントさせて、優先度の高いコマンドを実行する。アクセス制御部２２０は、停止したコマンドの処理を、空きドライブが発生次第、その空きドライブを使用して再開する。
【００６２】
次に仮想テープ制御部２３０の動作について説明する。仮想テープ制御部２３０は、ホスト装置４００からの仮想テープライブラリシステムへのアクセス要求に応じて、ディスクアレイ装置５００内のＨＤＤに対するデータアクセス、テープライブラリ装置３００内の磁気テープに対するデータアクセスを行う。さらに、仮想テープ制御部２３０は、ホスト装置４００との間のデータ送受信などの処理の実行をアクセス制御部２２０に指示する。
【００６３】
また、これらの制御の際に、仮想テープ制御部２３０は、論理ボリュームを管理する情報が格納されたボリューム管理テーブル２５１を利用する。
ここで、ボリューム管理テーブル２５１について説明する。図７は、ボリューム管理テーブルに登録される情報の例を示す図である。
【００６４】
ボリューム管理テーブル２５１には、論理ボリュームごとにレコードが生成される。ボリューム管理テーブル２５１のレコードには、生成された論理ボリュームに関する情報として、「論理ボリューム（ＬＶ）名」、「格納先テープ名」、「論理ボリューム（ＬＶ）サイズ」、「圧縮率」および「キャッシュ状態」が登録される。
【００６５】
「論理ボリューム名」は、論理ボリュームを識別する情報である。「格納先テープ名」は、論理ボリュームが格納されたライブラリ用磁気テープを識別する情報である。「論理ボリュームサイズ」は、論理ボリュームのデータサイズを示す。
【００６６】
「圧縮率」は、論理ボリュームを圧縮して磁気テープにコピーした際に、圧縮前のデータサイズに対する圧縮後のデータサイズの比率を示す。この「圧縮率」の欄には、アクセス制御部２２０が論理ボリュームのデータをライブラリ用磁気テープにコピーする処理を完了したとき、アクセス制御部２２０によって値が登録される。
【００６７】
「キャッシュ状態」は、論理ボリュームがオンキャッシュ状態であるか、またはオフキャッシュ状態であるかを示す。「キャッシュ状態」は、オンキャッシュ状態である場合には「オン」とされ、オフキャッシュ状態である場合には「オフ」とされる。
【００６８】
仮想テープ制御部２３０は、ボリューム管理テーブル２５１を用いて、例えば次のような処理を行う。仮想テープ制御部２３０は、ホスト装置４００などからの要求に応じて新たな論理ボリュームを生成すると、生成した論理ボリュームに対応するレコードをボリューム管理テーブル２５１に生成する。
【００６９】
このとき、仮想テープ制御部２３０は、生成した論理ボリュームに対応するレコード内の「キャッシュ状態」を「オン」にして、ディスクアレイ装置５００に新たな論理ボリュームの領域を確保するとともに、確保した論理ボリュームの領域のサイズを「論理ボリュームサイズ」に登録する。
【００７０】
その後、仮想テープ制御部２３０は、アクセス制御部２２０を制御して、ホスト装置４００から書き込みを要求されたデータを、ディスクアレイ装置５００内の論理ボリュームに記録させる。
【００７１】
さらに、仮想テープ制御部２３０は、その後の任意のタイミングで、データの記録を行った論理ボリュームを、テープライブラリ装置３００内の所定のライブラリ用磁気テープにコピーする「非同期マイグレーション」を、アクセス制御部２２０に実行させる。
【００７２】
非同期マイグレーションが実行される際、仮想テープ制御部２３０は、論理ボリュームのコピー先のライブラリ用磁気テープを示す識別情報の通知をアクセス制御部２２０から受ける。そして、この論理ボリュームに対応するレコード内の「格納先テープ名」に登録する。
【００７３】
また、非同期マイグレーションの実行が完了すると、仮想テープ制御部２３０は、圧縮後のデータサイズをアクセス制御部２２０から取得して、圧縮率を計算し、対応するレコード内の「圧縮率」に登録する。
【００７４】
また、仮想テープ制御部２３０は、ホスト装置４００からデータの書き込みの要求を受けたとき、ディスクアレイ装置５００に空き領域を確保できない場合には、アクセス制御部２２０に、最終アクセス時刻から最も長い時間が経過している論理ボリュームをディスクアレイ装置５００から消去させる。このとき、仮想テープ制御部２３０は、ディスクアレイ装置５００から消去された論理ボリュームに対応するレコードの「キャッシュ状態」を「オフ」にする。
【００７５】
ここで、論理ボリュームをディスクアレイ装置５００から消去する際に、その論理ボリュームの最新データがライブラリ用磁気テープにコピーされていない場合がありえる。このような場合には、仮想テープ制御部２３０は、消去対象の論理ボリュームをライブラリ用磁気テープにコピーする「緊急マイグレーション」を、アクセス制御部２２０に実行させる。そして、仮想テープ制御部２３０は、緊急マイグレーションが完了した後、対応する論理ボリュームをディスクアレイ装置５００から消去させる。
【００７６】
また、仮想テープ制御部２３０は、ホスト装置４００からデータの読み出し要求を受けると、要求されたデータを含む論理ボリュームがディスクアレイ装置５００に記録されているか否かを、ボリューム管理テーブル２５１に基づいて判定する。
【００７７】
例えば、「ＬＶ０００１」という論理ボリュームに含まれるデータの読み出しがホスト装置４００から要求されたとする。
要求されたデータを含む論理ボリューム「ＬＶ０００１」がディスクアレイ装置５００に記録されていた場合、論理ボリューム「ＬＶ０００１」に対応するボリューム管理テーブル２５１のレコードにおいて、「キャッシュ状態」は「オン」になっている。この場合、仮想テープ制御部２３０は、要求されたデータをディスクアレイ装置５００内の論理ボリューム「ＬＶ０００１」からアクセス制御部２２０を通じて読み出し、ホスト装置４００に送信する。
【００７８】
一方、要求されたデータを含む論理ボリューム「ＬＶ０００１」がディスクアレイ装置５００に記録されていない「キャッシュミス状態」である場合、論理ボリューム「ＬＶ０００１」に対応するボリューム管理テーブル２５１のレコードにおいて、「キャッシュ状態」は「オフ」になっている。この場合、仮想テープ制御部２３０は、アクセス制御部２２０を通じてテープライブラリ装置３００に、論理ボリューム「ＬＶ０００１」が格納されたライブラリ用磁気テープをテープライブラリ装置３００内のいずれかのテープドライブにマウントさせる。そして、仮想テープ制御部２３０は、マウントさせたライブラリ用磁気テープから論理ボリューム「ＬＶ０００１」を読み出すようにテープライブラリ装置３００に指示する。
【００７９】
仮想テープ制御部２３０は、アクセス制御部２２０に、ライブラリ用磁気テープから読み出されたデータをディスクアレイ装置５００にコピーさせる。これとともに、仮想テープ制御部２３０は、論理ボリューム「ＬＶ０００１」に対応するボリューム管理テーブル２５１内のレコードにおいて、「キャッシュ状態」を「オフ」から「オン」に書き替える。
【００８０】
このように、読み出しを要求されたデータを含む論理ボリュームをライブラリ用磁気テープからディスクアレイ装置５００にコピーする処理を「リコール」と呼ぶ。
リコールが完了すると、仮想テープ制御部２３０は、アクセス制御部２２０を通じて、ディスクアレイ装置５００にコピーされた論理ボリューム「ＬＶ０００１」から、ホスト装置４００から要求されたデータを読み出し、ホスト装置４００に送信する。
【００８１】
なお、「キャッシュ状態」としては、上記の「オン」「オフ」の代わりに、例えば、「Ｄｉｒｔｙ」「Ｈｉｔ」「Ｍｉｓｓ」という３つのステータスが登録されてもよい。
「Ｄｉｒｔｙ」は、論理ボリュームの最新データが、ディスクアレイ装置５００には格納されているものの、ライブラリ用磁気テープには格納されていない状態を示す。「Ｈｉｔ」は、ディスクアレイ装置５００内の論理ボリュームのデータと、ライブラリ用磁気テープ内の論理ボリュームのデータとが等価である状態を示す。「Ｍｉｓｓ」は、ディスクアレイ装置５００に論理ボリュームのデータが記録されておらず、ライブラリ用磁気テープにのみ論理ボリュームのデータが記録されている状態を示す。
【００８２】
これら３つのステータスが使用された場合、論理ボリュームがオンキャッシュ状態であれば、その論理ボリュームに対応するレコード内の「キャッシュ状態」は「Ｄｉｒｔｙ」または「Ｈｉｔ」となる。一方、論理ボリュームがオフキャッシュ状態であれば、その論理ボリュームに対応するレコード内の「キャッシュ状態」は「Ｍｉｓｓ」となる。
【００８３】
ところで、近年では、データ量の増加と、保存媒体であるテープ媒体の容量の増加とに伴い、論理ボリュームをエクスポート用磁気テープにバックアップするエクスポート処理の処理時間も増加している。このような状況の中で、エクスポート処理時に、ハードウェア故障やテープ媒体不良等の障害が発生すると、障害発生後にリトライが実行されるが、リトライの実行により、エクスポート処理の完了時間が大幅に遅延することが懸念される。また、エクスポート処理は、通常運用中の処理との間で適切な優先度が設定されていないことが多いため、エクスポート処理が待たされることが多く、エクスポートの完了時間が遅延することになる。
【００８４】
下記に説明する処理は、上記のようなエクスポート処理の遅延の抑制を図るものである。
次に図５に示したエクスポート制御部２４０の動作について説明する。エクスポート制御部２４０は、ホスト装置４００からの指示に応じて、アクセス制御部２２０にエクスポート処理を実行させる。
【００８５】
すなわち、エクスポート制御部２４０は、ホスト装置４００から例えば、仮想テープ制御専用ソフトウェアなどの実行に伴うエクスポート指示を受信する。すると、エクスポート制御部２４０は、ディスクアレイ装置５００上の論理ボリュームのうち指定された論理ボリュームのデータを、テープライブラリ装置３００内の、あらかじめ登録しておいたエクスポート用磁気テープに書き出す。
【００８６】
なお、エクスポート処理では、１回のエクスポート指示で、例えば、１個または複数の論理ボリュームと、書き出し先となるエクスポート用磁気テープ１本とが指定される。ただし、指定される論理ボリュームの総容量が、エクスポート用磁気テープ１本の容量を超えてはならない。
【００８７】
このようなエクスポート処理が行われることにより、指定された論理ボリュームのデータをエクスポート用磁気テープにバックアップすることができ、該エクスポート用磁気テープをテープライブラリ装置３００より取り出して、データを外部保管することができる。
【００８８】
なお、エクスポート制御部２４０は、後述の特定条件を満たした場合に、複数のエクスポート用磁気テープにエクスポート処理を並列実行させ、先に完了した方を有効なエクスポート済み磁気テープとして排出する（以降では、エクスポート処理の並列実行をエクスポート並列処理とも呼ぶ）。
【００８９】
また、エクスポート制御部２４０は、エクスポート並列処理において、先に完了しなかった方のエクスポート処理については、該エクスポート処理をキャンセルし、処理前の状態に戻す。これとともに、エクスポート制御部２４０は、キャンセルしたエクスポート処理で使用したハードウェア（例えばテープドライブ）とテープ媒体を故障監視の対象として記録する。これにより、以後のエクスポート処理で同じハードウェアやテープ媒体を使用し、またも先にエクスポート処理が完了しないという事象が繰り返し見えた場合、該当のハードウェアやテープ媒体を故障・不良と判定することができる。
【００９０】
一方、エクスポート処理を常に並列で動作させてしまうと、リソースを浪費してしまい効率的ではない。このため、エクスポート制御部２４０は、エクスポート処理に時間がかかる場合のみ、すなわち、特定の条件が成立した場合のみに、エクスポート並列処理を実施するようにする。
【００９１】
また、他の処理（マイグレーション等）により、テープドライブの空きがない場合には、エクスポート処理が待たされる場合がある。従って、エクスポート並列処理を実行する際の実行優先度の設定も設けておく。なお、優先度設定については後述する。
【００９２】
次にエクスポート制御部２４０がエクスポート並列処理を実行する際の特定条件（並列処理実行条件）について説明する。
エクスポート制御部２４０は、並列処理実行条件が満たされた場合のみ、エクスポート並列処理を実行することになる。また、並列処理実行条件が満たされない場合は、単独のエクスポート処理（以下、エクスポート単独処理と呼ぶ）を実行することになる。
【００９３】
ここで、単純にエクスポート処理時間を短縮するのであれば、エクスポート処理を常に並列実行させることが考えられる。しかし、エクスポート処理は、１処理ごとにテープドライブを１台占有するため、常に並列で実行させてしまうとテープドライブのリソース不足が生じる可能性がある。
【００９４】
従って、並列処理実行条件としては、エクスポート制御部２４０が、エクスポート処理を並列実行とした場合に、「エクスポート処理を並列実行して発生する一時のリソース不足」というデメリットよりも「エクスポート処理完了時間の遅延回避」というメリットの方が大きいと判断できる条件が設定される。そして、その条件を満たす場合のみ、エクスポート制御部２４０は、並列処理を実行する。
【００９５】
例として、並列処理実行条件は、以下の前提条件および第１〜第５の条件を含む。エクスポート制御部２４０は、ホスト装置４００からエクスポート指示を受けたとき、前提条件が満たされ、かつ第１〜第５の条件のうち２以上が成立した場合に、エクスポート並列処理を実行する。
【００９６】
そして、エクスポート制御部２４０は、先に正常終了した方を有効なエクスポート完了磁気テープとして扱うことで、他方のエクスポート処理が異常停止または処理遅延が発生しても、見かけ上のエクスポート完了時間の遅延を回避することができる。以下、各条件について説明する。
【００９７】
（前提条件）空きテープドライブの台数と、エクスポート並列処理より優先度の低い処理が行われているテープドライブの台数との合計が２台以上ある場合。
この条件に従った場合には、例えば、テープドライブが４台あって、そのうち３台でエクスポート並列処理と同等以上の優先度の処理が実行されている場合は、エクスポート制御部２４０は、エクスポート並列処理を実行しない。その代わり、エクスポート制御部２４０は、残り１台のテープドライブを用いてエクスポート単独処理を実行する。
【００９８】
また、４台のうち、２台でエクスポート並列処理と同等以上の優先度の処理が実行され、１台でエクスポート並列処理より優先度の低い処理が実行されている場合、エクスポート制御部２４０は、優先度の低い処理をキャンセルして、エクスポート並列処理を実行することになる。
【００９９】
なお、テープドライブの台数は、３台以上設けられることが望ましい。例えば、３台設けられている場合、２台のテープドライブでエクスポート並列処理を実行中でも、１台のテープドライブで他の処理をさらに実行でき、仮想テープライブラリの運用を続行することができるからである。
【０１００】
（第１の条件）エクスポート処理対象として指定された論理ボリュームのデータの総容量があらかじめ設定した閾値を超えている場合。
データの総容量が大きい論理ボリュームの方が、エクスポート処理に時間がかかる。従って、エクスポート制御部２４０は、第１の条件を満たす論理ボリュームをエクスポート並列処理の実行対象の１つとする。
【０１０１】
（第２の条件）エクスポート処理対象として指定された論理ボリュームのデータの平均サイズがあらかじめ設定した閾値を下回っている場合。
例えば、エクスポート処理対象として指定された論理ボリュームのデータの総容量がどちらも同じであるが、「大容量の論理ボリュームが少数指定された場合」と、「小容量の論理ボリュームが多数指定された場合」とを比較する。この場合、前者のケースよりも後者のケースの方が、マウントすべき磁気テープの個数が多くなる可能性が高くなるため、エクスポート処理に時間がかかる可能性が高い。従って、エクスポート制御部２４０は、第２の条件を満たす論理ボリュームをエクスポート並列処理の実行対象の１つとする。
【０１０２】
（第３の条件）エクスポート処理対象として指定されたた論理ボリュームのデータのテープ書き込み時における平均圧縮率があらかじめ設定した閾値を下回っている場合。
ディスクアレイ装置５００に存在する論理ボリュームを、エクスポート用磁気テープに書き込む際には、データ圧縮がかかるので論理ボリュームのサイズが減少する。
【０１０３】
なお、圧縮率は、データ圧縮によるサイズ減少の割合を示すものとする。例えば、１００Ｍｂｙｔｅのデータが圧縮により２０Ｍｂｙｔｅになった場合、圧縮率は８０％となる。
【０１０４】
圧縮前のデータ容量が同じ論理ボリューム同士では、圧縮率が低い論理ボリュームの方がエクスポート処理に時間がかかることになる。従って、エクスポート制御部２４０は、第３の条件を満たす論理ボリュームをエクスポート並列処理の実行対象の１つとする。
【０１０５】
なお、論理ボリュームごとの圧縮率の情報は、論理ボリュームのデータが磁気テープに一度書き込まれた際に、ボリューム管理テーブル２５１に保存される。また、磁気テープに一度も書き込まれたことがない論理ボリュームに対してエクスポート指示があった場合は、圧縮率の情報が存在しない。従って、この場合は、エクスポート指示を契機にして、仮想テープ制御部２３０が論理ボリュームの圧縮を行い、エクスポート制御部２４０がその圧縮率を求めることになる。
【０１０６】
（第４の条件）エクスポート処理で使用するテープドライブの過去のエラー点数の平均が閾値を超えている場合。
エクスポート処理で使用するテープドライブについての過去のエラー点数が高いほど、データ書き込み処理時に異常停止する可能性が高くなる。従って、エクスポート制御部２４０は、第４の条件を満たす論理ボリュームをエクスポート並列処理の実行対象の１つとする。
【０１０７】
（第５の条件）エクスポート処理しようとしているエクスポート用磁気テープのエラー点数が閾値を超えている場合。
エクスポート処理しようとしているエクスポート用磁気テープのエラー点数が高いほど、データ書き込み処理時に異常停止する可能性が高くなる。従って、エクスポート制御部２４０は、第５の条件を満たす論理ボリュームをエクスポート並列処理の実行対象の１つとする。
【０１０８】
エクスポート制御部２４０は、上記の条件に対して、前提条件を満たし、かつ第１〜第５の条件の少なくとも２つの条件が満たされる場合に、エクスポート並列処理を実行する。これにより、エクスポート制御部２４０は、「エクスポート処理を並列実行して発生する一時のリソース不足」よりも「エクスポート処理完了時間の遅延回避」の方の重要度が高いと判断される場合にのみ、エクスポート並列処理を実行することが可能になる。
【０１０９】
なお、上記各条件に基づく判定方法としては、他の方法を採用することもできる。例えば、エクスポート制御部２４０は、前提条件のみ成立している場合にエクスポート並列処理を実行してもよい。あるいは、エクスポート制御部２４０は、第１〜第５の条件のうち任意の数の条件が成立している場合にエクスポート並列処理を実行してもよい。
【０１１０】
次にエクスポート用磁気テープ管理テーブル２５２およびドライブ管理テーブル２５３について説明する。制御装置２０１は、エクスポート用磁気テープおよびテープドライブ３１１〜３１４を、それぞれエクスポート用磁気テープ管理テーブル２５２およびドライブ管理テーブル２５３で管理する。
【０１１１】
図８は、エクスポート用磁気テープ管理テーブルの構成例を示す図である。エクスポート用磁気テープ管理テーブル２５２には、エクスポート用磁気テープの管理情報として、「テープ名」、「テープ状態」、「エラー日時とエラー点数」、「エラー点数累積値」および「エクスポート遅延回数」が登録される。
【０１１２】
「テープ名」は、エクスポート用磁気テープの識別情報である。「テープ状態」は、エクスポート用磁気テープが使用可能か否かを示す情報であり、「ｎｏｒｍａｌ」が登録されている場合は使用可能である。また、テープ状態の欄に「ｅｒｒｏｒ」（故障状態）または「ｄｉｓａｂｌｅ」（使用不可）が登録されると該テープは使用禁止になる。
【０１１３】
「エラー日時とエラー点数」は、エクスポート処理を実行中に、エクスポート用磁気テープにエラーが発生した日時と、発生したエラーの種類に応じたエラーの点数である。また、「エラー日時とエラー点数」には、例えば、１つのテープ名に対して、過去１０件の情報が登録される。
【０１１４】
「エラー点数累積値」は、エラー点数の累積値である。例えば、「エラー日時とエラー点数」に過去１０件の情報が登録されている場合は、「エラー点数累積値」には１０件分のエラー点数の累積値が示される。「エクスポート遅延回数」は、エクスポート並列処理の実行時に、先に完了しなかった回数である。
【０１１５】
図９は、ドライブ管理テーブルの構成例を示す図である。ドライブ管理テーブル２５３には、テープドライブの管理情報として、「ドライブ名」、「ドライブ状態」、「エラー日時とエラー点数」、「エラー点数累積値」および「エクスポート遅延回数」が登録される。
【０１１６】
「ドライブ名」は、テープドライブの識別情報である。「ドライブ状態」は、テープドライブが使用可能か否かを示す情報であり、「ｎｏｒｍａｌ」が登録されている場合は使用可能である。また、ドライブ状態の欄に「ｅｒｒｏｒ」（故障状態）または「ｄｉｓａｂｌｅ」（使用不可）が登録されると該テープドライブは使用禁止になる。
【０１１７】
「エラー日時とエラー点数」は、エクスポート処理を実行中に、テープドライブにエラーが発生した日時と、発生したエラーの種類に応じたエラーの点数である。また、「エラー日時とエラー点数」には、例えば、１つのテープドライブ名に対して、過去１０件の情報が登録される。
【０１１８】
「エラー点数累積値」は、エラー点数の累積値である。、例えば、「エラー日時とエラー点数」に過去１０件の情報が登録されている場合は、「エラー点数累積値」には１０件分のエラー点数の累積値が示される。「エクスポート遅延回数」は、エクスポート並列処理の実行時に、先に完了しなかった回数である。
【０１１９】
次にエクスポート並列処理の優先度について説明する。エクスポート並列処理の優先度は、例えば、「リコール」、「非同期マイグレーション」および「緊急マイグレーション」の各処理との重要度の差を考慮して決定される。各処理の内容について以下説明する。
【０１２０】
「リコール」は、ホスト装置４００からのデータ読み込み要求に対し、要求されたデータがディスクアレイ装置５００に存在しないため、テープライブラリ装置３００からデータが読み出される処理である。
【０１２１】
ホスト装置４００からの読み込み要求後に、ディスクアレイ装置５００にデータが格納されてリコールが終了するまで、仮想テープ制御部２３０はホスト装置４００へ正常に応答することができない。一方、エクスポート並列処理はあくまでバックアップ処理であり、エクスポート並列処理が仮想テープライブラリの運用に支障をきたさないようにすることが望ましい。このことから、リコールの優先度をエクスポート並列処理より高くする。
【０１２２】
「非同期マイグレーション」は、ホスト装置４００からのデータ書き込み要求に応じてディスクアレイ装置５００に書き込まれたデータが、書き込み後の任意のタイミングでテープライブラリ装置３００に書き込まれる処理である。
【０１２３】
非同期マイグレーションは、ホスト装置４００からの書き込み要求とは非同期で行う処理であるため、リコールより優先度が低い。一方、エクスポート処理はホスト装置４００から指示された時点でできるだけ早く実行すべきなので、エクスポート並列処理の優先度は非同期マイグレーションより高いことが望ましい。
【０１２４】
「緊急マイグレーション」は、ホスト装置４００からのデータの書き込み要求に対し、ディスクアレイ装置５００に新たにデータを格納する際に空き領域が確保できない場合に、空き領域を確保するために緊急で行われるマイグレーション処理である。
【０１２５】
仮想テープ制御部２３０は、ディスクアレイ装置５００に空き領域が確保されるまで、ホスト装置４００からの要求に応じた書き込み処理を実行できない。一方、前述のようにエクスポート並列処理はあくまでバックアップ処理であり、エクスポート並列処理が仮想テープライブラリの運用に支障をきたさないようにすることが望ましい。このことから、緊急マイグレーションの優先度をエクスポート並列処理より高くする。
【０１２６】
なお、緊急マイグレーションの実行時には、書き込みデータをディスクアレイ装置５００に書き込むまでの間、書き込みデータは不揮発性のＲＡＭ２１２に保持されることから、書き込みデータが失われる危険がある。このことから、緊急マイグレーションの優先度はリコールより高いことが望ましい。
【０１２７】
以上より、本実施の形態では、優先度を「緊急マイグレーション」＞「リコール」＞「エクスポート並列処理」＞「非同期マイグレーション」のように設定する。
次に、エクスポート処理についてフローチャートを用いて説明する。
【０１２８】
図１０〜図１２は、エクスポート並列処理の動作フローを示す図である。なお、エクスポート処理が行われる場合には、ユーザはあらかじめ、ホスト装置４００を通じて制御装置２０１に対してエクスポート用磁気テープを登録する。制御装置２０１は、ユーザによって登録されたエクスポート用磁気テープと、予備のエクスポート用磁気テープとを、例えば、図５に示したエクスポート用磁気テープ管理テーブル２５２あるいは他の管理テーブルを用いて管理する。
【０１２９】
〔ステップＳ１１〕エクスポート制御部２４０は、ホスト装置４００からエクスポート指示を受信し、エクスポート指示に応じて、エクスポート処理する論理ボリュームと、登録しておいたエクスポート用磁気テープとを指定する。
【０１３０】
〔ステップＳ１２〕エクスポート制御部２４０は、指定された論理ボリュームがすべてディスクアレイ装置５００にキャッシュされているか否かを判定する。キャッシュされていない場合はステップＳ１３へ行き、キャッシュされている場合はステップＳ１４へ行く。
【０１３１】
〔ステップＳ１３〕エクスポート制御部２４０は、アクセス制御部２２０に対して、論理ボリュームを磁気テープから読み出し、ディスクアレイ装置５００に書き込む指示を出す。アクセス制御部２２０は、この指示に基づいて、上記動作を行う。
【０１３２】
〔ステップＳ１４〕エクスポート制御部２４０は、エクスポート並列処理を行うか否かを判定する。エクスポート並列処理を実行する場合は、ステップＳ１５へ行く。一方、エクスポート並列処理を実行しない場合は図１２のステップＳ３２へ行き、エクスポート単独処理が実行される。
【０１３３】
ステップＳ１４でエクスポート並列処理を行うか否かの判定を行う際は、エクスポート制御部２４０は、上述したように、前提条件を満たし、かつ第１〜第５の条件のうちの２つ以上が成立しているかを判定する。エクスポート制御部２４０は、コマンドキュー２６１に登録されたコマンド情報の内容に基づいて、前提条件を満たすか否かを判定する。また、エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２におけるエクスポート処理対象の論理ボリュームに対応するレコードに基づいて、第１〜第３の条件をそれぞれ満たすか否かを判定する。
【０１３４】
さらに、エクスポート制御部２４０は、コマンドキュー２６１に基づき、ステップＳ１１で指定したエクスポート用磁気テープがマウントされるテープドライブを判別する。このとき判別されるテープドライブは、エクスポート単独処理が実行された場合に使用されるテープドライブと同じである。エクスポート制御部２４０は、ドライブ管理テーブル２５３における、判別したテープドライブに対応するレコードに基づいて、第４の条件を満たすか否かを判定する。
【０１３５】
また、エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２における、ステップＳ１１で指定したエクスポート用磁気テープに対応するレコードに基づいて、第５の条件を満たすか否かを判定する。
【０１３６】
〔ステップＳ１５〕エクスポート制御部２４０は、アクセス制御部２２０に対して、エクスポート並列処理の実行を指示する。
具体的には、エクスポート制御部２４０は、それぞれ異なる磁気テープに対するエクスポート処理を実行させるための２つのコマンド情報を生成して、アクセス制御部２２０に出力し、２つのコマンド情報をコマンドキュー２６１に登録させる。エクスポート制御部２４０は、出力する２つのコマンド情報の両方に対して、エクスポート処理を示すコマンド名と、エクスポート対象の論理ボリュームを示すＬＶ名と、前述のようにリコールより低く、非同期マイグレーションより高い値とされた優先度とを設定する。また、エクスポート制御部２４０は、予備用のエクスポート用磁気テープのテープ番号を１つ選択し、一方のコマンド情報にステップＳ１１で指定した論理ボリュームのテープ番号を設定し、他方のコマンド情報に選択した予備用のエクスポート用磁気テープのテープ番号を設定する。
【０１３７】
アクセス制御部２２０は、エクスポート制御部２４０から出力された２つのコマンド情報を、コマンドキュー２６１に登録する。
〔ステップＳ１６〕アクセス制御部２２０は、コマンドキュー２６１に登録されたコマンド情報に基づき、テープドライブの空きが１台以下、かつエクスポート並列処理より優先度の低い処理がテープドライブを使用しているか否かを判定する。この条件を満たしている場合はステップＳ１７へ行き、満たしていない場合はステップＳ１８へ行く。
【０１３８】
〔ステップＳ１７〕アクセス制御部２２０は、実行フラグが「１」であるコマンド情報のうちエクスポート並列処理より優先度が低いコマンド情報に対応する１または２つの処理を中断する。これにより、アクセス制御部２２０は、２つのテープドライブが空き状態になるようにする。
【０１３９】
なお、アクセス制御部２２０は、この後、テープドライブの空きが発生し、かつ、コマンドキュー２６１に登録されたコマンド情報に対応する処理の中で、中断した処理の優先度が最も高くなったときに、中断した処理を再開する。
【０１４０】
〔ステップＳ１８〕アクセス制御部２２０は、ステップＳ１５でコマンドキュー２６１に登録された２つのコマンド情報にそれぞれ基づくエクスポート処理を、並列に実行する。これにより、エクスポート並列処理の実行が開始される。
【０１４１】
この後、アクセス制御部２２０は、ステップＳ１９，Ｓ２４，Ｓ２６の判定処理を、例えば一定周期で繰り返す。
〔ステップＳ１９〕アクセス制御部２２０は、どちらかのエクスポート処理における書き込み処理が途中で異常停止したか否かを判定する。異常停止を認識した場合はステップＳ２０へ行き、異常停止を認識しない場合はステップＳ２５へ行く。
【０１４２】
〔ステップＳ２０〕アクセス制御部２２０は、異常停止した書き込み処理のリトライを試みる。
〔ステップＳ２１〕アクセス制御部２２０は、リトライが成功したか否かを判定する。成功しなかった場合はステップＳ２２へ行き、成功した場合はステップＳ１９へ戻る。
【０１４３】
〔ステップＳ２２〕アクセス制御部２２０は、一方のエクスポート処理が異常停止したことをエクスポート制御部２４０に通知する。このとき、アクセス制御部２２０は、発生したエラーの内容についてもエクスポート制御部２４０に通知する。通知を受けたエクスポート制御部２４０は、異常停止したエクスポート処理のキャンセルをアクセス制御部２２０に指示する。アクセス制御部２２０は、キャンセルを指示されたエクスポート処理の実行を終了し、対応するコマンド情報をコマンドキュー２６１から削除する。
【０１４４】
〔ステップＳ２３〕エクスポート制御部２４０は、キャンセルを指示したエクスポート処理で発生したエラーの内容に基づいて、エクスポート用磁気テープ管理テーブル２５２またはドライブ管理テーブル２５３の更新処理を行う。
【０１４５】
エクスポート制御部２４０は、エラーの内容が磁気テープに関するものである場合、エクスポート用磁気テープ管理テーブル２５２のレコードのうち、キャンセルを指示したエクスポート処理で使用した磁気テープに対応するレコードに対して、エラー日時と、エラーの内容に応じたエラー点数を登録する。さらに、エクスポート制御部２４０は、同じレコードにおけるエラー点数累積値に、新たに登録したエラー点数を加算する。
【０１４６】
一方、エクスポート制御部２４０は、エラーの内容がテープドライブに関するものである場合、ドライブ管理テーブル２５３のレコードのうち、キャンセルを指示したエクスポート処理で使用したテープドライブに対応するレコードに対して、エラー日時と、エラーの内容に応じたエラー点数を登録する。さらに、エクスポート制御部２４０は、同じレコードにおけるエラー点数累積値に、新たに登録したエラー点数を加算する。
【０１４７】
〔ステップＳ２４〕エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２およびドライブ管理テーブル２５３に基づき、キャンセルを指示したエクスポート処理に関する終了処理を実行する。この終了処理については後の図１３にて説明する。
【０１４８】
また、アクセス制御部２２０は、ステップＳ２４の終了処理と並行して、図１２のステップＳ３３以降の処理を実行する。これにより、キャンセルされていない他方のエクスポート処理が単独で続行される。
【０１４９】
〔ステップＳ２５〕アクセス制御部２２０は、コマンドキュー２６１に登録されたコマンド情報に基づき、エクスポート並列処理よりも優先度が高い緊急マイグレーションやリコールの処理が発生し、テープドライブが足りなくなったか否かを判定する。テープドライブが足りなくなった場合はステップＳ２６へ行き、テープドライブが足りる場合はステップＳ２８へ行く。
【０１５０】
〔ステップＳ２６〕アクセス制御部２２０は、テープドライブが足りなくなったことをエクスポート制御部２４０に通知する。通知を受けたエクスポート制御部２４０は、アクセス制御部２２０に対し、２つのエクスポート処理それぞれの進捗状況（例えば、書き込み済みデータサイズ）を問い合わせる。
【０１５１】
エクスポート制御部２４０は、問い合わせに対する応答に基づいて、進捗が遅い方のエクスポート処理のキャンセルをアクセス制御部２２０に指示する。アクセス制御部２２０は、キャンセルを指示されたエクスポート処理の実行を終了し、対応するコマンド情報をコマンドキュー２６１から削除する。
【０１５２】
〔ステップＳ２７〕エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２およびドライブ管理テーブル２５３の更新処理を行う。
エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２のレコードのうち、キャンセルを指示したエクスポート処理で使用した磁気テープに対応するレコードのエクスポート遅延回数を、１だけインクリメントする。また、エクスポート制御部２４０は、ドライブ管理テーブル２５３のレコードのうち、キャンセルを指示したエクスポート処理で使用したテープドライブに対応するレコードのエクスポート遅延回数を、１だけインクリメントする。
【０１５３】
この後、前述のステップＳ２４に行き、エクスポート制御部２４０は、キャンセルを指示したエクスポート処理についての終了処理を実行する。また、アクセス制御部２２０は、ステップＳ２３の終了処理と並行して、図１２のステップＳ３３以降の処理を実行する。これにより、キャンセルされていない他方のエクスポート処理が単独で続行される。
【０１５４】
このように、エクスポート並列処理を実行している最中に、より優先度の高い緊急マイグレーションやリコールの処理が発生し、テープドライブを空けなければならない場合は、エクスポート制御部２４０は、エクスポート並列処理の進捗の遅い方のエクスポート処理をキャンセルさせて終了させる。これにより、アクセス制御部２２０は、空いたテープドライブを使って緊急マイグレーションやリコールの処理を行うことができる。
【０１５５】
〔ステップＳ２８〕アクセス制御部２２０は、エクスポート並列処理を行った際の一方のエクスポート処理が正常に終了したか否かを判定する。終了した場合はステップＳ２９へ行き、終了していない場合はステップＳ１９へ戻る。
【０１５６】
〔ステップＳ２９〕アクセス制御部２２０は、一方のエクスポート処理が終了したことをエクスポート制御部２４０に通知する。通知を受けたエクスポート制御部２４０は、ホスト装置４００に対し、エクスポート処理が完了したことを通知する。これとともに、アクセス制御部２２０は、終了していない他方のエクスポート処理のキャンセルをアクセス制御部２２０に指示する。アクセス制御部２２０は、キャンセルを指示されたエクスポート処理の実行を終了し、対応するコマンド情報をコマンドキュー２６１から削除する。
【０１５７】
このように、エクスポート制御部２４０は、エクスポート並列処理の２つのエクスポート処理のうち、先に正常に終了した方を有効なエクスポート完了磁気テープと判断し、他方のエクスポート処理をキャンセルさせる。
【０１５８】
〔ステップＳ３０〕エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２およびドライブ管理テーブル２５３の更新処理を行う。
エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２のレコードのうち、キャンセルを指示したエクスポート処理で使用した磁気テープに対応するレコードのエクスポート遅延回数を、１だけインクリメントする。また、エクスポート制御部２４０は、ドライブ管理テーブル２５３のレコードのうち、キャンセルを指示したエクスポート処理で使用したテープドライブに対応するレコードのエクスポート遅延回数を、１だけインクリメントする。
【０１５９】
〔ステップＳ３１〕エクスポート制御部２４０は、キャンセルを指示したエクスポート処理についての終了処理を実行する。エクスポート制御部２４０は、終了処理が完了すると、処理を終了する。
【０１６０】
〔ステップＳ３２〕エクスポート制御部２４０は、アクセス制御部２２０に対して、エクスポート単独処理の実行を指示する。
具体的には、エクスポート制御部２４０は、エクスポート処理を示すコマンド名と、エクスポート対象の論理ボリュームを示すＬＶ名と、ステップＳ１１で指定した論理ボリュームのテープ番号とを設定したコマンド情報を生成する。エクスポート制御部２４０は、生成したコマンド情報をアクセス制御部２２０に出力して、コマンドキュー２６１に登録させる。
【０１６１】
なお、このとき出力されるコマンド情報には、例えば、エクスポート並列処理と同じ優先度が設定されればよい。その理由は、エクスポート処理はユーザからの指示に応じて実行されるものであるので、任意で実行されればよい非同期マイグレーションよりも先に実行すべきものと考えられるからである。
【０１６２】
アクセス制御部２２０は、エクスポート制御部２４０から出力されたコマンド情報を、コマンドキュー２６１に登録し、登録したコマンドの優先度に応じたタイミングでエクスポート処理を実行する。これにより、エクスポート単独処理の実行が開始される。
【０１６３】
この後、アクセス制御部２２０は、ステップＳ３３，Ｓ３９，Ｓ４１の判定処理を、例えば一定周期で繰り返す。
〔ステップＳ３３〕アクセス制御部２２０は、実行中のエクスポート処理における書き込み処理が途中で異常停止したか否かを判定する。異常停止を認識した場合はステップＳ３４へ行き、異常停止を認識しない場合はステップＳ３９へ行く。
【０１６４】
〔ステップＳ３４〕アクセス制御部２２０は、異常停止した書き込み処理のリトライを試みる。
〔ステップＳ３５〕アクセス制御部２２０は、リトライが成功したか否かを判定する。成功しなかった場合はステップＳ３６へ行き、成功した場合はステップＳ３３へ戻る。
【０１６５】
〔ステップＳ３６〕アクセス制御部２２０は、エクスポート処理が異常停止したことをエクスポート制御部２４０に通知する。このとき、アクセス制御部２２０は、発生したエラーの内容についてもエクスポート制御部２４０に通知する。通知を受けたエクスポート制御部２４０は、ホスト装置４００に対して、エクスポート処理が異常終了したことを通知する。これとともに、エクスポート制御部２４０は、異常停止したエクスポート処理のキャンセルをアクセス制御部２２０に指示する。アクセス制御部２２０は、キャンセルを指示されたエクスポート処理の実行を終了し、対応するコマンド情報をコマンドキュー２６１から削除する。
【０１６６】
〔ステップＳ３７〕エクスポート制御部２４０は、キャンセルを指示したエクスポート処理で発生したエラーの内容に基づいて、エクスポート用磁気テープ管理テーブル２５２またはドライブ管理テーブル２５３の更新処理を行う。このステップＳ３７の処理手順は、ステップＳ２３と同様である。
【０１６７】
〔ステップＳ３８〕エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２およびドライブ管理テーブル２５３に基づき、キャンセルを指示したエクスポート処理に関する終了処理を実行する。この終了処理については後の図１３にて説明する。エクスポート制御部２４０は、終了処理が完了すると、処理を終了する。
【０１６８】
〔ステップＳ３９〕アクセス制御部２２０は、コマンドキュー２６１に登録されたコマンド情報に基づき、エクスポート並列処理よりも優先度が高い緊急マイグレーションやリコールの処理が発生し、テープドライブが足りなくなったか否かを判定する。テープドライブが足りなくなった場合はステップＳ４０へ行き、テープドライブが足りる場合はステップＳ４１へ行く。
【０１６９】
〔ステップＳ４０〕アクセス制御部２２０は、実行中のエクスポート処理を中断し、新たに指示された処理を実行する。アクセス制御部２２０は、この後、テープドライブの空きが発生し、かつ、コマンドキュー２６１に登録されたコマンド情報に対応する処理の中で、中断したエクスポート処理の優先度が最も高くなったときに、中断したエクスポート処理を再開する。
【０１７０】
〔ステップＳ４１〕アクセス制御部２２０は、エクスポート処理が正常に終了したか否かを判定する。終了した場合はステップＳ４２へ行き、終了していない場合はステップＳ３３へ戻る。
【０１７１】
〔ステップＳ４２〕アクセス制御部２２０は、エクスポート処理が正常に終了したことをエクスポート制御部２４０に通知する。通知を受けたエクスポート制御部２４０は、ホスト装置４００に対してエクスポート処理が正常に完了したことを通知する。
【０１７２】
図１３は、終了処理の動作フローを示す図である。この図１３の処理は、図１１のステップＳ３１および図１２のステップＳ３８で実行されるものである。
〔ステップＳ５１〕エクスポート制御部２４０は、ドライブ管理テーブル２５３のレコードのうち、キャンセルを指示したエクスポート処理で使用したテープドライブに対応するレコードを参照する。エクスポート制御部２４０は、参照したレコードに基づき、該当テープドライブを以後使用禁止とすべきか否かを判定する。
【０１７３】
エクスポート制御部２４０は、少なくとも、レコード内のエラー点数累積値が所定のしきい値を超えているか、または、レコード内のエクスポート遅延回数が所定のしきい値を超えているとき、該当テープドライブを使用禁止にすべきと判定する。
【０１７４】
該当テープドライブが使用可能な場合はステップ５３へ行き、該当テープドライブを使用禁止にすべきと判定された場合はステップＳ５２に行く。
〔ステップＳ５２〕エクスポート制御部２４０は、ステップＳ５１で参照したレコードのドライブ状態を「ｄｉｓａｂｌｅ」に更新し、該当テープドライブを使用禁止にする。
【０１７５】
〔ステップＳ５３〕エクスポート制御部２４０は、エクスポート用磁気テープ管理テーブル２５２のレコードのうち、キャンセルを指示したエクスポート処理で使用した磁気テープに対応するレコードを参照する。エクスポート制御部２４０は、参照したレコードに基づき、該当磁気テープを以後使用禁止とすべきか否かを判定する。
【０１７６】
エクスポート制御部２４０は、少なくとも、レコード内のエラー点数累積値が所定のしきい値を超えているか、または、レコード内のエクスポート遅延回数が所定のしきい値を超えているとき、該当磁気テープを使用禁止にすべきと判定する。
【０１７７】
該当磁気テープが使用可能な場合はステップ５５へ行き、該当磁気テープを使用禁止にすべきと判定された場合はステップＳ５４に行く。
〔ステップＳ５４〕エクスポート制御部２４０は、ステップＳ５３で参照したレコードのテープ状態を「ｄｉｓａｂｌｅ」に更新し、該当磁気テープを使用禁止にする。
【０１７８】
〔ステップＳ５５〕エクスポート制御部２４０は、磁気テープの初期化を示すコマンド名と、該当磁気テープを示すテープ名とを設定したコマンド情報をアクセス制御部２２０に出力して、コマンドキュー２６１へ登録させる。
【０１７９】
アクセス制御部２２０は、エクスポート制御部２４０から出力されたコマンド情報をコマンドキュー２６１に登録し、登録したコマンドの優先度に応じたタイミングで磁気テープの初期化処理を実行する。初期化処理では、アクセス制御部２２０は例えば、磁気テープのヘッダ領域に初期化されたことを示す情報を書き込むことで、この磁気テープに記録されたデータを無効化する。これにより、該当磁気テープは、エクスポート用磁気テープとして再利用可能な状態になる。
【０１８０】
なお、エクスポート用磁気テープの初期化処理は緊急性を要するものではないことから、ステップＳ５５で出力されるコマンド情報の優先度は、非同期マイグレーションより低く設定される。ただし、ステップＳ５５の処理は該当磁気テープへのエクスポート処理がキャンセルされた直後であるので、該当磁気テープはテープドライブにマウントされた状態になっている。このため、該当磁気テープの再マウントを行わずに済む分だけ、該当磁気テープの初期化処理を短時間で実行できる。このことから、ステップＳ５５で出力されるコマンド情報の優先度は、少なくとも非同期マイグレーションより高く設定されてもよい。
【０１８１】
上記の図１３の処理によれば、先にエクスポート処理が完了しなかった回数が設定回数に達した場合は、該当のエクスポート用磁気テープまたはテープドライブが、使用不可状態として登録される。このため、制御装置２０２は故障・不良箇所を的確に特定することが可能になる。
【０１８２】
また、異常停止したエクスポート処理を行っていたエクスポート用磁気テープおよびテープドライブのエラー点数の情報が更新され、エラー点数の累積値が閾値を越えた場合は、該当のエクスポート用磁気テープまたはテープドライブが故障状態として登録される。このため、制御装置２０２は故障・不良箇所を的確に特定することが可能になる。
【０１８３】
以上説明したように、第２の実施の形態の制御装置は、ホスト装置からのエクスポート要求時に、２つのエクスポート用磁気テープにエクスポート並列処理を実行する構成とした。これにより、例えば、ハードウェア故障やテープ媒体不良が検出された場合では、一方のエクスポート処理が異常停止しても、他方のエクスポート処理を継続できるため、エクスポート処理の完了時間の遅延を抑制することができる。また、ハードウェア故障やテープ媒体不良を適切に検出して排除することができる。
【０１８４】
また、エクスポート処理以外の処理によりテープドライブの空きがない状態でも、エクスポート処理より優先度の低い処理が実行されている場合には、その処理よりエクスポート処理を優先して実行することにより、エクスポート処理の遅延を抑制することができる。
【０１８５】
さらに、特定条件でのみエクスポート並列処理を実行するため、テープドライブがむやみにエクスポート用磁気テープに占有されることがなくなり、テープドライブを効率よく使用できるようになる。
【０１８６】
また、先に完了しないエクスポート処理および異常停止時のエラー点数などにより、磁気テープまたはテープドライブの状態を常時監視しているため、故障、不良状態の箇所を的確にかつ早期に検出することができる。
【０１８７】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。
以上の各実施の形態に関し、さらに以下の付記を開示する。
【０１８８】
（付記１）  可般型記録媒体にデータの読み書きを行う複数のドライブ装置と、
前記複数のドライブ装置のうちの第１のドライブ装置を通じて第１の可般型記録媒体にデータを書き込む処理と、前記複数のドライブ装置のうちの第２のドライブ装置を通じて第２の可般型記録媒体に前記データを書き込む処理とを並列に実行し、前記第１の可般型記録媒体と前記第２の可般型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可般型記録媒体への前記データの書き込み処理をキャンセルする制御装置と、
を有することを特徴とするストレージシステム。
【０１８９】
（付記２）  前記制御装置は、
前記複数のドライブ装置の使用状況または前記データの属性の少なくとも一方に基づく条件に従って、前記第１のドライブ装置を通じて前記第１の可般型記録媒体に前記データを書き込む処理および前記第２のドライブ装置を通じて前記第２の可般型記録媒体に前記データを書き込む処理を並列に実行する並列書き込み処理と、前記第１のドライブ装置を通じて前記第１の可般型記録媒体に前記データを書き込む単独書き込み処理とのどちらを実行するかを判定し、
前記並列書き込み処理を実行した場合には、前記第１の可般型記録媒体と前記第２の可般型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可般型記録媒体への前記データの書き込み処理をキャンセルすることを特徴とする付記１記載のストレージシステム。
【０１９０】
（付記３）  前記制御装置は、前記複数のドライブ装置のうち読み書きを行っていないドライブ装置の台数と、前記複数のドライブ装置のうち前記並列書き込み処理より優先度の低い処理が行われているドライブ装置の台数との合計が２台以上ある場合に、前記並列書き込み処理を実行すると判定することを特徴とする付記２記載のストレージシステム。
【０１９１】
（付記４）  前記制御装置は、前記並列書き込み処理を実行すると判定した際に、読み書きを行っていないドライブ装置が１台以下の場合、前記並列書き込み処理より優先度の低い処理が行われているドライブ装置に処理を中断させ、当該ドライブ装置を用いて前記並列書き込み処理を行うことを特徴とする付記３記載のストレージシステム。
【０１９２】
（付記５）  前記制御装置は、前記並列書き込み処理の実行中で、かつ前記複数のドライブ装置のすべてで読み書きが行われているときに、前記並列書き込み処理より優先度の高い他の処理が発生した場合には、前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうち進捗が遅い方に対する書き込み処理をキャンセルすることを特徴とする付記３または４記載のストレージシステム。
【０１９３】
（付記６）  前記制御装置は、
前記第１の可搬型記録媒体および前記第２の可搬型記録媒体を除く他の複数の可搬型記録媒体に格納されたデータの一部をキャッシュ装置に格納し、
前記並列書き込み処理の優先度が、前記キャッシュ装置に空き領域を生成するために前記キャッシュ装置内のデータを前記他の複数の可搬型記録媒体のいずれかに書き込む処理、および、キャッシュミス状態のデータを前記他の複数の可搬型記録媒体のいずれかから読み出して前記キャッシュ装置に格納する処理より低いと判定するとともに、ホスト装置から前記キャッシュ装置に書き込まれたデータを前記ホスト装置からの書き込みとは非同期に前記他の複数の可搬型記録媒体のいずれかに書き込む処理より高いと判定する、
ことを特徴とする付記３〜５のいずれか１つに記載のストレージシステム。
【０１９４】
（付記７）  前記制御装置は、
前記並列書き込み処理および前記単独書き込み処理での書き込み対象として所定の複数のデータを指定し、
少なくとも、前記複数のデータの総容量が所定の閾値を超えている場合、または、前記複数のデータのそれぞれの容量の平均が所定の閾値より低い場合に、前記並列書き込み処理を実行すると判定する、
ことを特徴とする付記３記載のストレージシステム。
【０１９５】
（付記８）  前記制御装置は、前記並列書き込み処理で先に書き込み処理が完了しなかった回数を書き込み先の可搬型記録媒体ごとにカウントし、カウント数が所定回数に達した可搬型記録媒体を使用不可状態として登録することを特徴とする付記１〜７のいずれか１つに記載のストレージシステム。
【０１９６】
（付記９）  前記制御装置は、前記並列書き込み処理で先に書き込み処理が完了しなかった回数を書き込みで使用されたドライブ装置ごとにカウントし、カウント数が所定回数に達したドライブ装置を使用不可状態として登録することを特徴とする付記１〜８のいずれか１つに記載のストレージシステム。
【０１９７】
（付記１０）  前記制御装置は、前記第１の可搬型記録媒体および前記第２の可搬型記録媒体のうち書き込み処理をキャンセルした方の記録データを無効化することを特徴とする付記１〜９のいずれか１つに記載のストレージシステム。
【０１９８】
（付記１１）  複数のドライブ装置を通じて複数の可搬型記録媒体にアクセスする処理を制御する制御装置におけるストレージ制御方法であって、
前記複数のドライブ装置のうちの第１のドライブ装置を通じて第１の可般型記録媒体にデータを書き込む処理と、前記複数のドライブ装置のうちの第２のドライブ装置を通じて第２の可般型記録媒体に前記データを書き込む処理とを並列に実行し、
前記第１の可般型記録媒体と前記第２の可般型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可般型記録媒体への前記データの書き込み処理をキャンセルする、
ことを特徴とするストレージ制御方法。
【０１９９】
（付記１２）  前記複数のドライブ装置の使用状況または前記データの属性の少なくとも一方に基づく条件に従って、前記第１のドライブ装置を通じて前記第１の可般型記録媒体に前記データを書き込む処理および前記第２のドライブ装置を通じて前記第２の可般型記録媒体に前記データを書き込む処理を並列に実行する並列書き込み処理と、前記第１のドライブ装置を通じて前記第１の可般型記録媒体に前記データを書き込む単独書き込み処理とのどちらを実行するかを判定し、
前記並列書き込み処理を実行した場合に、前記第１の可般型記録媒体と前記第２の可般型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可般型記録媒体への前記データの書き込み処理をキャンセルする、
ことを特徴とする付記１１記載のストレージ制御方法。
【０２００】
（付記１３）  前記判定では、前記複数のドライブ装置のうち読み書きを行っていないドライブ装置の台数と、前記複数のドライブ装置のうち前記並列書き込み処理より優先度の低い処理が行われているドライブ装置の台数との合計が２台以上ある場合に、前記並列書き込み処理を実行すると判定することを特徴とする付記１２記載のストレージ制御方法。
【０２０１】
（付記１４）  前記並列書き込み処理を実行すると判定した際に、読み書きを行っていないドライブ装置が１台以下の場合、前記並列書き込み処理より優先度の低い処理が行われているドライブ装置に処理を中断させ、当該ドライブ装置を用いて前記並列書き込み処理を行うことを特徴とする付記１３記載のストレージ制御方法。
【０２０２】
（付記１５）  前記並列書き込み処理の実行中で、かつ前記複数のドライブ装置のすべてで読み書きが行われているときに、前記並列書き込み処理より優先度の高い他の処理が発生した場合には、前記第１の可搬型記録媒体と前記第２の可搬型記録媒体のうち進捗が遅い方に対する書き込み処理をキャンセルすることを特徴とする付記１３または１４記載のストレージ制御方法。
【０２０３】
（付記１６）  前記第１の可搬型記録媒体および前記第２の可搬型記録媒体を除く他の複数の可搬型記録媒体に格納されたデータの一部をキャッシュ装置に格納する処理をさらに含み、
前記判定では、前記並列書き込み処理の優先度が、前記キャッシュ装置に空き領域を生成するために前記キャッシュ装置内のデータを前記他の複数の可搬型記録媒体のいずれかに書き込む処理、および、キャッシュミス状態のデータを前記他の複数の可搬型記録媒体のいずれかから読み出して前記キャッシュ装置に格納する処理より低いと判定するとともに、ホスト装置から前記キャッシュ装置に書き込まれたデータを前記ホスト装置からの書き込みとは非同期に前記他の複数の可搬型記録媒体のいずれかに書き込む処理より高いと判定する、
ことを特徴とする付記１３記載のストレージ制御方法。
【０２０４】
（付記１７）  前記並列書き込み処理および前記単独書き込み処理での書き込み対象として所定の複数のデータを指定する処理をさらに含み、
前記判定では、少なくとも、前記複数のデータの総容量が所定の閾値を超えている場合、または、前記複数のデータのそれぞれの容量の平均が所定の閾値より低い場合に、前記並列書き込み処理を実行すると判定する、
ことを特徴とする付記１３記載のストレージ制御方法。
【０２０５】
（付記１８）  前記並列書き込み処理で先に書き込み処理が完了しなかった回数を書き込み先の可搬型記録媒体ごとにカウントし、カウント数が所定回数に達した可搬型記録媒体を使用不可状態として登録する処理をさらに含むことを特徴とする付記１１〜１７のいずれか１つに記載のストレージ制御方法。
【０２０６】
（付記１９）  前記並列書き込み処理で先に書き込み処理が完了しなかった回数を書き込みで使用されたドライブ装置ごとにカウントし、カウント数が所定回数に達したドライブ装置を使用不可状態として登録する処理をさらに含むことを特徴とする付記１１〜１８のいずれか１つに記載のストレージ制御方法。
【０２０７】
（付記２０）  複数のドライブ装置を通じて複数の可搬型記録媒体にアクセスする処理を制御するためのストレージ制御プログラムにおいて、
コンピュータに、
前記複数のドライブ装置のうちの第１のドライブ装置を通じて第１の可般型記録媒体にデータを書き込む処理と、前記複数のドライブ装置のうちの第２のドライブ装置を通じて第２の可般型記録媒体に前記データを書き込む処理とを並列に実行し、
前記第１の可般型記録媒体と前記第２の可般型記録媒体のうちの一方に対する前記データの書き込み処理が完了すると、他方の可般型記録媒体への前記データの書き込み処理をキャンセルする、
処理を実行させることを特徴とするストレージ制御プログラム。
【符号の説明】
【０２０８】
１０  ストレージシステム
１１  制御装置
１２−１〜１２−ｎ  ドライブ装置
１３−１〜１３−ｎ  可搬型記録媒体
【図１】
0005910213.tif 000002
【図２】
0005910213.tif 000003
【図３】
0005910213.tif 000004
【図４】
0005910213.tif 000005
【図５】
0005910213.tif 000006
【図６】
0005910213.tif 000007
【図７】
0005910213.tif 000008
【図８】
0005910213.tif 000009
【図９】
0005910213.tif 000010
【図１０】
0005910213.tif 000011
【図１１】
0005910213.tif 000012
【図１２】
0005910213.tif 000013
【図１３】
0005910213.tif 000014