(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-28
(45)【発行日】2023-04-05
(54)【発明の名称】テープ装置、制御装置および読み出し制御プログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20230329BHJP
【FI】
G06F3/06 302Z
G06F3/06 303G
(21)【出願番号】P 2019090736
(22)【出願日】2019-05-13
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】吉田 武俊
【審査官】岩田 玲彦
(56)【参考文献】
【文献】特開2014-179140(JP,A)
【文献】米国特許第8037346(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
テープ媒体を用いてデータを読み書きするテープドライブと、
前記テープ媒体における第1の区間および第2の区間からのデータの読み出しが要求されたとき、前記第1の区間と前記第2の区間との間に位置する第3の区間のデータ量を判定し、前記データ量と、前記テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、前記データ量が前記判定閾値以上の場合、前記第1の区間と前記第2の区間からデータを読み出すとともに前記第3の区間を読み飛ばすように前記テープドライブに指示し、前記データ量が前記判定閾値未満の場合、前記第1の区間、前記第2の区間および前記第3の区間からデータを連続して読み出すように前記テープドライブに指示する制御部と、
を有するテープ装置。
【請求項2】
前記制御部はさらに、
前記テープドライブに、前記テープ媒体における所定区間からデータを連続して読み出す第1の読み出し動作を実行させて、前記第1の読み出し動作にかかった第1の時間を計測し、
前記テープドライブに、前記所定区間から間隔を空けてデータを読み出す第2の読み出し動作を、前記間隔を変化させながら複数回実行させて、前記第2の読み出し動作にかかった第2の時間を前記間隔ごとに計測し、
前記第1の時間と、前記間隔ごとの前記第2の時間との比較結果に基づいて、前記判定閾値を決定する、
請求項1記載のテープ装置。
【請求項3】
前記テープドライブに対して、前記テープ媒体における書き込み単位となる単位領域のサイズとして複数のサイズを設定可能であり、
前記データ量と前記判定閾値との比較では、前記テープドライブに現在設定されている前記単位領域のサイズを取得し、前記複数のサイズのそれぞれについて個別に決定された前記判定閾値のうち、前記取得したサイズに対応する前記判定閾値と、前記データ量とを比較する、
請求項1または2記載のテープ装置。
【請求項4】
テープドライブにおけるテープ媒体からのデータ読み出しを制御する制御装置において、
前記テープドライブの読み出し特性に基づいて決定される判定閾値を記憶する記憶部と、
前記テープ媒体における第1の区間および第2の区間からのデータの読み出しが要求されたとき、前記第1の区間と前記第2の区間との間に位置する第3の区間のデータ量を判定し、前記データ量と前記判定閾値とを比較し、前記データ量が前記判定閾値以上の場合、前記第1の区間と前記第2の区間からデータを読み出すとともに前記第3の区間を読み飛ばすように前記テープドライブに指示し、前記データ量が前記判定閾値未満の場合、前記第1の区間、前記第2の区間および前記第3の区間からデータを連続して読み出すように前記テープドライブに指示する制御部と、
を有する制御装置。
【請求項5】
テープドライブにおけるテープ媒体からのデータ読み出しを制御するための読み出し制御プログラムにおいて、
コンピュータに、
前記テープ媒体における第1の区間および第2の区間からのデータの読み出しが要求されたとき、前記第1の区間と前記第2の区間との間に位置する第3の区間のデータ量を判定し、
前記データ量と、前記テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、
前記データ量が前記判定閾値以上の場合、前記第1の区間と前記第2の区間からデータを読み出すとともに前記第3の区間を読み飛ばすように前記テープドライブに指示し、
前記データ量が前記判定閾値未満の場合、前記第1の区間、前記第2の区間および前記第3の区間からデータを連続して読み出すように前記テープドライブに指示する、
処理を実行させる読み出し制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テープ装置、制御装置および読み出し制御プログラムに関する。
【背景技術】
【0002】
磁気テープなどのテープ媒体は、大容量かつ低コストの記憶媒体として広く利用されている。このようなテープ媒体に関する技術として、次のような提案がある。例えば、ホストマシンからのデータの転送速度と速度閾値との比較結果に基づいて、データを磁気テープに書き込むか、テープカートリッジの不揮発性半導体メモリに書き込むかを決定するテープドライブ装置が提案されている。
【0003】
また、分散型ストレージシステムに関する次のような技術も提案されている。例えば、このようなシステムに含まれる制御装置が、処理負荷状態を示す複数種類の処理指標値を用いて、負荷軽減のために記憶装置間で移動させるデータを選択する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2013-41646号公報
【文献】特開2014-229235号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、テープ媒体からテープ走行方向に対する間隔を空けて複数のデータを読み出す場合、あるデータの読み出しを終了してから次のデータの読み出しを開始するまでの区間では、その開始位置に対する磁気ヘッドの位置付け動作が行われる。ここで、位置付け動作によって磁気ヘッドが移動する区間がある程度長い場合、テープ媒体の走行速度を高めることができるので、位置付け動作にかかる時間は、同じ区間からデータを読み出す場合より短くなる。しかし、位置付け動作による磁気ヘッドの移動区間が短い場合、すなわち、読み出し対象のデータ間の間隔が短い場合には、位置付け動作にかかる時間が、同じ区間からデータを読み出す場合より長くなる場合がある。これは、位置付け動作にかかる時間のうち、テープ媒体の走行の停止や再開によって生じる時間のロスの影響が大きくなるからである。このため、テープ媒体から短い間隔を空けてデータが読み出される場合には、間隔が長い場合よりも読み出しにかかる全体の時間が増大してしまうという問題がある。
【0006】
1つの側面では、本発明は、テープ媒体からのデータ読み出しにかかる時間を短縮できるテープ装置、制御装置および読み出し制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、テープドライブと制御部とを有するテープ装置が提供される。このテープ装置において、テープドライブは、テープ媒体を用いてデータを読み書きする。制御部は、テープ媒体における第1の区間および第2の区間からのデータの読み出しが要求されたとき、第1の区間と第2の区間との間に位置する第3の区間のデータ量を判定し、データ量と、テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、データ量が判定閾値以上の場合、第1の区間と第2の区間からデータを読み出すとともに第3の区間を読み飛ばすようにテープドライブに指示し、データ量が判定閾値未満の場合、第1の区間、第2の区間および第3の区間からデータを連続して読み出すようにテープドライブに指示する。
【0008】
また、1つの案では、上記テープ装置の制御部と同様の処理を実行する制御装置が提供される。
さらに、1つの案では、上記テープ装置の制御部と同様の処理をコンピュータに実行させる読み出し制御プログラムが提供される。
【発明の効果】
【0009】
1つの側面では、テープ媒体からのデータ読み出しにかかる時間を短縮できる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施の形態に係るテープ装置の構成例および処理例を示す図である。
【
図2】第2の実施の形態に係るストレージシステムの構成例を示す図である。
【
図4】磁気テープを用いたオブジェクトの読み書き動作についての第1の比較例を示す図である。
【
図5】磁気テープを用いたオブジェクトの読み書き動作についての第2の比較例を示す図である。
【
図6】第2の実施の形態における読み出し制御を説明するための図である。
【
図7】テープ装置のコントローラが備える処理機能の構成例を示す図である。
【
図9】テープドライブの読み出し性能についての第1の計測例を示す図である。
【
図10】テープドライブの読み出し性能についての第2の計測例を示す図である。
【
図11】データ読み出しにかかる時間の例を示す図である。
【
図12】閾値計測処理を示すフローチャートの例である。
【
図13】読み出し処理を示すフローチャートの例(その1)である。
【
図14】読み出し処理を示すフローチャートの例(その2)である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るテープ装置の構成例および処理例を示す図である。
図1に示すテープ装置10は、テープ媒体の一例として磁気テープ1を用いてデータを読み書きするテープドライブ11と、制御部12とを有する。
【0012】
制御部12は、例えば、プロセッサがプログラムを実行することで種々の処理を実行するコンピュータ装置として実現される。制御部12は、次のような手順でテープドライブ11における磁気テープ1からのデータの読み出しを制御する。
【0013】
制御部12は、磁気テープ1における第1の区間および第2の区間からのデータの読み出しが要求されたとき、第1の区間と第2の区間との間に位置する第3の区間のデータ量を判定する。制御部12は、判定されたデータ量と所定の判定閾値とを比較する。判定閾値は、テープドライブ11の読み出し特性に基づいて決定される。
【0014】
制御部12は、比較結果に基づき、判定されたデータ量が判定閾値以上である場合には、第1の区間と第2の区間からデータを読み出すとともに第3の区間を読み飛ばすようにテープドライブ11に指示する。一方、制御部12は、判定されたデータ量が判定閾値未満である場合には、第1の区間、第2の区間および第3の区間からデータを連続して読み出すようにテープドライブ11に指示する。これにより、制御部12は、磁気テープ1からのデータ読み出しにかかる時間を短縮できる。
【0015】
以下、2つのパターンを例示して制御部12の具体的な処理について説明する。
図1に示すパターン1では、磁気テープ1にデータDT1~DT5が書き込まれている状態において、データDT1,DT5の読み出しが要求されたとする。この場合、データDT1が第1の区間のデータに対応し、データDT5が第2の区間のデータに対応し、データDT2~DT4が第3の区間のデータに対応する。
【0016】
制御部12は、第3の区間のデータ量A1を判定する。パターン1では、データDT2~DT4の総データ量がデータ量A1として判定される。制御部12は、データ量A1と判定閾値THとを比較する。パターン1では、データ量A1は判定閾値TH以上であると判定される。この場合、制御部12は、第1の区間および第2の区間のデータDT1,DT5を読み出すとともに第3の区間を読み飛ばすようにテープドライブ11に指示する。これによりテープドライブ11は、データDT1を読み出した後、データDT2~DT4を読み飛ばして、データDT5を読み出す。
【0017】
一方、
図1に示すパターン2では、磁気テープ1にデータDT11~DT13が書き込まれている状態において、データDT11,DT13の読み出しが要求されたとする。この場合、データDT11が第1の区間のデータに対応し、データDT13が第2の区間のデータに対応し、データDT12が第3の区間のデータに対応する。
【0018】
制御部12は、第3の区間のデータ量A2を判定する。パターン2では、データDT12の総データ量がデータ量A2として判定される。制御部12は、データ量A2と判定閾値THとを比較する。パターン2では、データ量A1は判定閾値THより小さいと判定される。この場合、制御部12は、第1の区間、第2の区間および第3の区間からデータDT11,DT12,DT13を連続して読み出すようにテープドライブ11に指示する。これによりテープドライブ11は、データDT11,DT12,DT13を連続して読み出す。制御部12は、例えば、読み出されたデータDT12を破棄し、データDT11,DT13のみを読み出しの要求元に出力する。
【0019】
ここで、第3の区間がある程度長い(ある程度のデータ量を有する)場合、その区間を読み飛ばす際の磁気テープ1の走行速度をデータ読み出し時より高めることができる。このため、その区間を読み飛ばすのにかかる時間の方が、その区間からデータを読み出すのにかかる時間より短くなる。しかし、第3の区間が短い(データ量が小さい)場合には、その区間を読み飛ばすのにかかる時間の方が、その区間からデータを読み出すのにかかる時間より長くなる場合がある。
【0020】
例えば、第3の区間を読み飛ばす場合、第1の区間からのデータ読み出しの終了に伴って磁気テープ1の走行が停止され、次に磁気ヘッドを第2の区間の先頭位置に移動させるために磁気テープ1の走行が再開される。第3の区間が短い場合、このような磁気テープ1の走行の停止や再開によって生じる時間のロスの影響が大きくなる。その結果、第3の区間を読み飛ばすのにかかる時間の方が、その区間からデータを読み出すのにかかる時間より長くなる場合がある。さらに、第3の区間が短い場合、読み飛ばす際の磁気テープ1の走行速度を最高速度まで上げられなくなる場合があり、この点も読み飛ばしにかかる時間を長くする要因となり得る。
【0021】
上記の判定閾値は、第3の区間を読み飛ばすのにかかる時間と、第3の区間のデータを前後の区間のデータとともに連続して読み出すのにかかる時間との大小関係が逆転する際の、第3の区間のデータ量として決定される。制御部12は、このような判定閾値を用いて、第3の区間を読み飛ばすか、あるいは第1~第3の区間のデータを連続して読み出すかを決定することにより、読み出しにかかる全体の時間を短縮できる。
【0022】
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。
図2に示すストレージシステムは、ユーザサーバ100、ストレージサーバ150およびストレージ装置200,200a,200bを含む。なお、ストレージ装置200は、
図1に示したテープ装置10の一例である。
【0023】
このストレージシステムでは、ストレージ装置200,200a,200bに含まれるストレージを記憶領域として用いたオブジェクトストレージシステムが実現される。ユーザサーバ100は、データをオブジェクトとして取り扱い、ストレージサーバ150に対してオブジェクトの識別情報を指定することで、ストレージへのオブジェクトの書き込みやストレージからのオブジェクトの読み出しを要求する。ストレージサーバ150は、ユーザサーバ100からの要求に応じてストレージ装置200,200a,200bのストレージにアクセスする。
【0024】
ストレージ装置200は、磁気テープを用いたテープドライブを備える。すなわち、ストレージ装置200は、ストレージとして磁気テープを用いたテープ装置である。ストレージ装置200aは、ストレージとしてHDD(Hard Disk Drive)を備える。ストレージ装置200bは、ストレージとしてSSD(Solid State Drive)を備える。このように、ストレージシステムは、アクセス性能の異なる複数種類のストレージを備えている。すなわち、ストレージ装置200b,200a,200の順にアクセス性能が高い。
【0025】
ストレージサーバ150は、オブジェクトに対するアクセス頻度に応じて、オブジェクトをストレージ装置200,200a,200bのうちのどのストレージに格納するかを制御する。具体的には、ストレージサーバ150は、アクセス頻度の高いオブジェクトをストレージ装置200bのストレージに格納する。ストレージサーバ150は、アクセス頻度の低いオブジェクトをストレージ装置200のストレージに格納する。ストレージサーバ150は、アクセス頻度が中程度のオブジェクトをストレージ装置200aのストレージに格納する。また、ストレージサーバ150は、アクセス頻度の変動に応じて、オブジェクトをストレージ装置200,200a,200bの各ストレージの間で移動させる。このように、ストレージサーバ150は、アクセス性能の異なるストレージによって記憶領域を階層化した階層化制御を行う。
【0026】
なお、ストレージ装置200は、例えば、このストレージ装置200に対するアクセスを制御する別のサーバ装置を介して、ストレージサーバ150と接続されていてもよい。同様に、ストレージ装置200aは、このストレージ装置200aに対するアクセスを制御する別のサーバ装置を介して、ストレージサーバ150と接続されていてもよい。また、ストレージ装置200bは、このストレージ装置200bに対するアクセスを制御する別のサーバ装置を介して、ストレージサーバ150と接続されていてもよい。
【0027】
次に、磁気テープを用いたストレージ装置200について説明する。以下の説明では、ストレージ装置200を「テープ装置200」と表記する。
図3は、テープ装置の内部構成例を示す図である。
図3に示すように、テープ装置200は、コントローラ201とテープドライブ202を備える。テープドライブ202には、磁気テープが格納されたテープカートリッジ203がマウントされる。
【0028】
コントローラ201は、ストレージサーバ150からの要求に応じて、テープドライブ202によるデータ書き込み動作やデータ読み出し動作を制御する。テープドライブ202は、コントローラ201による制御の下で、テープカートリッジ203内の磁気テープに対するデータ書き込み動作や磁気テープからのデータ読み出し動作を実行する。なお、例として、テープドライブ202は、LTO(Liner Tape-Open)規格の磁気テープを用いた読み書きを行うものとする。
【0029】
コントローラ201は、プロセッサ211、RAM212、フラッシュメモリ213、通信インタフェース(I/F)214およびドライブインタフェース(I/F)215を備える。
【0030】
プロセッサ211は、コントローラ201全体を統括的に制御する。プロセッサ211は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ211は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0031】
RAM212は、テープ装置200の主記憶装置である。RAM212は、プロセッサ211に実行させるプログラムの少なくとも一部を一時的に記憶する。また、RAM212は、プロセッサ211による処理に用いる各種データを記憶する。フラッシュメモリ213は、テープ装置200の補助記憶装置である。フラッシュメモリ213には、プロセッサ211に実行されるプログラムや各種データが格納される。通信インタフェース214は、他の装置(例えばストレージサーバ150)と通信を行うためのインタフェースである。ドライブインタフェース215は、テープドライブ202と通信を行うためのインタフェースである。
【0032】
なお、テープ装置200は、例えば、複数台のテープドライブ202や、テープカートリッジ203の搬送機構、テープカートリッジ203の収納部などを含むテープライブラリ装置であってもよい。
【0033】
次に、
図4、
図5を用いて、磁気テープを用いたオブジェクトの書き込み動作および読み出し動作の比較例について説明する。
図4は、磁気テープを用いたオブジェクトの読み書き動作についての第1の比較例を示す図である。
【0034】
磁気テープに対しては、書き込みが要求されたデータが逐次追記される。
図4の上側では、オブジェクトOBJ1~OBJ100に分割されたデータD1、オブジェクトOBJ101~OBJ200に分割されたデータD2、オブジェクトOBJ201~OBJ1000に分割されたデータD3の書き込みが順に要求された場合を示す。この例では、データD1が磁気テープ上のブロックBK11~BK13に書き込まれ、データD2がそれに続くブロックBK14~BK17に書き込まれ、データD3がそれに続くブロックBK18~BK22に書き込まれている。なお、「ブロック」とは、磁気テープにおける単位記憶領域であり、それぞれ同じサイズを有する。
【0035】
また、
図4の下側では、書き込まれたデータD1~D3のうち、データD2,D3の読み出しが要求された場合を示す。この場合、まず、磁気テープにおけるデータD2の先頭位置、すなわちブロックBK14の開始位置に対して、磁気ヘッドを位置付け(locate)する動作が行われる。位置付け動作では、磁気テープを走行させて磁気ヘッドをブロックBK14の開始位置に移動させる。磁気ヘッドがブロックBK14の開始位置に配置されると、磁気ヘッドによってブロックBK14~BK17からデータD2が読み出され、さらにブロックBK18~BK22からデータD3が読み出される。
【0036】
ところで、従来、オブジェクトストレージに対しては比較的大きなサイズのデータが書き込まれることが多かった。特に、磁気テープに対しては、ギガバイトオーダやテラバイトオーダといった大容量のデータが書き込まれることが多かった。これは、磁気テープが、ディスクイメージや、記憶領域上のパーティション単位のデータイメージなどのバックアップ用途で用いられることが多かったからである。このようなデータは、その一部分だけが読み出されることは少ない。例えば、
図4の例では、データD1,D2,D3という単位で読み出しが要求される場合はあっても、データD1~D3に含まれるオブジェクト単位で読み出しが要求されることは少なかった。
【0037】
しかし、近年のオブジェクトストレージでは、用途の拡大によって、取り扱われるデータのサイズの幅が広がっている。例えば、数十キロバイト程度の小さなサイズのデータが書き込まれるケースも増えている。そして、そのような小さなサイズのデータ単位で読み出しが要求されるケースも増えている。このような背景から、テープドライブに対しても、数十キロバイトから数ギガバイトといった様々なサイズのデータを、より高速で読み出し可能にすることが要求されている。
【0038】
例えば、
図2のような構成でストレージの階層化制御が行われる場合、磁気テープもHDDやSSDと同列のストレージとして取り扱われる。そのため、相対的にアクセス頻度の低いオブジェクトが磁気テープに書き込まれたとしても、磁気テープ上のオブジェクトの読み出しが要求される可能性は十分あり、その場合にできるだけ短時間でデータ読み出しを完了できることが望まれる。
【0039】
図5は、磁気テープを用いたオブジェクトの読み書き動作についての第2の比較例を示す図である。
一定サイズのオブジェクトを取り扱う場合、オブジェクトの読み書きを効率化するために、ブロックのサイズをオブジェクトのサイズと関連性を有するサイズに設定することが考えられる。例えば、ブロックのサイズの定数倍がオブジェクトのサイズと一致するようにブロックのサイズを設定することが考えられる。
【0040】
図5では例として、ブロックのサイズとオブジェクトのサイズとを一致させた場合を示している。
図5の例では、磁気テープに対して、オブジェクトOBJ1~OBJ20が連続して書き込まれ、次にオブジェクトOBJ101~OBJ200が連続して書き込まれたとする。そして、オブジェクトOBJ1~OBJ20はブロックBK11~BK30にそれぞれ書き込まれ、オブジェクトOBJ101~OBJ200はそれに続くブロックBK31~BK230に書き込まれている。
【0041】
このような状態からオブジェクト単位で読み出しが要求された場合を考える。例えば、オブジェクトOBJ1,OBJ101,OBJ150の読み出しが要求されたとする。この場合、まず、オブジェクトOBJ1の先頭位置であるブロックBK11の開始位置に対して、磁気ヘッドが位置付けされる。磁気ヘッドがブロックBK11の開始位置に配置されると、磁気ヘッドによってブロックBK11からオブジェクトOBJ1が読み出される。次に、オブジェクトOBJ101の先頭位置であるブロックBK31の開始位置に対して、磁気ヘッドが位置付けされる。磁気ヘッドがブロックBK31の開始位置に配置されると、磁気ヘッドによってブロックBK31からオブジェクトOBJ101が読み出される。さらに、オブジェクトOBJ150の先頭位置であるブロックBK80の開始位置に対して、磁気ヘッドが位置付けされる。磁気ヘッドがブロックBK80の開始位置に配置されると、磁気ヘッドによってブロックBK80からオブジェクトOBJ150が読み出される。
【0042】
このように、小さなサイズのオブジェクト単位で読み出しが要求される場合、磁気テープ上の互いに離れた位置に存在するオブジェクトに対する読み出しが、頻繁に要求される可能性がある。その場合、磁気ヘッドの位置付け動作と磁気ヘッドによるデータ読み出し動作とが繰り返し実行されることになる。これは、磁気テープの走行の停止と再開が繰り返されることを意味し、このような繰り返しによって大きな時間のロスが発生することになる。
【0043】
ただし、磁気ヘッドの位置付け動作では、磁気ヘッドの移動距離がある程度長ければ、磁気ヘッドによるデータ読み出し動作よりも磁気テープの走行速度を高めることができる。このため、磁気テープの走行の停止と再開が発生したとしても、磁気テープの位置付けにかかる時間の方が、同じ区間からデータを連続して読み出した場合にかかる時間よりも短くなる。
【0044】
しかしながら、オブジェクトのサイズが小さい場合には、磁気ヘッドの位置付け動作が行われる個々の区間が短くなり得る。このような区間が短い場合、位置づけ動作にかかる時間のうち磁気テープの走行の停止や再開のためにロスする時間が相対的に大きくなり、結果的に位置づけ動作にかかる時間のロスが大きくなる。しかも、区間が短い場合、磁気テープの走行速度を最高速度まで上げることもできなくなり、区間が長い場合よりも走行速度が低下してしまう。このため、このような短い区間における磁気ヘッドの位置付け動作が頻発すると、データの読み出しにかかる全体の時間が増大してしまう。
【0045】
ここで、これ以後の説明では、磁気テープ上の区間のうち、読み出しが要求された区間を「読み出し対象区間」と記載する。また、2つの読み出し対象区間に挟まれた、読み出しが要求されていない区間を「読み出し非対象区間」と記載する。例えば
図5において、ブロックBK11,BK31,BK80はそれぞれ読み出し対象区間である。また、ブロックBK12~BK30、ブロックBK32~BK79はそれぞれ読み出し非対象区間である。
【0046】
本実施の形態のテープ装置200は、磁気テープにおいて2つの読み出し対象区間に挟まれた読み出し非対象区間の長さに応じて、読み出し非対象区間のデータを読み飛ばすか、あるいはそのデータを両側の読み出し対象区間のデータとともに連続して読み出すかを決定する。以下、この処理について
図6を用いて説明する。
【0047】
図6は、第2の実施の形態における読み出し制御を説明するための図である。読み出し非対象区間が存在する場合、その読み出し非対象区間のデータを読み飛ばすより、そのデータを両側の読み出し対象区間のデータとともに連続して読み出した方が、全体の処理時間が短縮される場合がある。基本的に、読み出し非対象区間が短いほど、その区間のデータを両側の読み出し対象区間のデータとともに読み出した方が、全体の処理時間が短縮される可能性が高いと考えられる。これは、以下のような考え方によるものである。
【0048】
図6では例として、ブロックBK11~BK16の区間のうち、ブロックBK11に書き込まれたオブジェクトOBJ1と、ブロックBK16に書き込まれたオブジェクトOBJ6の読み出しが要求された場合を示す。この場合、ブロックBK11,BK16が読み出し対象区間に相当し、ブロックBK12~BK15が読み出し非対象区間に相当する。また、読み出し非対象区間に含まれるブロック数をαとする。
図6の例ではα=4である。
【0049】
また、磁気ヘッドによる1ブロックの読み出しにかかる時間をt1とする。実際には磁気ヘッドによる読み出し速度は状況に応じて変化するが、ここでは説明を簡単にするためにブロック当たりの読み出しに一定の時間t1がかかると仮定する。この場合、例えば、オブジェクトOBJ1,OBJ6のそれぞれを磁気ヘッドが読み出すのにかかる時間は、それぞれt1となる。また、読み出し非対象区間を読み飛ばさずにブロックBK12~BK16からオブジェクトを連続して読み出した場合、その読み出しにかかる時間Taは、Ta=t1*(α+1)となる。
【0050】
一方、読み出し非対象区間を読み飛ばす場合、この区間において磁気ヘッドの位置付け動作が行われる。磁気ヘッドの位置付け動作は、大別して、磁気テープをできるだけ高速で走行させて磁気ヘッドを次の読み出し開始位置(ここではブロックBK16の開始位置)に近づけるヘッド移動動作と、その他の動作とを含む。前者のヘッド移動動作にかかる時間は、読み飛ばす区間の長さに応じて変化するのに対し、後者の動作にかかる時間は区間の長さに関係なくほぼ一定の固定的な時間となる。そこで、
図6では後者の時間をt3としている。時間t3には、例えば、ブロックBK11の読み出し終了後における磁気テープの走行の停止と再開にかかる時間や、磁気ヘッドがブロックBK16の開始位置の近くに達した後に、磁気ヘッドをその開始位置に正確に位置合わせするための時間などを含む。
【0051】
また、前者のヘッド移動動作に関しては、
図6では、ヘッド移動動作において磁気ヘッドを1ブロック分移動させるのにかかる平均の時間をt2としている。実際には磁気ヘッドの移動速度は区間ごとに一定とはならないが、ここでは説明を簡単にするためのブロック当たりの平均移動時間であるt2を用いる。ヘッド移動動作では、磁気ヘッドによってデータが読み出されない分、磁気ヘッドの移動速度は磁気ヘッドによるデータ読み出し時より速い。このため、t2<t1となる。
【0052】
以上より、読み出し非対象区間における磁気ヘッドの位置付け動作にかかる時間は、(t2*α)*t3となる。したがって、ブロックBK11からのオブジェクトOBJ1の読み出しが完了してから、ブロックBK12~BK15を読み飛ばし、さらにブロックBK16からのオブジェクトOBJ6の読み出しが完了するまでの時間Tbは、Tb=(t2*α)*t3+t1となる。
【0053】
ここで、時間t3は、磁気ヘッドの位置付け動作にかかる時間の中で相対的に大きな割合を占める。例えば、時間t3は時間t1より長くなる場合がある。また、ブロックサイズによっては、時間t3は時間t1の数倍になる場合もある。
【0054】
読み出し非対象区間がある程度長い場合には、読み出し時より磁気テープを高速で走行させることができる分、この区間からデータを読み出すのにかかる時間よりこの区間を読み飛ばすのにかかる時間の方が短くなる。しかし、読み出し非対象区間が短くなると、時間t3の影響によって、この区間からデータを読み出すのにかかる時間の方が、この区間を読み飛ばすのにかかる時間より短くなる場合がある。さらに、読み出し非対象区間が短い場合、磁気テープの走行速度を最高速度まで上げられなくなる可能性もあり、その場合には時間t2も長くなってしまう。このような性質から、連続読み出しを行った場合にかかる時間Taと、読み飛ばしを行った場合にかかる時間Tbとの間の大小関係は、読み出し非対象区間の長さに応じて反転し得る。
【0055】
そこで、本実施の形態のテープ装置200は、時間Taと時間Tbとの間の大小関係が反転するような読み出し非対象区間の長さの閾値を、あらかじめ求める。そして、テープ装置200は、読み出し非対象区間が特定されたとき、その区間の長さを閾値と比較することで、その区間のデータを読み飛ばすか、あるいはそのデータを両側の読み出し対象区間のデータとともに連続して読み出すかを決定する。これにより、小さいサイズのオブジェクト単位で、間欠的な位置のオブジェクトの読み出しが要求された場合におけるデータ読み出しにかかる全体の時間を、短縮することができる。
【0056】
なお、実際には、ブロックのサイズによって時間t2は変動し得る。これは、ブロックのサイズによって、磁気ヘッドの位置付け動作におけるサーボ信号の読み出しにかかる時間が変化するからである。また、ブロックのサイズが小さい場合、両側の読み出し対象区間の長さが短くなる場合があり、その場合には磁気ヘッドによる読み出し速度が低下する可能性がある。このため、ブロックのサイズによって、連続読み出しを行った場合に使用する時間t1より、読み飛ばしを行った場合に使用する時間t1の方が小さくなる可能性がある。このような理由により、ブロックのサイズによって最適な閾値は変動し得る。そこで、本実施の形態のテープ装置200は、設定されたブロックのサイズに応じて、そのブロックに適した閾値を用いて上記の読み出し制御を行う。
【0057】
図7は、テープ装置のコントローラが備える処理機能の構成例を示す図である。テープ装置200のコントローラ201は、記憶部220、閾値計測部230、書き込み制御部240および読み出し制御部250を備える。
【0058】
記憶部220は、例えば、RAM212の記憶領域として実現される。記憶部220には、閾値テーブル221、データ管理テーブル222、読み出しオーダリスト223および読み出し実行リスト224が記憶される。
【0059】
閾値テーブル221は、磁気テープにおける読み出し非対象区間のデータを読み出すか否かを判定するための閾値を保持する。閾値テーブル221には、このような閾値がブロックのサイズごとに登録される。また、本実施の形態では、閾値はブロック数によって表される。データ管理テーブル222は、磁気テープに書き込まれたオブジェクトと、磁気テープにおけるオブジェクトの書き込み位置(ブロック)との対応関係を示す情報を保持する。
【0060】
読み出しオーダリスト223は、ストレージサーバ150から受信した読み出しオーダを一時的に保持するFIFO(First In First Out)方式のキューである。読み出し実行リスト224は、テープドライブ202に実行させることが確定した読み出しオーダを一時的に保持するFIFO方式のキューである。
【0061】
閾値計測部230、書き込み制御部240および読み出し制御部250の処理は、例えば、プロセッサ211が所定のプログラムを実行することで実現される。
閾値計測部230は、読み出し非対象区間のデータを読み出すかを判定するための閾値を計測し、閾値テーブル221に登録する。閾値の計測は、例えば、テープ装置200の初回電源投入時に実行される。
【0062】
書き込み制御部240は、ストレージサーバ150から受信した書き込みオーダにしたがって、磁気テープに対するオブジェクトの書き込みをテープドライブ202に指示する。また、書き込み制御部240は、磁気テープに書き込まれたオブジェクトと、オブジェクトの磁気テープにおける書き込み位置を示す位置情報とを対応付けて、データ管理テーブル222に登録する。
【0063】
ここで、書き込み制御部240は、書き込み制御動作を開始する前に、ブロックサイズの設定を受け付ける。ブロックサイズは、例えば、ユーザサーバ100からストレージサーバ150を介して指示される。書き込み制御部240は、受け付けたブロックサイズを記憶部220に記録するとともに、テープドライブ202に設定する。これ以後、テープドライブ202での磁気テープを用いた読み書き動作では、設定されたブロックサイズが用いられる。例えば、読み書き動作や位置付け動作における磁気テープ上の位置を判別するために、ブロックサイズに応じた間隔でサーボ信号が読み取られる。
【0064】
読み出し制御部250は、ストレージサーバ150から受信した読み出しオーダにしたがって、磁気テープからのオブジェクトの読み出しをテープドライブ202に指示する。読み出し制御部250は、読み出しオーダ受信部251、読み飛ばし判定部252および読み出し実行部253を備える。
【0065】
読み出しオーダ受信部251は、ストレージサーバ150から読み出しオーダを受信し、読み出しオーダを受信順に読み出しオーダリスト223に登録する。なお、受信した読み出しオーダには、読み出し対象のオブジェクトを識別する識別情報が含まれる。
【0066】
読み飛ばし判定部252は、一定時間間隔で読み出しオーダリスト223から読み出しオーダを取り出す。読み飛ばし判定部252は、データ管理テーブル222に基づき、取り出した一定時間分の読み出しオーダを、対応するオブジェクトの書き込み順に並び替える。読み飛ばし判定部252は、並び替えられた読み出しオーダとデータ管理テーブル222とに基づいて、読み出し対象区間の間に存在する読み出し非対象区間を特定する。読み飛ばし判定部252は、閾値テーブル221からブロックサイズに対応する閾値を取得し、特定された読み出し非対象区間のブロック数と取得した閾値とを比較することで、読み出し非対象区間のデータを読み出すか、あるいは読み飛ばすかを判定する。
【0067】
読み飛ばし判定部252は、最終的にテープドライブ202に実行させることが確定した読み出しオーダを、読み出し実行リスト224に登録する。読み飛ばし判定部252は、基本的に、読み出しオーダリスト223から取得した読み出しオーダを順に読み出し実行リスト224に登録していく。ただし、読み飛ばし判定部252は、読み出し非対象区間のデータを読み出すと判定した場合には、当該区間のデータを読み出すための読み出しオーダを、その前後の読み出し対象区間に対応する読み出しオーダの間に挿入する。これにより、前後の読み出し対象区間のデータと読み出し非対象区間のデータとが連続して読み出されるようになる。
【0068】
読み出し実行部253は、読み出し実行リスト224から読み出しオーダを取り出し、取り出した読み出しオーダにしたがって、データの読み出しをテープドライブ202に指示する。
【0069】
なお、上記の記憶部220、閾値計測部230、書き込み制御部240および読み出し制御部250の各機能は、テープ装置200の内部ではなく、テープ装置200の外部のコンピュータ装置(例えばストレージサーバ150)に設けられていてもよい。
【0070】
図8は、閾値テーブルの構成例を示す図である。
図8に示すように、閾値テーブル221には、テープ装置200に設定可能なブロックサイズごとに閾値が対応付けて登録される。閾値は、ブロック数によって表される。したがって、閾値は実質的に読み出し非対象区間のサイズを示している。
【0071】
本実施の形態では、閾値は、読み出し非対象区間を読み飛ばすと判定する場合の下限ブロック数を示すものとする。すなわち、読み出し非対象区間に含まれるブロックの数が閾値未満の場合、当該区間のデータを読み出すと判定され、ブロックの数が閾値以上の場合、当該区間を読み飛ばすと判定される。
【0072】
次に、ブロックサイズごと、およびテープドライブ202の機種ごとの読み出し性能の計測例を
図9、
図10に示し、これらの
図9、
図10を用いて閾値の設定例について説明する。
【0073】
図9は、テープドライブの読み出し性能についての第1の計測例を示す図である。また、
図10は、テープドライブの読み出し性能についての第2の計測例を示す図である。
図9と
図10では、異なる機種のテープドライブの読み出し性能を示している。ここでは、
図9に対応するテープドライブより
図10に対応するテープドライブの方が読み出し速度が高い。具体的には、
図10に対応するテープドライブは、
図9に対応するテープドライブより新しい規格に準拠したものとなっている。
【0074】
また、
図9、
図10では、磁気テープ上の5ギガバイト分の区間について、読み飛ばすブロック数を変えながらデータの読み出しを行った場合にかかった全体の処理時間を示している。
図9、
図10において、読み飛ばしブロック数「0」とは、読み飛ばしを行わなかった場合を示す。これは、5ギガバイトのデータを連続して読み出したことを意味する。読み飛ばしブロック数「1」とは、1ブロックを読み出し、次の1ブロックを読み飛ばすという動作を繰り返し行った場合を示す。この場合、実際には2.5ギガバイト分のデータだけが読み出される。読み飛ばしブロック数「3」とは、1ブロックを読み出し、次の3ブロックを読み飛ばすという動作を繰り返し行った場合を示す。この場合、実際には1.2ギガバイト分のデータだけが読み出される。読み飛ばしブロック数「7」とは、1ブロックを読み出し、次の7ブロックを読み飛ばすという動作を繰り返し行った場合を示す。この場合、実際には0.6ギガバイト分のデータだけが読み出される。
【0075】
さらに、
図9、
図10では、ブロックサイズを1メガバイト、4メガバイト、10メガバイト、100メガバイト、1000メガバイトと変化させた場合の処理時間の計測結果を示している。
【0076】
閾値計測部230は、
図9または
図10に示すような処理時間を計測し、その計測結果に基づいてブロックサイズごとの閾値を推定する。
例えば、
図9では、例えばブロックサイズが1メガバイトの場合、読み飛ばしブロック数が「0」の場合より「1」の場合の方が、処理時間が圧倒的に長くなっている。しかし、読み飛ばしブロック数を「3」、「7」と増やしていくにしたがって、処理時間は徐々に短くなっている。そして、読み飛ばしブロック数「7」の場合には、「0」の場合、すなわちすべてのブロックから連続して読み出した場合より処理時間が短くなっている。したがって、
図9の下側に示すように、ブロックサイズが1メガバイトの場合の閾値は「7」と判定される。すなわち、読み出し非対象区間のブロック数が「7」未満の場合、この区間のデータを読み出し、ブロック数が「7」以上の場合、この区間のデータを読み飛ばすように制御される。
【0077】
また、
図9では、例えばブロックサイズが4メガバイトの場合、読み飛ばしブロック数が「0」の場合より「1」の場合の方が、処理時間が長くなっている。しかし、読み飛ばしブロック数を「3」、「7」と増やしていくにしたがって、処理時間は徐々に短くなっている。
図9の例では、読み飛ばしブロック数「3」の場合には、「0」の場合、すなわちすべてのブロックから連続して読み出した場合より処理時間が短くなっている。したがって、
図9の下側に示すように、ブロックサイズが4メガバイトの場合の閾値は「3」と判定される。このように、ブロックサイズによって閾値が変化することがわかる。
【0078】
また、
図10では、例えばブロックサイズが1メガバイトの場合、読み飛ばしブロック数が「0」の場合より「1」の場合の方が、処理時間が圧倒的に長くなっている。しかし、読み飛ばしブロック数を「3」、「7」と増やしていくにしたがって、処理時間は徐々に短くなっている。そして、読み飛ばしブロック数「7」の場合には、「0」の場合、すなわちすべてのブロックから連続して読み出した場合より処理時間が短くなっている。したがって、
図10の下側に示すように、ブロックサイズが1メガバイトの場合の閾値は「7」と判定される。
【0079】
また、
図10では、例えばブロックサイズが4メガバイトの場合、読み飛ばしブロック数が「0」の場合より「1」の場合の方が、処理時間が長くなっている。しかし、読み飛ばしブロック数を「3」、「7」と増やしていくにしたがって、処理時間は徐々に短くなっている。
図10の例では、読み飛ばしブロック数「3」の場合には、「0」の場合、すなわちすべてのブロックから連続して読み出した場合より処理時間が短くなっている。したがって、
図10の下側に示すように、ブロックサイズが4メガバイトの場合の閾値は「3」と判定される。このように、ブロックサイズによって閾値が変化することがわかる。
【0080】
また、
図9と
図10の比較からわかるように、テープドライブの読み出し性能はテープドライブの機種ごとに異なるので、閾値も異なる可能性がある。そのため、テープ装置200が複数存在する場合、テープ装置200のそれぞれにおいて閾値の計測が行われるようにする。あるいは、テープ装置200のそれぞれにおいて、搭載されているテープドライブの機種に応じた適切な閾値が、あらかじめ設定されてもよい。
【0081】
なお、
図9または
図10の計測結果を用いることで、5種類のブロックサイズのそれぞれについて閾値が求められる。また、これらの計測結果を用いることで、5種類のブロックサイズ以外の他のブロックサイズについての閾値を、補間演算によって求めることもできる。この場合、読み出し制御部250の読み飛ばし判定部252が、実際に読み出し非対象区間のデータを読み飛ばすか否かを判定する際に、判定に使用する閾値を補間演算によって算出することになる。
【0082】
例えば、
図9の下側の図に示すように、ブロックサイズが1メガバイトのグラフのうち、読み飛ばしブロック数が「1」以上の範囲のグラフと、読み飛ばしブロック数が「0」のときの処理時間との交点をP1とする。また、ブロックサイズが4メガバイトのグラフのうち、読み飛ばしブロック数が「1」以上の範囲のグラフと、読み飛ばしブロック数が「0」のときの処理時間との交点をP2とする。一例として、読み飛ばし判定部252は、交点P1と交点P2とを結ぶ直線L1を用いて補間演算することで、ブロックサイズが1メガバイトより大きく4メガバイトより小さい場合の閾値を求めることができる。
【0083】
図10でも同様に、次のようにして補間演算が行われる。
図10の下側の図に示すように、ブロックサイズが1メガバイトのグラフのうち、読み飛ばしブロック数が「1」以上の範囲のグラフと、読み飛ばしブロック数が「0」のときの処理時間との交点をP3とする。また、ブロックサイズが4メガバイトのグラフのうち、読み飛ばしブロック数が「1」以上の範囲のグラフと、読み飛ばしブロック数が「0」のときの処理時間との交点をP4とする。一例として、読み飛ばし判定部252は、交点P3と交点P4とを結ぶ直線L2を用いて補間演算することで、ブロックサイズが1メガバイトより大きく4メガバイトより小さい場合の閾値を求めることができる。
【0084】
図11は、データ読み出しにかかる時間の例を示す図である。
図11の表301は、
図9、
図10のような計測結果から算出されたブロック当たりの処理時間の例を示している。ここでは、ブロックサイズを1メガバイトとする。表301において、「連続読み出し」の処理時間は、所定サイズの区間の全体を連続して読み出した場合における全体の処理時間を、区間内のブロック数で除算した時間である。「1ブロック読み飛ばし」の処理時間は、同じ区間においてブロック間で1ブロックを読み飛ばした場合の全体の処理時間を、区間内のブロック数で除算した時間である。同様に、「2ブロック読み飛ばし」の処理時間は、同じ区間においてブロック間で2ブロックを読み飛ばした場合の全体の処理時間を、区間内のブロック数で除算した時間である。「3ブロック読み飛ばし」の処理時間は、同じ区間においてブロック間で3ブロックを読み飛ばした場合の全体の処理時間を、区間内のブロック数で除算した時間である。
【0085】
この表301に記載された「1ブロック読み飛ばし」「2ブロック読み飛ばし」「3ブロック読み飛ばし」の場合の処理時間には、磁気ヘッドの位置付けにかかる時間が含まれている。一方、ブロック全域を最高速度で読み出した場合の磁気ヘッドによる読み出し時間は0.0025秒となる。この時間には、位置付けにかかる時間が含まれない。この時間と「1ブロック読み飛ばし」「2ブロック読み飛ばし」「3ブロック読み飛ばし」の場合の処理時間との比較から、位置付けにかかる時間は読み出しにかかる全体の時間のうちの大きな割合を示すことがわかる。
【0086】
なお、「連続読み出し」の場合の処理時間は、区間の先頭に磁気ヘッドを停止させた状態から読み出しを行った場合の処理時間である。したがって、この処理時間も、位置付けを含まない場合の時間よりもはるかに長くなっている。
【0087】
また、表301の例では、「1ブロック読み飛ばし」「2ブロック読み飛ばし」「3ブロック読み飛ばし」の場合の処理時間は、いずれも「連続読み出し」の場合の処理時間より長くなっている。したがって、この例では少なくとも、読み出し非対象区間が3ブロック以下であれば、この区間を読み飛ばすより、前後の読み出し対象区間のデータとともに読み出し非対象区間のデータも連続して読み出した方が、全体の処理時間は短くなる。換言すると、このケースでは閾値は少なくともブロック数「3」より大きい。
【0088】
図11の表302は、表301のような特性のテープドライブにおいて実際にデータ読み出しを行った場合の処理時間の例を示す。ここでは例として、1000メガバイトの読み出し対象区間、1メガバイトの読み出し非対象区間、1000メガバイトの読み出し対象区間、2メガバイトの読み出し非対象区間、1000メガバイトの読み出し対象区間が順に存在したとする。
【0089】
表302によれば、読み出し非対象区間を読み飛ばした場合の全体の処理時間は、12.196秒となる。一方、読み出し対象区間のデータとともに読み出し非対象区間のデータも連続して読み出した場合の全体の処理時間は、12.036秒となる。したがって、このケースでは連続読み出しを行った方が処理時間を短縮できることがわかる。
【0090】
次に、テープ装置200の処理についてフローチャートを用いて説明する。
図12は、閾値計測処理を示すフローチャートの例である。なお、
図12の処理は、テープ装置200の初期設定処理として実行される。例えば、テープ装置200の初回電源投入時や、テープ装置200が組み込まれたシステムの運用開始時に実行される。また、
図12の処理では、テープドライブ202にテスト用の磁気テープがマウントされる。
【0091】
[ステップS11]閾値計測部230は、テープ装置200に設定可能なブロックサイズの1つを選択する。閾値計測部230は、選択したブロックサイズをテープドライブ202に設定する。
【0092】
[ステップS12]閾値計測部230は、テープドライブ202に、磁気テープ上の所定サイズの区間(テスト区間)についてデータの連続読み出しを実行させる。閾値計測部230は、テープドライブ202に連続読み出しの実行指示を出力してから、連続読み出しが完了するまでの処理時間T1を計測する。
【0093】
[ステップS13]閾値計測部230は、読み飛ばしブロック数を小さい順に1つ選択する。なお、読み飛ばしブロック数の最小値は「1」である。
[ステップS14]閾値計測部230は、選択された読み飛ばしブロック数を適用した上記のテスト区間の読み出しを、テープドライブ202に実行させる。この読み出しでは、読み出し対象のブロック間において、選択した読み出しブロック数分のブロックが読み飛ばされる。例えば読み飛ばしブロック数が「2」の場合、1つのブロックからデータを読み出し、次の2つのブロックを読み飛ばし、次の1つのブロックからデータを読み出し、次の2つのブロックを読み飛ばす、という動作がテスト区間の全域において行われる。
【0094】
また、閾値計測部230は、テープドライブ202にこのような読み出しの実行指示を出力してから、連続読み出しが完了するまでの処理時間T2を計測する。
[ステップS15]閾値計測部230は、ステップS14で計測された処理時間T2が、ステップS12で計測された処理時間T1より短いかを判定する。閾値計測部230は、処理時間T2が処理時間T1以上である場合、処理をステップS13に進め、ステップS13において1段階大きい読み飛ばしブロック数を選択する。一方、閾値計測部230は、処理時間T2が処理時間T1未満である場合、ステップS16の処理を実行する。
【0095】
[ステップS16]閾値計測部230は、直近にステップS13で選択された読み飛ばしブロック数を、ステップS11で選択されたブロックサイズに対応する閾値として閾値テーブル221に設定する。
【0096】
[ステップS17]閾値計測部230は、ブロックサイズの選択を終了するかを判定する。閾値計測部230は、テープ装置200に設定可能なブロックサイズのうち未選択のものがある場合、処理をステップS11に進め、ステップS11において未選択のブロックサイズの1つを選択する。一方、閾値計測部230は、設定可能なブロックサイズのすべてが選択済みの場合、処理を終了する。
【0097】
図13、
図14は、読み出し処理を示すフローチャートの例である。
図13、
図14の処理は、一定時間ごとに実行される。また、
図13、
図14の処理と並行して、読み出しオーダ受信部251により、ストレージサーバ150から受信した読み出しオーダが順次読み出しオーダリスト223に登録される。
【0098】
[ステップS21]読み飛ばし判定部252は、直近の一定時間内に読み出しオーダリスト223に登録された読み出しオーダを、読み出しオーダリスト223から取り出す。読み出しオーダには、読み出し対象のオブジェクトの範囲を識別する情報が含まれている。
【0099】
なお、ここでは例として、一定時間内に読み出しオーダリスト223に登録された読み出しオーダが取り出されるが、他の例として、直近に読み出しオーダリスト223に登録された所定個数の読み出しオーダが取り出されてもよい。この場合、
図13、
図14の処理は、読み出しオーダリスト223に所定個数の読み出しオーダが登録されるたびに実行される。
【0100】
[ステップS22]読み飛ばし判定部252は、ステップS21で取り出した一定時間分の読み出しオーダを、それぞれに対応するオブジェクトを磁気テープに書き込んだ順にソートする。具体的には、読み飛ばし判定部252は、データ管理テーブル222を参照して、各読み出しオーダによる読み出し対象のブロックを特定し、特定されたブロックの番号に基づいて読み出しオーダをソートする。これによって読み出しオーダは、対応するオブジェクトが磁気テープのトラックに沿った順に配置されるように並び替えられる。
【0101】
[ステップS23]読み飛ばし判定部252は、ソートされた読み出しオーダの集合から先頭の読み出しオーダを取り出し、読み出し実行リスト224に登録する。このとき例えば、登録される読み出しオーダには、磁気テープにおける読み出し対象のブロックを示す情報が含められる。
【0102】
[ステップS24]読み飛ばし判定部252は、直近に読み出し実行リスト224に登録した読み出しオーダが示す読み出し対象区間と、次の読み出しオーダが示す読み出し対象区間との間に、読み出し非対象区間があるかを判定する。「次の読み出しオーダ」とは、ソートされた読み出しオーダの集合における先頭の読み出しオーダを示す。また、読み出し非対象区間の有無の判定は、各読み出しオーダが示す読み出し対象のブロック範囲の間にブロックが1つ以上存在するか否かによって判定される。読み飛ばし判定部252は、読み出し非対象区間がある場合、ステップS25の処理を実行し、読み出し非対象区間がない場合、ステップS28の処理を実行する。
【0103】
[ステップS25]読み飛ばし判定部252は、現在テープドライブ202に設定されているブロックサイズを取得し、取得したブロックサイズに対応する閾値を閾値テーブル221から取得する。読み飛ばし判定部252は、読み出し非対象区間に含まれるブロック数と、閾値テーブル221から取得した閾値とを比較する。
【0104】
[ステップS26]読み飛ばし判定部252は、ステップS25の比較結果に基づき、読み出し非対象区間に含まれるブロック数が閾値以上である場合、ステップS28の処理を実行し、閾値未満である場合、ステップS27の処理を実行する。
【0105】
[ステップS27]読み飛ばし判定部252は、読み出し非対象区間からオブジェクトを読み出すための読み出しオーダを生成する。この読み出しオーダには、読み出し非対象区間に含まれるブロックの範囲を示す情報が含まれる。読み飛ばし判定部252は、生成した読み出しオーダを読み出し実行リスト224に登録する。さらに、読み出し判定部252は、ソートされた読み出しオーダの集合から先頭の読み出しオーダ(すなわち上記の「次の読み出しオーダ」)を取り出し、読み出し実行リスト224に登録する。このとき例えば、後者の読み出しオーダには、磁気テープにおける読み出し対象のブロックを示す情報が含められる。
【0106】
このステップS27の処理により、読み出し非対象区間のオブジェクトは読み飛ばされずに磁気テープから読み出されるようになる。すなわち、後に説明するステップS30では、前の読み出し対象区間のオブジェクトと、読み出し非対象区間のオブジェクトと、次の読み出し対象区間のオブジェクトとが、磁気テープから連続して読み出されるようになる。
【0107】
[ステップS28]読み出し判定部252は、ソートされた読み出しオーダの集合から先頭の読み出しオーダ(すなわち上記の「次の読み出しオーダ」)を取り出し、読み出し実行リスト224に登録する。このとき例えば、登録される読み出しオーダには、磁気テープにおける読み出し対象のブロックを示す情報が含められる。
【0108】
ここで、ステップS26の次にステップS28が実行された場合、読み出し実行リスト224には読み出し非対象区間からオブジェクトを読み出すための読み出しオーダが登録されない。これにより、後に説明するステップS30では、テープドライブ202において読み出し非対象区間が読み飛ばされるようになる。
【0109】
[ステップS29]読み出し判定部252は、ソートされた読み出しオーダの集合に次の読み出しオーダがあるかを判定する。読み出し判定部252は、次の読み出しオーダがある場合、ステップS24の処理を実行する。一方、読み出し判定部252は、読み出しオーダが残っていない場合、処理をステップS30に進める。
【0110】
[ステップS30]読み出し実行部253は、読み出し実行リスト224から読み出しオーダを順に取り出し、取り出した読み出しオーダに応じた読み出し処理の実行をテープドライブ202に指示する。
【0111】
テープドライブ202では、例えば、ステップS27の処理によって読み出し実行リスト224に登録された読み出しオーダに対応するオブジェクトについては、その前の読み出しオーダに対応するオブジェクトから連続して磁気テープから読み出される。さらに、その次の読み出しオーダに対応するオブジェクトも連続して磁気テープから読み出される。
【0112】
[ステップS31]読み出し実行部253は、磁気テープから読み出されたオブジェクトをテープドライブ202から取得する。読み出し実行部253は、取得したオブジェクトのうち、読み出しが要求されていたオブジェクト(読み出しオーダリスト223から取り出した読み出しオーダによる読み出し対象のオブジェクト)のみをストレージサーバ150に送信する。読み出し非対象区間のオブジェクトが読み出された場合、読み出し実行部253はこのオブジェクトを破棄する。なお、実際には、ステップS30,S31の処理は並行して実行される。
【0113】
以上のテープ装置200の処理によれば、磁気テープから間隔を空けて複数のオブジェクトが読み出された場合において、読み出しにかかる全体の時間を短縮できる。特に、読み出し単位となるオブジェクトのサイズが小さくなるほど、このような時間短縮効果が大きくなる。
【0114】
換言すると、読み出し単位となるオブジェクトのサイズが小さい場合でも、読み出しにかかる全体の時間を短縮できる。その結果、広いサイズ幅のオブジェクトを取り扱い可能な読み出し性能の高いテープ装置200を実現できる。
【0115】
なお、上記の各実施の形態に示した装置(例えば、テープ装置10の制御部12、ユーザサーバ100、ストレージサーバ150、テープ装置200のコントローラ201)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0116】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0117】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【0118】
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) テープ媒体を用いてデータを読み書きするテープドライブと、
前記テープ媒体における第1の区間および第2の区間からのデータの読み出しが要求されたとき、前記第1の区間と前記第2の区間との間に位置する第3の区間のデータ量を判定し、前記データ量と、前記テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、前記データ量が前記判定閾値以上の場合、前記第1の区間と前記第2の区間からデータを読み出すとともに前記第3の区間を読み飛ばすように前記テープドライブに指示し、前記データ量が前記判定閾値未満の場合、前記第1の区間、前記第2の区間および前記第3の区間からデータを連続して読み出すように前記テープドライブに指示する制御部と、
を有するテープ装置。
【0119】
(付記2) 前記制御部はさらに、
前記テープドライブに、前記テープ媒体における所定区間からデータを連続して読み出す第1の読み出し動作を実行させて、前記第1の読み出し動作にかかった第1の時間を計測し、
前記テープドライブに、前記所定区間から間隔を空けてデータを読み出す第2の読み出し動作を、前記間隔を変化させながら複数回実行させて、前記第2の読み出し動作にかかった第2の時間を前記間隔ごとに計測し、
前記第1の時間と、前記間隔ごとの前記第2の時間との比較結果に基づいて、前記判定閾値を決定する、
付記1記載のテープ装置。
【0120】
(付記3) 前記テープドライブに対して、前記テープ媒体における書き込み単位となる単位領域のサイズとして複数のサイズを設定可能であり、
前記データ量と前記判定閾値との比較では、前記テープドライブに現在設定されている前記単位領域のサイズを取得し、前記複数のサイズのそれぞれについて個別に決定された前記判定閾値のうち、前記取得したサイズに対応する前記判定閾値と、前記データ量とを比較する、
付記1または2記載のテープ装置。
【0121】
(付記4) テープドライブにおけるテープ媒体からのデータ読み出しを制御する制御装置において、
前記テープドライブの読み出し特性に基づいて決定される判定閾値を記憶する記憶部と、
前記テープ媒体における第1の区間および第2の区間からのデータの読み出しが要求されたとき、前記第1の区間と前記第2の区間との間に位置する第3の区間のデータ量を判定し、前記データ量と前記判定閾値とを比較し、前記データ量が前記判定閾値以上の場合、前記第1の区間と前記第2の区間からデータを読み出すとともに前記第3の区間を読み飛ばすように前記テープドライブに指示し、前記データ量が前記判定閾値未満の場合、前記第1の区間、前記第2の区間および前記第3の区間からデータを連続して読み出すように前記テープドライブに指示する制御部と、
を有する制御装置。
【0122】
(付記5) 前記制御部はさらに、
前記テープドライブに、前記テープ媒体における所定区間からデータを連続して読み出す第1の読み出し動作を実行させて、前記第1の読み出し動作にかかった第1の時間を計測し、
前記テープドライブに、前記所定区間から間隔を空けてデータを読み出す第2の読み出し動作を、前記間隔を変化させながら複数回実行させて、前記第2の読み出し動作にかかった第2の時間を前記間隔ごとに計測し、
前記第1の時間と、前記間隔ごとの前記第2の時間との比較結果に基づいて、前記判定閾値を決定する、
付記4記載の制御装置。
【0123】
(付記6) 前記テープドライブに対して、前記テープ媒体における書き込み単位となる単位領域のサイズとして複数のサイズを設定可能であり、
前記データ量と前記判定閾値との比較では、前記テープドライブに現在設定されている前記単位領域のサイズを取得し、前記複数のサイズのそれぞれについて個別に決定された前記判定閾値のうち、前記取得したサイズに対応する前記判定閾値と、前記データ量とを比較する、
付記4または5記載の制御装置。
【0124】
(付記7) テープドライブにおけるテープ媒体からのデータ読み出しを制御するための読み出し制御プログラムにおいて、
コンピュータに、
前記テープ媒体における第1の区間および第2の区間からのデータの読み出しが要求されたとき、前記第1の区間と前記第2の区間との間に位置する第3の区間のデータ量を判定し、
前記データ量と、前記テープドライブの読み出し特性に基づいて決定される判定閾値とを比較し、
前記データ量が前記判定閾値以上の場合、前記第1の区間と前記第2の区間からデータを読み出すとともに前記第3の区間を読み飛ばすように前記テープドライブに指示し、
前記データ量が前記判定閾値未満の場合、前記第1の区間、前記第2の区間および前記第3の区間からデータを連続して読み出すように前記テープドライブに指示する、
処理を実行させる読み出し制御プログラム。
【0125】
(付記8) 前記コンピュータに、
前記テープドライブに、前記テープ媒体における所定区間からデータを連続して読み出す第1の読み出し動作を実行させて、前記第1の読み出し動作にかかった第1の時間を計測し、
前記テープドライブに、前記所定区間から間隔を空けてデータを読み出す第2の読み出し動作を、前記間隔を変化させながら複数回実行させて、前記第2の読み出し動作にかかった第2の時間を前記間隔ごとに計測し、
前記第1の時間と、前記間隔ごとの前記第2の時間との比較結果に基づいて、前記判定閾値を決定する、
処理をさらに実行させる付記7記載の読み出し制御プログラム。
【0126】
(付記9) 前記テープドライブに対して、前記テープ媒体における書き込み単位となる単位領域のサイズとして複数のサイズを設定可能であり、
前記データ量と前記判定閾値との比較では、前記テープドライブに現在設定されている前記単位領域のサイズを取得し、前記複数のサイズのそれぞれについて個別に決定された前記判定閾値のうち、前記取得したサイズに対応する前記判定閾値と、前記データ量とを比較する、
付記7または8記載の読み出し制御プログラム。
【符号の説明】
【0127】
1 磁気テープ
10 テープ装置
11 テープドライブ
12 制御部
A1,A2 データ量
DT1~DT5,DT11~DT13 データ
TH 判定閾値