(57)【要約】【課題】テープ媒体からのデータ読み出しにかかる時間を短縮する。【解決手段】テープドライブ１１は、テープ媒体を用いてデータを読み書きする。制御部１２は、テープ媒体における第１の区間および第２の区間からのデータの読み出しが要求されたとき、第１の区間と第２の区間との間に位置する第３の区間のデータ量を判定し、データ量と、テープドライブ１１の読み出し特性に基づいて決定される判定閾値とを比較し、データ量が判定閾値以上の場合、第１の区間と第２の区間からデータを読み出すとともに第３の区間を読み飛ばすようにテープドライブ１１に指示し、データ量が判定閾値未満の場合、第１の区間、第２の区間および第３の区間からデータを連続して読み出すようにテープドライブ１１に指示する。【選択図】図１
2020187481.tif 000002
【特許請求の範囲】
【請求項１】
テープ媒体を用いてデータを読み書きするテープドライブと、
前記テープ媒体における第１の区間および第２の区間からのデータの読み出しが要求されたとき、前記第１の区間と前記第２の区間との間に位置する第３の区間のデータ量を判定し、前記データ量と、前記テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、前記データ量が前記判定閾値以上の場合、前記第１の区間と前記第２の区間からデータを読み出すとともに前記第３の区間を読み飛ばすように前記テープドライブに指示し、前記データ量が前記判定閾値未満の場合、前記第１の区間、前記第２の区間および前記第３の区間からデータを連続して読み出すように前記テープドライブに指示する制御部と、
を有するテープ装置。
【請求項２】
前記制御部はさらに、
前記テープドライブに、前記テープ媒体における所定区間からデータを連続して読み出す第１の読み出し動作を実行させて、前記第１の読み出し動作にかかった第１の時間を計測し、
前記テープドライブに、前記所定区間から間隔を空けてデータを読み出す第２の読み出し動作を、前記間隔を変化させながら複数回実行させて、前記第２の読み出し動作にかかった第２の時間を前記間隔ごとに計測し、
前記第１の時間と、前記間隔ごとの前記第２の時間との比較結果に基づいて、前記判定閾値を決定する、
請求項１記載のテープ装置。
【請求項３】
前記テープドライブに対して、前記テープ媒体における書き込み単位となる単位領域のサイズとして複数のサイズを設定可能であり、
前記データ量と前記判定閾値との比較では、前記テープドライブに現在設定されている前記単位領域のサイズを取得し、前記複数のサイズのそれぞれについて個別に決定された前記判定閾値のうち、前記取得したサイズに対応する前記判定閾値と、前記データ量とを比較する、
請求項１または２記載のテープ装置。
【請求項４】
テープドライブにおけるテープ媒体からのデータ読み出しを制御する制御装置において、
前記テープドライブの読み出し特性に基づいて決定される判定閾値を記憶する記憶部と、
前記テープ媒体における第１の区間および第２の区間からのデータの読み出しが要求されたとき、前記第１の区間と前記第２の区間との間に位置する第３の区間のデータ量を判定し、前記データ量と前記判定閾値とを比較し、前記データ量が前記判定閾値以上の場合、前記第１の区間と前記第２の区間からデータを読み出すとともに前記第３の区間を読み飛ばすように前記テープドライブに指示し、前記データ量が前記判定閾値未満の場合、前記第１の区間、前記第２の区間および前記第３の区間からデータを連続して読み出すように前記テープドライブに指示する制御部と、
を有する制御装置。
【請求項５】
テープドライブにおけるテープ媒体からのデータ読み出しを制御するための読み出し制御プログラムにおいて、
コンピュータに、
前記テープ媒体における第１の区間および第２の区間からのデータの読み出しが要求されたとき、前記第１の区間と前記第２の区間との間に位置する第３の区間のデータ量を判定し、
前記データ量と、前記テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、
前記データ量が前記判定閾値以上の場合、前記第１の区間と前記第２の区間からデータを読み出すとともに前記第３の区間を読み飛ばすように前記テープドライブに指示し、
前記データ量が前記判定閾値未満の場合、前記第１の区間、前記第２の区間および前記第３の区間からデータを連続して読み出すように前記テープドライブに指示する、
処理を実行させる読み出し制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ装置、制御装置および読み出し制御プログラムに関する。
【背景技術】
【０００２】
磁気テープなどのテープ媒体は、大容量かつ低コストの記憶媒体として広く利用されている。このようなテープ媒体に関する技術として、次のような提案がある。例えば、ホストマシンからのデータの転送速度と速度閾値との比較結果に基づいて、データを磁気テープに書き込むか、テープカートリッジの不揮発性半導体メモリに書き込むかを決定するテープドライブ装置が提案されている。
【０００３】
また、分散型ストレージシステムに関する次のような技術も提案されている。例えば、このようなシステムに含まれる制御装置が、処理負荷状態を示す複数種類の処理指標値を用いて、負荷軽減のために記憶装置間で移動させるデータを選択する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−４１６４６号公報
【特許文献２】特開２０１４−２２９２３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、テープ媒体からテープ走行方向に対する間隔を空けて複数のデータを読み出す場合、あるデータの読み出しを終了してから次のデータの読み出しを開始するまでの区間では、その開始位置に対する磁気ヘッドの位置付け動作が行われる。ここで、位置付け動作によって磁気ヘッドが移動する区間がある程度長い場合、テープ媒体の走行速度を高めることができるので、位置付け動作にかかる時間は、同じ区間からデータを読み出す場合より短くなる。しかし、位置付け動作による磁気ヘッドの移動区間が短い場合、すなわち、読み出し対象のデータ間の間隔が短い場合には、位置付け動作にかかる時間が、同じ区間からデータを読み出す場合より長くなる場合がある。これは、位置付け動作にかかる時間のうち、テープ媒体の走行の停止や再開によって生じる時間のロスの影響が大きくなるからである。このため、テープ媒体から短い間隔を空けてデータが読み出される場合には、間隔が長い場合よりも読み出しにかかる全体の時間が増大してしまうという問題がある。
【０００６】
１つの側面では、本発明は、テープ媒体からのデータ読み出しにかかる時間を短縮できるテープ装置、制御装置および読み出し制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、テープドライブと制御部とを有するテープ装置が提供される。このテープ装置において、テープドライブは、テープ媒体を用いてデータを読み書きする。制御部は、テープ媒体における第１の区間および第２の区間からのデータの読み出しが要求されたとき、第１の区間と第２の区間との間に位置する第３の区間のデータ量を判定し、データ量と、テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、データ量が判定閾値以上の場合、第１の区間と第２の区間からデータを読み出すとともに第３の区間を読み飛ばすようにテープドライブに指示し、データ量が判定閾値未満の場合、第１の区間、第２の区間および第３の区間からデータを連続して読み出すようにテープドライブに指示する。
【０００８】
また、１つの案では、上記テープ装置の制御部と同様の処理を実行する制御装置が提供される。
さらに、１つの案では、上記テープ装置の制御部と同様の処理をコンピュータに実行させる読み出し制御プログラムが提供される。
【発明の効果】
【０００９】
１つの側面では、テープ媒体からのデータ読み出しにかかる時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態に係るテープ装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】テープ装置の内部構成例を示す図である。
【図４】磁気テープを用いたオブジェクトの読み書き動作についての第１の比較例を示す図である。
【図５】磁気テープを用いたオブジェクトの読み書き動作についての第２の比較例を示す図である。
【図６】第２の実施の形態における読み出し制御を説明するための図である。
【図７】テープ装置のコントローラが備える処理機能の構成例を示す図である。
【図８】閾値テーブルの構成例を示す図である。
【図９】テープドライブの読み出し性能についての第１の計測例を示す図である。
【図１０】テープドライブの読み出し性能についての第２の計測例を示す図である。
【図１１】データ読み出しにかかる時間の例を示す図である。
【図１２】閾値計測処理を示すフローチャートの例である。
【図１３】読み出し処理を示すフローチャートの例（その１）である。
【図１４】読み出し処理を示すフローチャートの例（その２）である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るテープ装置の構成例および処理例を示す図である。図１に示すテープ装置１０は、テープ媒体の一例として磁気テープ１を用いてデータを読み書きするテープドライブ１１と、制御部１２とを有する。
【００１２】
制御部１２は、例えば、プロセッサがプログラムを実行することで種々の処理を実行するコンピュータ装置として実現される。制御部１２は、次のような手順でテープドライブ１１における磁気テープ１からのデータの読み出しを制御する。
【００１３】
制御部１２は、磁気テープ１における第１の区間および第２の区間からのデータの読み出しが要求されたとき、第１の区間と第２の区間との間に位置する第３の区間のデータ量を判定する。制御部１２は、判定されたデータ量と所定の判定閾値とを比較する。判定閾値は、テープドライブ１１の読み出し特性に基づいて決定される。
【００１４】
制御部１２は、比較結果に基づき、判定されたデータ量が判定閾値以上である場合には、第１の区間と第２の区間からデータを読み出すとともに第３の区間を読み飛ばすようにテープドライブ１１に指示する。一方、制御部１２は、判定されたデータ量が判定閾値未満である場合には、第１の区間、第２の区間および第３の区間からデータを連続して読み出すようにテープドライブ１１に指示する。これにより、制御部１２は、磁気テープ１からのデータ読み出しにかかる時間を短縮できる。
【００１５】
以下、２つのパターンを例示して制御部１２の具体的な処理について説明する。
図１に示すパターン１では、磁気テープ１にデータＤＴ１〜ＤＴ５が書き込まれている状態において、データＤＴ１，ＤＴ５の読み出しが要求されたとする。この場合、データＤＴ１が第１の区間のデータに対応し、データＤＴ５が第２の区間のデータに対応し、データＤＴ２〜ＤＴ４が第３の区間のデータに対応する。
【００１６】
制御部１２は、第３の区間のデータ量Ａ１を判定する。パターン１では、データＤＴ２〜ＤＴ４の総データ量がデータ量Ａ１として判定される。制御部１２は、データ量Ａ１と判定閾値ＴＨとを比較する。パターン１では、データ量Ａ１は判定閾値ＴＨ以上であると判定される。この場合、制御部１２は、第１の区間および第２の区間のデータＤＴ１，ＤＴ５を読み出すとともに第３の区間を読み飛ばすようにテープドライブ１１に指示する。これによりテープドライブ１１は、データＤＴ１を読み出した後、データＤＴ２〜ＤＴ４を読み飛ばして、データＤＴ５を読み出す。
【００１７】
一方、図１に示すパターン２では、磁気テープ１にデータＤＴ１１〜ＤＴ１３が書き込まれている状態において、データＤＴ１１，ＤＴ１３の読み出しが要求されたとする。この場合、データＤＴ１１が第１の区間のデータに対応し、データＤＴ１３が第２の区間のデータに対応し、データＤＴ１２が第３の区間のデータに対応する。
【００１８】
制御部１２は、第３の区間のデータ量Ａ２を判定する。パターン２では、データＤＴ１２の総データ量がデータ量Ａ２として判定される。制御部１２は、データ量Ａ２と判定閾値ＴＨとを比較する。パターン２では、データ量Ａ１は判定閾値ＴＨより小さいと判定される。この場合、制御部１２は、第１の区間、第２の区間および第３の区間からデータＤＴ１１，ＤＴ１２，ＤＴ１３を連続して読み出すようにテープドライブ１１に指示する。これによりテープドライブ１１は、データＤＴ１１，ＤＴ１２，ＤＴ１３を連続して読み出す。制御部１２は、例えば、読み出されたデータＤＴ１２を破棄し、データＤＴ１１，ＤＴ１３のみを読み出しの要求元に出力する。
【００１９】
ここで、第３の区間がある程度長い（ある程度のデータ量を有する）場合、その区間を読み飛ばす際の磁気テープ１の走行速度をデータ読み出し時より高めることができる。このため、その区間を読み飛ばすのにかかる時間の方が、その区間からデータを読み出すのにかかる時間より短くなる。しかし、第３の区間が短い（データ量が小さい）場合には、その区間を読み飛ばすのにかかる時間の方が、その区間からデータを読み出すのにかかる時間より長くなる場合がある。
【００２０】
例えば、第３の区間を読み飛ばす場合、第１の区間からのデータ読み出しの終了に伴って磁気テープ１の走行が停止され、次に磁気ヘッドを第２の区間の先頭位置に移動させるために磁気テープ１の走行が再開される。第３の区間が短い場合、このような磁気テープ１の走行の停止や再開によって生じる時間のロスの影響が大きくなる。その結果、第３の区間を読み飛ばすのにかかる時間の方が、その区間からデータを読み出すのにかかる時間より長くなる場合がある。さらに、第３の区間が短い場合、読み飛ばす際の磁気テープ１の走行速度を最高速度まで上げられなくなる場合があり、この点も読み飛ばしにかかる時間を長くする要因となり得る。
【００２１】
上記の判定閾値は、第３の区間を読み飛ばすのにかかる時間と、第３の区間のデータを前後の区間のデータとともに連続して読み出すのにかかる時間との大小関係が逆転する際の、第３の区間のデータ量として決定される。制御部１２は、このような判定閾値を用いて、第３の区間を読み飛ばすか、あるいは第１〜第３の区間のデータを連続して読み出すかを決定することにより、読み出しにかかる全体の時間を短縮できる。
【００２２】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ユーザサーバ１００、ストレージサーバ１５０およびストレージ装置２００，２００ａ，２００ｂを含む。なお、ストレージ装置２００は、図１に示したテープ装置１０の一例である。
【００２３】
このストレージシステムでは、ストレージ装置２００，２００ａ，２００ｂに含まれるストレージを記憶領域として用いたオブジェクトストレージシステムが実現される。ユーザサーバ１００は、データをオブジェクトとして取り扱い、ストレージサーバ１５０に対してオブジェクトの識別情報を指定することで、ストレージへのオブジェクトの書き込みやストレージからのオブジェクトの読み出しを要求する。ストレージサーバ１５０は、ユーザサーバ１００からの要求に応じてストレージ装置２００，２００ａ，２００ｂのストレージにアクセスする。
【００２４】
ストレージ装置２００は、磁気テープを用いたテープドライブを備える。すなわち、ストレージ装置２００は、ストレージとして磁気テープを用いたテープ装置である。ストレージ装置２００ａは、ストレージとしてＨＤＤ（Hard Disk Drive）を備える。ストレージ装置２００ｂは、ストレージとしてＳＳＤ（Solid State Drive）を備える。このように、ストレージシステムは、アクセス性能の異なる複数種類のストレージを備えている。すなわち、ストレージ装置２００ｂ，２００ａ，２００の順にアクセス性能が高い。
【００２５】
ストレージサーバ１５０は、オブジェクトに対するアクセス頻度に応じて、オブジェクトをストレージ装置２００，２００ａ，２００ｂのうちのどのストレージに格納するかを制御する。具体的には、ストレージサーバ１５０は、アクセス頻度の高いオブジェクトをストレージ装置２００ｂのストレージに格納する。ストレージサーバ１５０は、アクセス頻度の低いオブジェクトをストレージ装置２００のストレージに格納する。ストレージサーバ１５０は、アクセス頻度が中程度のオブジェクトをストレージ装置２００ａのストレージに格納する。また、ストレージサーバ１５０は、アクセス頻度の変動に応じて、オブジェクトをストレージ装置２００，２００ａ，２００ｂの各ストレージの間で移動させる。このように、ストレージサーバ１５０は、アクセス性能の異なるストレージによって記憶領域を階層化した階層化制御を行う。
【００２６】
なお、ストレージ装置２００は、例えば、このストレージ装置２００に対するアクセスを制御する別のサーバ装置を介して、ストレージサーバ１５０と接続されていてもよい。同様に、ストレージ装置２００ａは、このストレージ装置２００ａに対するアクセスを制御する別のサーバ装置を介して、ストレージサーバ１５０と接続されていてもよい。また、ストレージ装置２００ｂは、このストレージ装置２００ｂに対するアクセスを制御する別のサーバ装置を介して、ストレージサーバ１５０と接続されていてもよい。
【００２７】
次に、磁気テープを用いたストレージ装置２００について説明する。以下の説明では、ストレージ装置２００を「テープ装置２００」と表記する。
図３は、テープ装置の内部構成例を示す図である。図３に示すように、テープ装置２００は、コントローラ２０１とテープドライブ２０２を備える。テープドライブ２０２には、磁気テープが格納されたテープカートリッジ２０３がマウントされる。
【００２８】
コントローラ２０１は、ストレージサーバ１５０からの要求に応じて、テープドライブ２０２によるデータ書き込み動作やデータ読み出し動作を制御する。テープドライブ２０２は、コントローラ２０１による制御の下で、テープカートリッジ２０３内の磁気テープに対するデータ書き込み動作や磁気テープからのデータ読み出し動作を実行する。なお、例として、テープドライブ２０２は、ＬＴＯ（Liner Tape-Open）規格の磁気テープを用いた読み書きを行うものとする。
【００２９】
コントローラ２０１は、プロセッサ２１１、ＲＡＭ２１２、フラッシュメモリ２１３、通信インタフェース（Ｉ／Ｆ）２１４およびドライブインタフェース（Ｉ／Ｆ）２１５を備える。
【００３０】
プロセッサ２１１は、コントローラ２０１全体を統括的に制御する。プロセッサ２１１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ２１１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３１】
ＲＡＭ２１２は、テープ装置２００の主記憶装置である。ＲＡＭ２１２は、プロセッサ２１１に実行させるプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ２１２は、プロセッサ２１１による処理に用いる各種データを記憶する。フラッシュメモリ２１３は、テープ装置２００の補助記憶装置である。フラッシュメモリ２１３には、プロセッサ２１１に実行されるプログラムや各種データが格納される。通信インタフェース２１４は、他の装置（例えばストレージサーバ１５０）と通信を行うためのインタフェースである。ドライブインタフェース２１５は、テープドライブ２０２と通信を行うためのインタフェースである。
【００３２】
なお、テープ装置２００は、例えば、複数台のテープドライブ２０２や、テープカートリッジ２０３の搬送機構、テープカートリッジ２０３の収納部などを含むテープライブラリ装置であってもよい。
【００３３】
次に、図４、図５を用いて、磁気テープを用いたオブジェクトの書き込み動作および読み出し動作の比較例について説明する。
図４は、磁気テープを用いたオブジェクトの読み書き動作についての第１の比較例を示す図である。
【００３４】
磁気テープに対しては、書き込みが要求されたデータが逐次追記される。図４の上側では、オブジェクトＯＢＪ１〜ＯＢＪ１００に分割されたデータＤ１、オブジェクトＯＢＪ１０１〜ＯＢＪ２００に分割されたデータＤ２、オブジェクトＯＢＪ２０１〜ＯＢＪ１０００に分割されたデータＤ３の書き込みが順に要求された場合を示す。この例では、データＤ１が磁気テープ上のブロックＢＫ１１〜ＢＫ１３に書き込まれ、データＤ２がそれに続くブロックＢＫ１４〜ＢＫ１７に書き込まれ、データＤ３がそれに続くブロックＢＫ１８〜ＢＫ２２に書き込まれている。なお、「ブロック」とは、磁気テープにおける単位記憶領域であり、それぞれ同じサイズを有する。
【００３５】
また、図４の下側では、書き込まれたデータＤ１〜Ｄ３のうち、データＤ２，Ｄ３の読み出しが要求された場合を示す。この場合、まず、磁気テープにおけるデータＤ２の先頭位置、すなわちブロックＢＫ１４の開始位置に対して、磁気ヘッドを位置付け（locate）する動作が行われる。位置付け動作では、磁気テープを走行させて磁気ヘッドをブロックＢＫ１４の開始位置に移動させる。磁気ヘッドがブロックＢＫ１４の開始位置に配置されると、磁気ヘッドによってブロックＢＫ１４〜ＢＫ１７からデータＤ２が読み出され、さらにブロックＢＫ１８〜ＢＫ２２からデータＤ３が読み出される。
【００３６】
ところで、従来、オブジェクトストレージに対しては比較的大きなサイズのデータが書き込まれることが多かった。特に、磁気テープに対しては、ギガバイトオーダやテラバイトオーダといった大容量のデータが書き込まれることが多かった。これは、磁気テープが、ディスクイメージや、記憶領域上のパーティション単位のデータイメージなどのバックアップ用途で用いられることが多かったからである。このようなデータは、その一部分だけが読み出されることは少ない。例えば、図４の例では、データＤ１，Ｄ２，Ｄ３という単位で読み出しが要求される場合はあっても、データＤ１〜Ｄ３に含まれるオブジェクト単位で読み出しが要求されることは少なかった。
【００３７】
しかし、近年のオブジェクトストレージでは、用途の拡大によって、取り扱われるデータのサイズの幅が広がっている。例えば、数十キロバイト程度の小さなサイズのデータが書き込まれるケースも増えている。そして、そのような小さなサイズのデータ単位で読み出しが要求されるケースも増えている。このような背景から、テープドライブに対しても、数十キロバイトから数ギガバイトといった様々なサイズのデータを、より高速で読み出し可能にすることが要求されている。
【００３８】
例えば、図２のような構成でストレージの階層化制御が行われる場合、磁気テープもＨＤＤやＳＳＤと同列のストレージとして取り扱われる。そのため、相対的にアクセス頻度の低いオブジェクトが磁気テープに書き込まれたとしても、磁気テープ上のオブジェクトの読み出しが要求される可能性は十分あり、その場合にできるだけ短時間でデータ読み出しを完了できることが望まれる。
【００３９】
図５は、磁気テープを用いたオブジェクトの読み書き動作についての第２の比較例を示す図である。
一定サイズのオブジェクトを取り扱う場合、オブジェクトの読み書きを効率化するために、ブロックのサイズをオブジェクトのサイズと関連性を有するサイズに設定することが考えられる。例えば、ブロックのサイズの定数倍がオブジェクトのサイズと一致するようにブロックのサイズを設定することが考えられる。
【００４０】
図５では例として、ブロックのサイズとオブジェクトのサイズとを一致させた場合を示している。図５の例では、磁気テープに対して、オブジェクトＯＢＪ１〜ＯＢＪ２０が連続して書き込まれ、次にオブジェクトＯＢＪ１０１〜ＯＢＪ２００が連続して書き込まれたとする。そして、オブジェクトＯＢＪ１〜ＯＢＪ２０はブロックＢＫ１１〜ＢＫ３０にそれぞれ書き込まれ、オブジェクトＯＢＪ１０１〜ＯＢＪ２００はそれに続くブロックＢＫ３１〜ＢＫ２３０に書き込まれている。
【００４１】
このような状態からオブジェクト単位で読み出しが要求された場合を考える。例えば、オブジェクトＯＢＪ１，ＯＢＪ１０１，ＯＢＪ１５０の読み出しが要求されたとする。この場合、まず、オブジェクトＯＢＪ１の先頭位置であるブロックＢＫ１１の開始位置に対して、磁気ヘッドが位置付けされる。磁気ヘッドがブロックＢＫ１１の開始位置に配置されると、磁気ヘッドによってブロックＢＫ１１からオブジェクトＯＢＪ１が読み出される。次に、オブジェクトＯＢＪ１０１の先頭位置であるブロックＢＫ３１の開始位置に対して、磁気ヘッドが位置付けされる。磁気ヘッドがブロックＢＫ３１の開始位置に配置されると、磁気ヘッドによってブロックＢＫ３１からオブジェクトＯＢＪ１０１が読み出される。さらに、オブジェクトＯＢＪ１５０の先頭位置であるブロックＢＫ８０の開始位置に対して、磁気ヘッドが位置付けされる。磁気ヘッドがブロックＢＫ８０の開始位置に配置されると、磁気ヘッドによってブロックＢＫ８０からオブジェクトＯＢＪ１５０が読み出される。
【００４２】
このように、小さなサイズのオブジェクト単位で読み出しが要求される場合、磁気テープ上の互いに離れた位置に存在するオブジェクトに対する読み出しが、頻繁に要求される可能性がある。その場合、磁気ヘッドの位置付け動作と磁気ヘッドによるデータ読み出し動作とが繰り返し実行されることになる。これは、磁気テープの走行の停止と再開が繰り返されることを意味し、このような繰り返しによって大きな時間のロスが発生することになる。
【００４３】
ただし、磁気ヘッドの位置付け動作では、磁気ヘッドの移動距離がある程度長ければ、磁気ヘッドによるデータ読み出し動作よりも磁気テープの走行速度を高めることができる。このため、磁気テープの走行の停止と再開が発生したとしても、磁気テープの位置付けにかかる時間の方が、同じ区間からデータを連続して読み出した場合にかかる時間よりも短くなる。
【００４４】
しかしながら、オブジェクトのサイズが小さい場合には、磁気ヘッドの位置付け動作が行われる個々の区間が短くなり得る。このような区間が短い場合、位置づけ動作にかかる時間のうち磁気テープの走行の停止や再開のためにロスする時間が相対的に大きくなり、結果的に位置づけ動作にかかる時間のロスが大きくなる。しかも、区間が短い場合、磁気テープの走行速度を最高速度まで上げることもできなくなり、区間が長い場合よりも走行速度が低下してしまう。このため、このような短い区間における磁気ヘッドの位置付け動作が頻発すると、データの読み出しにかかる全体の時間が増大してしまう。
【００４５】
ここで、これ以後の説明では、磁気テープ上の区間のうち、読み出しが要求された区間を「読み出し対象区間」と記載する。また、２つの読み出し対象区間に挟まれた、読み出しが要求されていない区間を「読み出し非対象区間」と記載する。例えば図５において、ブロックＢＫ１１，ＢＫ３１，ＢＫ８０はそれぞれ読み出し対象区間である。また、ブロックＢＫ１２〜ＢＫ３０、ブロックＢＫ３２〜ＢＫ７９はそれぞれ読み出し非対象区間である。
【００４６】
本実施の形態のテープ装置２００は、磁気テープにおいて２つの読み出し対象区間に挟まれた読み出し非対象区間の長さに応じて、読み出し非対象区間のデータを読み飛ばすか、あるいはそのデータを両側の読み出し対象区間のデータとともに連続して読み出すかを決定する。以下、この処理について図６を用いて説明する。
【００４７】
図６は、第２の実施の形態における読み出し制御を説明するための図である。読み出し非対象区間が存在する場合、その読み出し非対象区間のデータを読み飛ばすより、そのデータを両側の読み出し対象区間のデータとともに連続して読み出した方が、全体の処理時間が短縮される場合がある。基本的に、読み出し非対象区間が短いほど、その区間のデータを両側の読み出し対象区間のデータとともに読み出した方が、全体の処理時間が短縮される可能性が高いと考えられる。これは、以下のような考え方によるものである。
【００４８】
図６では例として、ブロックＢＫ１１〜ＢＫ１６の区間のうち、ブロックＢＫ１１に書き込まれたオブジェクトＯＢＪ１と、ブロックＢＫ１６に書き込まれたオブジェクトＯＢＪ６の読み出しが要求された場合を示す。この場合、ブロックＢＫ１１，ＢＫ１６が読み出し対象区間に相当し、ブロックＢＫ１２〜ＢＫ１５が読み出し非対象区間に相当する。また、読み出し非対象区間に含まれるブロック数をαとする。図６の例ではα＝４である。
【００４９】
また、磁気ヘッドによる１ブロックの読み出しにかかる時間をｔ１とする。実際には磁気ヘッドによる読み出し速度は状況に応じて変化するが、ここでは説明を簡単にするためにブロック当たりの読み出しに一定の時間ｔ１がかかると仮定する。この場合、例えば、オブジェクトＯＢＪ１，ＯＢＪ６のそれぞれを磁気ヘッドが読み出すのにかかる時間は、それぞれｔ１となる。また、読み出し非対象区間を読み飛ばさずにブロックＢＫ１２〜ＢＫ１６からオブジェクトを連続して読み出した場合、その読み出しにかかる時間Ｔａは、Ｔａ＝ｔ１＊（α＋１）となる。
【００５０】
一方、読み出し非対象区間を読み飛ばす場合、この区間において磁気ヘッドの位置付け動作が行われる。磁気ヘッドの位置付け動作は、大別して、磁気テープをできるだけ高速で走行させて磁気ヘッドを次の読み出し開始位置（ここではブロックＢＫ１６の開始位置）に近づけるヘッド移動動作と、その他の動作とを含む。前者のヘッド移動動作にかかる時間は、読み飛ばす区間の長さに応じて変化するのに対し、後者の動作にかかる時間は区間の長さに関係なくほぼ一定の固定的な時間となる。そこで、図６では後者の時間をｔ３としている。時間ｔ３には、例えば、ブロックＢＫ１１の読み出し終了後における磁気テープの走行の停止と再開にかかる時間や、磁気ヘッドがブロックＢＫ１６の開始位置の近くに達した後に、磁気ヘッドをその開始位置に正確に位置合わせするための時間などを含む。
【００５１】
また、前者のヘッド移動動作に関しては、図６では、ヘッド移動動作において磁気ヘッドを１ブロック分移動させるのにかかる平均の時間をｔ２としている。実際には磁気ヘッドの移動速度は区間ごとに一定とはならないが、ここでは説明を簡単にするためのブロック当たりの平均移動時間であるｔ２を用いる。ヘッド移動動作では、磁気ヘッドによってデータが読み出されない分、磁気ヘッドの移動速度は磁気ヘッドによるデータ読み出し時より速い。このため、ｔ２＜ｔ１となる。
【００５２】
以上より、読み出し非対象区間における磁気ヘッドの位置付け動作にかかる時間は、（ｔ２＊α）＊ｔ３となる。したがって、ブロックＢＫ１１からのオブジェクトＯＢＪ１の読み出しが完了してから、ブロックＢＫ１２〜ＢＫ１５を読み飛ばし、さらにブロックＢＫ１６からのオブジェクトＯＢＪ６の読み出しが完了するまでの時間Ｔｂは、Ｔｂ＝（ｔ２＊α）＊ｔ３＋ｔ１となる。
【００５３】
ここで、時間ｔ３は、磁気ヘッドの位置付け動作にかかる時間の中で相対的に大きな割合を占める。例えば、時間ｔ３は時間ｔ１より長くなる場合がある。また、ブロックサイズによっては、時間ｔ３は時間ｔ１の数倍になる場合もある。
【００５４】
読み出し非対象区間がある程度長い場合には、読み出し時より磁気テープを高速で走行させることができる分、この区間からデータを読み出すのにかかる時間よりこの区間を読み飛ばすのにかかる時間の方が短くなる。しかし、読み出し非対象区間が短くなると、時間ｔ３の影響によって、この区間からデータを読み出すのにかかる時間の方が、この区間を読み飛ばすのにかかる時間より短くなる場合がある。さらに、読み出し非対象区間が短い場合、磁気テープの走行速度を最高速度まで上げられなくなる可能性もあり、その場合には時間ｔ２も長くなってしまう。このような性質から、連続読み出しを行った場合にかかる時間Ｔａと、読み飛ばしを行った場合にかかる時間Ｔｂとの間の大小関係は、読み出し非対象区間の長さに応じて反転し得る。
【００５５】
そこで、本実施の形態のテープ装置２００は、時間Ｔａと時間Ｔｂとの間の大小関係が反転するような読み出し非対象区間の長さの閾値を、あらかじめ求める。そして、テープ装置２００は、読み出し非対象区間が特定されたとき、その区間の長さを閾値と比較することで、その区間のデータを読み飛ばすか、あるいはそのデータを両側の読み出し対象区間のデータとともに連続して読み出すかを決定する。これにより、小さいサイズのオブジェクト単位で、間欠的な位置のオブジェクトの読み出しが要求された場合におけるデータ読み出しにかかる全体の時間を、短縮することができる。
【００５６】
なお、実際には、ブロックのサイズによって時間ｔ２は変動し得る。これは、ブロックのサイズによって、磁気ヘッドの位置付け動作におけるサーボ信号の読み出しにかかる時間が変化するからである。また、ブロックのサイズが小さい場合、両側の読み出し対象区間の長さが短くなる場合があり、その場合には磁気ヘッドによる読み出し速度が低下する可能性がある。このため、ブロックのサイズによって、連続読み出しを行った場合に使用する時間ｔ１より、読み飛ばしを行った場合に使用する時間ｔ１の方が小さくなる可能性がある。このような理由により、ブロックのサイズによって最適な閾値は変動し得る。そこで、本実施の形態のテープ装置２００は、設定されたブロックのサイズに応じて、そのブロックに適した閾値を用いて上記の読み出し制御を行う。
【００５７】
図７は、テープ装置のコントローラが備える処理機能の構成例を示す図である。テープ装置２００のコントローラ２０１は、記憶部２２０、閾値計測部２３０、書き込み制御部２４０および読み出し制御部２５０を備える。
【００５８】
記憶部２２０は、例えば、ＲＡＭ２１２の記憶領域として実現される。記憶部２２０には、閾値テーブル２２１、データ管理テーブル２２２、読み出しオーダリスト２２３および読み出し実行リスト２２４が記憶される。
【００５９】
閾値テーブル２２１は、磁気テープにおける読み出し非対象区間のデータを読み出すか否かを判定するための閾値を保持する。閾値テーブル２２１には、このような閾値がブロックのサイズごとに登録される。また、本実施の形態では、閾値はブロック数によって表される。データ管理テーブル２２２は、磁気テープに書き込まれたオブジェクトと、磁気テープにおけるオブジェクトの書き込み位置（ブロック）との対応関係を示す情報を保持する。
【００６０】
読み出しオーダリスト２２３は、ストレージサーバ１５０から受信した読み出しオーダを一時的に保持するＦＩＦＯ（First In First Out）方式のキューである。読み出し実行リスト２２４は、テープドライブ２０２に実行させることが確定した読み出しオーダを一時的に保持するＦＩＦＯ方式のキューである。
【００６１】
閾値計測部２３０、書き込み制御部２４０および読み出し制御部２５０の処理は、例えば、プロセッサ２１１が所定のプログラムを実行することで実現される。
閾値計測部２３０は、読み出し非対象区間のデータを読み出すかを判定するための閾値を計測し、閾値テーブル２２１に登録する。閾値の計測は、例えば、テープ装置２００の初回電源投入時に実行される。
【００６２】
書き込み制御部２４０は、ストレージサーバ１５０から受信した書き込みオーダにしたがって、磁気テープに対するオブジェクトの書き込みをテープドライブ２０２に指示する。また、書き込み制御部２４０は、磁気テープに書き込まれたオブジェクトと、オブジェクトの磁気テープにおける書き込み位置を示す位置情報とを対応付けて、データ管理テーブル２２２に登録する。
【００６３】
ここで、書き込み制御部２４０は、書き込み制御動作を開始する前に、ブロックサイズの設定を受け付ける。ブロックサイズは、例えば、ユーザサーバ１００からストレージサーバ１５０を介して指示される。書き込み制御部２４０は、受け付けたブロックサイズを記憶部２２０に記録するとともに、テープドライブ２０２に設定する。これ以後、テープドライブ２０２での磁気テープを用いた読み書き動作では、設定されたブロックサイズが用いられる。例えば、読み書き動作や位置付け動作における磁気テープ上の位置を判別するために、ブロックサイズに応じた間隔でサーボ信号が読み取られる。
【００６４】
読み出し制御部２５０は、ストレージサーバ１５０から受信した読み出しオーダにしたがって、磁気テープからのオブジェクトの読み出しをテープドライブ２０２に指示する。読み出し制御部２５０は、読み出しオーダ受信部２５１、読み飛ばし判定部２５２および読み出し実行部２５３を備える。
【００６５】
読み出しオーダ受信部２５１は、ストレージサーバ１５０から読み出しオーダを受信し、読み出しオーダを受信順に読み出しオーダリスト２２３に登録する。なお、受信した読み出しオーダには、読み出し対象のオブジェクトを識別する識別情報が含まれる。
【００６６】
読み飛ばし判定部２５２は、一定時間間隔で読み出しオーダリスト２２３から読み出しオーダを取り出す。読み飛ばし判定部２５２は、データ管理テーブル２２２に基づき、取り出した一定時間分の読み出しオーダを、対応するオブジェクトの書き込み順に並び替える。読み飛ばし判定部２５２は、並び替えられた読み出しオーダとデータ管理テーブル２２２とに基づいて、読み出し対象区間の間に存在する読み出し非対象区間を特定する。読み飛ばし判定部２５２は、閾値テーブル２２１からブロックサイズに対応する閾値を取得し、特定された読み出し非対象区間のブロック数と取得した閾値とを比較することで、読み出し非対象区間のデータを読み出すか、あるいは読み飛ばすかを判定する。
【００６７】
読み飛ばし判定部２５２は、最終的にテープドライブ２０２に実行させることが確定した読み出しオーダを、読み出し実行リスト２２４に登録する。読み飛ばし判定部２５２は、基本的に、読み出しオーダリスト２２３から取得した読み出しオーダを順に読み出し実行リスト２２４に登録していく。ただし、読み飛ばし判定部２５２は、読み出し非対象区間のデータを読み出すと判定した場合には、当該区間のデータを読み出すための読み出しオーダを、その前後の読み出し対象区間に対応する読み出しオーダの間に挿入する。これにより、前後の読み出し対象区間のデータと読み出し非対象区間のデータとが連続して読み出されるようになる。
【００６８】
読み出し実行部２５３は、読み出し実行リスト２２４から読み出しオーダを取り出し、取り出した読み出しオーダにしたがって、データの読み出しをテープドライブ２０２に指示する。
【００６９】
なお、上記の記憶部２２０、閾値計測部２３０、書き込み制御部２４０および読み出し制御部２５０の各機能は、テープ装置２００の内部ではなく、テープ装置２００の外部のコンピュータ装置（例えばストレージサーバ１５０）に設けられていてもよい。
【００７０】
図８は、閾値テーブルの構成例を示す図である。図８に示すように、閾値テーブル２２１には、テープ装置２００に設定可能なブロックサイズごとに閾値が対応付けて登録される。閾値は、ブロック数によって表される。したがって、閾値は実質的に読み出し非対象区間のサイズを示している。
【００７１】
本実施の形態では、閾値は、読み出し非対象区間を読み飛ばすと判定する場合の下限ブロック数を示すものとする。すなわち、読み出し非対象区間に含まれるブロックの数が閾値未満の場合、当該区間のデータを読み出すと判定され、ブロックの数が閾値以上の場合、当該区間を読み飛ばすと判定される。
【００７２】
次に、ブロックサイズごと、およびテープドライブ２０２の機種ごとの読み出し性能の計測例を図９、図１０に示し、これらの図９、図１０を用いて閾値の設定例について説明する。
【００７３】
図９は、テープドライブの読み出し性能についての第１の計測例を示す図である。また、図１０は、テープドライブの読み出し性能についての第２の計測例を示す図である。
図９と図１０では、異なる機種のテープドライブの読み出し性能を示している。ここでは、図９に対応するテープドライブより図１０に対応するテープドライブの方が読み出し速度が高い。具体的には、図１０に対応するテープドライブは、図９に対応するテープドライブより新しい規格に準拠したものとなっている。
【００７４】
また、図９、図１０では、磁気テープ上の５ギガバイト分の区間について、読み飛ばすブロック数を変えながらデータの読み出しを行った場合にかかった全体の処理時間を示している。図９、図１０において、読み飛ばしブロック数「０」とは、読み飛ばしを行わなかった場合を示す。これは、５ギガバイトのデータを連続して読み出したことを意味する。読み飛ばしブロック数「１」とは、１ブロックを読み出し、次の１ブロックを読み飛ばすという動作を繰り返し行った場合を示す。この場合、実際には２．５ギガバイト分のデータだけが読み出される。読み飛ばしブロック数「３」とは、１ブロックを読み出し、次の３ブロックを読み飛ばすという動作を繰り返し行った場合を示す。この場合、実際には１．２ギガバイト分のデータだけが読み出される。読み飛ばしブロック数「７」とは、１ブロックを読み出し、次の７ブロックを読み飛ばすという動作を繰り返し行った場合を示す。この場合、実際には０．６ギガバイト分のデータだけが読み出される。
【００７５】
さらに、図９、図１０では、ブロックサイズを１メガバイト、４メガバイト、１０メガバイト、１００メガバイト、１０００メガバイトと変化させた場合の処理時間の計測結果を示している。
【００７６】
閾値計測部２３０は、図９または図１０に示すような処理時間を計測し、その計測結果に基づいてブロックサイズごとの閾値を推定する。
例えば、図９では、例えばブロックサイズが１メガバイトの場合、読み飛ばしブロック数が「０」の場合より「１」の場合の方が、処理時間が圧倒的に長くなっている。しかし、読み飛ばしブロック数を「３」、「７」と増やしていくにしたがって、処理時間は徐々に短くなっている。そして、読み飛ばしブロック数「７」の場合には、「０」の場合、すなわちすべてのブロックから連続して読み出した場合より処理時間が短くなっている。したがって、図９の下側に示すように、ブロックサイズが１メガバイトの場合の閾値は「７」と判定される。すなわち、読み出し非対象区間のブロック数が「７」未満の場合、この区間のデータを読み出し、ブロック数が「７」以上の場合、この区間のデータを読み飛ばすように制御される。
【００７７】
また、図９では、例えばブロックサイズが４メガバイトの場合、読み飛ばしブロック数が「０」の場合より「１」の場合の方が、処理時間が長くなっている。しかし、読み飛ばしブロック数を「３」、「７」と増やしていくにしたがって、処理時間は徐々に短くなっている。図９の例では、読み飛ばしブロック数「３」の場合には、「０」の場合、すなわちすべてのブロックから連続して読み出した場合より処理時間が短くなっている。したがって、図９の下側に示すように、ブロックサイズが４メガバイトの場合の閾値は「３」と判定される。このように、ブロックサイズによって閾値が変化することがわかる。
【００７８】
また、図１０では、例えばブロックサイズが１メガバイトの場合、読み飛ばしブロック数が「０」の場合より「１」の場合の方が、処理時間が圧倒的に長くなっている。しかし、読み飛ばしブロック数を「３」、「７」と増やしていくにしたがって、処理時間は徐々に短くなっている。そして、読み飛ばしブロック数「７」の場合には、「０」の場合、すなわちすべてのブロックから連続して読み出した場合より処理時間が短くなっている。したがって、図１０の下側に示すように、ブロックサイズが１メガバイトの場合の閾値は「７」と判定される。
【００７９】
また、図１０では、例えばブロックサイズが４メガバイトの場合、読み飛ばしブロック数が「０」の場合より「１」の場合の方が、処理時間が長くなっている。しかし、読み飛ばしブロック数を「３」、「７」と増やしていくにしたがって、処理時間は徐々に短くなっている。図１０の例では、読み飛ばしブロック数「３」の場合には、「０」の場合、すなわちすべてのブロックから連続して読み出した場合より処理時間が短くなっている。したがって、図１０の下側に示すように、ブロックサイズが４メガバイトの場合の閾値は「３」と判定される。このように、ブロックサイズによって閾値が変化することがわかる。
【００８０】
また、図９と図１０の比較からわかるように、テープドライブの読み出し性能はテープドライブの機種ごとに異なるので、閾値も異なる可能性がある。そのため、テープ装置２００が複数存在する場合、テープ装置２００のそれぞれにおいて閾値の計測が行われるようにする。あるいは、テープ装置２００のそれぞれにおいて、搭載されているテープドライブの機種に応じた適切な閾値が、あらかじめ設定されてもよい。
【００８１】
なお、図９または図１０の計測結果を用いることで、５種類のブロックサイズのそれぞれについて閾値が求められる。また、これらの計測結果を用いることで、５種類のブロックサイズ以外の他のブロックサイズについての閾値を、補間演算によって求めることもできる。この場合、読み出し制御部２５０の読み飛ばし判定部２５２が、実際に読み出し非対象区間のデータを読み飛ばすか否かを判定する際に、判定に使用する閾値を補間演算によって算出することになる。
【００８２】
例えば、図９の下側の図に示すように、ブロックサイズが１メガバイトのグラフのうち、読み飛ばしブロック数が「１」以上の範囲のグラフと、読み飛ばしブロック数が「０」のときの処理時間との交点をＰ１とする。また、ブロックサイズが４メガバイトのグラフのうち、読み飛ばしブロック数が「１」以上の範囲のグラフと、読み飛ばしブロック数が「０」のときの処理時間との交点をＰ２とする。一例として、読み飛ばし判定部２５２は、交点Ｐ１と交点Ｐ２とを結ぶ直線Ｌ１を用いて補間演算することで、ブロックサイズが１メガバイトより大きく４メガバイトより小さい場合の閾値を求めることができる。
【００８３】
図１０でも同様に、次のようにして補間演算が行われる。図１０の下側の図に示すように、ブロックサイズが１メガバイトのグラフのうち、読み飛ばしブロック数が「１」以上の範囲のグラフと、読み飛ばしブロック数が「０」のときの処理時間との交点をＰ３とする。また、ブロックサイズが４メガバイトのグラフのうち、読み飛ばしブロック数が「１」以上の範囲のグラフと、読み飛ばしブロック数が「０」のときの処理時間との交点をＰ４とする。一例として、読み飛ばし判定部２５２は、交点Ｐ３と交点Ｐ４とを結ぶ直線Ｌ２を用いて補間演算することで、ブロックサイズが１メガバイトより大きく４メガバイトより小さい場合の閾値を求めることができる。
【００８４】
図１１は、データ読み出しにかかる時間の例を示す図である。
図１１の表３０１は、図９、図１０のような計測結果から算出されたブロック当たりの処理時間の例を示している。ここでは、ブロックサイズを１メガバイトとする。表３０１において、「連続読み出し」の処理時間は、所定サイズの区間の全体を連続して読み出した場合における全体の処理時間を、区間内のブロック数で除算した時間である。「１ブロック読み飛ばし」の処理時間は、同じ区間においてブロック間で１ブロックを読み飛ばした場合の全体の処理時間を、区間内のブロック数で除算した時間である。同様に、「２ブロック読み飛ばし」の処理時間は、同じ区間においてブロック間で２ブロックを読み飛ばした場合の全体の処理時間を、区間内のブロック数で除算した時間である。「３ブロック読み飛ばし」の処理時間は、同じ区間においてブロック間で３ブロックを読み飛ばした場合の全体の処理時間を、区間内のブロック数で除算した時間である。
【００８５】
この表３０１に記載された「１ブロック読み飛ばし」「２ブロック読み飛ばし」「３ブロック読み飛ばし」の場合の処理時間には、磁気ヘッドの位置付けにかかる時間が含まれている。一方、ブロック全域を最高速度で読み出した場合の磁気ヘッドによる読み出し時間は０．００２５秒となる。この時間には、位置付けにかかる時間が含まれない。この時間と「１ブロック読み飛ばし」「２ブロック読み飛ばし」「３ブロック読み飛ばし」の場合の処理時間との比較から、位置付けにかかる時間は読み出しにかかる全体の時間のうちの大きな割合を示すことがわかる。
【００８６】
なお、「連続読み出し」の場合の処理時間は、区間の先頭に磁気ヘッドを停止させた状態から読み出しを行った場合の処理時間である。したがって、この処理時間も、位置付けを含まない場合の時間よりもはるかに長くなっている。
【００８７】
また、表３０１の例では、「１ブロック読み飛ばし」「２ブロック読み飛ばし」「３ブロック読み飛ばし」の場合の処理時間は、いずれも「連続読み出し」の場合の処理時間より長くなっている。したがって、この例では少なくとも、読み出し非対象区間が３ブロック以下であれば、この区間を読み飛ばすより、前後の読み出し対象区間のデータとともに読み出し非対象区間のデータも連続して読み出した方が、全体の処理時間は短くなる。換言すると、このケースでは閾値は少なくともブロック数「３」より大きい。
【００８８】
図１１の表３０２は、表３０１のような特性のテープドライブにおいて実際にデータ読み出しを行った場合の処理時間の例を示す。ここでは例として、１０００メガバイトの読み出し対象区間、１メガバイトの読み出し非対象区間、１０００メガバイトの読み出し対象区間、２メガバイトの読み出し非対象区間、１０００メガバイトの読み出し対象区間が順に存在したとする。
【００８９】
表３０２によれば、読み出し非対象区間を読み飛ばした場合の全体の処理時間は、１２．１９６秒となる。一方、読み出し対象区間のデータとともに読み出し非対象区間のデータも連続して読み出した場合の全体の処理時間は、１２．０３６秒となる。したがって、このケースでは連続読み出しを行った方が処理時間を短縮できることがわかる。
【００９０】
次に、テープ装置２００の処理についてフローチャートを用いて説明する。
図１２は、閾値計測処理を示すフローチャートの例である。なお、図１２の処理は、テープ装置２００の初期設定処理として実行される。例えば、テープ装置２００の初回電源投入時や、テープ装置２００が組み込まれたシステムの運用開始時に実行される。また、図１２の処理では、テープドライブ２０２にテスト用の磁気テープがマウントされる。
【００９１】
［ステップＳ１１］閾値計測部２３０は、テープ装置２００に設定可能なブロックサイズの１つを選択する。閾値計測部２３０は、選択したブロックサイズをテープドライブ２０２に設定する。
【００９２】
［ステップＳ１２］閾値計測部２３０は、テープドライブ２０２に、磁気テープ上の所定サイズの区間（テスト区間）についてデータの連続読み出しを実行させる。閾値計測部２３０は、テープドライブ２０２に連続読み出しの実行指示を出力してから、連続読み出しが完了するまでの処理時間Ｔ１を計測する。
【００９３】
［ステップＳ１３］閾値計測部２３０は、読み飛ばしブロック数を小さい順に１つ選択する。なお、読み飛ばしブロック数の最小値は「１」である。
［ステップＳ１４］閾値計測部２３０は、選択された読み飛ばしブロック数を適用した上記のテスト区間の読み出しを、テープドライブ２０２に実行させる。この読み出しでは、読み出し対象のブロック間において、選択した読み出しブロック数分のブロックが読み飛ばされる。例えば読み飛ばしブロック数が「２」の場合、１つのブロックからデータを読み出し、次の２つのブロックを読み飛ばし、次の１つのブロックからデータを読み出し、次の２つのブロックを読み飛ばす、という動作がテスト区間の全域において行われる。
【００９４】
また、閾値計測部２３０は、テープドライブ２０２にこのような読み出しの実行指示を出力してから、連続読み出しが完了するまでの処理時間Ｔ２を計測する。
［ステップＳ１５］閾値計測部２３０は、ステップＳ１４で計測された処理時間Ｔ２が、ステップＳ１２で計測された処理時間Ｔ１より短いかを判定する。閾値計測部２３０は、処理時間Ｔ２が処理時間Ｔ１以上である場合、処理をステップＳ１３に進め、ステップＳ１３において１段階大きい読み飛ばしブロック数を選択する。一方、閾値計測部２３０は、処理時間Ｔ２が処理時間Ｔ１未満である場合、ステップＳ１６の処理を実行する。
【００９５】
［ステップＳ１６］閾値計測部２３０は、直近にステップＳ１３で選択された読み飛ばしブロック数を、ステップＳ１１で選択されたブロックサイズに対応する閾値として閾値テーブル２２１に設定する。
【００９６】
［ステップＳ１７］閾値計測部２３０は、ブロックサイズの選択を終了するかを判定する。閾値計測部２３０は、テープ装置２００に設定可能なブロックサイズのうち未選択のものがある場合、処理をステップＳ１１に進め、ステップＳ１１において未選択のブロックサイズの１つを選択する。一方、閾値計測部２３０は、設定可能なブロックサイズのすべてが選択済みの場合、処理を終了する。
【００９７】
図１３、図１４は、読み出し処理を示すフローチャートの例である。図１３、図１４の処理は、一定時間ごとに実行される。また、図１３、図１４の処理と並行して、読み出しオーダ受信部２５１により、ストレージサーバ１５０から受信した読み出しオーダが順次読み出しオーダリスト２２３に登録される。
【００９８】
［ステップＳ２１］読み飛ばし判定部２５２は、直近の一定時間内に読み出しオーダリスト２２３に登録された読み出しオーダを、読み出しオーダリスト２２３から取り出す。読み出しオーダには、読み出し対象のオブジェクトの範囲を識別する情報が含まれている。
【００９９】
なお、ここでは例として、一定時間内に読み出しオーダリスト２２３に登録された読み出しオーダが取り出されるが、他の例として、直近に読み出しオーダリスト２２３に登録された所定個数の読み出しオーダが取り出されてもよい。この場合、図１３、図１４の処理は、読み出しオーダリスト２２３に所定個数の読み出しオーダが登録されるたびに実行される。
【０１００】
［ステップＳ２２］読み飛ばし判定部２５２は、ステップＳ２１で取り出した一定時間分の読み出しオーダを、それぞれに対応するオブジェクトを磁気テープに書き込んだ順にソートする。具体的には、読み飛ばし判定部２５２は、データ管理テーブル２２２を参照して、各読み出しオーダによる読み出し対象のブロックを特定し、特定されたブロックの番号に基づいて読み出しオーダをソートする。これによって読み出しオーダは、対応するオブジェクトが磁気テープのトラックに沿った順に配置されるように並び替えられる。
【０１０１】
［ステップＳ２３］読み飛ばし判定部２５２は、ソートされた読み出しオーダの集合から先頭の読み出しオーダを取り出し、読み出し実行リスト２２４に登録する。このとき例えば、登録される読み出しオーダには、磁気テープにおける読み出し対象のブロックを示す情報が含められる。
【０１０２】
［ステップＳ２４］読み飛ばし判定部２５２は、直近に読み出し実行リスト２２４に登録した読み出しオーダが示す読み出し対象区間と、次の読み出しオーダが示す読み出し対象区間との間に、読み出し非対象区間があるかを判定する。「次の読み出しオーダ」とは、ソートされた読み出しオーダの集合における先頭の読み出しオーダを示す。また、読み出し非対象区間の有無の判定は、各読み出しオーダが示す読み出し対象のブロック範囲の間にブロックが１つ以上存在するか否かによって判定される。読み飛ばし判定部２５２は、読み出し非対象区間がある場合、ステップＳ２５の処理を実行し、読み出し非対象区間がない場合、ステップＳ２８の処理を実行する。
【０１０３】
［ステップＳ２５］読み飛ばし判定部２５２は、現在テープドライブ２０２に設定されているブロックサイズを取得し、取得したブロックサイズに対応する閾値を閾値テーブル２２１から取得する。読み飛ばし判定部２５２は、読み出し非対象区間に含まれるブロック数と、閾値テーブル２２１から取得した閾値とを比較する。
【０１０４】
［ステップＳ２６］読み飛ばし判定部２５２は、ステップＳ２５の比較結果に基づき、読み出し非対象区間に含まれるブロック数が閾値以上である場合、ステップＳ２８の処理を実行し、閾値未満である場合、ステップＳ２７の処理を実行する。
【０１０５】
［ステップＳ２７］読み飛ばし判定部２５２は、読み出し非対象区間からオブジェクトを読み出すための読み出しオーダを生成する。この読み出しオーダには、読み出し非対象区間に含まれるブロックの範囲を示す情報が含まれる。読み飛ばし判定部２５２は、生成した読み出しオーダを読み出し実行リスト２２４に登録する。さらに、読み出し判定部２５２は、ソートされた読み出しオーダの集合から先頭の読み出しオーダ（すなわち上記の「次の読み出しオーダ」）を取り出し、読み出し実行リスト２２４に登録する。このとき例えば、後者の読み出しオーダには、磁気テープにおける読み出し対象のブロックを示す情報が含められる。
【０１０６】
このステップＳ２７の処理により、読み出し非対象区間のオブジェクトは読み飛ばされずに磁気テープから読み出されるようになる。すなわち、後に説明するステップＳ３０では、前の読み出し対象区間のオブジェクトと、読み出し非対象区間のオブジェクトと、次の読み出し対象区間のオブジェクトとが、磁気テープから連続して読み出されるようになる。
【０１０７】
［ステップＳ２８］読み出し判定部２５２は、ソートされた読み出しオーダの集合から先頭の読み出しオーダ（すなわち上記の「次の読み出しオーダ」）を取り出し、読み出し実行リスト２２４に登録する。このとき例えば、登録される読み出しオーダには、磁気テープにおける読み出し対象のブロックを示す情報が含められる。
【０１０８】
ここで、ステップＳ２６の次にステップＳ２８が実行された場合、読み出し実行リスト２２４には読み出し非対象区間からオブジェクトを読み出すための読み出しオーダが登録されない。これにより、後に説明するステップＳ３０では、テープドライブ２０２において読み出し非対象区間が読み飛ばされるようになる。
【０１０９】
［ステップＳ２９］読み出し判定部２５２は、ソートされた読み出しオーダの集合に次の読み出しオーダがあるかを判定する。読み出し判定部２５２は、次の読み出しオーダがある場合、ステップＳ２４の処理を実行する。一方、読み出し判定部２５２は、読み出しオーダが残っていない場合、処理をステップＳ３０に進める。
【０１１０】
［ステップＳ３０］読み出し実行部２５３は、読み出し実行リスト２２４から読み出しオーダを順に取り出し、取り出した読み出しオーダに応じた読み出し処理の実行をテープドライブ２０２に指示する。
【０１１１】
テープドライブ２０２では、例えば、ステップＳ２７の処理によって読み出し実行リスト２２４に登録された読み出しオーダに対応するオブジェクトについては、その前の読み出しオーダに対応するオブジェクトから連続して磁気テープから読み出される。さらに、その次の読み出しオーダに対応するオブジェクトも連続して磁気テープから読み出される。
【０１１２】
［ステップＳ３１］読み出し実行部２５３は、磁気テープから読み出されたオブジェクトをテープドライブ２０２から取得する。読み出し実行部２５３は、取得したオブジェクトのうち、読み出しが要求されていたオブジェクト（読み出しオーダリスト２２３から取り出した読み出しオーダによる読み出し対象のオブジェクト）のみをストレージサーバ１５０に送信する。読み出し非対象区間のオブジェクトが読み出された場合、読み出し実行部２５３はこのオブジェクトを破棄する。なお、実際には、ステップＳ３０，Ｓ３１の処理は並行して実行される。
【０１１３】
以上のテープ装置２００の処理によれば、磁気テープから間隔を空けて複数のオブジェクトが読み出された場合において、読み出しにかかる全体の時間を短縮できる。特に、読み出し単位となるオブジェクトのサイズが小さくなるほど、このような時間短縮効果が大きくなる。
【０１１４】
換言すると、読み出し単位となるオブジェクトのサイズが小さい場合でも、読み出しにかかる全体の時間を短縮できる。その結果、広いサイズ幅のオブジェクトを取り扱い可能な読み出し性能の高いテープ装置２００を実現できる。
【０１１５】
なお、上記の各実施の形態に示した装置（例えば、テープ装置１０の制御部１２、ユーザサーバ１００、ストレージサーバ１５０、テープ装置２００のコントローラ２０１）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（Blu-ray Disc：ＢＤ、登録商標）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１１８】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  テープ媒体を用いてデータを読み書きするテープドライブと、
前記テープ媒体における第１の区間および第２の区間からのデータの読み出しが要求されたとき、前記第１の区間と前記第２の区間との間に位置する第３の区間のデータ量を判定し、前記データ量と、前記テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、前記データ量が前記判定閾値以上の場合、前記第１の区間と前記第２の区間からデータを読み出すとともに前記第３の区間を読み飛ばすように前記テープドライブに指示し、前記データ量が前記判定閾値未満の場合、前記第１の区間、前記第２の区間および前記第３の区間からデータを連続して読み出すように前記テープドライブに指示する制御部と、
を有するテープ装置。
【０１１９】
（付記２）  前記制御部はさらに、
前記テープドライブに、前記テープ媒体における所定区間からデータを連続して読み出す第１の読み出し動作を実行させて、前記第１の読み出し動作にかかった第１の時間を計測し、
前記テープドライブに、前記所定区間から間隔を空けてデータを読み出す第２の読み出し動作を、前記間隔を変化させながら複数回実行させて、前記第２の読み出し動作にかかった第２の時間を前記間隔ごとに計測し、
前記第１の時間と、前記間隔ごとの前記第２の時間との比較結果に基づいて、前記判定閾値を決定する、
付記１記載のテープ装置。
【０１２０】
（付記３）  前記テープドライブに対して、前記テープ媒体における書き込み単位となる単位領域のサイズとして複数のサイズを設定可能であり、
前記データ量と前記判定閾値との比較では、前記テープドライブに現在設定されている前記単位領域のサイズを取得し、前記複数のサイズのそれぞれについて個別に決定された前記判定閾値のうち、前記取得したサイズに対応する前記判定閾値と、前記データ量とを比較する、
付記１または２記載のテープ装置。
【０１２１】
（付記４）  テープドライブにおけるテープ媒体からのデータ読み出しを制御する制御装置において、
前記テープドライブの読み出し特性に基づいて決定される判定閾値を記憶する記憶部と、
前記テープ媒体における第１の区間および第２の区間からのデータの読み出しが要求されたとき、前記第１の区間と前記第２の区間との間に位置する第３の区間のデータ量を判定し、前記データ量と前記判定閾値とを比較し、前記データ量が前記判定閾値以上の場合、前記第１の区間と前記第２の区間からデータを読み出すとともに前記第３の区間を読み飛ばすように前記テープドライブに指示し、前記データ量が前記判定閾値未満の場合、前記第１の区間、前記第２の区間および前記第３の区間からデータを連続して読み出すように前記テープドライブに指示する制御部と、
を有する制御装置。
【０１２２】
（付記５）  前記制御部はさらに、
前記テープドライブに、前記テープ媒体における所定区間からデータを連続して読み出す第１の読み出し動作を実行させて、前記第１の読み出し動作にかかった第１の時間を計測し、
前記テープドライブに、前記所定区間から間隔を空けてデータを読み出す第２の読み出し動作を、前記間隔を変化させながら複数回実行させて、前記第２の読み出し動作にかかった第２の時間を前記間隔ごとに計測し、
前記第１の時間と、前記間隔ごとの前記第２の時間との比較結果に基づいて、前記判定閾値を決定する、
付記４記載の制御装置。
【０１２３】
（付記６）  前記テープドライブに対して、前記テープ媒体における書き込み単位となる単位領域のサイズとして複数のサイズを設定可能であり、
前記データ量と前記判定閾値との比較では、前記テープドライブに現在設定されている前記単位領域のサイズを取得し、前記複数のサイズのそれぞれについて個別に決定された前記判定閾値のうち、前記取得したサイズに対応する前記判定閾値と、前記データ量とを比較する、
付記４または５記載の制御装置。
【０１２４】
（付記７）  テープドライブにおけるテープ媒体からのデータ読み出しを制御するための読み出し制御プログラムにおいて、
コンピュータに、
前記テープ媒体における第１の区間および第２の区間からのデータの読み出しが要求されたとき、前記第１の区間と前記第２の区間との間に位置する第３の区間のデータ量を判定し、
前記データ量と、前記テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、
前記データ量が前記判定閾値以上の場合、前記第１の区間と前記第２の区間からデータを読み出すとともに前記第３の区間を読み飛ばすように前記テープドライブに指示し、
前記データ量が前記判定閾値未満の場合、前記第１の区間、前記第２の区間および前記第３の区間からデータを連続して読み出すように前記テープドライブに指示する、
処理を実行させる読み出し制御プログラム。
【０１２５】
（付記８）  前記コンピュータに、
前記テープドライブに、前記テープ媒体における所定区間からデータを連続して読み出す第１の読み出し動作を実行させて、前記第１の読み出し動作にかかった第１の時間を計測し、
前記テープドライブに、前記所定区間から間隔を空けてデータを読み出す第２の読み出し動作を、前記間隔を変化させながら複数回実行させて、前記第２の読み出し動作にかかった第２の時間を前記間隔ごとに計測し、
前記第１の時間と、前記間隔ごとの前記第２の時間との比較結果に基づいて、前記判定閾値を決定する、
処理をさらに実行させる付記７記載の読み出し制御プログラム。
【０１２６】
（付記９）  前記テープドライブに対して、前記テープ媒体における書き込み単位となる単位領域のサイズとして複数のサイズを設定可能であり、
前記データ量と前記判定閾値との比較では、前記テープドライブに現在設定されている前記単位領域のサイズを取得し、前記複数のサイズのそれぞれについて個別に決定された前記判定閾値のうち、前記取得したサイズに対応する前記判定閾値と、前記データ量とを比較する、
付記７または８記載の読み出し制御プログラム。
【符号の説明】
【０１２７】
１  磁気テープ
１０  テープ装置
１１  テープドライブ
１２  制御部
Ａ１，Ａ２  データ量
ＤＴ１〜ＤＴ５，ＤＴ１１〜ＤＴ１３  データ
ＴＨ  判定閾値
【図１】
2020187481.tif 000003
【図２】
2020187481.tif 000004
【図３】
2020187481.tif 000005
【図４】
2020187481.tif 000006
【図５】
2020187481.tif 000007
【図６】
2020187481.tif 000008
【図７】
2020187481.tif 000009
【図８】
2020187481.tif 000010
【図９】
2020187481.tif 000011
【図１０】
2020187481.tif 000012
【図１１】
2020187481.tif 000013
【図１２】
2020187481.tif 000014
【図１３】
2020187481.tif 000015
【図１４】
2020187481.tif 000016