(57)【要約】      （修正有）【課題】複数のテープメディアを用いてファイルを読み出すパフォーマンスを改善する。【解決手段】ホストに接続された複数のテープドライブと、ドライブから読み出しデータを一時保管するバッファと、を含む。この方法は（ａ）複数のメディアをマウント状態にする、（ｂ)ファイルを順番に複数のデータ部分に分割し、先頭のデータ部分の読み出しメディアはドライブの読み出しヘッドの現在位置がファイルの先頭位置への移動時間が最小のメディア（先メディア）とし、後続のデータ部分を読み出すメディアは残りのメディアから所定の条件で次のメディア（次メディア）を決定する、（ｃ)先メディアからファイルの先頭のデータ部分をホストに読み出し中に、次メディアの各々から後続のデータ部分を読み出し、バッファに一時保管することを並行して実行し、保管された後続データ部分をファイルを形成するように順番に従って読み出してホストに送ることを含む。【選択図】図６
2015049709.tif 000002
【特許請求の範囲】
【請求項１】
ホストに接続された複数のテープドライブ（ドライブ）と、前記ドライブから読み出しデータを一時保管するバッファと、を含むストレージ・システムにおいて、同じファイルが書込まれた複数のテープメディア（メディア）から前記ファイルを読み出す方法であって、
（ａ）複数の前記メディアの全てを前記ドライブにロードして前記ドライブにマウント状態することと、
（ｂ)前記ファイルを順番に複数のデータ部分に分割し、先頭のデータ部分の読み出しメディアはドライブの読み出しヘッドの現在位置が前記ファイルの先頭位置への移動時間が最小のメディア（先メディア）とし、前記先頭のデータ部分の後続のデータ部分を読み出すメディアは残りの前記メディアから所定の条件で次のメディア（次メディア）を決定することと、
（ｃ)前記先メディアから前記ファイルの先頭のデータ部分をホストに読み出し中に、
前記所定の条件で決定された前記次メディアの各々から後続の前記データ部分を読み出し、前記システムのバッファに一時保管することを全ての前記次メディアから読み出す前記後続データ部分について並行して実行し、前記保管された後続データ部分を前記ファイルを形成するように前記順番に従って読み出してホストに送ることと、を含む前記１つのファイルを読み出す方法。
【請求項２】
前記（ｂ）のステップにおいて、
前記分割されたデータ部分は、同一のサイズであり、
前記所定の条件は、前記次メディアに事前に割り当てる番号に従って決められる順番であることを特徴とする、請求項１に記載の方法。
【請求項３】
前記複数のメディアは前記先メディアおよび前記次メディアの２つのメディアからなり、前記先メディアから前記先頭のデータ部分である前半のデータ部分と、前記次メディアから前記後続のデータ部分の後半のデータ部分を並行して読み出す場合であって、
前記（ｂ）のステップは、更に前記ファイルの前記前半データ部分と前記後半部分とを区分ける、中間時間位置の算定することを含み、
前記中間時間位置の算定は、前記先メディアをマウントしている前記ドライブのヘッドが該先メディアの前半のデータ部分を読み出すのにかかる移動時間と、前記次メディアをマウントしている前記ドライブのヘッドが該次メディアの後半のデータ部分を最後まで読み出すのにかかる移動時間とが等しくなる時間的に中間のブロック位置を算出することを特徴とする請求項１に記載の読み出し方法。
【請求項４】
前記（ｂ）の中間時間位置は、メディアの長手方向の物理位置を指示するｌｐｏｓに基づいて算定されることを特徴とする、請求項３に記載の方法。
【請求項５】
前記中間時間位置の算定は、前記移動時間にラップチェンジの時間も考量する請求項４に記載の方法。
【請求項６】
前記中間時間位置の算定は、物理位置（lpos）とブロック(block)の対応関係を表すテープディレクトリを参照して前記中間時間位置に対応する前記中間ブロック位置を特定する、請求項４または５に記載の方法。
【請求項７】
前記中間時間位置の算定は、前記移動時間に前記（ａ）の各メディアをロードする時間も加えて計算することを特徴とする請求項３に記載の方法。
【請求項８】
ホストに接続された複数のテープドライブ（ドライブ）と、前記ドライブから読み出しデータを一時保管するバッファとを含み、同じファイルが書込まれた複数のテープメディア（メディア）から前記ファイルを読み出すストレージ・システムにおいて、
前記システムの読み出し制御は、
（ａ）複数の前記メディアの全てを前記ドライブにロードして前記ドライブにマウント状態することと、
（ｂ)前記ファイルを順番に複数のデータ部分に分割し、先頭のデータ部分の読み出しメディアはドライブの読み出しヘッドの現在位置が前記ファイルの先頭位置への移動時間が最小のメディア（先メディア）とし、前記先頭のデータ部分の後続のデータ部分を読み出すメディアは残りの前記メディアから所定の条件で次のメディア（次メディア）を決定することと、
（ｃ)前記先メディアから前記ファイルの先頭のデータ部分をホストに読み出し中に、
前記所定の条件で決定された前記次メディアの各々から後続の前記データ部分を読み出し、前記システムのバッファに一時保管することを全ての前記次メディアから読み出す前記後続データ部分について並行して実行し、前記保管された後続データ部分を前記フ
ァイルを形成するように前記順番に従って読み出してホストに送ることと、を実行する前記１つのファイルを読み出すストレージ・システム。
【請求項９】
ホストに接続された複数のテープドライブ（ドライブ）と、前記ドライブから読み出しデータを一時保管するバッファと、を含むストレージ・システムにおいて、同じファイルが書込まれた複数のテープメディア（メディア）から前記ファイルを読み出すためのプログラムであって、
（ａ）複数の前記メディアの全てを前記ドライブにロードして前記ドライブにマウント状態することと、
（ｂ)前記ファイルを順番に複数のデータ部分に分割し、先頭のデータ部分の読み出しメディアはドライブの読み出しヘッドの現在位置が前記ファイルの先頭位置への移動時間が最小のメディア（先メディア）とし、前記先頭のデータ部分の後続のデータ部分を読み出すメディアは残りの前記メディアから所定の条件で次のメディア（次メディア）を決定することと、
（ｃ)前記先メディアから前記ファイルの先頭のデータ部分をホストに読み出し中に、
前記所定の条件で決定された前記次メディアの各々から後続の前記データ部分を読み出し、前記システムのバッファに一時保管することを全ての前記次メディアから読み出す前記後続データ部分について並行して実行し、前記保管された後続データ部分を前記ファイルを形成するように前記順番に従って読み出してホストに送ることと、を前記システム・システムに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のテープメディアを用いて１つのファイルの読み出しのパフォーマンスを改善する方法に関する。詳細には、本発明は、ファイルシステムにより同じファイルを保管する２つのメディアから高速にファイルを読み出す方法に関する。
【背景技術】
【０００２】
テープドライブ（磁気テープ装置）がテープメディア（メディア、テープ）上のデータをファイルとしてアクセスする仕組みとしてＬＴＦＳ（Linear Tape File System）が実用化されている。ＬＴＦＳは、ファイルを構成するデータ部分がテープ上のどこに存在するかなどのメタ情報をインデックスとして関連付けることにより、ファイルシステムを実現している。
【０００３】
ＬＴＦＳにおいても、テープドライブにデータを保持する際において、常に高い信頼性と高速にファイルを読み書きするパフォーマンスが要求されている。ファイルが格納されているデータの位置までシーク（seek）するまでの時間がかかることは、テープドライブにファイルを格納する場合に避けて通れない問題である。
【０００４】
このパフォーマンス上の問題は次の理由による。
テープドライブがシーケンシャルにアクセスをするストレージデバイスであり、テープの端から端まで長手方向に走行するのに２分程度かかる。データを書き込むメディアは、データ書き込み幅方向の位置をラップ（wrap）に切り分け、書き込むラップは両端において交互に方向を切り返す(wrap change)のにかかる時間が大きい。問題なくデータを読み続けている間は、例えば第５世代ＬＴＯ（Linear Tape Open）（以下「ＬＴＯ５」という）テープドライブの場合には１４０MB/secというＨＤＤと同じレベルの読み出し速度を有する。しかし、データの読み込みに失敗するとエラーリカバリー（ＥＲＰ：Error Recovery Procedure）のために再度同じ位置を読み直す。この読み直しはテープ巻き戻すバックヒッチ(backhitch)操作が必要になりパフォーマンスを低下させる要因になる。
【０００５】
一方で、ユーザがテープメディアにデータを保存する最大の目的は、高い信頼性を持ってデータを保存しておく点にある。そのために、高い信頼性を有するメディア１本にデータを保存するのではなく、バックアップ用に更に別のメディアにも同一のデータを保存しておくことが一般に行われている。従って、正副２本に書いたメディアから効率的に読み出すことで高速化を図ることを検討する必要がある。
【０００６】
特許文献１は、複数のディスク装置を利用してボリューム（ファイル）を高速に読み出す技術を提示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１４８８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、特許文献１は、複数のディスク装置を含む技術での高速なデータの読み出すことを示している。同様に複数のテープドライブを含むストレージ・システムにおいても、複数のテープメディアを用いてファイルを高速に読み出す要求は強く存在する。
【０００９】
従って、本発明の目的は、複数のメディアを用いて１つのファイルを読み出すパフォーマンスを改善する方法、テープドライブ、およびプログラムを提供することである。
【課題を解決するための手段】
【００１０】
かかる目的のもと、本発明は、ホストに接続された複数のテープドライブ（ドライブ）と、前記ドライブから読み出しデータを一時保管するバッファと、を含むストレージ・システムにおいて、同じファイルが書込まれた複数のテープメディア（メディア）から前記ファイルを読み出す方法である。この読み出す方法は、
（ａ）複数の前記メディアの全てを前記ドライブにロードして前記ドライブにマウント状態することと、
（ｂ)前記ファイルを順番に複数のデータ部分に分割し、先頭のデータ部分の読み出しメディアはドライブの読み出しヘッドの現在位置が前記ファイルの先頭位置への移動時間が最小のメディア（先メディア）とし、前記先頭のデータ部分の後続のデータ部分を読み出すメディアは残りの前記メディアから所定の条件で次のメディア（次メディア）を決定することと、
（ｃ)前記先メディアから前記ファイルの先頭のデータ部分をホストに読み出し中に、
前記所定の条件で決定された前記次メディアの各々から後続の前記データ部分を読み出し、前記システムのバッファに一時保管することを全ての前記次メディアから読み出す前記後続データ部分について並行して実行し、前記保管された後続データ部分を前記ファイルを形成するように前記順番に従って読み出してホストに送ることとを含む
【００１１】
また、この読み出す方法の（ｂ）のステップにおいて、前記分割されたデータ部分は、同一のサイズであり、前記所定の条件は、前記次メディアに事前に割り当てる番号に従って決められる順番であることを特徴とする。
【００１２】
また、この読み出し方法において、前記複数のメディアは前記先メディアおよび前記次メディアの２つのメディアからなり、前記先メディアから前記ファイルの前記先頭のデータ部分である前半のデータ部分と、前記次メディアから前記後続のデータ部分の後半のデータ部分を並行して読み出す場合であって、
前記（ｂ）のステップは、更に前記ファイルの前記前半データ部分と前記後半部分とを区分ける、中間時間位置の算定することを含み、
前記中間時間位置の算定は、先メディアをマウントしている前記ドライブのヘッドが先メディアの前半のデータ部分を読み出すのにかかる移動時間と、次メディアをマウントしている前記ドライブのヘッドが次メディアの後半のデータ部分を最後まで読み出すのにかかる移動時間とが等しくなる時間的に中間のブロック位置（中間ブロック位置）を算出することとを特徴とする。
【００１３】
また、この読み出し方法において、前記（ｂ）の中間時間位置は、メディアの長手方向の物理位置を指示するｌｐｏｓに基づいて算定されることを特徴とする。
【００１４】
また、この読み出し方法において、前記中間時間位置の算定は、前記移動時間にラップチェンジの時間も考量することを特徴とする。
【００１５】
また、この読み出し方法において、前記中間時間位置の算定は、物理位置(lpos)とブロック(block)の対応関係を表すテープディレクトリを参照して前記中間時間位置に対応する前記中間ブロック位置を特定することを特徴とする。
【００１６】
また、この読み出し方法において、前記中間時間位置の算定は、前記移動時間に前記（ａ）の各メディアをロードする時間も加えて計算することを特徴とする。
【００１７】
更に、かかる目的のもと、本発明は、ホストに接続された複数のテープドライブ（ドライブ）と、前記ドライブから読み出しデータを一時保管するバッファとを含み、同じファイルが書込まれた複数のテープメディア（メディア）から前記ファイルを読み出すストレージ・システムである。このシステムの読み出し制御は、
（ａ）複数の前記メディアの全てを前記ドライブにロードして前記ドライブにマウント状態することと、
（ｂ)前記ファイルを順番に複数のデータ部分に分割し、先頭のデータ部分の読み出しメディアはドライブの読み出しヘッドの現在位置が前記ファイルの先頭位置への移動時間が最小のメディア（先メディア）とし、前記先頭のデータ部分の後続のデータ部分を読み出すメディアは残りの前記メディアから所定の条件で次のメディア（次メディア）を決定することと、
（ｃ)前記先メディアから前記ファイルの先頭のデータ部分をホストに読み出し中に、
前記所定の条件で決定された前記次メディアの各々から後続の前記データ部分を読み出し、前記システムのバッファに一時保管することを全ての前記次メディアから読み出す前記後続データ部分について並行して実行し、前記保管された後続データ部分を前記フ
ァイルを形成するように前記順番に従って読み出してホストに送ることとを実行する。
【００１８】
更に、かかる目的のもと、本発明は、ホストに接続された複数のテープドライブ（ドライブ）と、前記ドライブから読み出しデータを一時保管するバッファと、を含むストレージ・システムにおいて、同じファイルが書込まれた複数のテープメディア（メディア）から前記ファイルを読み出すためのプログラムである。このプログラムは、
（ａ）複数の前記メディアの全てを前記ドライブにロードして前記ドライブにマウント状態することと、
（ｂ)前記ファイルを順番に複数のデータ部分に分割し、先頭のデータ部分の読み出しメディアはドライブの読み出しヘッドの現在位置が前記ファイルの先頭位置への移動時間が最小のメディア（先メディア）とし、前記先頭のデータ部分の後続のデータ部分を読み出すメディアは残りの前記メディアから所定の条件で次のメディア（次メディア）を決定することと、
（ｃ)前記先メディアから前記ファイルの先頭のデータ部分をホストに読み出し中に、
前記所定の条件で決定された前記次メディアの各々から後続の前記データ部分を読み出し、前記システムのバッファに一時保管することを全ての前記次メディアから読み出す前記後続データ部分について並行して実行し、前記保管された後続データ部分を前記ファイルを形成するように前記順番に従って読み出してホストに送ることとを前記システム・システムに実行させる。
【発明の効果】
【００１９】
上述の手段を適用により、複数のテープドライブを含むストレージ・システムは、ファイルの読み出し速度の向上できる。
【図面の簡単な説明】
【００２０】
【図１】複数のテープドライブを含むテープライブラリ・システムの構成例を示す。
【図２】テープドライブのハードウェア構成の一例を示す。
【図３】ＬＴＯ５でのテープのＬＴＦＳフォーマットを示す。
【図４】テープディレクトリの例を示す。
【図５】２つのメディアから１つのファイルを読み出し本発明の方法の概念図を示す。
【図６】先頭から読み出すメディアを決定するフローチャートを示す。
【発明を実施するための形態】
【００２１】
以下において、原本メディアと複製メディアの両方をファイルの読み出しに使用する場合の読み出し方法の実施の形態（実施例）を説明する。
ホストからのアクセス要求に応じて、ＬＴＦＳは２つのテープドライブを含むテープライブラリ（ストレージ・システム）に記録されたファイルにアクセスを行う。
（１）ＬＴＦＳで書き込みを行った原本のメディア（original media）と、そのバックアップ用に作成された複製メディア(backup mediaまたはcopy media)の両方をデータの読み出しに使用する。
（２）２台のドライブにロードされている２つのメディアの状態から、ドライブの読み出しヘッドがより短い時間でファイルの先頭位置まで移動できる側のメディアをファイルの先頭部分から読み出すために選択し使用する。もう一方のメディアはファイルの後半部分を読み出すために使用する。メディアがドライブ内に無いときには、メディアをストレージスロットからドライブに移動して、メディアをロードする時間も合わせて検討する。選択されたメディアは先メディア（first media）と呼ぶ。一方のメディアを次メディア（next mediaまたはsecond media）と呼ぶ。
（３）後半データ部分を読み出す次メディアで読み出しを始める位置を算定する。この位置は、先メディアがその直前まで読み出すのにかかる時間と、次メディアがデータを読み始めてファイルの終端まで読み込むのにかかる時間とが等しくなるように算定される。算定された位置は、時間的な中間位置であるので、中間時間位置(intermediate time position)または中間ブロックと呼ぶ。ファイルシステムは、この中間時間位置をあらかじめ算出しておき、次メディアは中間時間位置から読み出しを開始する。
（４）次メディアから読み込んだデータは、ファイルシステムが管理するバッファに保管しておく。ホストにデータを送信する場合には、先メディアから先頭のデータ部分の読み出しが完了に引き続き、後続のデータ部分をバッファからホストの送信することになる。
【００２２】
本発明は２以上のテープドライブがホスト（サーバ）に管理されているストレージ・システム環境に適用できる。典型例として実施例をテープライブラリで説明する。
図１は、複数のテープドライブを含むテープライブラリ・システムの構成例を示す。ストレージ・システム１００は、３つのテープドライブ６０、テープカートリッジ４０、そのテープカートリッジを収納するスロット４５、およびコントローラ１０５を含む。ストレージ・システム内にはスロット４５に収納された多数のテープカートリッジ４０が存在する。コントローラ１０５は、ホスト３００からの読み書き要求のための通信、および、その要求を実行するために複数のドライブ６０の読み書き制御を行う。
【００２３】
ライブラリ・マネージャ（図示せず）は、ホスト３００とストレージ・システム１００との間にあって、複数のドライブ６０及び複数のテープカートリッジ４０を集中管理する。ライブラリ・マネージャは、複数のカートリッジ４０及びドライブ６０を仮想化し、読み書き制御を行う。ライブラリ・マネージャは、アプリケーションからのコマンドを一時保管し、コマンドに対応したＳＣＳＩコマンドなどをストレージ・システム１００に向けて出力する。ライブラリ・マネージャの一例としては、ＩＢＭ社のTape System Library Manager(TSLM)である。ホスト３００のアプリケーション３０は、ファイルシステム（ＬＴＦＳ）５０を介して、ストレージ・システム１００にファイルベースで読み書き要求できる。ファイルシステムは、アプリケーションからのファイルの読み書き要求のデータを一時保管するバッファ（図示せず）を有する。ストレージ・システムのホスト３００はファイルシステム５０の為にこのバッファを割り当てる。ストレージ・システム１００は、アプリケーション３０が発行する各種コマンド（読み書き、位置決めなど）により制御される。専用のソフトウェアとしてのアプリケーションの一例としては、ＩＢＭ社のTivoli Storage Manager が該当する。
【００２４】
ライブラリ・マネージャは、アプリケーションからコマンドとして、ロード要求するコマンドを受け取る。通常はこのコマンドが実行される場合、ライブラリ・マネージャ５０は空ドライブを複数（３つ）のドライブから検索する。ロード要求されたテープカートリッジをロード可能な空ドライブに搭載する。３つのドライブが使用中である場合は空きドライブが発生するまで、ライブラリ・マネージャは待たされる。テープライブラリ・システムは、ＨＤＤ等と同様にファイルシステム上でも利用可能である。例えばＬＴＦＳ５０では、メディア上に書かれたデータをファイルとして見せることができる。
【００２５】
図２は、テープドライブ（磁気テープ装置）６０のハードウェア構成の一例を示す。
このテープドライブ６０は、通信Ｉ／Ｆ（インターファース）１１０と、バッファ１２０と、記録チャネル１３０と、読書きヘッド１４０と、制御部１５０と、位置決め部１６０と、モータドライバ１７０と、モータ１８０とを含む。
【００２６】
インターフェース１１０は、ネットワークを介してホスト３００との通信を行う。例えばインターフェース１１０は、ホスト３００から、テープカートリッジ（メディア、テープ、メディア）４０へのデータの書込みを指示する書込みコマンドを受信する。またインターフェース１１０は、ホスト３００から、メディア４０からのデータ読出しを指示する読出しコマンドを受信する。インターファース１１０は、書込みデータの圧縮を読み出しデータの非圧縮を行う機能を有し、実際のデータに対してメディアへの記憶容量を約２倍近く高めている。
【００２７】
テ−プドライブ６０は、ホスト３００から送られた複数のレコードで構築されるデータセット（ＤａｔａＳｅｔ；ＤＳと言う）単位でメディア４０への読み書きを行う。ＤＳの典型的な大きさは４ＭＢである。ホスト３００は、ファイルシステムはファイルを指定して、また、ＳＣＳＩコマンドはレコードを指定して、テープドライブに書込み／読み出し要求（Ｗｒｉｔｅ／Ｒｅａｄ）を送る。ＤＳは複数のレコードで構成される。
【００２８】
バッファ１２０は、メディア４０に書込むべきデータ、また、メディアから読み出したデータを一時的に蓄積するメモリである。例えばバッファ１２０は、ＤＲＡＭ(Dynamic Random Access Memory）によって構成される。記録チャネル１３０は、バッファ１２０に蓄積されたデータをメディア４０に書き出すため、またはメディア４０から読み出されたデータをバッファ１２０に一時的に蓄積するために用いられる通信経路である。
【００２９】
読書きヘッド１４０は、データ読書き素子を有し、メディア４０へのデータの書込み及びメディアからのデータの読出しを行う。読書きヘッド１４０はまたサーボ読取り素子を有し、メディア４０に設けられたサーボトラックから信号を読み取る。位置決め部１６０は、カートリッジ４０の短手方向（幅方向）に読書きヘッド１４０の移動を指示する。モータドライバ１７０は、モータ１８０を駆動する。テープの長手方向の位置はｌｐｏｓで与える。ｌｐｏｓは、テープ全長にわたって書き込まれたサーボパターンに埋め込まれている。
【００３０】
テ−プドライブ６０は、ホスト３００から受取ったコマンドに従って、データのテ−プへの書込みやテ−プからの読出しをする。テ−プドライブ６０は、バッファ、読み書きチャネル、ヘッド、モ−タ、テ−プを巻きつけるリ−ルと、読み書き制御と、ヘッド位置制御システムと、モ−タドライバとを含む。テ−プドライブは、テープカートリッジを着脱可能に搭載する。テ−プは、リ−ルの回転に伴い、長手方向に移動する。ヘッドは、テテープの長手方向に移動してデータを書き込んだり、テ−プからデータを読出したりする。また、テープカートリッジ４０はカートリッジメモリ（ＣＭ：Cartridge Memory）と呼ばれる非接触不揮発性メモリを備える。テープカートリッジ４０に搭載されたＣＭは、テープドライブ６０により非接触的に読み書きされる。ＣＭはカートリッジ属性を保管する。テープドライブは、読出し及び書込み時に、ＣＭからそのカートリッジ属性を取り出して最適な読み書きができるようにする。ＣＭは、ｌｐｏｓ、ラップ（wrap）と後述するブロック（block）との疎な対応表を表すテープディレクトリを保管する。
【００３１】
制御部１５０は、テープドライブ６０の全体の制御を行う。すなわち、制御部１５０は、インターフェースで受信したコマンドに従って、データのメディア４０への書込み及びメディア４０からのデータの読出しを制御する。また、制御部１５０は、読取られたサーボドラックの信号に従って位置決め部１６０を制御する。更に制御部１５０は、位置決め部１６０及びモータドライバ１７０を介してモータの動作を制御する。なお、モータドライバ１７０は制御部１５０に直接接続されてもよい。
【００３２】
テープドライブは、ＨＤＤ等と同様にファイルシステム上でも利用可能である。例えばＬＴＦＳでは、メディア上に書かれたデータをファイルとして見せることができる。ホスト３００はファイルシステム５０が読み書きデータの保管に使用するバッファを有する。テープドライブでは、テープが２つまたはそれ以上のパーティションに分けられる。各パーティションはあたかも１つのテープのように扱え、それぞれにデータを選択的に書き込むことができる。インデックスは、ファイルのデータに関して、ファイルのパスおよび名称、及び、メディア上の位置情報（エクステント）を含む。
【００３３】
図３は、ＬＴＯ５でのテープのＬＴＦＳフォーマットを示す。
（ａ）は、テープの幅方向は２つのパーティションにより区分けされていることを示す。ＬＴＯ５テープドライブは、テープの長手方向に沿った書き込み領域のラップ（wrap）を往復しながらデータを書く。テープメディアをＬＴＦＳで利用する場合、テープメディアをインデックス・パーティション（ＩＰ）およびデータ・パーティション（ＤＰ）の２つに分割して利用する。テープの先端部（ＢＯＴ：Beginning of Tape）から終端部（ＥＯＴ：End of tape）に渡ってＩＰとＤＰとの２つに区分される。ラップは、一般的にトラックと考えてもよい。ＬＴＯ５のテープカートリッジでは、テープ長手方向は約８００ｍ、横手方向はラップ数８０本の幅である。ＩＰとＤＰとは２本のラップの保護領域（guard band）で区分される。テープはラップの長手方向に前後に進行し、ＢＯＴおよびＥＯＴにおいて進行する向きを反転することをラップチェンジ（wrap change）またはラップターン（wrap turn）と呼ぶ。パーティション数は、様々な仕様に応じて３以上の任意の数に変更することは可能である。
【００３４】
（ａ）は、ラップの長手方向の物理的位置はｌｐｏｓで指示されることを示す。ＬＴＯではデータの位置をラップとｌｐｏｓで表現される。ラップはテープの横方向の位置を示す。テープの長手方向の位置はｌｐｏｓで与える。ｌｐｏｓは、テープ全長にわたって書き込まれたサーボパターンに埋め込まれている。１ｌｐｏｓはＬＴＯＳテープの場合７．２mmに相当する。
【００３５】
（ｂ）は、ＬＴＦＳでは、ファイルのメディア上の位置はエクステント（extent）で表現される。ユーザがＬＴＦＳを利用してテープメディアに書き込むと、テープメディアではファイル本体の他、インデックス・ファイル（単に「インデックス」とも言う）と呼ばれるメタ情報をテープメディアに書き込む。インデックスは、ファイル名やファイル作成日などの情報を持つ。ＩＰには、主に最新のインデックスが書き込まれる。ＤＰには、ファイルの本体、及び、インデックスの履歴が書き込まれる。ファイルごとにエクステントをひとつ以上持つことになる。エクステントは、ファイルを保管するパーティション(partition)、ファイルの先頭データが格納されているブロックの番号（block）、そのブロック内におけるファイルの先頭データの位置オフセット（offset）、ファイルを構成するデータのバイト数（bytes）で表現される。複数のextentを使用してテープ上で異なる位置に書かれたデータをまとめてひとつのファイルと見せることもできる。ブロックは例えば５１２KBの固定長である。
【００３６】
図４は、テープディレクトリの例を示す。
テープディレクトリは、物理的位置のｌｐｏｓとファイルのデータ位置のブロック（ｂｌｏｃｋ）の対応関係を示す。テープのファイルの長手方向の論理的位置はＬＴＦＳのエクステントに指示されるブロック番号（block）で把握できる。テープ上の物理位置はｌｐｏｓとラップで位置決できる。テープディレクトリは、テープの物理位置、即ち(wrap, lpos)と、メディア上のＬＴＦＳのブロックの範囲との対抗関係、即ち(wrap,lpos) ⇔（block)を表す。
【００３７】
（ａ）は、テープディレクトリの概念図である。
Ｘ0はデータを書き始められるｌｐｏｓ上の位置、Ｘnは１wrapで書き込める範囲のｌｐｏｓ長であると仮定する。ここで、ｌｐｏｓのデータの書き込みを始める位置がすべてのwrapで順方向はＸ0, 逆方向はＸnとしている。ＬＴＯテープドライブでは、データの読み書きリクエストが来たときに、内部的に持っているテープディレクトリを元に次に移動する位置を推定している。テープドライブはテープディレクトリを使用してｌｐｏｓの位置、もしくはブロックの番号を推定するアルゴリズムを保持する。このテープディレクトリでは、ブロック範囲とｌｐｏｓとの対応関係を示すのみであるため精度は低い。メディア上の正確な位置を取得することはできないので、テープディレクトリとブロック番号から物理的なおよその位置を特定して位置決めを行っている。
【００３８】
（ｂ）は、仮想ｌｐｏｓとブロックとの対応関係を示すテープディレクトリである。
ヘッドに対してメディアは、偶数ラップを順方向に移動してテープの終端部（ＥＯＴ）においてラップターンして、奇数ラップにラップチェンジして逆方向に走行する。ここで、計算をしやすくするために、ラップチェンジ(wrap change)にかかる時間的な距離（Ｘw）をｌｐｏｓに変換して直線状の長さに置き換える。これを仮想ｌｐｏｓと呼ぶことにする。仮想ｌｐｏｓとは、終端部での奇数ラップを長手方向に折り曲げて、ｌｐｏｓがヘッドの走行距離を与えるようにした。（ｂ）は仮想ｌｐｏｓとブロックとの対抗関係のみを与える。ラップチェンジの時間ｔwを、テープ移動速度ｖとして移動したときの距離を仮想ｌｐｏｓ上の長さＸwで表現すると、Ｘw＝ｖ×ｔwで表される。同様にテープディレクトリも1本のwrapとみなして書き換える。ここで計算を簡単にするために、データを書き始める位置Ｘ0＝０に補正をしている。
【００３９】
図５は、２つのメディアから１つのファイルを読み出す本発明の方法の概念図を示す。
メディアａ（media-a）およびメディアｂ（media-b）に記録された同じファイルの異なるデータ部分を読み出す場合である。メディアａとメディアｂの両方を１つのファイルの読み出しに使用する。各テープドライブにメディアをマウントした状態である。この説明では、２つのメディアのどちらが早く目的のファイルを読み出し始めることできるか決定することが前提である。メディアａ（先メディア）の上のファイルの位置がドライブの読み出しヘッドがより短い時間でファイルの先頭位置に移動できると決定している。もう一方のメディアｂ（次メディア）をファイルの後半のデータ部分の読み出しに使用する。先のメディアa上のファイルの読み出し最終のブロックを決める。最終ブロックは、次のメディアｂ上のファイルの後半データ部分の読み出し開始位置のブロックｂiである。ブロックｂiを中間時間位置（または中間ブロック）と呼ぶことにする。この中間時間位置、即ちブロックｂiは、先メディアがｂiまで読み出すのにかかる時間と、次メディアがｂiからデータの最後まで読み出すのにかかる時間とが等しくなる位置から、あらかじめ算出される。２つのメディアをマウントしているドライブは、各ヘッド位置および各ファイルの先頭のデータへの移動時間を算定して、ファイルシステム５０またはコントローラ１０５に通知してもよい。また、ドライブは各ヘッド位置およびファイルの位置の情報をファイルシステム５０またはコントローラ１０５に送って、ファイルシステム等に移動時間を算定させてもよい。
【００４０】
（ａ）は、１つのファイルを読み出す場合に、中間ブロックｂiの前後のデータ部分を２つのメディアで並行して読み出す態様を示す。理解を容易にするために各メディアは長手方向がラップチェンジの時間も考慮して仮想的ｌｐｏｓ（図４（ｂ））で算出できるように１つのラップで表されている。本発明のファイルシステムは、メディアａから中間ブロックｂiを境に前半のデータ部分を、メディアｂにおいて中間ブロックｂiから後半データ部分を読み出している。中間ブロックｂiは、メディアaではヘッドの現在位置からファイルの終端位置まで時間距離の中間時間位置Ｄa,iで与えられる。メディアbでは、メディアaにおいてヘッドが移動してｂiまで読み出される間に、ｂi以降の後半データ部分の読み出しを完了する必要がある。中間ブロックｂiは、先メディアがここ（ｂi）まで読み出すのにかかる時間Ｄa,iと、次メディアがｂiから最後まで読み出すのにかかる時間Ｄb,iとが等しくなる位置になるように、あらかじめファイルシステム５０またはコントローラ１０５において算出される。例えばＬＴＦＳは、インデックスに含まれるエクステントからメディア上において目的のファイルがブロック（block）のｂsからｂeまでものであると分かる。ファイルの位置は仮想テープディレクトリを用いて仮想ｌｐｏｓに換算される。ファイルのテープ上での長手方向の物理的位置はブロックの数では正確に算出できない。従って図のメディアａおよびメディアｂのそれどれをマウントしたドライブのヘッドの位置、ファイルの先頭位置、終端位置は、仮想ｌｐｏｓで計算される。先頭データがアプリケーション３０への転送が完了するまで、次メディアから読み出した後続のデータを、ファイルシステム５０のバッファに全て転送して一時保管しておく。次のメディアの後半のデータは、先メディアからデータ転送が完了次第、バッファから送信を開始する。（ｂ）は、メディアａおよびメディアｂについて実際のメディアでのファイルとヘッドの位置関係を示す。ファイルは、ラップチェンジ部分を経て複数のラップに延びていることを表す。
【００４１】
（ａ）の方法の場合、完全に２つのメディア（media-a、media-b）から前半データ部分と後半データ部分とを読み出しが、できる限り同じ時間内で完了することを意識している。具体的には、メディアａ（media-a）が前半データ部分を、メディアｂ（media-b）が後半データ部分を同時に読み出しを完了できると、１つのメディアからも読み出しパフォーマンスに対して半分近くにできる。従って、１つのファイルの前半データ部分と後半データ部分の区切りの中間ブロックｂiは時間的中間位置を意味するので、両データ部分は同じ大きさではない。しかしながら、中間ブロックｂiは前半データと後半データが同じサイズになる位置にしてもよい。この場合、メディアａが前半データ部分を読み出しホストに転送するのに並行して、同じデータ量の後半データ部分を読み出しホスト転送できればよい。２つのメディアで完全に同時に読み出しが完了しなくとも、読み出しパフォーマンスが期待できる。例えば、同じファイルを保持する３以上メディアを使用する場合を考えると、各メディアから読み出しデータ部分は１つのファイルを順に均等に分割したものであってよい。各テープドライブにおいて各メディアから対応するデータ部分の読み出しを並行にできる時間は一定時間あるので、相当な読み出しパフォーマンスの改善となる。
【００４２】
図６は、先頭から読み出すメディアを決定するフローチャートを示す。
テープドライブが各メディアをマウントしている状態を想定する。
●（６００）：ストレージ・システムのホスト（サーバ）から１つのファイル読み出し要求を受ける場合である。ファイルシステムは、２つのメディアからファイルを読み出す場合先の読み出しメディアを決定する。ファイルシステムではブロック単位でしか読み出せないので、読み出し目的のファイルをブロックのｂsからｂeまで書かれているものとする。ファイルを読み出す際にはファイルを構成するデータのオフセットやバイト数にかかわらず、ｂsからｂeまでのブロックすべてを読み込むことになる。
●（６１０）：２つのメディア毎に、ヘッドの現在位置とファイルの先頭および終端位置を算出する。
・ヘッド位置は仮想ｌｐｏｓで与えられる。２つのメディアに対するヘッド位置はＰa,hとＰb,hとする。
・メディアａおよびメディアｂ上の目的のファイルの位置は、先頭ブロックｂｓと終端ブロックｂｅで与えられる。ここで２つのメディア上の同じファイルの位置は異なることに注意する。ファイルのブロック位置を与える先頭ブロックｂｓと終端ブロックｂｅは、メディアａとメディアｂとでは異なる値である。テープディレクトリを参照して、ブロック位置ｂs、ｂeをｌｐｏｓ換算してメディアａのファイルの物理的位置は、先頭Ｐa,s−終端Ｐa,eと与える。同様にメディアｂのファイルの物理的位置は、先頭Ｐb,s−終端Ｐb,eと与える。
・メディアａの場合は、ヘッド位置Ｐa,hから先頭ファイル位置Ｐa,sへの移動時間をｔ（Ｐa,h、Ｐa,s）と与える。メディアｂの場合は、ヘッド位置Ｐb,hから先頭ファイル位置Ｐｂ,sへの移動時間をｔ（Ｐｂ,h、Ｐｂ,s）と与える。この時間計算でヘッドがファイルの先頭位置に移動する途中でラップチェンジを経験する場合はその移動時間（Ｘw）も含ませる。
●（６２０）：両メディア上でのファイルの先頭までのヘッドの移動時間を比較する。
例えばｔ（Ｐa,h、Ｐa,s）＜ｔ（Ｐｂ,h、Ｐｂ,s）の場合（Ｙｅｓ）、メディアａを前半データ部分を読むメディアとして決定する（６３０）。Ｎｏの場合は、メディアｂを前半データ部分を読むメディアとして決定する（６４０）。
【００４３】
上述の移動時間の算出において、各メディアがテープドライブにマウントされていない場合は、スロットからメディアをドライブにロードする時間も移動時間に考慮してもよい。
また、以上は２つメディアを使用する実施例の説明であるが、３以上のメディアを使用する場合にも、先頭のデータ部分の選択は同じフローが適用される。一方、先頭のデータ部分に後続するデータ部分を読み出すメディアの決定については、例えば、順番に分割されたデータ部分は同一のサイズである場合は、複数の残りのメディアについて事前に割り当てる番号に従って決められる順番である。言い換えれば、先頭のデータ部分の読み出しメディアが決定されれば、後続のデータ部分の読み出しにおいてメディアの割当は一定の柔軟性が許容される。後続の複数のデータ部分の読み出は、その読み出し大部分がメディアaからの先頭データ部分と並列実行がされるので、相当の読み出しパフォーマンスの向上が期待できる。
【００４４】
以上より、本発明を適用により、複数のテープドライブを含むストレージ・システムは、ファイルの読み出す速度を向上できる。また、バックヒッチやラップチェンジよるパフォーマンス低下の発生頻度を半減できるためである。ＥＲＰ処理に起因する読み出しパフォーマンス低下の発生頻度を半減できる。なお、２つのメディアを用いる実施例を主に説明したが、本発明の範囲はこの実施例には限定されない。本発明の範囲には、３以上のメディアから同じファイルのデータ部分を並行に読み出し場合も含まれる。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００４５】
４０…テープカートリッジ（メディア、テープ）、
４５…スロット、
６０…テープドライブ、
１００…テープライブラリ・システム（ストレージ・システム）、
１０５…テープライブラリのコントローラ、
１１０…通信Ｉ／Ｆ（インターフェース）、
１２０…バッファ（ドライブバッファ）、
１３０…記録チャネル、
１４０…ヘッド、
１５０…制御部（コントローラ、読み書き制御を含む）、
１７０…モータドライバ、
１８０…モータ、
３００…ホスト（サーバ）
【図１】
2015049709.tif 000003
【図２】
2015049709.tif 000004
【図３】
2015049709.tif 000005
【図４】
2015049709.tif 000006
【図５】
2015049709.tif 000007
【図６】
2015049709.tif 000008