(57)【要約】【課題】ジョブの異常終了を防ぐこと。【解決手段】ストレージ制御装置１０１は、ホスト装置１０３からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータの書込順を示すブロック番号と、ブロック単位のデータの種別とを対応付けたトレース情報１１０を、テープ媒体Ｔとは異なる記憶部に記録する。ストレージ制御装置１０１は、ホスト装置１０３からのコマンドに応じてテープ媒体Ｔから読み込まれる所定のブロック番号のデータに関するエラーを検出する。ストレージ制御装置１０１は、所定のブロック番号のデータに関するエラーを検出した場合、記録したトレース情報１１０を参照して、所定のブロック番号に対応するデータの種別を特定する。そして、ストレージ制御装置１０１は、特定した所定のブロック番号に対応するデータの種別に基づいて、ホスト装置１０３への応答を行う。【選択図】図１
2018077686.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置からのコマンドに応じてテープ媒体に書き込まれるブロック単位のデータの書込順を示すブロック番号と前記データの種別とを対応付けたトレース情報を、前記テープ媒体とは異なる記憶部に記録する処理と、
前記ホスト装置からのコマンドに応じて前記テープ媒体から読み込まれる所定のブロック番号のデータに関するエラーが発生した場合に、記録した前記トレース情報を参照して、前記所定のブロック番号に対応するデータの種別に基づいて前記ホスト装置への応答を行う処理と、
を行う制御部を有することを特徴とするストレージ制御装置。
【請求項２】
前記制御部は、
前記所定のブロック番号に対応するデータの種別が、データ区切りを示すテープマークの場合には、前記テープマークが検出されたことを前記ホスト装置に通知する、
ことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記制御部は、
前記テープマークが前記テープ媒体上のデータ終端を示すテープマークの場合には、さらに、前記テープ媒体に対する読み書きを行うドライブ装置に対して、前記テープ媒体にテープマークを書き込むコマンドを発行する、
ことを特徴とする請求項２に記載のストレージ制御装置。
【請求項４】
前記記録する処理は、前記データの種別がファイル属性を示すラベルの場合には、さらに、前記データのブロック番号と対応付けて前記データを前記記憶部に記録し、
前記制御部は、
前記トレース情報を参照して、前記所定のブロック番号に対応するデータの種別がファイル属性を示すラベルの場合には、前記記憶部に記録した前記所定のブロック番号に対応するデータを前記ホスト装置に送信する、
ことを特徴とする請求項１〜３のいずれか一つに記載のストレージ制御装置。
【請求項５】
前記記録する処理は、前記データの種別が前記テープ媒体上のデータ終端を示すテープマークの場合には、さらに、前記テープ媒体に対する読み書きを行うドライブ装置に対して、前記トレース情報を前記テープ媒体の特定の記憶領域に書き込むコマンドを発行する、
ことを特徴とする請求項１〜４のいずれか一つに記載のストレージ制御装置。
【請求項６】
前記制御部は、
前記ホスト装置から次のテープマークまでスキップするコマンドを受け付けた場合、前記トレース情報を参照して、前記テープ媒体上の読み込み位置を示すブロック番号を、前記テープ媒体上の次のテープマークに対応するブロック番号に変更し、
前記コマンドが正常終了したことを前記ホスト装置に通知する、
ことを特徴とする請求項１〜５のいずれか一つに記載のストレージ制御装置。
【請求項７】
前記制御部は、
前記テープ媒体上の読み込み位置を示すブロック番号を変更した後に、前記ホスト装置から、データを読み出すためのリードコマンドを受け付けた場合、前記テープ媒体に対する読み書きを行うドライブ装置に対して、変更後のブロック番号に位置付けするコマンドを発行し、
前記ドライブ装置にリードコマンドを発行して前記テープ媒体から読み出されたデータを前記ホスト装置に送信する、
ことを特徴とする請求項６に記載のストレージ制御装置。
【請求項８】
前記制御部は、
前記トレース情報を参照して、ファイル属性を示すラベルに対応するデータの種別に基づいて、前記テープ媒体に記録されたファイルの数を算出し、
算出した前記ファイルの数を出力する、
ことを特徴とする請求項４に記載のストレージ制御装置。
【請求項９】
ホスト装置からのコマンドに応じてテープ媒体に書き込まれるブロック単位のデータの書込順を示すブロック番号と前記データの種別とを対応付けたトレース情報を、前記テープ媒体とは異なる記憶部に記録する処理と、
前記ホスト装置からのコマンドに応じて前記テープ媒体から読み込まれる所定のブロック番号のデータに関するエラーが発生した場合に、記録した前記トレース情報を参照して、前記所定のブロック番号に対応するデータの種別に基づいて前記ホスト装置への応答を行う処理と、
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
従来、大量のデータを長期的に保管するのに適した磁気テープ記憶装置の規格の一つとして、ＬＴＯ（Ｌｉｎｅａｒ−Ｔａｐｅ−Ｏｐｅｎ）がある。また、ＳＬ（Ｓｔａｎｄａｒｄ  Ｌａｂｅｌ）形式でＬＴＯ媒体へのファイルの書き込み／読み込みを行うテープ装置がある。ＳＬ形式では、先頭にボリューム・ラベルを持ち、ユーザデータの前後に見出し・終了のラベルやテープマークが書き込まれる。ラベルには、例えば、ファイルの名前、作成日、データサイズなどが記録される。
【０００３】
関連する先行技術としては、例えば、テープ上のデータをファイル形式で操作するファイルシステムにおいて、メディア上のファイルをユーザ単位で分割管理するためのものがある。また、マルチパーティションにて記録された磁気テープに、磁気テープ情報管理領域の位置情報を持たせて媒体単位でアクセスをする技術であって、磁気テープ使用状況をパーティション単位で管理するものがある。また、データユニットの読み出しにおいてエラーが起こった場合に、エラーが検出されたデータユニットに含まれるレコードの数および境界マークの数を計算して、その情報をホストへ送るものがある。また、固定長のデータセットの単位でテープに記録する装置において、ホストからのファイルの書込み要求に応じてファイルを書き込む技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１２３２５４号公報
【特許文献２】特開平１０−１８８５３１号公報
【特許文献３】国際公開第２００７／１０２４３４号
【特許文献４】国際公開第２０１１／１６１９９７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、バックアップやリストア等のジョブの実行時に、何らかの不具合によって、磁気テープに記録されたユーザデータ以外のデータ（例えば、テープマーク）のリードエラーが発生して、ジョブが異常終了してしまう場合がある。
【０００６】
一つの側面では、本発明は、ジョブの異常終了を防ぐことを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、ホスト装置からのコマンドに応じてテープ媒体に書き込まれるブロック単位のデータの書込順を示すブロック番号と前記データの種別とを対応付けたトレース情報を、前記テープ媒体とは異なる記憶部に記録する処理と、前記ホスト装置からのコマンドに応じて前記テープ媒体から読み込まれる所定のブロック番号のデータに関するエラーが発生した場合に、記録した前記トレース情報を参照して、前記所定のブロック番号に対応するデータの種別に基づいて前記ホスト装置への応答を行う処理と、を行うストレージ制御装置が提供される。
【発明の効果】
【０００８】
本発明の一側面によれば、ジョブの異常終了を防ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるストレージ制御装置１０１の一実施例を示す説明図である。
【図２】図２は、ストレージシステム２００のシステム構成例を示す説明図である。
【図３】図３は、ストレージ制御装置１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、テープ媒体Ｔのパーティションの一例を示す説明図である。
【図５】図５は、書き込み時のコマンドシーケンスの一例を示す説明図である。
【図６】図６は、ブロック定義情報６００の具体例を示す説明図である。
【図７】図７は、全ブロックトレースＴＲ１の具体例を示す説明図である。
【図８】図８は、特殊ブロックトレースＴＲ２の具体例を示す説明図である。
【図９】図９は、ストレージ制御装置１０１の機能的構成例を示すブロック図である。
【図１０】図１０は、特殊ブロックのリードエラーの発生例を示す説明図である。
【図１１】図１１は、ＦＳＰＦコマンドの発行例を示す説明図である。
【図１２】図１２は、テープ残量確認画面１２００の画面例を示す説明図である。
【図１３】図１３は、ストレージ制御装置１０１のドライブ監視処理手順の一例を示すフローチャートである。
【図１４】図１４は、テープ残量表示処理の具体的処理手順の一例を示すフローチャートである。
【図１５】図１５は、ストレージ制御装置１０１のＴＭコマンド処理手順の一例を示すフローチャートである。
【図１６】図１６は、ストレージ制御装置１０１のＷＲコマンド処理手順の一例を示すフローチャートである。
【図１７】図１７は、ストレージ制御装置１０１のＲＤコマンド処理手順の一例を示すフローチャート（その１）である。
【図１８】図１８は、ストレージ制御装置１０１のＲＤコマンド処理手順の一例を示すフローチャート（その２）である。
【図１９】図１９は、ストレージ制御装置１０１のＲＤコマンド処理手順の一例を示すフローチャート（その３）である。
【図２０】図２０は、代行処理の具体的処理手順の一例を示すフローチャートである。
【図２１】図２１は、ストレージ制御装置１０１のＦＳＰＦコマンド処理手順の一例を示すフローチャートである。
【図２２】図２２は、ストレージ制御装置１０１のＢＳＢコマンド処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかるストレージ制御装置、およびストレージ制御プログラムの実施の形態を詳細に説明する。
【００１１】
（実施の形態）
図１は、実施の形態にかかるストレージ制御装置１０１の一実施例を示す説明図である。図１において、ストレージ制御装置１０１は、ドライブ装置１０２を用いてテープ媒体Ｔに対する読み書きを制御するコンピュータである。ドライブ装置１０２は、テープ媒体Ｔに対する読み書きを行うコンピュータである。
【００１２】
テープ媒体Ｔは、磁化の変化により情報を記録・再生する磁気テープであり、例えば、ＬＴＯ媒体である。テープ媒体Ｔに対する読み書きは、例えば、ホスト装置１０３からのコマンドに応じて、可変長のブロック単位で行われる。ホスト装置１０３は、例えば、サーバ等の上位装置である。
【００１３】
ここで、ストレージ制御装置１０１は、例えば、ＳＬ形式で磁気テープへのファイルの書き込み／読み込みを行うテープ装置（例えば、後述の図２に示すテープ装置２０１）に適用される。ＳＬ形式では、先頭にボリューム・ラベルを持ち、ユーザデータの前後に見出し・終了のラベルやテープマークが書き込まれる。
【００１４】
ユーザデータは、ユーザによって使用されるデータの総称であり、例えば、ファイル単位のデータである。ユーザデータの前後に書き込まれる見出し・終了のラベルやテープマークは、ブロック単位のデータであり、「特殊ブロック」と呼ばれる場合がある。また、ユーザデータを分割したブロック単位のデータは「ユーザデータブロック」と呼ばれる場合がある。
【００１５】
例えば、図１に示すように、ユーザデータＡ，ＢをＳＬ形式でテープ媒体Ｔに書き込む場合、各ユーザデータＡ，Ｂの保全性を高めるために、各ユーザデータＡ，Ｂが、Ｈ１／Ｈ２／ＴＭ１とＴＭ２／Ｅ１／Ｅ２の特殊ブロックによってサンドイッチ状態にされる。
【００１６】
Ｈ１は、Ｈｅａｄｅｒ１ラベル（８０バイト）であり、ファイルの属性（名前、作成日等）を示す。Ｈ２は、Ｈｅａｄｅｒ２ラベル（８０バイト）であり、ファイルの属性（テキスト・画像等の属性、サイズ等）を示す。ＴＭ１は、Ｔａｐｅ  Ｍａｒｋ１であり、ユーザデータとの区切り（次からユーザデータ）を示す。ＴＭ２は、Ｔａｐｅ  Ｍａｒｋ２であり、ユーザデータとの区切り（直前までがユーザデータ）を示す。
【００１７】
Ｅ１は、Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベル（８０バイト）であり、ファイルの属性（名前、作成日等）を示す。Ｅ２は、Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベル（８０バイト）であり、ファイルの属性（テキスト・画像等の属性、サイズ等）を示す。なお、Ｈ１（Ｈ１⇒ＨＤＲ１＃＃＃）とＥ１（Ｅ１⇒ＥＯＦ１＃＃＃）とは、先頭のヘッダ部以外（＃＃＃）は同じである。また、Ｈ２（Ｈ２⇒ＨＤＲ２＃＃＃）とＥ２（Ｅ２⇒ＥＯＦ２＃＃＃）とは、先頭のヘッダ部以外（＃＃＃）は同じである。
【００１８】
また、Ｅ２のあとは、ＴＭ３が書き込まれる。ＴＭ３は、Ｔａｐｅ  Ｍａｒｋ３であり、ファイルの区切り（終了）を示す。ＴＭ３のあとには、ＴＭ４が書き込まれる。ＴＭ４は、Ｔａｐｅ  Ｍａｒｋ４であり、テープ媒体のデータ（ファイル）の終端を示す。そして、次のユーザデータを書き込む場合には、ホスト装置（例えば、ホスト装置１０３）からのＢＳＢ（Ｂａｃｋ  Ｓｐａｃｅ  Ｂｌｏｃｋ）コマンドによって一つ前のブロックに戻って（リポジショニング発生）、ＴＭ４が、次のユーザデータのＨ１で上書きされる。
【００１９】
一方で、テープ装置では、データを書き込む際に、ある程度の速度（例えば、秒速６ｍ）までテープ媒体Ｔを回転させてから書き込みを行うため、助走に時間がかかる。したがって、テープ媒体Ｔは連続して走らせていることが好ましく、ＢＳＢコマンドによって一つ前のブロックに戻すのは非常に時間がかかる。
【００２０】
このため、実際の運用では、ホスト装置からのコマンドに対して、テープ装置側でエミュレーション（あたかも実行したようにみせかけて）して、ホスト装置に正常終了を報告する。これにより、次のユーザデータの書き込み時にＢＳＢコマンドを実行することなく書き込みを開始することができる。
【００２１】
この場合、ホスト装置からのＵＮＬＤ（ｕｎｌｏａｄ）コマンドに応じて、テープ媒体ＴにＴＭ４が書き込まれる。これにより、テープ媒体Ｔをアンロード（アンマウント）する際にホスト装置から発行されるＵＮＬＤコマンドを契機にして、テープ媒体ＴにＴＭ４を書き込むことができる。
【００２２】
ところが、ホスト装置からＵＮＬＤコマンドが発行される前に、ドライブ装置に設けられる強制アンロードスイッチ（例えば、ドライブ装置１０２の強制アンロードスイッチＳＷ）が、ユーザによって押下されることがある。強制アンロードスイッチは、緊急時等に、ホスト装置からの指示でテープ媒体Ｔをアンロードするのではなく、ドライブ装置から直接アンロードさせるためのボタンである。
【００２３】
この場合、ＴＭ４のコマンドについてホスト装置には正常終了を報告しているにもかかわらず、実際にはテープ媒体ＴにＴＭ４が書き込まれていない状態となる。この結果、ジョブ実行時に、ホスト装置において、ＴＭ４が検出されないというエラーが発生して、ジョブが異常終了してしまう場合がある。
【００２４】
また、磁気テープの経年劣化や、磁気テープ上にキズやホコリがあるなどの理由によって、特殊ブロックが読み込まれない、あるいは、そもそも特殊ブロックが書き込まれていない場合がある。このような場合も、ジョブが異常終了して、目的のファイルを読むことができないといった不具合が発生する。
【００２５】
そこで、本実施の形態では、ユーザデータ以外のデータ（例えば、テープマーク）のリードエラーが発生しても、ジョブを停止することなく継続することができるストレージ制御方法について説明する。以下、ストレージ制御装置１０１の処理例について説明する。
【００２６】
（１）ストレージ制御装置１０１は、ホスト装置１０３からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータの書込順を示すブロック番号と、ブロック単位のデータの種別とを対応付けたトレース情報１１０を記録する。ここでのトレース情報１１０の記録先は、テープ媒体Ｔとは異なる記憶部、例えば、後述の図３に示すメモリ３０２である。
【００２７】
ここで、ブロック単位のデータは、ボリューム・ラベル、特殊ブロック、ユーザデータブロックなどである。特殊ブロックは、上述したように、ユーザデータの前後に書き込まれる見出し・終了のラベルやテープマークである。ブロック番号は、ホスト装置１０３からのコマンドに応じて、インクリメントされたり、デクリメントされたりする。
【００２８】
また、ブロック単位のデータの種別は、どのようなデータであるか区別するための情報である。例えば、ブロック単位のデータの種別は、ボリューム・ラベル、Ｈｅａｄｅｒ１ラベル、Ｈｅａｄｅｒ２ラベル、Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベル、Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベル、ＴＭ１、ＴＭ２、ＴＭ３、ＴＭ４、ユーザデータのいずれかを示す情報である。
【００２９】
（２）ストレージ制御装置１０１は、ホスト装置１０３からのコマンドに応じてテープ媒体Ｔから読み込まれる所定のブロック番号のデータに関するエラーを検出する。ここで、所定のブロック番号のデータに関するエラーとは、テープ媒体Ｔから所定のブロック番号のデータが読み込まれないことにより発生するリードエラーである。
【００３０】
（３）ストレージ制御装置１０１は、所定のブロック番号のデータに関するエラーを検出した場合、記録したトレース情報１１０を参照して、所定のブロック番号に対応するデータの種別を特定する。そして、ストレージ制御装置１０１は、特定した所定のブロック番号に対応するデータの種別に基づいて、ホスト装置１０３への応答を行う。
【００３１】
具体的には、例えば、ストレージ制御装置１０１は、所定のブロック番号に対応するデータの種別が、データ区切りを示すテープマークの場合には、テープマークが検出されたことをホスト装置１０３に通知する。これにより、テープ媒体Ｔからのテープマークの読み込み時に、何らかの不具合でリードエラーが発生しても、ホスト装置１０３にテープマークが検出されたことを報告することができる。
【００３２】
また、ストレージ制御装置１０１は、所定のブロック番号に対応するデータの種別が、テープ媒体Ｔ上のデータ終端を示すテープマーク（ＴＭ４）の場合には、さらに、ドライブ装置１０２に対して、ＴＭコマンドを発行する。ＴＭコマンドは、テープ媒体Ｔにテープマークを書き込むためのコマンドである。
【００３３】
これにより、ＵＮＬＤコマンドが発行されるまでテープ媒体ＴへのＴＭ４の書き込みを行わない形で運用しているときに、ＴＭ４のリードエラーが発生したら、そのリードエラーを契機にテープ媒体ＴへのＴＭ４の書き込みを行うことができる。
【００３４】
このように、ストレージ制御装置１０１によれば、ホスト装置１０３からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータの書込順を示すブロック番号と、そのデータの種別とを対応付けたトレース情報１１０を記録することができる。また、ストレージ制御装置１０１によれば、ホスト装置１０３からのコマンドに応じてテープ媒体Ｔから読み込まれる所定のブロック番号のデータに関するエラーを検出することができる。そして、ストレージ制御装置１０１によれば、所定のブロック番号のデータに関するエラーを検出した場合に、記録したトレース情報１１０を参照して、所定のブロック番号に対応するデータの種別に基づいてホスト装置１０３への応答を行うことができる。
【００３５】
これにより、テープ媒体Ｔからのファイルの読み込み時に、ユーザデータ以外のデータのリードエラーが発生しても、リードエラーが発生したブロック番号に対応するデータの種別に応じたホスト装置１０３への応答を行うことができる。このため、バックアップやリストア等のジョブの実行時に、テープ媒体Ｔに記録されたユーザデータ以外のデータのリードエラーが発生しても、ジョブを停止することなく継続することができる。
【００３６】
（ストレージシステム２００のシステム構成例）
つぎに、実施の形態にかかるストレージシステム２００のシステム構成例について説明する。以下の説明では、図１に示したストレージ制御装置１０１をテープ装置２０１に適用した場合について説明する。
【００３７】
図２は、ストレージシステム２００のシステム構成例を示す説明図である。図２において、ストレージシステム２００は、テープ装置２０１と、ホスト装置２０２と、を含む。ストレージシステム２００において、テープ装置２０１およびホスト装置２０２は、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００３８】
テープ装置２０１は、ストレージ制御装置１０１と、ドライブ装置１０２と、を含む。テープ媒体Ｔは、ドライブ装置１０２に装着されて使用されるＬＴＯ媒体である。テープ媒体Ｔをドライブ装置１０２にセットすることを「ロード（あるいは、マウント）」といい、また、テープ媒体Ｔをドライブ装置１０２から外すことを「アンロード（あるいは、アンマウント）」という。
【００３９】
ホスト装置２０２は、サーバ等の上位装置であり、例えば、バックアップソフトウェアがインストールされたバックアップサーバである。図１に示したホスト装置１０３は、例えば、ホスト装置２０２に相当する。
【００４０】
（ストレージ制御装置１０１のハードウェア構成例）
つぎに、ストレージ制御装置１０１のハードウェア構成例について説明する。
【００４１】
図３は、ストレージ制御装置１０１のハードウェア構成例を示すブロック図である。図３において、ストレージ制御装置１０１は、プロセッサ３０１と、メモリ３０２と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、ドライブＩ／Ｆ３０４と、ディスプレイ３０５と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４２】
ここで、プロセッサ３０１は、ストレージ制御装置１０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがプロセッサ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、プロセッサ３０１にロードされることで、コーディングされている処理をプロセッサ３０１に実行させる。
【００４３】
通信Ｉ／Ｆ３０３は、通信回線を通じてネットワーク２１０（図２参照）に接続され、ネットワーク２１０を介して他の装置（例えば、図２に示したホスト装置２０２）に接続される。そして、通信Ｉ／Ｆ３０３は、ネットワーク２１０と自装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。通信Ｉ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４４】
ドライブＩ／Ｆ３０４は、ドライブ装置１０２（図２参照）に接続され、ドライブ装置１０２と自装置内部とのインターフェースを司り、ドライブ装置１０２からのデータの入出力を制御する。
【００４５】
ディスプレイ３０５は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ３０５としては、例えば、液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイなどを採用することができる。
【００４６】
なお、ストレージ制御装置１０１は、上述した構成部のほか、例えば、ディスク、ディスクドライブ、入力装置などを有することにしてもよい。また、ストレージ制御装置１０１は、マルチプロセッサ構成であってもよい。また、図２に示したホスト装置２０２については、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、通信Ｉ／Ｆ、ディスクドライブ、ディスク等のハードウェア構成により実現することができる。
【００４７】
（テープ媒体Ｔのパーティション）
つぎに、テープ媒体Ｔのパーティションについて説明する。パーティションは、テープ媒体Ｔ上の記憶領域の区分である。
【００４８】
図４は、テープ媒体Ｔのパーティションの一例を示す説明図である。図４において、テープ媒体Ｔは、インデックスパーティション４０１と、データパーティション４０２と、を含む。インデックスパーティション４０１とデータパーティション４０２との間には、ガードバンド４０３が設けられている。
【００４９】
インデックスパーティション４０１は、トレース情報ＴＲを保存する特定の記憶領域であり、データパーティション４０２に比べて小さい領域である。トレース情報ＴＲは、例えば、後述の図７に示す全ブロックトレースＴＲ１と、後述の図８に示す特殊ブロックトレースＴＲ２とを含む。図１に示したトレース情報１１０は、例えば、全ブロックトレースＴＲ１に相当する。
【００５０】
データパーティション４０２は、例えば、ユーザデータや特殊ブロック（ラベル、テープマーク）を保存する記憶領域である。ガードバンド４０３は、何も記録しない未記録領域である。なお、図４中、縦方向はテープ媒体Ｔの幅を表す。また、横方向はテープ媒体Ｔの長さを表す。ＢＯＴ（Ｂｅｇｉｎｎｉｎｇ  Ｏｆ  Ｔａｐｅ）は、テープ媒体Ｔの最初を示すマークである。ＥＯＴ（Ｅｎｄ  Ｏｆ  Ｔａｐｅ）は、テープ媒体Ｔの最後を示すマークである。
【００５１】
（書き込み時のコマンドシーケンスの一例）
つぎに、ホスト装置２０２からテープ媒体Ｔへのファイル単位での書き込み時のコマンドシーケンスについて説明する。
【００５２】
図５は、書き込み時のコマンドシーケンスの一例を示す説明図である。図５において、テープ媒体Ｔに対して各ユーザデータＡ，Ｂ，Ｃを書き込む際にホスト装置２０２から発行されるコマンド群が示されている。ユーザデータＡ，Ｂ，Ｃは、ファイル単位のデータである。図５中、Ｗは、書き込みコマンドを示す。ＴＭは、ＴＭコマンドを示す。ＢＳＢは、ＢＳＢコマンドを示す。
【００５３】
以下の説明では、書き込みコマンドを「ＷＲ（Ｗｒｉｔｅ）コマンド」と表記し、読み出しコマンドを「ＲＤ（Ｒｅａｄ）コマンド」と表記する場合がある。
【００５４】
一例として、１ファイル目のユーザデータＡがテープ媒体Ｔに書き込まれる際にホスト装置２０２から発行されるコマンド群について説明する。まず、ボリューム・ラベルを書き込むよう指示するＷＲコマンドが発行される。ボリューム・ラベルは、テープ媒体Ｔの名前（ラベル）を示す８０バイトのデータである。
【００５５】
つぎに、Ｈｅａｄｅｒ１ラベルを書き込むよう指示するＷＲコマンドが発行され、その後、Ｈｅａｄｅｒ２ラベルを書き込むよう指示するＷＲコマンドが発行される。つぎに、テープマーク（ＴＭ１に対応）を書き込むよう指示するＴＭコマンドが発行され、その後、ユーザデータブロックを書き込むよう指示するＷＲコマンドが順次発行される。ユーザデータブロックの書き込みが完了すると、テープマーク（ＴＭ２に対応）を書き込むよう指示するＴＭコマンドが発行される。
【００５６】
つぎに、Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベルを書き込むよう指示するＷＲコマンドが発行され、その後、Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベルを書き込むよう指示するＷＲコマンドが発行される。そして、テープマーク（ＴＭ３に対応）を書き込むよう指示するＴＭコマンドが発行され、その後、テープマーク（ＴＭ４に対応）を書き込むよう指示するＴＭコマンドが発行される。
【００５７】
この結果、ユーザデータＡが、テープ媒体Ｔ上でＨ１／Ｈ２／ＴＭ１とＴＭ２／Ｅ１／Ｅ２との特殊ブロックによってサンドイッチ状態にされる。
【００５８】
なお、２ファイル目のユーザデータＢがテープ媒体Ｔに書き込まれる際は、まず、一つ前のブロックに戻るＢＳＢコマンドが発行された後、Ｈｅａｄｅｒ１ラベルを書き込むよう指示するＷＲコマンドが発行される。ただし、テープ装置２０１では、ホスト装置２０２からのＢＳＢコマンドに対して、エミュレーション（あたかも実行したようにみせかけて）して、ホスト装置２０２に正常終了を報告する。
【００５９】
（ブロック定義情報６００の具体例）
つぎに、ストレージ制御装置１０１が用いるブロック定義情報６００の具体例について説明する。ブロック定義情報６００は、例えば、メモリ３０２に記憶される。
【００６０】
図６は、ブロック定義情報６００の具体例を示す説明図である。図６において、ブロック定義情報６００は、ホスト装置２０２からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータの種別を、後述の図７に示す全ブロックトレースＴＲ１に、どのような情報として記録するかを定義した情報である。
【００６１】
具体的には、ＶＯＬ（ボリューム・ラベル）は「Ｘ０１」とし、Ｈ１（Ｈｅａｄｅｒ１ラベル）は「Ｘ１１」とし、Ｈ２（Ｈｅａｄｅｒ２ラベル）は「Ｘ１２」とすることが定義されている。なお、Ｘ＃＃は、１６進数表記であることを示す。また、ＴＭ１は「Ｘ２１」とし、ＴＭ２は「Ｘ２２」とし、ＴＭ３は「Ｘ２３」とし、ＴＭ４は「Ｘ２４」とすることが定義されている。また、Ｅ１（Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベル）は「Ｘ３１」とし、Ｅ２（Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベル）は「Ｘ３２」とすることが定義されている。
【００６２】
また、ｄａｔａ（ユーザデータブロック）は、「ＸＦｘ」とすることが定義されている。より具体的には、ＸＦ０は、ブロックサイズが４ＫＢのｄａｔａを示す。ＸＦ１は、ブロックサイズが８ＫＢのｄａｔａを示す。ＸＦ２は、ブロックサイズが１２ＫＢのｄａｔａを示す。ＸＦ３は、ブロックサイズが１６ＫＢのｄａｔａを示す。ＸＦ４は、ブロックサイズが２０ＫＢのｄａｔａを示す。ＸＦ５は、ブロックサイズが３２ＫＢのｄａｔａを示す。ＸＦ６は、ブロックサイズが６４ＫＢのｄａｔａを示す。
【００６３】
（全ブロックトレースＴＲ１の具体例）
図７は、全ブロックトレースＴＲ１の具体例を示す説明図である。図７において、全ブロックトレースＴＲ１は、ＢＩＤ（Ｂｌｏｃｋ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）とブロック種別とを対応付けて記録する情報である。
【００６４】
ここで、ＢＩＤは、ファイル単位でのテープ媒体Ｔへの書き込み時に、ホスト装置２０２からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータの書込順を示すブロック番号である。ブロック種別は、ブロック単位のデータの種別である。
【００６５】
ブロック種別としては、例えば、図６に示したブロック定義情報６００に定義されたＶＯＬ、Ｈ１、Ｈ２、ＴＭ１、ＴＭ２、ＴＭ３、ＴＭ４、Ｅ１、Ｅ２、ｄａｔａがある。なお、各ブロック種別は、ブロック定義情報６００に定義された情報（例えば、Ｘ０１）として、全ブロックトレースＴＲ１に記録される。
【００６６】
（特殊ブロックトレースＴＲ２の具体例）
図８は、特殊ブロックトレースＴＲ２の具体例を示す説明図である。図８において、特殊ブロックトレースＴＲ２は、ＢＩＤとラベル情報とを対応付けて記録する情報である。ＢＩＤは、ファイル単位でのテープ媒体Ｔへの書き込み時に、ホスト装置２０２からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータの書込順を示すブロック番号である。
【００６７】
ラベル情報は、ホスト装置２０２からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータのうち、ブロック種別がファイル属性を示すラベルのデータである。ラベル情報は、例えば、Ｈｅａｄｅｒ１ラベル、Ｈｅａｄｅｒ２ラベル、Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベルおよびＥｎｄ  ｏｆ  Ｆｉｌｅ２ラベルのいずれかの情報である。
【００６８】
なお、図８中、Ｈ１情報は、「Ｈｅａｄｅｒ１ラベル」を示す。Ｈ２情報は、「Ｈｅａｄｅｒ２ラベル」を示す。Ｅ１情報は、「Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベル」を示す。Ｅ２情報は、「Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベル」を示す。
【００６９】
（ストレージ制御装置１０１の機能的構成例）
図９は、ストレージ制御装置１０１の機能的構成例を示すブロック図である。図９において、ストレージ制御装置１０１は、ドライブ監視部９０１と、受付部９０２と、コマンド処理部９０３と、出力部９０４と、を含む構成である。ドライブ監視部９０１〜出力部９０４は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２に記憶されたプログラムをプロセッサ３０１に実行させることにより、または、通信Ｉ／Ｆ３０３やドライブＩ／Ｆ３０４により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２やテープ媒体Ｔに記憶される。
【００７０】
ドライブ監視部９０１は、ドライブ装置１０２へのテープ媒体Ｔのロードが完了したか否かを判断する。そして、ドライブ監視部９０１は、テープ媒体Ｔのロードが完了したと判断した場合、テープ媒体Ｔの特定の記憶領域に記録されたトレース情報ＴＲをメモリ３０２にコピーする。
【００７１】
テープ媒体Ｔの特定の記憶領域は、例えば、図４に示したインデックスパーティション４０１である。ただし、テープ媒体Ｔの初回ロード時は、テープ媒体Ｔにトレース情報ＴＲは記録されていないため、メモリ３０２へのコピーは行われない。
【００７２】
また、ドライブ監視部９０１は、テープ媒体Ｔのロードが完了したと判断した場合、ホスト装置２０２に対してＲＥＡＤＹ通知を行う。ＲＥＡＤＹ通知は、ドライブ装置１０２にテープ媒体Ｔがセットされ準備が完了したことを示す通知である。
【００７３】
受付部９０２は、コマンドを受け付ける。コマンドは、特定の処理の実行を指示する命令である。コマンドとしては、例えば、ＷＲコマンド、ＲＤコマンド、ＴＭコマンド、ＢＳＢコマンド、ＦＳＰＦ（Ｆｏｒｗａｒｄ  Ｓｐａｃｅ  Ｆｉｌｅ）コマンド、ＵＮＬＤコマンドなどがある。ＦＳＰＦコマンドは、次のテープマークまでスキップするコマンドである。ＦＳＰＦコマンドは、例えば、テープ媒体Ｔに記録された特定のファイルを探す際に用いられる。
【００７４】
具体的には、例えば、受付部９０２は、ファイル単位でのテープ媒体Ｔへの書き込み時またはテープ媒体Ｔからの読み込み時に、通信Ｉ／Ｆ３０３により、ホスト装置２０２からコマンドを受信することにより、ホスト装置２０２からのコマンドを受け付ける。
【００７５】
コマンド処理部９０３は、受付部９０２が受け付けたコマンドを処理する。また、コマンド処理部９０３は、受け付けたコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータの書込順を示すブロック番号と、ブロック単位のデータの種別とを対応付けたトレース情報ＴＲをメモリ３０２に記録する。
【００７６】
以下の説明では、ホスト装置２０２からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータの書込順を示すブロック番号を「ＢＩＤ」と表記し、ブロック単位のデータの種別を「ブロック種別」と表記する場合がある。
【００７７】
また、コマンド処理部９０３は、トレース情報ＴＲを記録する際に、ホスト装置２０２からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータのブロック種別がファイル属性を示すラベルの場合には、さらに、ＢＩＤと対応付けてブロック単位のデータを記録する。ここで、トレース情報ＴＲは、例えば、図７に示した全ブロックトレースＴＲ１と、図８に示した特殊ブロックトレースＴＲ２と、を含む情報である。
【００７８】
また、ブロック種別がファイル属性を示すラベルのデータとは、例えば、Ｈｅａｄｅｒ１ラベル、Ｈｅａｄｅｒ２ラベル、Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベル、Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベルである。すなわち、コマンド処理部９０３は、ファイルの名前、作成日、サイズなどを示すデータについては、そのデータ自体をＢＩＤと対応付けてメモリ３０２に記録する。
【００７９】
以下の説明では、Ｈｅａｄｅｒ１ラベルを「Ｈ１情報」と表記し、Ｈｅａｄｅｒ２ラベルを「Ｈ２情報」と表記する場合がある。また、Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベルを「Ｅ１情報」と表記し、Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベルを「Ｅ２情報」と表記する場合がある。
【００８０】
具体的には、例えば、コマンド処理部９０３は、ＷＲコマンドを受け付けた場合、テープ媒体Ｔ上の読み込み位置を示すＢＩＤをインクリメントする。このＢＩＤは、ストレージ制御装置１０１上で管理するＢＩＤであり、例えば、テープ媒体Ｔのロードが完了したことに応じて初期化（ＢＩＤ＝０）される。
【００８１】
つぎに、コマンド処理部９０３は、ＷＲコマンドデータのブロック種別を判断する。ＷＲコマンドデータは、ＷＲコマンドによって書き込みを指示されるブロック単位のデータである。ＷＲコマンドデータとしては、例えば、ボリューム・ラベル、Ｈｅａｄｅｒ１ラベル、Ｈｅａｄｅｒ２ラベル、Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベル、Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベル、ユーザデータ（ユーザデータブロック）がある。
【００８２】
ＷＲコマンドデータのブロック種別としては、例えば、ＶＯＬ、Ｈ１、Ｈ２、Ｅ１、Ｅ２、ｄａｔａがある。なお、ＷＲコマンドデータのブロック種別は、例えば、ＷＲコマンドデータの先頭のデータ（文字）から判断される。
【００８３】
ここで、ブロック種別が「ＶＯＬ」の場合、コマンド処理部９０３は、図６に示したブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ０１」とを対応付けて、全ブロックトレースＴＲ１に記録する。全ブロックトレースＴＲ１は、例えば、メモリ３０２に記憶される。
【００８４】
また、ブロック種別が「Ｈ１」の場合、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ１１」とを対応付けて、全ブロックトレースＴＲ１に記録する。さらに、ブロック種別「Ｈ１」は、ファイル属性を示すラベルに対応する。この場合、コマンド処理部９０３は、自装置上で管理するＢＩＤと、ＷＲコマンドデータ（Ｈｅａｄｅｒ１ラベル）とを対応付けて、特殊ブロックトレースＴＲ２に記録する。特殊ブロックトレースＴＲ２は、例えば、メモリ３０２に記憶される。
【００８５】
また、ブロック種別が「Ｈ２」の場合、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ１２」とを対応付けて、全ブロックトレースＴＲ１に記録する。さらに、ブロック種別「Ｈ２」は、ファイル属性を示すラベルに対応する。この場合、コマンド処理部９０３は、自装置上で管理するＢＩＤと、ＷＲコマンドデータ（Ｈｅａｄｅｒ２ラベル）とを対応付けて、特殊ブロックトレースＴＲ２に記録する。
【００８６】
また、ブロック種別が「Ｅ１」の場合、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ３１」とを対応付けて、全ブロックトレースＴＲ１に記録する。さらに、ブロック種別「Ｅ１」は、ファイル属性を示すラベルに対応する。この場合、コマンド処理部９０３は、自装置上で管理するＢＩＤと、ＷＲコマンドデータ（Ｅｎｄ  ｏｆ  Ｆｉｌｅ１ラベル）とを対応付けて、特殊ブロックトレースＴＲ２に記録する。
【００８７】
また、ブロック種別が「Ｅ２」の場合、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ３２」とを対応付けて、全ブロックトレースＴＲ１に記録する。さらに、ブロック種別「Ｅ２」は、ファイル属性を示すラベルに対応する。この場合、コマンド処理部９０３は、自装置上で管理するＢＩＤと、ＷＲコマンドデータ（Ｅｎｄ  ｏｆ  Ｆｉｌｅ２ラベル）とを対応付けて、特殊ブロックトレースＴＲ２に記録する。
【００８８】
また、ブロック種別が「ｄａｔａ」の場合、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ＷＲコマンドデータ（ユーザデータブロック）のブロックサイズを示すブロック種別「ＸＦｘ」とを対応付けて、全ブロックトレースＴＲ１に記録する（ｘ＝０，１，２，３，４，５，６）。
【００８９】
例えば、ＷＲコマンドデータが８ＫＢのユーザデータの場合、コマンド処理部９０３は、自装置上で管理するＢＩＤと、ブロック種別「ＸＦ１」とを対応付けて、全ブロックトレースＴＲ１に記録する。
【００９０】
そして、コマンド処理部９０３は、ドライブ装置１０２に対してＷＲコマンドを発行する。より詳細に説明すると、コマンド処理部９０３は、例えば、受け付けたＷＲコマンドをドライブ装置１０２が解釈可能に変換して、変換後のＷＲコマンドを発行する。
【００９１】
この結果、ドライブ装置１０２によってテープ媒体Ｔに対するＷＲコマンドが実行される。また、テープ媒体Ｔに対するＷＲコマンドが完了すると、コマンド処理部９０３は、テープ媒体Ｔに対するＷＲコマンドが正常終了したことをホスト装置２０２に通知する。
【００９２】
また、コマンド処理部９０３は、ＴＭコマンドを受け付けた場合、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをインクリメントする。つぎに、コマンド処理部９０３は、全ブロックトレースＴＲ１を参照して、テープ媒体Ｔに直前に書き込まれたブロック単位のデータのブロック種別を特定する。
【００９３】
より具体的には、例えば、コマンド処理部９０３は、全ブロックトレースＴＲ１を参照して、「ＢＩＤ−１」に対応するブロック種別を、直前のブロック種別として特定する。なお、「ＢＩＤ−１」は、ストレージ制御装置１０１上で管理するＢＩＤから１を引いたものである。
【００９４】
ここで、直前のブロック種別が「Ｈ２」の場合、コマンド処理部９０３は、次のテープマークが「ＴＭ１」であると判断する。そして、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ２１」とを対応付けて、全ブロックトレースＴＲ１に記録する。
【００９５】
そして、コマンド処理部９０３は、ドライブ装置１０２に対してＴＭコマンドを発行する。より詳細に説明すると、コマンド処理部９０３は、例えば、受け付けたＴＭコマンドをドライブ装置１０２が解釈可能に変換して、変換後のＴＭコマンドを発行する。
【００９６】
この結果、ドライブ装置１０２によってテープ媒体Ｔに対するＴＭコマンドが実行される。また、テープ媒体Ｔに対するＴＭコマンドが完了すると、コマンド処理部９０３は、テープ媒体Ｔに対するＴＭコマンドが正常終了したことをホスト装置２０２に通知する。
【００９７】
また、直前のブロック種別が「ｄａｔａ」の場合、コマンド処理部９０３は、次のテープマークが「ＴＭ２」であると判断する。そして、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ２２」とを対応付けて、全ブロックトレースＴＲ１に記録する。そして、コマンド処理部９０３は、ドライブ装置１０２に対してＴＭコマンドを発行する。
【００９８】
また、直前のブロック種別が「Ｅ２」の場合、コマンド処理部９０３は、次のテープマークが「ＴＭ３」であると判断する。そして、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ２３」とを対応付けて、全ブロックトレースＴＲ１に記録する。そして、コマンド処理部９０３は、ドライブ装置１０２に対してＴＭコマンドを発行する。
【００９９】
また、直前のブロック種別が「ＴＭ３」の場合、コマンド処理部９０３は、次のテープマークが「ＴＭ４」であると判断する。そして、コマンド処理部９０３は、ブロック定義情報６００を参照して、自装置上で管理するＢＩＤと、ブロック種別「Ｘ２４」とを対応付けて、全ブロックトレースＴＲ１に記録する。
【０１００】
この場合、コマンド処理部９０３は、ドライブ装置１０２に対してＴＭコマンドを発行しない。そして、コマンド処理部９０３は、テープ媒体Ｔに対するＴＭコマンドが正常終了したことをホスト装置２０２に通知する。すなわち、コマンド処理部９０３は、ホスト装置２０２からのＴＭコマンドに対する動作をエミュレーションして、ホスト装置２０２に正常終了を報告する。
【０１０１】
また、直前のブロック種別が「ＴＭ３」、すなわち、自装置上で管理するＢＩＤに対応するブロック種別が「ＴＭ４」の場合、コマンド処理部９０３は、メモリ３０２に記録したトレース情報ＴＲを、テープ媒体Ｔの特定の記憶領域に記録する。より詳細に説明すると、コマンド処理部９０３は、ドライブ装置１０２を用いて、メモリ３０２内の全ブロックトレースＴＲ１および特殊ブロックトレースＴＲ２を、図４に示したテープ媒体Ｔのインデックスパーティション４０１に書き込む。
【０１０２】
また、コマンド処理部９０３は、ＢＳＢコマンドを受け付けた場合、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをデクリメントする。この場合、コマンド処理部９０３は、ドライブ装置１０２に対してＢＳＢコマンドを発行しない。そして、コマンド処理部９０３は、テープ媒体Ｔに対するＢＳＢコマンドが正常終了したことをホスト装置２０２に通知する。すなわち、コマンド処理部９０３は、ホスト装置２０２からのＢＳＢコマンドに対する動作をエミュレーションして、ホスト装置２０２に正常終了を報告する。
【０１０３】
また、コマンド処理部９０３は、ＦＳＰＦコマンドを受け付けた場合、記録したトレース情報ＴＲを参照して、テープ媒体Ｔ上の読み込み位置を示すＢＩＤを、テープ媒体Ｔ上の次のテープマークに対応するＢＩＤに変更する。より具体的には、例えば、コマンド処理部９０３は、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤを、次の“２ｘ”に対応するＢＩＤに置き換える。なお、“２ｘ”は、Ｘ２ｘのことである。
【０１０４】
この場合、コマンド処理部９０３は、ドライブ装置１０２に対してＦＳＰＦコマンドを発行しない。そして、コマンド処理部９０３は、テープ媒体Ｔに対するＦＳＰＦコマンドが正常終了したことをホスト装置２０２に通知する。すなわち、コマンド処理部９０３は、ホスト装置２０２からのＦＳＰＦコマンドに対する動作をエミュレーションして、ホスト装置２０２に正常終了を報告する。
【０１０５】
また、コマンド処理部９０３は、ＲＤコマンドを受け付けた場合、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをインクリメントする。そして、コマンド処理部９０３は、ドライブ装置１０２に対してＲＤコマンドを発行する。より具体的には、例えば、コマンド処理部９０３は、受け付けたＲＤコマンドをドライブ装置１０２が解釈可能に変換して、変換後のＲＤコマンドを発行する。
【０１０６】
この結果、ドライブ装置１０２によってテープ媒体Ｔに対するＲＤコマンドが実行される。また、テープ媒体Ｔに対するＲＤコマンドが完了すると、コマンド処理部９０３は、ドライブ装置１０２によってテープ媒体Ｔから読み出されたデータをホスト装置２０２に送信する。
【０１０７】
より詳細に説明すると、コマンド処理部９０３は、テープ媒体Ｔからリードデータ（ユーザデータ）が読み出された場合は、読み出されたリードデータをホスト装置２０２に送信する。また、コマンド処理部９０３は、テープ媒体Ｔからテープマークが読み出された場合には、テープマークが検出されたことをホスト装置２０２に通知する。
【０１０８】
また、コマンド処理部９０３は、ＲＤコマンドを受け付けた場合、直前のコマンドがＦＳＰＦコマンドであるか否かを判断することにしてもよい。なお、ホスト装置２０２から受け付けた直前のコマンドを特定する情報は、例えば、メモリ３０２に記憶される。ここで、直前のコマンドがＦＳＰＦではない場合は、上述したように、コマンド処理部９０３は、ドライブ装置１０２に対してＲＤコマンドを発行する。
【０１０９】
一方、直前のコマンドがＦＳＰＦコマンドである場合、実際には直前のＦＳＰＦコマンドを実行していないものの、ホスト装置２０２に対してはＦＳＰＦコマンドが正常終了したことを報告している状態となっている。この場合、コマンド処理部９０３は、例えば、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別に応じて、以下のような処理を行う。
【０１１０】
まず、ブロック種別が「Ｈ１（Ｘ１１）」、「Ｈ２（Ｘ１２）」、「Ｅ１（Ｘ３１）」、「Ｅ２（Ｘ３２）」のいずれかの場合、コマンド処理部９０３は、メモリ３０２に記録された特殊ブロックトレースＴＲ２から、自装置上で管理するＢＩＤに対応するＨ１情報、Ｈ２情報、Ｅ１情報およびＥ２情報のいずれかのデータを読み込む。そして、コマンド処理部９０３は、読み込んだデータをホスト装置２０２に送信する。これにより、テープ媒体Ｔからデータを読み出すことなく、全ブロックトレースＴＲ１および特殊ブロックトレースＴＲ２を用いて、ホスト装置２０２からのＲＤコマンドに応答することができる。
【０１１１】
また、ブロック種別が「ＴＭ１（Ｘ２１）」、「ＴＭ２（Ｘ２２）」、「ＴＭ３（Ｘ２３）」のいずれかの場合、コマンド処理部９０３は、テープマークが検出されたことをホスト装置２０２に通知する。これにより、テープ媒体Ｔからデータを読み出すことなく、全ブロックトレースＴＲ１を用いて、ホスト装置２０２からのＲＤコマンドに応答することができる。
【０１１２】
また、ブロック種別が「“１ｘ”／“２ｘ”／“３ｘ”以外」、すなわち、「ｄａｔａ」の場合、コマンド処理部９０３は、ドライブ装置１０２に対して、自装置上で管理するＢＩＤを指定したＬＯＣＡＴＥコマンドを発行する。ＬＯＣＡＴＥコマンドは、テープ媒体Ｔ上の読み込み位置を指定したＢＩＤに位置付けするためのコマンドである。
【０１１３】
そして、コマンド処理部９０３は、ＬＯＣＡＴＥコマンドが正常終了したら、ドライブ装置１０２に対してＲＤコマンドを発行する。この結果、ドライブ装置１０２によってテープ媒体Ｔに対するＲＤコマンドが実行される。また、テープ媒体Ｔに対するＲＤコマンドが完了すると、コマンド処理部９０３は、ドライブ装置１０２によってテープ媒体Ｔから読み出されたデータ（ユーザデータ）をホスト装置２０２に送信する。
【０１１４】
なお、コマンド処理部９０３は、ドライブ装置１０２に対して、ＬＯＣＡＴＥコマンドを発行する前に、ＲＤＢＩＤコマンドを発行することにしてもよい。ＲＤＢＩＤコマンドは、ドライブ装置１０２上で管理しているテープ媒体Ｔ上の読み込み位置を示すＢＩＤを問い合わせるコマンドである。そして、コマンド処理部９０３は、ＲＤＢＩＤコマンドによって得られたＢＩＤと、自装置上で管理するＢＩＤとが異なる場合に、ドライブ装置１０２に対して、ＬＯＣＡＴＥコマンドを発行することにしてもよい。一方、コマンド処理部９０３は、ＲＤＢＩＤコマンドによって得られたＢＩＤと、自装置上で管理するＢＩＤとが同じ場合には、ドライブ装置１０２に対して、ＬＯＣＡＴＥコマンドを発行することなく、ＲＤコマンドを発行することにしてもよい。
【０１１５】
また、コマンド処理部９０３は、ドライブ装置１０２に発行したＲＤコマンドが正常終了しなかった場合、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別を特定する。そして、コマンド処理部９０３は、特定した自装置上で管理するＢＩＤに対応するブロック種別に応じて、以下のような処理を行う。
【０１１６】
まず、ブロック種別が「Ｈ１（Ｘ１１）」、「Ｈ２（Ｘ１２）」、「Ｅ１（Ｘ３１）」、「Ｅ２（Ｘ３２）」のいずれかの場合、コマンド処理部９０３は、メモリ３０２に記録された特殊ブロックトレースＴＲ２から、自装置上で管理するＢＩＤに対応するＨ１情報、Ｈ２情報、Ｅ１情報およびＥ２情報のいずれかのデータを読み込む。そして、コマンド処理部９０３は、読み込んだデータをホスト装置２０２に送信する。
【０１１７】
これにより、テープ媒体ＴからのＨ１情報、Ｈ２情報、Ｅ１情報およびＥ２情報のいずれかのデータの読み込み時に、何らかの不具合でリードエラーが発生しても、特殊ブロックトレースＴＲ２を用いてホスト装置２０２に応答することができる。
【０１１８】
また、ブロック種別が「ＴＭ１（Ｘ２１）」、「ＴＭ２（Ｘ２２）」、「ＴＭ３（Ｘ２３）」のいずれかの場合、コマンド処理部９０３は、テープマーク（ＴＭ）が検出されたことをホスト装置２０２に通知する。これにより、テープ媒体Ｔからのテープマークの読み込み時に、何らかの不具合でリードエラーが発生しても、ホスト装置２０２にテープマークが検出されたことを報告することができる。
【０１１９】
また、ブロック種別が「ＴＭ４（Ｘ２４）」の場合には、コマンド処理部９０３は、テープマークが検出されたことをホスト装置２０２に通知するとともに、ドライブ装置１０２に対してＴＭコマンドを発行する。これにより、ドライブ装置１０２の強制アンロードスイッチＳＷが誤って押下されるなど理由によって、ＴＭ４のリードエラーが発生したら、そのリードエラーを契機にテープ媒体ＴへのＴＭ４の書き込みを行うことができる。
【０１２０】
また、ブロック種別が「ｄａｔａ」の場合には、コマンド処理部９０３は、ホスト装置２０２に対してリードエラーを通知する。これにより、何らかの不具合でユーザデータのリードエラーが発生したことをホスト装置２０２に報告することができる。
【０１２１】
また、コマンド処理部９０３は、ＵＮＬＤコマンドを受け付けた場合、ドライブ装置１０２に対してＴＭコマンドを発行する。これにより、ＵＮＬＤコマンドを契機にテープ媒体ＴへのＴＭ４の書き込みを行うことができる。そして、コマンド処理部９０３は、ＴＭコマンドが正常終了したら、ドライブ装置１０２に対してＵＮＬＤコマンドを発行する。この結果、ドライブ装置１０２からテープ媒体Ｔがアンロード（アンマウント）される。
【０１２２】
また、ドライブ監視部９０１は、トレース情報ＴＲを参照して、テープ媒体Ｔの使用状況を示す情報を算出することにしてもよい。例えば、ドライブ監視部９０１は、トレース情報ＴＲを参照して、ファイル属性を示すラベルに対応するブロック種別に基づいて、テープ媒体Ｔに記録されたファイルの数を算出することにしてもよい。具体的には、例えば、ドライブ監視部９０１は、全ブロックトレースＴＲ１を参照して、ブロック種別が「“１１”（Ｈ１）」のＢＩＤの数を計数することにより、テープ媒体Ｔに記録されたファイルのファイル数Ｃを算出する。
【０１２３】
また、ドライブ監視部９０１は、トレース情報ＴＲを参照して、ユーザデータのブロックサイズに対応するブロック種別に基づいて、テープ媒体Ｔに記録されたファイルの容量を算出することにしてもよい。具体的には、例えば、ドライブ監視部９０１は、全ブロックトレースＴＲ１を参照して、ファイル単位でブロック種別「“Ｆｘ”（ｄａｔａ）」が示すブロックサイズを累積することにより、テープ媒体Ｔに記録された各ファイルのファイル容量ｖを算出する。
【０１２４】
また、ドライブ監視部９０１は、算出した各ファイルのファイル容量ｖを累積することにより、テープ媒体Ｔに記録された全ファイルの全ファイル容量Ｖを算出することにしてもよい。さらに、ドライブ監視部９０１は、テープ媒体Ｔの最大書き込み可能容量Ｖmaxから、算出した全ファイル容量Ｖを減算することにより、残書き込み可能容量Ｖｒを算出することにしてもよい。残書き込み可能容量Ｖｒは、テープ媒体Ｔに書き込み可能な残りの記憶領域の容量である。テープ媒体Ｔの最大書き込み可能容量Ｖmaxは、例えば、テープ媒体Ｔの名前から特定される。
【０１２５】
なお、テープ媒体Ｔの使用状況を示す情報（例えば、ファイル数Ｃ、ファイル容量ｖ、全ファイル容量Ｖ、残書き込み可能容量Ｖｒ等）は、例えば、テープ残量確認モードが設定されている場合に算出されることにしてもよい。テープ残量確認モードは、テープ媒体Ｔに書き込み可能な残りの記憶領域の容量を確認するモードであり、例えば、不図示の入力装置を用いたユーザの操作入力により任意に設定可能である。
【０１２６】
出力部９０４は、算出されたテープ媒体Ｔの使用状況を示す情報を出力する。出力部９０４の出力形式としては、例えば、図３に示したディスプレイ３０５への表示、通信Ｉ／Ｆ３０３による外部装置への送信、メモリ３０２への記憶、不図示のプリンタへの印刷出力などがある。
【０１２７】
具体的には、例えば、出力部９０４は、後述の図１２に示すようなテープ残量確認画面１２００をディスプレイ３０５に表示することにしてもよい。テープ残量確認画面１２００は、テープ媒体Ｔのファイル数Ｃ、ファイル総容量Ｖ、残書き込み可能容量Ｖｒ等を表示する画面である。
【０１２８】
（特殊ブロックのリードエラー発生時の代行処理例）
つぎに、図１０を用いて、バックアップやリストア等のジョブにかかるテープ媒体Ｔからのファイルの読み込み時に、特殊ブロックのリードエラーが発生した場合のストレージ制御装置１０１の代行処理例について説明する。
【０１２９】
図１０は、特殊ブロックのリードエラーの発生例を示す説明図である。図１０において、テープ媒体ＴからユーザデータＡ，Ｂ，Ｃを読み込む際にホスト装置２０２から発行されるコマンド群が示されている。ユーザデータＡ，Ｂ，Ｃは、ファイル単位のデータである。図１０中、Ｒは、読み込みコマンドを示す。
【０１３０】
例えば、４番目のＲＤコマンドの発行時にリードエラーが発生したとする。この場合、コマンド処理部９０３は、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤ「４」に対応するブロック種別「ＴＭ１（Ｘ２１）」を特定する。そして、コマンド処理部９０３は、テープマークが検出されたことをホスト装置２０２に通知する。
【０１３１】
これにより、テープ媒体Ｔからのファイルの読み込み時に、ＴＭ１のリードエラーが発生しても、ホスト装置２０２に対してテープマークが検出されたことを報告することができ、読み込みジョブの異常終了を防ぐことができる。
【０１３２】
例えば、３６番目のＲＤコマンドの発行時にリードエラーが発生したとする。このリードエラーは、例えば、ホスト装置２０２からＵＮＬＤコマンドが発行される前に、ドライブ装置１０２の強制アンロードスイッチＳＷがユーザによって押下された場合などに発生する。
【０１３３】
この場合、コマンド処理部９０３は、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤ「３６」に対応するブロック種別「ＴＭ４（Ｘ２４）」を特定する。そして、コマンド処理部９０３は、テープマークが検出されたことをホスト装置２０２に通知する。
【０１３４】
これにより、テープ媒体Ｔからのファイルの読み込み時に、ＴＭ４のリードエラーが発生しても、ホスト装置２０２に対してテープマークが検出されたことを報告することができ、読み込みジョブの異常終了を防ぐことができる。
【０１３５】
（ＦＳＰＦコマンドに対する処理例）
つぎに、図１１を用いて、ホスト装置２０２から発行されるＦＳＰＦコマンドに対するストレージ制御装置１０１の処理例について説明する。
【０１３６】
図１１は、ＦＳＰＦコマンドの発行例を示す説明図である。図１１において、テープ媒体Ｔに記録されたユーザデータＣを探す際にホスト装置２０２から発行されるＦＳＰＦコマンドが示されている。ＦＳＰＦコマンドは、次のテープマークまでスキップするコマンドであり、Ｈ１情報を順々に読み込んで目的のファイルを探すために用いられる。
【０１３７】
すなわち、ＦＳＰＦコマンドが実行されるたびに、テープ媒体Ｔ上の読み込み位置を飛ばす動作が必要となる。図１１の例では、ユーザデータＣを探し出すまでにＦＳＰＦコマンドが６回発行されることになり、これら全てのＦＳＰＦコマンドを実行すると、テープ媒体Ｔの位置付けに時間がかかる。この位置付けにかかる時間は、テープ媒体Ｔの大容量化に伴って、テープ媒体Ｔに記録されるファイル数が多くなるにつれて増大する。
【０１３８】
一方で、コマンド処理部９０３は、ホスト装置２０２からＦＳＰＦコマンドを受け付けても、ドライブ装置１０２に対してＦＳＰＦコマンドを発行しない。そして、コマンド処理部９０３は、目的のファイルであるユーザデータＣが見つかった際に、ドライブ装置１０２に対してＬＯＣＡＴＥコマンドを発行して、テープ媒体Ｔの位置付けを行う。
【０１３９】
これにより、目的のファイルを探す際のテープ媒体Ｔの位置付けにかかる時間を削減することができる。図１１の例では、ホスト装置２０２からの６回のＦＳＰＦコマンドに対して、１回のＬＯＣＡＴＥコマンドで位置付けを行うことができ、テープ媒体Ｔの位置付けにかかる時間を削減することができる。
【０１４０】
（テープ残量確認画面１２００の画面例）
つぎに、図１２を用いて、ストレージ制御装置１０１のディスプレイ３０５に表示されるテープ残量確認画面１２００の画面例について説明する。
【０１４１】
図１２は、テープ残量確認画面１２００の画面例を示す説明図である。図１２において、テープ残量確認画面１２００は、テープ媒体Ｔの使用状況を示す情報を表示する画面である。テープ残量確認画面１２００には、ＶＯＬＵＭＥ名１２０１と、ＬＴＯ媒体種別１２０２と、総ファイル数１２０３と、ファイル情報１２０４と、全ファイル容量１２０５と、残書き込み可能容量１２０６と、が表示されている。
【０１４２】
ここで、ＶＯＬＵＭＥ名１２０１は、テープ媒体Ｔの名前である。ＬＴＯ媒体種別１２０２は、テープ媒体Ｔの媒体世代と最大書き込み可能容量Ｖmaxとを示す。総ファイル数１２０３は、テープ媒体Ｔに記録されているファイル数Ｃである。ファイル情報１２０４は、テープ媒体Ｔに記録されている各ファイルのファイル名とファイル容量ｖを示す。全ファイル容量１２０５は、テープ媒体Ｔに記録されている全ファイルの全ファイル容量Ｖを示す。残書き込み可能容量１２０６は、テープ媒体Ｔに書き込み可能な残りの記憶領域の容量を示す残書き込み可能容量Ｖｒである。
【０１４３】
テープ残量確認画面１２００によれば、ユーザは、ＶＯＬＵＭＥ名「ＶＯＬＸＸＸＸＸ」のテープ媒体Ｔの使用状況を把握することができ、例えば、残りどれくらいの容量（６００ＧＢ）を使用することができるのかを確認することができる。
【０１４４】
（ストレージ制御装置１０１のドライブ監視処理手順）
つぎに、図１３を用いて、ストレージ制御装置１０１のドライブ監視処理手順について説明する。
【０１４５】
図１３は、ストレージ制御装置１０１のドライブ監視処理手順の一例を示すフローチャートである。図１３のフローチャートにおいて、まず、ストレージ制御装置１０１は、ドライブ装置１０２へのテープ媒体Ｔのロードが完了したか否かを判断する（ステップＳ１３０１）。ここで、ストレージ制御装置１０１は、テープ媒体Ｔのロードが完了するのを待つ（ステップＳ１３０１：Ｎｏ）。
【０１４６】
そして、ストレージ制御装置１０１は、テープ媒体Ｔのロードが完了した場合（ステップＳ１３０１：Ｙｅｓ）、テープ媒体Ｔのインデックスパーティション４０１からトレース情報ＴＲ（ＴＲ１，ＴＲ２）を読み込む（ステップＳ１３０２）。
【０１４７】
つぎに、ストレージ制御装置１０１は、読み込んだトレース情報ＴＲの全ブロックトレースＴＲ１をメモリ３０２にコピーする（ステップＳ１３０３）。つぎに、ストレージ制御装置１０１は、読み込んだトレース情報ＴＲの特殊ブロックトレースＴＲ２をメモリ３０２にコピーする（ステップＳ１３０４）。
【０１４８】
そして、ストレージ制御装置１０１は、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤを「ＢＩＤ＝０」で初期化する（ステップＳ１３０５）。つぎに、ストレージ制御装置１０１は、テープ残量確認モードが設定されているか否かを判断する（ステップＳ１３０６）。
【０１４９】
ここで、テープ残量確認モードが設定されていない場合（ステップＳ１３０６：Ｎｏ）、ストレージ制御装置１０１は、ホスト装置２０２に対してＲＥＡＤＹ通知を行って（ステップＳ１３０７）、本フローチャートによる一連の処理を終了する。
【０１５０】
また、ステップＳ１３０６において、テープ残量確認モードが設定されている場合（ステップＳ１３０６：Ｙｅｓ）、ストレージ制御装置１０１は、テープ残量表示処理を実行する（ステップＳ１３０８）。テープ残量表示処理は、例えば、図１２に示したようなテープ残量確認画面１２００を表示する処理である。
【０１５１】
テープ残量表示処理の具体的な処理手順については、図１４を用いて後述する。
【０１５２】
そして、ストレージ制御装置１０１は、ドライブ装置１０２に対してＵＮＬＤコマンドを発行して（ステップＳ１３０９）、本フローチャートによる一連の処理を終了する。
【０１５３】
これにより、ドライブ装置１０２にテープ媒体Ｔがセットされて準備が完了したことをホスト装置２０２に通知することができる。また、テープ残量確認モードのときは、テープ残量確認画面１２００を表示することができる。
【０１５４】
つぎに、図１３に示したステップＳ１３０８のテープ残量表示処理の具体的な処理手順について説明する。
【０１５５】
図１４は、テープ残量表示処理の具体的処理手順の一例を示すフローチャートである。図１４のフローチャートにおいて、まず、ストレージ制御装置１０１は、テープ媒体Ｔに記録されたファイル数Ｃを示すＦＩＬＥ＿ＣＮＴを「ＦＩＬＥ＿ＣＮＴ＝０」で初期化する（ステップＳ１４０１）。
【０１５６】
つぎに、ストレージ制御装置１０１は、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをインクリメントする（ステップＳ１４０２）。そして、ストレージ制御装置１０１は、メモリ３０２にコピーした全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別が「“１１”（Ｈ１）」であるか否かを判断する（ステップＳ１４０３）。
【０１５７】
ここで、「“１１”（Ｈ１）」の場合（ステップＳ１４０３：Ｙｅｓ）、ストレージ制御装置１０１は、ＦＩＬＥ＿ＣＮＴをインクリメントする（ステップＳ１４０４）。そして、ストレージ制御装置１０１は、ファイル容量ｖを示すＦＩＬＥ＿ＳＩＺＥを「ＦＩＬＥ＿ＳＩＺＥ＝０」で初期化して（ステップＳ１４０５）、ステップＳ１４０２に戻る。
【０１５８】
また、ステップＳ１４０３において、「“１１”（Ｈ１）」ではない場合（ステップＳ１４０３：Ｎｏ）、ストレージ制御装置１０１は、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別が「“Ｆｘ”（ｄａｔａ）」であるか否かを判断する（ステップＳ１４０６）。
【０１５９】
ここで、「“Ｆｘ”（ｄａｔａ）」の場合（ステップＳ１４０６：Ｙｅｓ）、ストレージ制御装置１０１は、“Ｆｘ”（ｄａｔａ）が示すブロックサイズ「ＢＬＫ＿ＳＩＺＥ」をＦＩＬＥ＿ＳＩＺＥに加算して（ステップＳ１４０７）、ステップＳ１４０２に戻る。例えば、“Ｆｘ”（ｄａｔａ）が“Ｆ０”の場合、ストレージ制御装置１０１は、“Ｆ０”が示すブロックサイズ「４ＫＢ」をＦＩＬＥ＿ＳＩＺＥに加算する。
【０１６０】
また、ステップＳ１４０６において、「“Ｆｘ”（ｄａｔａ）」ではない場合（ステップＳ１４０６：Ｎｏ）、ストレージ制御装置１０１は、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別が「“００”」であるか否かを判断する（ステップＳ１４０８）。なお、“００”は、予め設定される初期値である。
【０１６１】
ここで、「“００”」ではない場合（ステップＳ１４０８：Ｎｏ）、ストレージ制御装置１０１は、ステップＳ１４０２に戻る。一方、「“００”」の場合（ステップＳ１４０８：Ｙｅｓ）、ストレージ制御装置１０１は、算出したＦＩＬＥ＿ＣＮＴおよび各ＦＩＬＥ＿ＳＩＺＥに基づいて、テープ残量確認画面１２００の画面情報を生成する（ステップＳ１４０９）。
【０１６２】
そして、ストレージ制御装置１０１は、生成した画面情報に基づいて、テープ残量確認画面１２００をディスプレイ３０５に表示して（ステップＳ１４１０）、テープ残量表示処理を呼び出したステップに戻る。これにより、テープ媒体Ｔの使用状況を確認可能なテープ残量確認画面１２００をディスプレイ３０５に表示することができる。
【０１６３】
（ストレージ制御装置１０１のコマンド処理手順）
つぎに、図１５〜図２２を用いて、ストレージ制御装置１０１のコマンド処理手順について説明する。まず、ストレージ制御装置１０１のＴＭコマンド処理手順について説明する。
【０１６４】
・ＴＭコマンド処理手順
図１５は、ストレージ制御装置１０１のＴＭコマンド処理手順の一例を示すフローチャートである。図１５のフローチャートにおいて、まず、ストレージ制御装置１０１は、ホスト装置２０２からのＴＭコマンドを受け付けたか否かを判断する（ステップＳ１５０１）。
【０１６５】
ここで、ストレージ制御装置１０１は、ＴＭコマンドを受け付けるのを待つ（ステップＳ１５０１：Ｎｏ）。そして、ストレージ制御装置１０１は、ＴＭコマンドを受け付けた場合（ステップＳ１５０１：Ｙｅｓ）、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをインクリメントする（ステップＳ１５０２）。
【０１６６】
つぎに、ストレージ制御装置１０１は、全ブロックトレースＴＲ１を参照して、直前のブロック種別を特定する（ステップＳ１５０３）。そして、ストレージ制御装置１０１は、全ブロックトレースＴＲ１に、自装置上で管理するＢＩＤと対応付けて、特定した直前のブロック種別に応じたブロック種別を記録する（ステップＳ１５０４）。
【０１６７】
例えば、直前のブロック種別が「“１２”（Ｈ２）」の場合、ストレージ制御装置１０１は、全ブロックトレースＴＲ１に、自装置上で管理するＢＩＤと対応付けて、ブロック種別「“２１”（ＴＭ１）」を記録する。
【０１６８】
つぎに、ストレージ制御装置１０１は、自装置上で管理するＢＩＤと対応付けて記録したブロック種別が「“２４”（ＴＭ４）」であるか否かを判断する（ステップＳ１５０５）。ここで、「“２４”（ＴＭ４）」ではない場合（ステップＳ１５０５：Ｎｏ）、ストレージ制御装置１０１は、ドライブ装置１０２に対してＴＭコマンドを発行して（ステップＳ１５０６）、本フローチャートによる一連の処理を終了する。
【０１６９】
一方、「“２４”（ＴＭ４）」の場合（ステップＳ１５０５：Ｙｅｓ）、ストレージ制御装置１０１は、ドライブ装置１０２を用いて、メモリ３０２内の全ブロックトレースＴＲ１をテープ媒体Ｔのインデックスパーティション４０１に書き込む（ステップＳ１５０７）。
【０１７０】
つぎに、ストレージ制御装置１０１は、ドライブ装置１０２を用いて、メモリ３０２内の特殊ブロックトレースＴＲ２をテープ媒体Ｔのインデックスパーティション４０１に書き込む（ステップＳ１５０８）。そして、ストレージ制御装置１０１は、ホスト装置２０２に対して、テープ媒体Ｔに対するＴＭコマンドが正常終了したことを通知して（ステップＳ１５０９）、本フローチャートによる一連の処理を終了する。
【０１７１】
これにより、ホスト装置２０２からのＴＭコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータのＢＩＤとブロック種別（ＴＭ１〜ＴＭ４）とを対応付けて全ブロックトレースＴＲ１に記録することができる。また、テープ媒体Ｔに書き込まれるブロック単位のデータのブロック種別がＴＭ４の場合には、ホスト装置２０２からのＴＭコマンドに対する動作をエミュレーションして、ホスト装置２０２に正常終了を報告することができる。
【０１７２】
さらに、テープ媒体Ｔに書き込まれるブロック単位のデータのブロック種別がＴＭ４の場合には、トレース情報ＴＲ（ＴＲ１，ＴＲ２）をテープ媒体Ｔのインデックスパーティション４０１に記録することができる。なお、ステップＳ１５０８において、ＴＭコマンドが正常終了しなかった場合は、ストレージ制御装置１０１は、ホスト装置２０２に対してエラーが発生したことを通知する。
【０１７３】
・ＷＲコマンド処理手順
つぎに、ストレージ制御装置１０１のＷＲコマンド処理手順について説明する。
【０１７４】
図１６は、ストレージ制御装置１０１のＷＲコマンド処理手順の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、ストレージ制御装置１０１は、ホスト装置２０２からのＷＲコマンドを受け付けたか否かを判断する（ステップＳ１６０１）。
【０１７５】
ここで、ストレージ制御装置１０１は、ＷＲコマンドを受け付けるのを待つ（ステップＳ１６０１：Ｎｏ）。そして、ストレージ制御装置１０１は、ＷＲコマンドを受け付けた場合（ステップＳ１６０１：Ｙｅｓ）、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをインクリメントする（ステップＳ１６０２）。
【０１７６】
つぎに、ストレージ制御装置１０１は、ＷＲコマンドデータがユーザデータであるか否かを判断する（ステップＳ１６０３）。ここで、ユーザデータである場合（ステップＳ１６０３：Ｙｅｓ）、ストレージ制御装置１０１は、全ブロックトレースＴＲ１に、自装置上で管理するＢＩＤと対応付けてＷＲコマンドデータのブロックサイズを示すブロック種別を記録する（ステップＳ１６０４）。そして、ストレージ制御装置１０１は、ステップＳ１６０８に移行する。
【０１７７】
例えば、ＷＲコマンドデータが４ＫＢのユーザデータの場合、ストレージ制御装置１０１は、全ブロックトレースＴＲ１に、自装置上で管理するＢＩＤと対応付けて、ブロック種別「“Ｆ０”」を記録する。
【０１７８】
また、ステップＳ１６０３において、ユーザデータではない場合（ステップＳ１６０３：Ｎｏ）、ストレージ制御装置１０１は、全ブロックトレースＴＲ１に、自装置上で管理するＢＩＤと対応付けて、ＷＲコマンドデータのブロック種別を記録する（ステップＳ１６０５）。
【０１７９】
つぎに、ストレージ制御装置１０１は、ＷＲコマンドデータのブロック種別が「“０１”（ＶＯＬ）」であるか否かを判断する（ステップＳ１６０６）。ここで、「“０１”（ＶＯＬ）」の場合（ステップＳ１６０６：Ｙｅｓ）、ストレージ制御装置１０１は、ステップＳ１６０８に移行する。
【０１８０】
一方、「“０１”（ＶＯＬ）」ではない場合（ステップＳ１６０６：Ｎｏ）、ストレージ制御装置１０１は、特殊ブロックトレースＴＲ２に、自装置上で管理するＢＩＤと、ＷＲコマンドデータ（Ｈ１情報、Ｈ２情報、Ｅ１情報、Ｅ２情報）とを対応付けて記録する（ステップＳ１６０７）。
【０１８１】
つぎに、ストレージ制御装置１０１は、ドライブ装置１０２に対してＷＲコマンドを発行する（ステップＳ１６０８）。そして、ストレージ制御装置１０１は、ホスト装置２０２に対して、テープ媒体Ｔに対するＷＲコマンドが正常終了したことを通知して（ステップＳ１６０９）、本フローチャートによる一連の処理を終了する。
【０１８２】
これにより、ホスト装置２０２からのＷＲコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータのＢＩＤとブロック種別（ＶＯＬ，Ｈ１，Ｈ２，Ｅ１，Ｅ２，ｄａｔａ）とを対応付けて全ブロックトレースＴＲ１に記録することができる。また、テープ媒体Ｔに書き込まれるブロック単位のデータのブロック種別がＨ１，Ｈ２，Ｅ１，Ｅ２のいずれかの場合には、さらに、ＢＩＤと対応付けてブロック単位のデータを特殊ブロックトレースＴＲ２に記録することができる。なお、ステップＳ１６０８において、ＷＲコマンドが正常終了しなかった場合は、ストレージ制御装置１０１は、ホスト装置２０２に対してエラーが発生したことを通知する。
【０１８３】
・ＲＤコマンド処理手順
つぎに、ストレージ制御装置１０１のＲＤコマンド処理手順について説明する。
【０１８４】
図１７〜図１９は、ストレージ制御装置１０１のＲＤコマンド処理手順の一例を示すフローチャートである。図１７のフローチャートにおいて、まず、ストレージ制御装置１０１は、ホスト装置２０２からのＲＤコマンドを受け付けたか否かを判断する（ステップＳ１７０１）。
【０１８５】
ここで、ストレージ制御装置１０１は、ＲＤコマンドを受け付けるのを待つ（ステップＳ１７０１：Ｎｏ）。そして、ストレージ制御装置１０１は、ＲＤコマンドを受け付けた場合（ステップＳ１７０１：Ｙｅｓ）、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをインクリメントする（ステップＳ１７０２）。
【０１８６】
つぎに、ストレージ制御装置１０１は、直前のコマンドがＦＳＰＦコマンドであるか否かを判断する（ステップＳ１７０３）。ここで、ＦＳＰＦコマンドではない場合（ステップＳ１７０３：Ｎｏ）、ストレージ制御装置１０１は、ドライブ装置１０２に対してＲＤコマンドを発行する（ステップＳ１７０４）。
【０１８７】
そして、ストレージ制御装置１０１は、ＲＤコマンドが正常終了したか否かを判断する（ステップＳ１７０５）。ここで、ＲＤコマンドが正常終了しなかった場合（ステップＳ１７０５：Ｎｏ）、ストレージ制御装置１０１は、代行処理を実行して（ステップＳ１７０６）、本フローチャートによる一連の処理を終了する。
【０１８８】
代行処理は、ＲＤコマンドが正常終了しなかった場合に、全ブロックトレースＴＲ１および特殊ブロックトレースＴＲ２を用いて、ホスト装置２０２への応答を行う処理である。代行処理の具体的な処理手順については、図２０を用いて後述する。
【０１８９】
また、ステップＳ１７０５において、ＲＤコマンドが正常終了した場合（ステップＳ１７０５：Ｙｅｓ）、ストレージ制御装置１０１は、ＲＤコマンドによってテープ媒体Ｔから読み出されたデータをホスト装置２０２に送信する（ステップＳ１７０７）。そして、ストレージ制御装置１０１は、本フローチャートによる一連の処理を終了する。なお、テープ媒体Ｔからテープマークが読み出された場合には、ストレージ制御装置１０１は、テープマークが検出されたことをホスト装置２０２に通知する。
【０１９０】
また、ステップＳ１７０３において、直前のコマンドがＦＳＰＦコマンドの場合（ステップＳ１７０３：Ｙｅｓ）、ストレージ制御装置１０１は、図１８に示すステップＳ１８０１に移行する。
【０１９１】
図１８のフローチャートにおいて、まず、ストレージ制御装置１０１は、メモリ３０２内の全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別が「“１ｘ”（Ｈｘ）または“３ｘ”（Ｅｘ）」であるか否かを判断する（ステップＳ１８０１）。
【０１９２】
ここで、「“１ｘ”（Ｈｘ）または“３ｘ”（Ｅｘ）」の場合（ステップＳ１８０１：Ｙｅｓ）、ストレージ制御装置１０１は、メモリ３０２内の特殊ブロックトレースＴＲ２から、自装置上で管理するＢＩＤに対応するデータを読み込む（ステップＳ１８０２）。自装置上で管理するＢＩＤに対応するデータは、Ｈ１情報、Ｈ２情報、Ｅ１情報およびＥ２情報のいずれかのデータである。
【０１９３】
そして、ストレージ制御装置１０１は、読み込んだデータをホスト装置２０２に送信して（ステップＳ１８０３）、本フローチャートによる一連の処理を終了する。
【０１９４】
また、ステップＳ１８０１において、「“１ｘ”（Ｈｘ）または“３ｘ”（Ｅｘ）」ではない場合（ステップＳ１８０１：Ｎｏ）、ストレージ制御装置１０１は、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別が「“２ｘ”（ＴＭｘ）」であるか否かを判断する（ステップＳ１８０４）。
【０１９５】
ここで、「“２ｘ”（ＴＭｘ）」の場合（ステップＳ１８０４：Ｙｅｓ）、ストレージ制御装置１０１は、ホスト装置２０２に対して、テープマークが検出されたことを通知して（ステップＳ１８０５）、本フローチャートによる一連の処理を終了する。一方、「“２ｘ”（ＴＭｘ）」ではない場合（ステップＳ１８０４：Ｎｏ）、ストレージ制御装置１０１は、図１９に示すステップＳ１９０１に移行する。
【０１９６】
図１９のフローチャートにおいて、まず、ストレージ制御装置１０１は、ドライブ装置１０２に対して、自装置上で管理するＢＩＤを指定したＬＯＣＡＴＥコマンドを発行する（ステップＳ１９０１）。つぎに、ストレージ制御装置１０１は、ドライブ装置１０２に対して、ＲＤコマンドを発行する（ステップＳ１９０２）。
【０１９７】
つぎに、ストレージ制御装置１０１は、ＲＤコマンドが正常終了したか否かを判断する（ステップＳ１９０３）。ここで、ＲＤコマンドが正常終了しなかった場合（ステップＳ１９０３：Ｎｏ）、ストレージ制御装置１０１は、ホスト装置２０２にリードエラーを通知して（ステップＳ１９０４）、本フローチャートによる一連の処理を終了する。
【０１９８】
一方、ＲＤコマンドが正常終了した場合（ステップＳ１９０３：Ｙｅｓ）、ストレージ制御装置１０１は、テープ媒体Ｔから読み込んだデータをホスト装置２０２に送信して（ステップＳ１９０５）、本フローチャートによる一連の処理を終了する。
【０１９９】
これにより、ホスト装置２０２からのＲＤコマンドを処理することができる。また、直前のコマンドがＦＳＰＦコマンドの場合には、トレース情報ＴＲ（ＴＲ１，ＴＲ２）を用いて、ホスト装置２０２からのＲＤコマンドに応答することができる。また、直前のコマンドがＦＳＰＦコマンドであって、ユーザデータを読み出すためのＲＤコマンドを受け付けた場合には、ドライブ装置１０２に対してＬＯＣＡＴＥコマンドを発行してテープ媒体Ｔ上の読み込み位置を調整してからユーザデータを読み出すことができる。
【０２００】
つぎに、図１７に示したステップＳ１７０６の代行処理の具体的な処理手順について説明する。
【０２０１】
図２０は、代行処理の具体的処理手順の一例を示すフローチャートである。図２０のフローチャートにおいて、まず、ストレージ制御装置１０１は、メモリ３０２内の全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別が「“１ｘ”（Ｈｘ）または“３ｘ”（Ｅｘ）」であるか否かを判断する（ステップＳ２００１）。
【０２０２】
ここで、「“１ｘ”（Ｈｘ）または“３ｘ”（Ｅｘ）」の場合（ステップＳ２００１：Ｙｅｓ）、ストレージ制御装置１０１は、メモリ３０２内の特殊ブロックトレースＴＲ２から、自装置上で管理するＢＩＤに対応するデータを読み込む（ステップＳ２００２）。自装置上で管理するＢＩＤに対応するデータは、Ｈ１情報、Ｈ２情報、Ｅ１情報およびＥ２情報のいずれかのデータである。
【０２０３】
そして、ストレージ制御装置１０１は、読み込んだデータをホスト装置２０２に送信して（ステップＳ２００３）、代行処理を読み出したステップに戻る。
【０２０４】
また、ステップＳ２００１において、「“１ｘ”（Ｈｘ）または“３ｘ”（Ｅｘ）」ではない場合（ステップＳ２００１：Ｎｏ）、ストレージ制御装置１０１は、全ブロックトレースＴＲ１を参照して、自装置上で管理するＢＩＤに対応するブロック種別が「“２ｘ”（ＴＭｘ）」であるか否かを判断する（ステップＳ２００４）。
【０２０５】
ここで、「“２ｘ”（ＴＭｘ）」の場合（ステップＳ２００４：Ｙｅｓ）、ストレージ制御装置１０１は、ホスト装置２０２に対して、テープマークが検出されたことを通知する（ステップＳ２００５）。そして、ストレージ制御装置１０１は、自装置上で管理するＢＩＤに対応するブロック種別が「“２４”（ＴＭ４）」であるか否かを判断する（ステップＳ２００６）。
【０２０６】
ここで、「“２４”（ＴＭ４）」ではない場合（ステップＳ２００６：Ｎｏ）、ストレージ制御装置１０１は、代行処理を呼び出したステップに戻る。一方、「“２４”（ＴＭ４）」の場合（ステップＳ２００６：Ｙｅｓ）、ストレージ制御装置１０１は、ドライブ装置１０２に対してＴＭコマンドを発行して（ステップＳ２００７）、代行処理を呼び出したステップに戻る。
【０２０７】
また、ステップＳ２００４において、「“２ｘ”（ＴＭｘ）」ではない場合（ステップＳ２００４：Ｎｏ）、ストレージ制御装置１０１は、ホスト装置２０２にリードエラーを通知して（ステップＳ２００８）、代行処理を呼び出したステップに戻る。
【０２０８】
これにより、テープ媒体Ｔからのファイルの読み込み時に、特殊ブロックのリードエラーが発生した場合、メモリ３０２内のトレース情報ＴＲ（ＴＲ１，ＴＲ２）を用いてホスト装置２０２への応答を行うことができる。
【０２０９】
・ＦＳＰＦコマンド処理手順
つぎに、ストレージ制御装置１０１のＦＳＰＦコマンド処理手順について説明する。
【０２１０】
図２１は、ストレージ制御装置１０１のＦＳＰＦコマンド処理手順の一例を示すフローチャートである。図２１のフローチャートにおいて、まず、ストレージ制御装置１０１は、ホスト装置２０２からのＦＳＰＦコマンドを受け付けたか否かを判断する（ステップＳ２１０１）。
【０２１１】
ここで、ストレージ制御装置１０１は、ＦＳＰＦコマンドを受け付けるのを待つ（ステップＳ２１０１：Ｎｏ）。そして、ストレージ制御装置１０１は、ＦＳＰＦコマンドを受け付けた場合（ステップＳ２１０１：Ｙｅｓ）、全ブロックトレースＴＲ１を参照して、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤを、次の“２ｘ”に対応するＢＩＤに置き換える（ステップＳ２１０２）。
【０２１２】
つぎに、ストレージ制御装置１０１は、ホスト装置２０２に対して、テープ媒体Ｔに対するＦＳＰＦコマンドが正常終了したことを通知して（ステップＳ２１０３）、本フローチャートによる一連の処理を終了する。
【０２１３】
これにより、ホスト装置２０２からＦＳＰＦコマンドを受け付けた場合に、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤを、次のＴＭに対応するＢＩＤに変更することができる。また、ホスト装置２０２からのＦＳＰＦコマンドに対する動作をエミュレーションして、ホスト装置２０２に正常終了を報告することができる。
【０２１４】
・ＢＳＢコマンド処理手順
つぎに、ストレージ制御装置１０１のＢＳＢコマンド処理手順について説明する。
【０２１５】
図２２は、ストレージ制御装置１０１のＢＳＢコマンド処理手順の一例を示すフローチャートである。図２２のフローチャートにおいて、まず、ストレージ制御装置１０１は、ホスト装置２０２からのＢＳＢコマンドを受け付けたか否かを判断する（ステップＳ２２０１）。
【０２１６】
ここで、ストレージ制御装置１０１は、ＢＳＢコマンドを受け付けるのを待つ（ステップＳ２２０１：Ｎｏ）。そして、ストレージ制御装置１０１は、ＢＳＢコマンドを受け付けた場合（ステップＳ２２０１：Ｙｅｓ）、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをデクリメントする（ステップＳ２２０２）。
【０２１７】
つぎに、ストレージ制御装置１０１は、ホスト装置２０２に対して、テープ媒体Ｔに対するＢＳＢコマンドが正常終了したことを通知して（ステップＳ２２０３）、本フローチャートによる一連の処理を終了する。
【０２１８】
これにより、ホスト装置２０２からＢＳＢコマンドを受け付けた場合に、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤをデクリメントすることができる。また、ホスト装置２０２からのＢＳＢコマンドに対する動作をエミュレーションして、ホスト装置２０２に正常終了を報告することができる。
【０２１９】
以上説明したように、実施の形態にかかるストレージ制御装置１０１によれば、ホスト装置２０２からのコマンドに応じてテープ媒体Ｔに書き込まれるブロック単位のデータのＢＩＤとブロック種別とを対応付けて全ブロックトレースＴＲ１に記録することができる。これにより、テープ媒体Ｔに対してどのようなブロック種別のデータがどのような順序で書き込みを指示されたのかを特定可能な情報を記録することができる。
【０２２０】
また、ストレージ制御装置１０１によれば、テープ媒体Ｔに書き込まれるブロック単位のデータのブロック種別がファイル属性を示すラベルの場合には、さらに、ＢＩＤと対応付けてブロック単位のデータを特殊ブロックトレースＴＲ２に記録することができる。これにより、テープ媒体Ｔに対して書き込みを指示されたラベル情報（Ｈ１情報、Ｈ２情報、Ｅ１情報、Ｅ２情報）とラベル情報の書込順とを特定可能な情報を記録することができる。
【０２２１】
また、ストレージ制御装置１０１によれば、ホスト装置２０２からのコマンドに応じてテープ媒体Ｔからの読み込み時にリードエラーが発生した場合、全ブロックトレースＴＲ１を参照して、リードエラーが発生したＢＩＤに対応するブロック種別を特定できる。そして、ストレージ制御装置１０１によれば、リードエラーが発生したＢＩＤに対応するブロック種別がＴＭｘ（ｘ＝１，２，３，４）であれば、テープマークが検出されたことをホスト装置２０２に通知することができる。
【０２２２】
これにより、テープ媒体Ｔからのファイルの読み込み時に、テープマークのリードエラーが発生しても、ホスト装置２０２にはテープマークが検出されたように見せかけて、テープマークのリードエラーを見せないようにすることができる。このため、バックアップやリストア等のジョブの実行時に、テープマークのリードエラーが発生しても、ジョブを停止することなく継続することができるようになる。
【０２２３】
また、ストレージ制御装置１０１によれば、リードエラーが発生したＢＩＤに対応するブロック種別がＴＭ４であれば、さらに、ドライブ装置１０２に対してＴＭコマンドを発行することができる。これにより、ＴＭ４のリードエラーを契機に、ホスト装置２０２にはテープマークが検出されたと報告しつつ、テープ媒体Ｔへのテープマーク（ＴＭ４）の書き込みを行うことができる。このため、ホスト装置２０２からＵＮＬＤコマンドが発行される前に強制アンロードスイッチＳＷが押下されるといった事態が発生しても、ストレージ制御装置１０１内でのＴＭ４のリードエラー検出を契機に救済することができる。
【０２２４】
また、ストレージ制御装置１０１によれば、リードエラーが発生したＢＩＤに対応するブロック種別がファイル属性を示すラベルであれば、特殊ブロックトレースＴＲ２を参照して、そのＢＩＤに対応するラベル情報をホスト装置２０２に送信することができる。
【０２２５】
これにより、テープ媒体Ｔからのファイルの読み込み時に、ラベル情報のリードエラーが発生しても、特殊ブロックトレースＴＲ２を用いてホスト装置２０２への応答を行うことで、ホスト装置２０２にラベル情報のリードエラーを見せないようにすることができる。このため、バックアップやリストア等のジョブの実行時に、ラベル情報のリードエラーが発生しても、ジョブを停止することなく継続することができるようになる。
【０２２６】
また、ストレージ制御装置１０１によれば、テープ媒体Ｔに書き込まれるブロック単位のデータのブロック種別がＴＭ４の場合には、トレース情報ＴＲ（ＴＲ１，ＴＲ２）をテープ媒体Ｔのインデックスパーティション４０１に記録することができる。これにより、テープ媒体Ｔがアンマウントされても、再度マウントされた際に、テープ媒体Ｔのインデックスパーティション４０１からトレース情報ＴＲ（ＴＲ１，ＴＲ２）を読み込んで用いることができる。
【０２２７】
また、ストレージ制御装置１０１によれば、ホスト装置２０２からＦＳＰＦコマンドを受け付けた場合、全ブロックトレースＴＲ１を参照して、自装置上で管理するテープ媒体Ｔ上の読み込み位置を示すＢＩＤを、次のＴＭに対応するＢＩＤに変更することができる。そして、ストレージ制御装置１０１によれば、ＦＳＰＦコマンドが正常終了したことをホスト装置２０２に通知することができる。これにより、ホスト装置２０２からのＦＳＰＦコマンドに対する動作をエミュレーションして、ホスト装置２０２に正常終了を報告することができる。
【０２２８】
また、ストレージ制御装置１０１によれば、テープ媒体Ｔ上の読み込み位置を示すＢＩＤを変更した後に、ホスト装置２０２から、ユーザデータを読み出すためのＲＤコマンドを受け付けた場合、ドライブ装置１０２に対して、自装置上で管理するＢＩＤを指定したＬＯＣＡＴＥコマンドを発行することができる。そして、ストレージ制御装置１０１によれば、ドライブ装置１０２にＲＤコマンドを発行してテープ媒体Ｔから読み出されたユーザデータをホスト装置２０２に送信することができる。
【０２２９】
これにより、実際に行うと時間がかかるＦＳＰＦコマンドの実行をエミュレーションして省略しつつ、実際にユーザデータを読み出す際に、ＬＯＣＡＴＥコマンドによってテープ媒体Ｔの読み込み位置を調整して目的のファイルを読み出すことができる。このため、テープ媒体Ｔから目的のファイルを探す際のテープ媒体Ｔの位置付けにかかる時間を削減することができる。
【０２３０】
また、ストレージ制御装置１０１によれば、全ブロックトレースＴＲ１を参照して、ブロック種別が「“１１”（Ｈ１）」のＢＩＤの数を計数することで、テープ媒体Ｔに記録されたファイルのファイル数Ｃを算出することができる。そして、ストレージ制御装置１０１によれば、算出したファイル数Ｃを出力することができる。
【０２３１】
これにより、テープ媒体Ｔに記録された全ファイルを読み込むことなく、ファイル数Ｃを求めることができ、テープ媒体Ｔの使用状況を提示するまでの時間を短縮することができる。また、テープ媒体Ｔの使用状況をダンプする際に、その都度全ファイルを読み込む必要がなくなるため、テープ媒体Ｔの寿命を延ばすことができる。
【０２３２】
また、ストレージ制御装置１０１によれば、全ブロックトレースＴＲ１を参照して、ファイル単位でブロック種別「“Ｆｘ”（ｄａｔａ）」が示すブロックサイズを累積することで、テープ媒体Ｔに記録された各ファイルのファイル容量ｖを算出することができる。そして、ストレージ制御装置１０１によれば、算出した各ファイルのファイル容量ｖを出力することができる。
【０２３３】
これにより、テープ媒体Ｔに記録された全ファイルを読み込むことなく、各ファイルのファイル容量ｖを求めることができ、テープ媒体Ｔの使用状況を提示するまでの時間を短縮することができる。また、各ファイルのファイル容量ｖから、テープ媒体Ｔの全ファイル容量Ｖや残書き込み可能容量Ｖｒを算出して提示することが可能となる。
【０２３４】
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２３５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２３６】
（付記１）ホスト装置からのコマンドに応じてテープ媒体に書き込まれるブロック単位のデータの書込順を示すブロック番号と前記データの種別とを対応付けたトレース情報を、前記テープ媒体とは異なる記憶部に記録する処理と、
前記ホスト装置からのコマンドに応じて前記テープ媒体から読み込まれる所定のブロック番号のデータに関するエラーが発生した場合に、記録した前記トレース情報を参照して、前記所定のブロック番号に対応するデータの種別に基づいて前記ホスト装置への応答を行う処理と、
を行う制御部を有することを特徴とするストレージ制御装置。
【０２３７】
（付記２）前記制御部は、
前記所定のブロック番号に対応するデータの種別が、データ区切りを示すテープマークの場合には、前記テープマークが検出されたことを前記ホスト装置に通知する、
ことを特徴とする付記１に記載のストレージ制御装置。
【０２３８】
（付記３）前記制御部は、
前記テープマークが前記テープ媒体上のデータ終端を示すテープマークの場合には、さらに、前記テープ媒体に対する読み書きを行うドライブ装置に対して、前記テープ媒体にテープマークを書き込むコマンドを発行する、
ことを特徴とする付記２に記載のストレージ制御装置。
【０２３９】
（付記４）前記記録する処理は、前記データの種別がファイル属性を示すラベルの場合には、さらに、前記データのブロック番号と対応付けて前記データを前記記憶部に記録し、
前記制御部は、
前記トレース情報を参照して、前記所定のブロック番号に対応するデータの種別がファイル属性を示すラベルの場合には、前記記憶部に記録した前記所定のブロック番号に対応するデータを前記ホスト装置に送信する、
ことを特徴とする付記１〜３のいずれか一つに記載のストレージ制御装置。
【０２４０】
（付記５）前記記録する処理は、前記データの種別が前記テープ媒体上のデータ終端を示すテープマークの場合には、さらに、前記テープ媒体に対する読み書きを行うドライブ装置に対して、前記トレース情報を前記テープ媒体の特定の記憶領域に書き込むコマンドを発行する、
ことを特徴とする付記１〜４のいずれか一つに記載のストレージ制御装置。
【０２４１】
（付記６）前記制御部は、
前記ホスト装置から次のテープマークまでスキップするコマンドを受け付けた場合、前記トレース情報を参照して、前記テープ媒体上の読み込み位置を示すブロック番号を、前記テープ媒体上の次のテープマークに対応するブロック番号に変更し、
前記コマンドが正常終了したことを前記ホスト装置に通知する、
ことを特徴とする付記１〜５のいずれか一つに記載のストレージ制御装置。
【０２４２】
（付記７）前記制御部は、
前記テープ媒体上の読み込み位置を示すブロック番号を変更した後に、前記ホスト装置から、データを読み出すためのリードコマンドを受け付けた場合、前記テープ媒体に対する読み書きを行うドライブ装置に対して、変更後のブロック番号に位置付けするコマンドを発行し、
前記ドライブ装置にリードコマンドを発行して前記テープ媒体から読み出されたデータを前記ホスト装置に送信する、
ことを特徴とする付記６に記載のストレージ制御装置。
【０２４３】
（付記８）前記制御部は、
前記トレース情報を参照して、ファイル属性を示すラベルに対応するデータの種別に基づいて、前記テープ媒体に記録されたファイルの数を算出し、
算出した前記ファイルの数を出力する、
ことを特徴とする付記４に記載のストレージ制御装置。
【０２４４】
（付記９）前記データの種別は、前記データがユーザデータの場合は、当該ユーザデータのブロックサイズを示し、
前記制御部は、
前記トレース情報を参照して、ユーザデータのブロックサイズに対応するデータの種別に基づいて、前記テープ媒体に記録されたファイルの容量を算出し、
算出した前記ファイルの容量を出力する、
ことを特徴とする付記１〜８のいずれか一つに記載のストレージ制御装置。
【０２４５】
（付記１０）ホスト装置からのコマンドに応じてテープ媒体に書き込まれるブロック単位のデータの書込順を示すブロック番号と前記データの種別とを対応付けたトレース情報を、前記テープ媒体とは異なる記憶部に記録する処理と、
前記ホスト装置からのコマンドに応じて前記テープ媒体から読み込まれる所定のブロック番号のデータに関するエラーが発生した場合に、記録した前記トレース情報を参照して、前記所定のブロック番号に対応するデータの種別に基づいて前記ホスト装置への応答を行う処理と、
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【符号の説明】
【０２４６】
１０１  ストレージ制御装置
１０２  ドライブ装置
１０３，２０２  ホスト装置
１１０，ＴＲ  トレース情報
２００  ストレージシステム
２０１  テープ装置
２１０  ネットワーク
３００  バス
３０１  プロセッサ
３０２  メモリ
３０３  通信Ｉ／Ｆ
３０４  ドライブＩ／Ｆ
３０５  ディスプレイ
４０１  インデックスパーティション
４０２  データパーティション
４０３  ガードバンド
６００  ブロック定義情報
９０１  ドライブ監視部
９０２  受付部
９０３  コマンド処理部
９０４  出力部
１２００  テープ残量確認画面
ＴＲ１  全ブロックトレース
ＴＲ２  特殊ブロックトレース
【図１】
2018077686.tif 000003
【図２】
2018077686.tif 000004
【図３】
2018077686.tif 000005
【図４】
2018077686.tif 000006
【図５】
2018077686.tif 000007
【図６】
2018077686.tif 000008
【図７】
2018077686.tif 000009
【図８】
2018077686.tif 000010
【図９】
2018077686.tif 000011
【図１０】
2018077686.tif 000012
【図１１】
2018077686.tif 000013
【図１２】
2018077686.tif 000014
【図１３】
2018077686.tif 000015
【図１４】
2018077686.tif 000016
【図１５】
2018077686.tif 000017
【図１６】
2018077686.tif 000018
【図１７】
2018077686.tif 000019
【図１８】
2018077686.tif 000020
【図１９】
2018077686.tif 000021
【図２０】
2018077686.tif 000022
【図２１】
2018077686.tif 000023
【図２２】
2018077686.tif 000024