(57)【要約】      （修正有）【課題】１つのファイルを複数のメディアに跨って書込む方法を提供する。【解決手段】複数のメディアは親メディアと少なくとも１つの後続の子メディアとに識別され、最初に、親メディアをドライブにロードしてメタデータから親メディアのＩＤ情報を確保し、親メディアにファイルの最初の部分を書込むと同時に、メタデータとしてファイル名とファイルの属性情報、及び最初のファイル部分の属性情報を保存し、次に、後続のファイル部分を書込むために、別のドライブに子メディアをロードしてメタデータから子メディアのＩＤ情報を確保し、子メディアに後続のファイル部分を書込むと同時に、メタデータとして親メディアのＩＤ情報、及びファイル部分の属性情報を保存し、次に、子メディアのＩＤ情報、及びファイル部分の属性情報を、親メディアのメタデータとして追加保存する。【選択図】図２
2014115807.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２以上のドライブを使用するストレージ・システムにおいて、１つのファイルを複数メディアにまたがって書き込む、前記複数のメディアは最初のメディア（親メディア）と少なくとも１つの後続のメディア（子メディア）とに識別される、前記書込み方法であって、
（１）親メディアを１のドライブにロードしてメタデータから親メディアのＩＤ情報を確保し、
（２）前記ロードされた親メディアに、ファイルの最初の部分を書込むと同時に、メタデータとして、ファイルの名と前記ファイルの属性情報、最初の前記ファイル部分の属性情報を保存し、
（３）前記ロードされた親メディアに、後続のファイル部分がロードされる子メディアに書込み完了するまで親メディアを前記ドライブに常駐させ、
（４）後続のファイル部分を書込むために、別のドライブに子メディアをロードし前記子メディアのＩＤ情報をメタデータから確保し、
（５）前記ロードされた子メディアに、前記後続のファイル部分を書込むと同時に、メタデータとして、親メディアのＩＤ情報、及び前記ファイル部分の属性情報を保存し、
（６）前記子メディアのＩＤ情報、及び前記ファイル部分の属性情報を、常駐している親メディアの前記メタデータとして追加保存し、
（７）前記（４）〜（６）のステップを、ファイルの最後のファイル部分が後続の子メディアに書込みが完了するまで繰り返す、を含む１つのファイルを書き込む方法。
【請求項２】
前記親メディア及び前記子メディアは、ストレージ・システムのシーケンシャルアクセスのためのファイルシステムにより読み書きを可能にするために、2以上のパーティションに区分され、
前記パーティションは、ファイルのメタデータを保存するインデック・パーティションとファイルのデータを保存するデータ・パーティションとを含み、
前記親メディアのインデックス・パーティションには、親メディアの前記メタデータが保存され、
前記子メディアのインデック・パーティションには、子メディアの前記メタデータが保存され、
前記親メディアのメタデータに含まれる最初のファイル部分の属性情報は、最初のファイル部分名、メディア上でのデータ位置、及びサイズを含み、
前記子メディアのメタデータに含まれる後続のファイル部分の属性情報は、ファイル部分名、メディア上でのデータ位置、及びサイズを含む、請求項１に記載の書込み方法。
【請求項３】
前記（６）のステップは、前記子メディアのＩＤ情報を前記子メディアに書き込まれたファイル部分の前記属性情報と関連付けて前記親メディアのメタデータに追加保存する請求項１または２に記載の方法。
【請求項４】
前記（６）及び（７）のステップは、前記子メディアに前記後続のファイル部分が書き込まれた順番を特定できるように各子メディアのＩＤ情報を前記親メディアのメタデータとして保存する請求項１または２に記載の方法。
【請求項５】
請求項１または２に記載の書込み方法により１つのファイルが書込まれた複数のメディア。
【請求項６】
請求項５に記載の複数のメディアに書込まれたファイルを読み出す方法であって、
（１）ファイルの部分を保存した複数のメディアの１つをドライブにロードするステップと、
（２）前記ロードされたメディアからメタデータを読出し、前記メタデータから前記メディアが前記ファイルについて親メディアか子メディアかを判定するステップと、
（３）前記ロードされたメディアが子メディアの場合、前記子メディアに保存されたメタデータから親メディアのＩＤ情報を確保するステップと、
（４）前記確保されたＩＤ情報により特定される親メディアをドライブにロードするステップと、
（５）前記ロードされた親メディアに保存されたメタデータに基づいて、書き込まれた最初のファイル部分を読み出すと同時に、前記メタデータから各ファイル部分を保存した子メディアのＩＤ情報を確保するステップと、
（６）前記確保されたＩＤ情報に基づいて前記ＩＤ情報に対応する子メディアをドライブにロードして、前記子メディアのファイル部分の属性情報に基づいて前記ファイルの部分を読み出すステップと、
（７）前記（６）においてファイル部分を読み出すステップは、前記（５）のステップにおいて確保されたＩＤ情報に対応する子メディアをロードして前記子メディアから後続のファイル部分を読み出すことを繰返し、
（８）前記（７）のステップにおいて、ファイルの終端を検知すると、を含む１つのファイルの読み出しが終了する、１つのファイルを読み出す方法。
【請求項７】
前記（２）のステップにおいて前記ロードされたメディアが親メディアの場合、前記（５）のステップから実行する請求項６に記載の読み出し方法。
【請求項８】
少なくとも２以上のドライブを使用するストレージ・システムにおいて、１つのファイルを複数メディアにまたがって書き込むストレージ・システムであって、前記複数のメディアは最初のメディア（親メディア）と少なくとも１つの後続のメディア（子メディア）とに識別され、
前記ストレージ・ストレージの読み書き制御は、
（１）親メディアを１のドライブにロードしてメタデータから親メディアのＩＤ情報を確保し、
（２）前記ロードされた親メディアに、ファイルの最初の部分を書込むと同時に、メタデータとして、ファイル名と前記ファイルの属性情報、及び最初の前記ファイルの部分の属性情報を保存し、
（３）前記ロードされた親メディアに、後続のファイル部分が順次ロードされる子メディアに書込み完了するまで親メディアを前記ドライブに常駐させ、
（４）後続のファイル部分を書込むために、別のドライブに子メディアをロードし前記子メディアのＩＤ情報をメタデータから確保し、
（５）前記ロードされた子メディアに、前記後続のファイル部分を書込むと同時に、メタデータとして、親メディアのＩＤ情報、及び前記ファイル部分の属性情報を保存し、
（６）前記子メディアのＩＤ情報、及び前記ファイル部分の属性情報を、常駐している親メディアの前記メタデータとして追加保存し、
（７）前記（４）〜（６）のステップを、ファイルの最後のファイル部分が後続の子メディアに書込みが完了するまで繰り返す、ことを実行するストレージ・システム。
【請求項９】
請求項５に記載の複数のメディアに書込まれたファイルを読み出すストレージ・システムであって、
前記ストレージ・ストレージの読み書き制御は、
（１）ファイルの部分を保存した複数のメディアの１つをドライブにロードするステップと、
（２）前記ロードされたメディアからメタデータを読出し、前記メタデータから前記メディアが前記ファイルについて親メディアか子メディアかを判定するステップと、
（３）前記ロードされたメディアが子メディアの場合、前記子メディアに保存されたメタデータから親メディアのＩＤ情報を確保するステップと、
（４）前記確保されたＩＤ情報により特定される親メディアをドライブにロードするステップと、
（５）前記ロードされた親メディアに保存されたメタデータに基づいて、書き込まれた最初のファイル部分を読み出すと同時に、前記メタデータから各ファイル部分を保存した子メディアのＩＤ情報を確保するステップと、
（６）前記確保されたＩＤ情報に基づいて前記ＩＤ情報に対応する子メディアをドライブにロードして、前記子メディアのファイル部分の属性情報に基づいて前記ファイルの部分を読み出すステップと、
（７）前記（６）においてファイル部分を読み出すステップは、前記（５）のステップにおいて確保されたＩＤ情報に対応する子メディアをロードして前記子メディアから後続のファイル部分を読み出すことを繰返し、
（８）前記（７）のステップにおいて、ファイルの終端を検知すると１つのファイルの読み出しが終了する、ことを実行するストレージ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのファイルを複数のメディアに跨って書込む方法、及びストレージ・システムに関する。詳細には、本発明は、少なくとも２以上のテープドライブを含むストレージ・システムにおいて、１つのファイルの複数の部分を複数のテープメディアにまたがって書き込む方法に関する。
【背景技術】
【０００２】
テープドライブを含むストレージ・システムには、書き込むことのできるデータ容量はテープ媒体（メディア）の最大容量を上限により決まっている。例えば、第５世代のＬＴＯ（Linear Tape Open）テープドライブではメディアの最大容量１．５TBを超えてデータを書込むことはできない。また、既にある程度のデータが書き込まれているメディアに別のデータをさらに追記する場合には、メディアの最大容量よりは少ない容量のデータしか追記できない。
【０００３】
テープドライブは、ＨＤＤ等と同様にファイルシステム上でも利用可能である。例えば、テープドライブのためのファイルシステムの例としてＬＴＦＳ（Ｌｉｎｅａｒ  Ｔａｐｅ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）がある。ＬＴＦＳを使用してＬＴＯのデータをファイルとして扱う場合にも、書き込むことができるデータ容量がテープ媒体の容量より少ない容量のデータしか追記できない制限がある。
【０００４】
近年のストレージ使用状況では、メディアに書き込みたいデータの容量は増大の一途をたどっている。書き込むファイルのサイズも書き込みを始める時点では決まっていないことがある。例えば、放送業界などで番組作成のための録画をリアルタイムに行う場合や、セキュリティシステムでＵＳＢカメラなどの映像をメディアに直接書き続ける場合である。このような場合メディアに追記しているファイルのサイズがメディアの容量を超えることになる。それまでに書かれたファイルを分割して保存しておき、続きのデータを別のメディアに書き続けることになる(スパニング：ｓｐａｎｎｉｎｇ)。現時点ではＬＴＦＳでスパニングを実現する仕組みは存在しない。
【０００５】
特許文献１は、ファイル管理に必要なシステム情報を各メディアに分散して持つとその情報を参照するだけで全てのメディアがロードされるため、システム情報を１本のメディアに書き込むように再配置する技術を開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−３０６１９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１は、１つのファイルが１のメディアに納まらない場合を意図しておらず、各メディアのファイルのデータ部分の属性情報を最初のメディアで保存することを示していない。テープカートリッジ(メディア)のアンロード/ロードに非常に長い時間がかかるので、この回数を減らすことは大きなファイルの読み出しパフォーマンスの向上のため重要な課題である。
【０００８】
従って、本発明の目的は、読み出しの複数のメディアのロード／アンロードを短縮可能にするために、１つのファイルを複数のメディアに跨って書込む方法及びストレージ・システムを提供することである。
【課題を解決するための手段】
【０００９】
かかる目的のもと、本発明は、少なくとも２以上のドライブを使用するストレージ・システム（ライブラリ・システム）において、１つのファイルを複数メディアにまたがって書き込む、前記複数のメディアは最初のメディア（親メディア）と少なくとも１つの後続のメディア（子メディア）とに識別される、前記書込み方法である。この書込み方法は、
（１）親メディアを１のドライブにロード（搭載）してメタデータから親メディアのＩＤ情報を確保し、
（２）前記ロードされた親メディアに、ファイルの最初の部分を書込むと同時に、メタデータとして、（ａ）ファイルの名と前記ファイルの属性情報、及び（ｂ）最初の前記ファイル部分の属性情報を保存し、
（３）前記ロードされた親メディアに、後続のファイル部分が順次ロードされる子メディアに書込み完了するまで親メディアを前記ドライブに常駐させ、
（４）後続のファイル部分を書込むために、別のドライブに子メディアをロードし前記子メディアのＩＤ情報をメタデータから確保し、
（５）前記ロードされた子メディアに、前記後続のファイル部分を書込むと同時に、メタデータとして、（ｃ）親メディアのＩＤ情報、及び（ｄ）前記ファイル部分の属性情報を保存し、
（６）（ｅ）前記子メディアのＩＤ情報及び前記ファイル部分の属性情報（ｆ）を、常駐している親メディアの前記メタデータとして追加保存し、
（７）前記（４）〜（６）のステップを、ファイルの最後のファイル部分が後続の子メディアに書込みが完了するまで繰り返す。
【００１０】
また、この書込み方法において、前記親メディア及び前記子メディアは、ストレージ・システム（ライブラリ・システム）のシーケンシャルアクセスのためのファイルシステム（ＬＴＦＳ）により読み書きを可能にするために、2以上のパーティションに区分され、
前記パーティションは、ファイルのメタデータを保存するインデック・パーティション（indexpartition）とファイルのデータを保存するデータ・パーティション(data partition)とを含み、
前記親メディアのインデックス・パーティションには、親メディアの前記メタデータが保存され、
前記子メディアのインデック・パーティションには、子メディアの前記メタデータが保存され、
前記親メディアのメタデータに含まれる最初のファイル部分の属性情報は、最初のファイル部分名、メディア上でのデータ位置（ブロックＮｏ．とオフセット）、及び、サイズを含み、
前記子メディアのメタデータに含まれる後続のファイル部分の属性情報は、ファイル部分名、メディア上でのデータ位置（ブロックＮｏ．とオフセット）、及びサイズを含む、ことを特徴とする。
【００１１】
また、この書込み方法において、前記（６）のステップは、前記子メディアのＩＤ情報を前記子メディアに書き込まれたファイル部分の前記属性情報と関連付けて前記親メディアのメタデータに追加保存することを特許とする。
【００１２】
また、この書込み方法において、前記（６）及び（７）のステップは、前記子メディアに前記後続のファイル部分が書き込まれた順番を特定できるように各子メディアのＩＤ情報を前記親メディアのメタデータとして保存することを特徴とする。
【００１３】
また、この書込み方法により書き込まれた１つのファイルを含む複数のメディアである。
【００１４】
また、かかる目的のもと、本発明は、上記書込み方法により書き込まされた複数のメディアから１つのファイルを読み出す方法である。この読み出し方法は、
（１）ファイルの部分を保存した複数のメディアの１つをドライブにロードするステップと、
（２）前記ロードされたメディアからメタデータを読出し、前記メタデータから前記メディアが前記ファイルについて親メディアか子メディアかを判定するステップと、
（３）前記ロードされたメディアが子メディアの場合、前記子メディアに保存されたメタデータから親メディアのＩＤ情報を確保するステップと、
（４）前記確保されたＩＤ情報により特定される親メディアをドライブにロードするステップと、
（５）前記ロードされた親メディアに保存されたメタデータに基づいて、書き込まれた最初のファイル部分を読み出すと同時に、前記メタデータから各ファイル部分を保存した子メディアのＩＤ情報を確保するステップと、
（６）前記確保されたＩＤ情報に基づいて前記ＩＤ情報に対応する子メディアをドライブにロードして、前記子メディアのファイル部分の属性情報に基づいて前記ファイルの部分を読み出すステップと、
（７）前記（６）においてファイル部分を読み出すステップは、前記（５）のステップにおいて確保されたＩＤ情報に対応する子メディアをロードして前記子メディアから後続のファイル部分を読み出すことを繰返し、
（８）前記（７）のステップにおいて、ファイルの終端を検知すると、１つのファイルの読み出しが終了する。
【００１５】
また、この読み出し方法の前記（２）のステップにおいて、前記ロードされたメディアが親メディアの場合、前記（５）のステップから実行することを特徴とする。
【００１６】
更に、かかる目的のもと、本発明は、少なくとも２以上のドライブを使用するストレージ・システム（ライブラリ・システム）において、１つのファイルを複数メディアにまたがって書き込むストレージ・システムであって、前記複数のメディアは最初のメディア（親メディア）と少なくとも１つの後続のメディア（子メディア）とに識別される、ストレージ・システムである。このストレージ・システムは、その読み書き制御が、
（１）親メディアを１のドライブにロード（搭載）してメタデータから親メディアのＩＤ情報を確保し、
（２）前記ロードされた親メディアに、ファイルの最初の部分を書込むと同時に、メタデータとして、（ａ）ファイルの名と前記ファイルの属性情報、及び（ｂ）最初の前記ファイル部分の属性情報を保存し、
（３）前記ロードされた親メディアに、後続のファイル部分が順次ロードされる子メディアに書込み完了するまで親メディアを前記ドライブに常駐させ、
（４）後続のファイル部分を書込むために、別のドライブに子メディアをロードし前記子メディアのＩＤ情報をメタデータから確保し、
（５）前記ロードされた子メディアに、前記後続のファイル部分を書込むと同時に、メタデータとして、（ｃ）親メディアのＩＤ情報、及び（ｄ）前記ファイル部分の属性情報を保存し、
（６）（ｅ）前記子メディアのＩＤ情報、及び（ｆ）前記ファイル部分の属性情報を、常駐している親メディアの前記メタデータとして追加保存し、
（７）前記（４）〜（６）のステップを、ファイルの最後のファイル部分が後続の子メディアに書込みが完了するまで繰り返す、ことを実行する。
【００１７】
更に、かかる目的のもと、本発明は、上記書込み方法で書き込まれた複数のメディアに書込まれたファイルを読み出すストレージ・システムである。この読み出すストレージ・システムは、そのストレージ・ストレージの読み書き制御が、
（１）ファイルの部分を保存した複数のメディアの１つをドライブにロードするステップと、
（２）前記ロードされたメディアからメタデータを読出し、前記メタデータから前記メディアが前記ファイルについて親メディアか子メディアかを判定するステップと、
（３）前記ロードされたメディアが子メディアの場合、前記子メディアに保存されたメタデータから親メディアのＩＤ情報を確保するステップと、
（４）前記確保されたＩＤ情報により特定される親メディアをドライブにロードするステップと、
（５）前記ロードされた親メディアに保存されたメタデータに基づいて、書き込まれた最初のファイル部分を読み出すと同時に、前記メタデータに含まれるファイル部分の属性情報から各ファイル部分を保存した子メディアのＩＤ情報を確保するステップと、
（６）前記確保されたＩＤ情報に基づいて前記ＩＤ情報に対応する子メディアをドライブにロードして、前記子メディアのファイル部分の属性情報に基づいて前記ファイルの部分を読み出すステップと、
（７）前記（６）においてファイル部分を読み出すステップは、前記（５）のステップにおいて確保されたＩＤ情報に対応する子メディアをロードして前記子メディアから後続のファイル部分を読み出すことを繰返し、
（８）前記（７）のステップにおいて、ファイルの終端を検知すると１つのファイルの読み出しが終了する、ことを実行する。
【発明の効果】
【００１８】
上述の本発明を適用するストレージ・システムでは、複数のメディアに書き込まれたファイルの読み出し時に発生するアンロード／ロードの時間を短縮して読み出しパフォーマンスが向上する。
【図面の簡単な説明】
【００１９】
【図１】１つのファイルを複数のメディアに書込むストレージ・システムを示す。
【図２】１つのファイルを複数メディアにスパニングする場合、それぞれのメディアが他のメディアのＩＤ情報を保持する態様を示す。
【図３】本発明が適用される、複数のテープドライブを含むテープライブラリ・システムの構成例を示す。
【図４】テープ媒体がインデックス・パーティション及びデータ・パーティションを含む場合を示す。
【図５】本発明の、１つのファイルを複数のメディアに書込むフローを示す。
【図６】本発明の書込み方法により複数のメディアに書き込まれた１つのファイルを読み出すフローを示す。
【発明を実施するための形態】
【００２０】
以下において、ストレージ・システム（複数のテープドライブを含む）へのファイルのファイル部分のデータの書込み、読み出し、及び編集の場合について本発明の実施の形態（実施例）を説明する。
【００２１】
本発明は、複数のドライブを使用して、複数のメディアにメディアの容量を超えるデータを書き込むことを想定する。書込み方法のステップは次のように与えられる。
（１）最初のメディア（親メディア）はそのファイルの書き込みが完了するまで一台のドライブにロードしたまま常駐させる。
（２）残りのメディア（子メディア）への書込みは別の1台もしくは２以上のドライブを使用して行う。
（３）分割されたファイルの断片（ファイル部分）が含まれるメディアの情報は最初のメディアで一元管理する。
（４）子メディアには、親メディアのＩＤ情報を保存しておく。
【００２２】
図１は、１つのファイルを複数のメディアに書込むストレージ・システムを示す。
ａ，ｂ，ｃ，ｄは、メディアの指標を意味するＩＤ情報であり、ストレージ・システムは、このＩＤで目的のメディアを特定（identify）する。ストレージ・システムは２以上のテープドライブ（ドライブ）を含む。１つのドライブに最初のメディア（親メディア）ａをロードし、ファイルの先頭（最初のファイル部分）を書込む。親メディアaは、ファイル全体の書込みが完了するまで間一台のドライブを専有する。親メディアには、メタデータとしてそのファイルの属性情報（ファイル名、サイズ）を保存する。また、親メディアはドライブにロードされている間、子メディアのＩＤ情報（ｂ，ｃ，ｄ）と関連付けてファイルを構成する断片（ファイルの部分１，部分２，部分３，部分４）の属性情報（ファイル部分名、メディア上のデータ位置、サイズ）をメタデータとして逐次保存する。なお、オフセットは、ブロックＮｏ．のブロックの先頭からのオフセット値（バイト値）を意味する。ホスト及びドライブは共にブロックＮｏ．により読み書きブロックを特定できる。本発明は、専らテープライブラリ・システムを使用する場合を想定しているが、単体のドライブを２台以上使用するシステム形態であれば本発明を適用することができる。
【００２３】
図２は、１つのファイルを複数メディアにスパニングする場合、それぞれのメディアが他のメディアのＩＤ情報ａ，ｂ，ｃ，ｄを保持する態様を示す。態様は、１つのファイルが例えば４つのファイル部分に分割され、４つのメディアに書き込まれる場合を示す。
図２（ａ）は、１つのファイルを複数のメディアに渡って書込むスパニングの従来の方法を示す。例えば、今書いているメディアには、直前に書いたメディアの情報(例１)、もしくはそれまでに書いたすべてのメディアの情報(例２)を記載しておくことになる。
例１の場合、メディア上にあるファイルを読み出すために、前のメディアのつながりを一つ一つたどっていく必要がある。例１では、無駄なカートリッジ(メディア)のアンロード/ロードが発生することになる。
例２の場合、どのメディアからファイル１を読み出そうとした場合にでも、一度のアンロード/ロードによってファイルの先頭が含まれているメディアaを特定することができる。しかしながら、ファイル１に修正が入ったときに修正されたメディアの情報を複数のメディアに反映させる必要があるので、複数回のメディアのアンロード/ロードが発生することになる。
【００２４】
図２（ｂ）は、１つのファイルを複数のメディアに渡って書込むスパニングの本発明の方法を示す。
ファイルの書き込みにおいては、親メディアにはスパニングされるファイル部分の属性情報を書いておく。子メディアには、親メディアを指し示すＩＤ情報を書いておく。親メディアａが、ファイルの部分（部分２，部分３，部分４）が書き込まれる子メディアのＩＤ情報ｂ，ｃ，ｄを保存する。親メディアは、最初のファイルの部分（部分１）をデータ・パーティションに書込む。後続のファイルの部分２、部分３，部分４が子メディアｂ,ｃ,ｄに全て書き込まれるまでドライブにロードされたままである。親メディアは、後続の部分のファイルの部分２，部分３，部分４が書き込まれた子メディアのＩＤ情報ｂ,ｃ,ｄもメタデータと保存する。親メディアに保存されたＩＤ情報ｂ，ｃ，ｄの配置順によりファイル部分の書込み順を特定できる。また、親メディアａは、子メディアのＩＤ情報ｂ，ｃ，ｄとファイル部分の属性情報とを関連付けてメタデータとして保存する。子メディアのそれぞれは、ファイル部分（部分２，部分３，部分４）をデータ・パーティションに書込む。このファイル部分の属性情報をメタデータとして保存する。子メディアに書き込まれたファイル部分は、親メディアに書き込まれたファイル部分ａに続いて順に読み出される。また、ファイルシステム（例えばＬＴＦＳ）は、各子メディアのファイル部分のみを単独でその部分名を指定して読み出すことも出来る。子メディアは、ファイル部分及びその属性情報ばかりでなく、親メディアのＩＤ情報ａを保存する。ライブラリ・マネージャは、子メディアに保存されたメタデータから親メディアのＩＤ情報を取得し、そのＩＤに基づいてドライブに親メディアをロードする。ライブラリ・マネージャは、親メディアのメタデータからファイル部分を順に書き込んだ子メディアのＩＤ情報を取得して、その順番に従ってファイル部分を読み出し、ファイル全体の読み出しを完了する。
【００２５】
図３は、本発明が適用される、複数のテープドライブを含むテープライブラリ・システムの構成例を示す。ストレージ・システム１００は、３つのテープドライブ６０、テープカートリッジ（メディア）４０、そのテープカートリッジを収納するスロット４５を含む。ストレージ・システム内にはスロット４５に収納された多数のテープカートリッジ４０が存在する。
【００２６】
ライブラリ・マネージャ５０は、ホスト１０とストレージ・システム１００との間にあって、複数のドライブ６０及び複数のテープカートリッジ４０を集中管理する。ライブラリ・マネージャは、複数のカートリッジ４０及びドライブ６０を仮想化し、読み書き制御を行う。ライブラリ・マネージャ５０の一例としては、ＩＢＭ社のTape System Library Manager(TSLM)である。ホスト１０のアプリケーション３０は、ライブラリ・マネージャ５０を介して、ストレージ・システム１００にファイルの読み書き要求を行う。ストレージ・システム１００は、アプリケーション３０が発行する各種コマンド（読み書き、位置決めなど）により制御される。ライブラリ・マネージャ５０は、アプリケーションからのコマンドを一時保管し、コマンドに対応したＳＣＳＩコマンドなどをストレージ・システム１００に向けて出力する。専用のソフトウェアとしてのアプリケーションの一例としては、ＩＢＭ社のTivoli Storage Manager が該当する。
【００２７】
ライブラリ・マネージャ５０は、アプリケーションからコマンドとして、ロード要求するコマンドを受け取る。通常はこのコマンドが実行される場合、ライブラリ・マネージャ５０は空ドライブを複数（３つ）のドライブから検索する。ロード要求されたテープカートリッジをロード可能な空ドライブに搭載する。３つのドライブが使用中である場合は空きドライブが発生するまで、ライブラリ・マネージャは待たされる。
【００２８】
テ−プドライブ（ドライブ）６０について説明する。
テ−プドライブ６０、ホスト１０から送られた複数のデータを固定長のデータセット（ＤａｔａＳｅｔ；ＤＳと言う。）単位でテ−プ記録媒体への書込み読込を行う。ＤＳの典型的な大きさは４ＭＢである。ホスト１０のアプリケーション３０は、１２８ＫＢのブロック単位でファイルシステムを介してテープドライブに書込み／読み出し要求を送る。通信規格としてＳＣＳＩを用いる場合、ホスト３０は、書き込み／読取りデータのための要求（Ｗｒｉｔｅ／Ｒｅａｄ）をテープドライブ６０に発行する。なお、テープドライブは、複数のブロックから構築されたＤＳを単位でデータの読み書きを行う。
【００２９】
テ−プドライブ６０は、ホスト１０から受取ったコマンドに従って、データのテ−プへの書込みやテ−プからの読出しをする。テ−プドライブ６０は、バッファ、読み書きチャネル、ヘッド、モ−タ、テ−プ（メディア）を巻きつけるリ−ルと、読み書き制御と、ヘッド位置制御システムと、モ−タドライバとを含む。テ−プドライブは、テープカートリッジを着脱可能に搭載する。テ−プは、リ−ルの回転に伴い、長手方向に移動する。ヘッドは、テ−プが長手方向に移動してテ−プに対してデータを書き込んだり、テ−プからデータを読出したりする。また、テープカートリッジ４０はカートリッジメモリ（ＣＭ：CartridgeMemory）と呼ばれる非接触不揮発性メモリを備える。テープカートリッジ４０に搭載されたＣＭは、テープドライブ１０により非接触的に読み書きされる。ＣＭはカートリッジ属性を保管する。テープドライブは、読出し及び書込み時に、ＣＭからカートリッジ属性を取り出して最適な読み書きができるようにする。
【００３０】
テープドライブは、ＨＤＤ等と同様にファイルシステム上でも利用可能である。例えばＬＴＦＳでは、メディア上に書かれたデータをファイルとして見せることができる。
テープドライブでは、テープが２つのパーティションに分けられる。各パーティションはあたかも１つのテープのように扱え、それぞれにデータを選択的に書き込むことができる。テープドライブ用のファイルシステム、例えばＬＴＦＳでは、メディア上に書かれたデータをファイルとして見せることができる。ＬＴＦＳは、ファイルの属性情報として、メディア上の位置、サイズ、ファイルのパスなどをインデックス・パーティション（Index Partition）に保持している。ひとつのファイルが修正などされて複数の部分に分割された場合には、複数の構成要素をメタデータとして持つことにより表現される。たとえば、ファイルfile_nameが３つの部分に分割されているときは、メタデータはfile_name,length, ((offset1, size1), (offset2, size2), (offset3, size3))のようなに記述される。これらメタデータにより１つのファイルfile_nameは、３つのメディア上では離れたデータ同士をＬＴＦＳはひとつのファイルとして管理できる。
【００３１】
図４は、テープ媒体が２つのパーティション（インデックス・パーティション、データ・パーティション）を含む場合を示す。
図４（ａ）及び（ｂ）は、本発明のテープカートリッジ４０内のテープ媒体の構成例を示す図である。
（ａ）は、ＩＢＭ社のエンタープライズテープドライブＴＳ１１４０でサポートされているテープ媒体の一例である。（ｂ）は、ＬＴＯ５に準拠したテープ媒体の一例である。
（ａ）は、パーティションＰ０、Ｐ１がテープの走行（長手）方向の位置Ａ、Ｂで前後に区分けされる例である。位置Ａ、Ｂは基本的に任意に設定できる。
（ｂ）は、パーティションＰ０、Ｐ１がテープの幅（短手）方向の位置Ｃで上下に区分けされる例である。なお、両図においてパーティション数は２であり、２つのパーティションＰ０、Ｐ１に分けているが、様々な仕様に応じてパーティション数は３以上の任意の数に変更することは可能であることは言うまでもない。
【００３２】
図４（ａ）と（ｂ）において、いずれも記録面は、１２．６５ｍｍ幅のテープに４本のデータバンドＤＢ０〜３を挟む形で５本のサーボバンド５５が配置されている。例えば、ＬＴＯ５では、１本のデータバンドは３２０本のデータトラック（図示なし）を有し、合計では１２８０本のデータトラックを持っている。サーボバンド５５の各々には、ヘッドを正確に導く（トラッキングさせる）ためのサーボパターンが予め記録されている。テープドライブ１０は、各データバンドＤＢ０〜３を挟む２本のサーボバンド５５中のサーボパターンを読み取りながら高精度にヘッドを位置付けし、データの書き込みや読み出しを実現する。
【００３３】
図４（ａ）及び（ｂ）において、ＦＩＤと指示される領域には、テープカートリッジ５５のＣＭに書き込まれた情報と同じ情報、例えば、テープ媒体（メディア）上にどのようにデータが書かれたかの情報が記録される。ＣＭからの読み取りが困難な場合でもテープカートリッジからデータを読み出せるようにするためである。
【００３４】
具体的には、例えば図４のパーティションＰ０をインデックス・パーティションとし、パーティションＰ１をデータ・パーティションとする。インデックス・パーティションには、ファイルとインデックス情報の履歴を記憶させる。常に最新のファイル部分の属性情報を含むメタデータのみをテープ媒体の前方にあるインデックス・パーティションＰ０に保管することにより、ファィルシステム（ＬＴＦＳ）を利用によりファイルへの高速なアクセスを保つことができる。
【００３５】
本発明の書込み方法は次の通りである。
（１）任意の最初のメディアをドライブにロードして書き始める。最初のメディアが親メディアとなる。例えばＬＴＦＳは、固定長（例えばＬｉｎｕｘのＩＯでは１２８KB）ブロック単位でデータを書き込む。ブロックの書き込みに成功したら次のブロックを送る。書き込みが開始された時点では、ファイルのサイズもわからない。書込み開始は、複数のメディアにまたがるかどうか不明であるので、通常のファイル書き込みを開始する。
（２）書き込んだファイルのサイズが親メディアの容量を超えると、別のメディア（子メディア）を異なるドライブにロードする。最初のファイル部分が書き込まれた親メディアは、ドライブに常駐したままである。ファイルは、複数の部分（例えば、部分１，部分２，部分３，部分４）に分割されて、順に親メディア、後続の子メディアに書き込まれる。親メディアには、ファイルの属性情報（ファイル名、サイズ）と、ファイルの最初の部分１とその最初の部分１の属性情報（最初の部分名“部分１”、メディアでのデータ位置、サイズ）とを保存する。また、親メディアは、ファイル部分の属性情報（ファイル部分名（“部分２”，“部分３”，“部分４”）、子メディアのＩＤ情報（ｂ，ｃ，ｄ）、メディアでのデータ位置、サイズ）を含む。これら属性情報はメタデータとして保存される。メタデータにＩＤ情報が保存されている順序が、子メディアにファイル部分を書き込んだ順番を示す。メディアでのデータ位置は、ブロックＮｏ．とオフセットで与えられる。
（３）書き込んだファイルのサイズがメディアの容量を超えると、別のメディア（子メディア）を異なるドライブにロードする。この例では、全てのドライブがメディアで占有されたときに、最初のメディア以外のメディアでファイル部分の書込みが完了したメディアをアンロードして空ドライブを用意する。空ドライブに子メディアをロードし後続のファイル部分の書込みを行う。子メディアのメタデータには、親メディアのＩＤ、ファイル部分の属性情報（ファイル部分名（“部分２”，“部分３”，“部分４”）、メディアでのデータ位置、サイズ）を含む。
【００３６】
本発明の読み出しは次の通りである。
（１）ファイルの読み出し要求があると、ファイルの最初のファイル部分を固定長のブロック毎にホストに転送する。親メディアは、ＩＤ情報により特定される。ホストのアプリケーションはファイルシステム（例えばＬＴＦＳ）を介してＩＤ情報により特定されたメディアをドライブにロードして最初のファイル部分をブロック単位で読み始める。
・ファイルの読み出しに関して、最初のファイル部分（部分１）を含む親メディアが既にドライブにロードされている場合は、先頭から順にファイルを読み出す。
・このファイルの先頭以外の後続のファイル部分を含む子メディアが既にドライブにロードされている場合には、ファイルシステムは、その子メディアのメタデータから親メディアのＩＤ情報を読み出し、このＩＤから親メディアを特定できる。親メディアを空ドライブにロードして、親メディアからファイル部分を読み始める。二本目以降の子メディアを読み出すときには、一本目の親メディアはそのまま残しておき、別のドライブで二本目以降のメディアを読み出す。親メディアのメタデータには、後続のファイル部分を書き込んだ順番が把握できるように複数の子メディアのＩＤ情報が保存さている。
（２）全てのドライブがメディアで占有されたときに、親メディア以外のメディア（任意のメディア）でファイル部分の読み出しが完了したメディアをアンロードして空ドライブを準備しておく。その空ドライブに次の子メディアをロードし、後続のファイル部分の読み出しを行う。親メディア及び子メディア上のファイルの部分の終端まで来ると、次のファイル部分が書かれているメディアをロードして読み始める。なお、親メディアをドライブに常駐することは必ずしも必要はない。最初のファイル部分の読み出しと、メタデータをＤＲＡＭメモリなどに確保できていれば親メディアをアンロードしてよい。ドライブはなるべく子メディアのロードを迅速に出来るように使用することが読み出しパフォーマンスの向上となる。また、ファイル全体だけでなく、特定の子メディアに書き込まれたファイル部分を単体のファイルとして取り出すことも可能である。
【００３７】
図５は、１つのファイルを複数のメディアに書込む本発明のフローを示す。
ストレージ・システムの読み書き制御（例えば、ライブラリ・マネージャ）は以下のステップを処理する。書き込みを行う場合には、書き込みが完了したメディアを予めアンロードしておくと、次のメディアへのアクセス時にアンロードが発生しない分時間を短縮できる。
●（５１０）：ファイル書込み要求を受取る。
●（５２０）：1つのドライブにメディアがロードされているか判定する。
ロードされている場合（はい）、ステップ５４０にすすむ。
●（５３０）：メディアがロードされていない場合、空ドライブにメディアをロードする。
●（５４０）：１つのメディアがドライブにロードされた状態である。ブロック単位（例えば１２８ＫＢ）でファイルを書き始める。ドライブは複数のブロックがバッファに蓄積されてデータセット単位でメディアに書込む。
親メディアである場合は、ファイルの終端まで書込みが完了するまで（５５０）、ドライブにロードしたままである。
●（５５０）：ステップ５４０においてファイルの終端に到達したら書込みは完了する。
１つのファイルの全ファイル部分を複数の子メディアに書込みが完了した場合に、全てのメディアのＩＤ情報を親メディアに保存してもよい（５７０）。
●（５６０）：ステップ５４０においてメディアの終端に到達したらメディアを交換（６００）してファイル部分の書込み（５４０）を継続する。
１つのファイルの各ファイル部分を子メディア毎に書込みが完了した場合に、ＩＤ情報を親メディアに保存してもよい（５８０）。
●（５７０）：親メディアには後続のファイル部分の書込む子メディアのＩＤ情報を保存する。
１つのファイルの各ファイル部分を子メディア毎に書込みが完了した場合に、その子メディアのＩＤ情報をメモリに一時保管しておき、まとめて全ての子メディアのＩＤ情報を親メディアに保存してもよい。
●（５８０）：最初のメディア（親メディア）には後続のファイル部分の書込む子メディアのＩＤ情報を保存する。
１つのファイルの各ファイル部分を子メディア毎に書込みが完了した場合に、ＩＤ情報をメモリに一時保管しておき、その後1本毎に（５６０）子メディアのＩＤ情報を親メディアに保存してもよい。
●（６００）：新たなドライブに新たなメディアの交換を行う。メディアの終端に到達したら（５６０、はい）、ファイルの終端に到達するまで（５５０、いいえ）、新たな子メディアをドライブにロードする。メディアの交換は、ロードされている子メディアをアンロードして空きドライブを準備してもよい。また、ストレージ・システムが３以上ドライブを有する場合は、後続の子メディアを別の空きドライブにロードしてもよい。
●（６１０）：次の子メディアがドライブにロードされているかを確認する。
●（６２０）：子メディアがロードされていない場合（６１０，いいえ）、最初のメディア（親メディア）がドライブにロードされているかを確認する。
●（６４０）：親メディアがロードされていない場合（６２０，いいえ）、空ドライブが存在するかを確認する。
●（６５０）：親メディアがロードされている場合（６２０，はい）、後続の子メディアを別の空ドライブにロードして書込み準備をする。
●（６６０）：空ドライブが存在しない場合（６４０、いいえ）、任意のドライブ（親メディアが入っているドライブ以外の使用中のドライブ）からメディアをアンロードして、空ドライブを準備する。
●（６７０）：空ドライブが存在する場合（６４０、はい；６６０）、後続の子メディアをロードして書込み準備をする。
【００３８】
図６は、本発明の書込み方法により複数のメディアに書き込まれた１つのファイルを読み出すフローを示す。
ストレージ・システムの読み書き制御が以下のステップを処理する。読み出しを行う場合には、読み出しが完了したメディアを予めアンロードしておくと、次のメディアへのアクセス時にアンロードが発生しない分時間を短縮できる。
●（７１０）：１つのファイルの最初のブロックの読み出し要求を受取る。
●（７２０）：最初のブロックを含む最初のメディア（親メディア）がドライブにロードされているかを確認する。子メディアがロードされている場合、そのメタデータから親メディアのＩＤ情報を取得する（以下の７４０及び７５０と同じ）。
●（７３０）：最初のメディア（親メディア）がドライブにロードされていない場合（７２０，いいえ）、取得された上記ＩＤ情報に基づいて親メディアをドライブにロードする。
●（７４０）：メディア（親メディアまたは子メディア）のインデックス・パーティションからメタデータを読み出す。
なお、親メディアの場合最初のファイル部分を読み出す。また、後続のファイル部分を含む子メディアを特定するために、親メディアのメタデータをストレージ・システムのメモリなどに確保する。後続のファイル部分を含む子メディアをロードするために、親メディアをドライブからアンロードして空ドライブを準備する。なお、全て子メディアのファイル部分の読み出しが完了するまで、親メディアをドライブに常駐させてもよい。常駐しておくと、読み出したファイルを編集した場合、親メディアを改めてロードしなおす必要がなくなる。
●（７５０）：メタデータからメディアのＩＤ情報、ファイル及びファイル部分の属性情報を取得する。
・親メディアのメタデータは、ファイルの属性情報（ファイル名、サイズ）、最初のファイル部分の属性情報（部分名、メディアでのデータ位置、サイズ）、ファイル部分の属性情報（ファイル部分名、子メディアのＩＤ情報、メディア上でのデータ位置、サイズ）である。
・子メディアのメタデータは、親メディアのＩＤ情報、ファイル部分の属性情報（ファイル部分名、メディア上でのデータ位置、サイズ）である。
・なお、メディア上でのデータ位置は、ブロックＮｏ．とそのブロックでのオフセットにより指定できる。
●（７６０）：取得されたメタデータから読み出すデータ（ブロックＮｏ．）がロードされているメディアに保存されているかを確認する。
●（７７０）：目的のデータがロードされているメディアに保存されている場合（７６０、はい）、取得されたその子メディアから目的のデータをブロック単位で読み出す。または、取得された親メディアのメタデータ（７４０及び７５０）から、目的のデータを含むファイル部分が書き込まれた子メディアのＩＤ情報を確保できる。そのＩＤ情報により対応する子メディアをロードして（８００）、その子メディアから目的のデータをブロック単位で読み出す。
●（７８０）：取得された親メディアのメタデータ（７４０及び７５０）から、最後の子メディアのファイル部分の属性情報の読み出しが完了したかを確認する。
●（８００）：メタデータに含まれる属性情報から読み出すデータ（ブロックＮｏ．）を含むメディアＩＤ情報を特定する。そのＩＤ情報に対応する子メディアをドライブにロードする。
【００３９】
以上より、本発明の読み出し方法は、上記書込みによるファイルの読み出し時に発生するアンロード/ロードにかかる時間を短縮し、読み出しパフォーマンスを向上させる。具体的には、複数メディアにまたがるファイルを読み出す際に、子メディアに保存された情報から親メディアに１回のみでアクセスできるので、メディアのアンロード／ロードの回数を減らせる。なお、本発明を実施の形態（実施例）を用いて説明したが、本発明の範囲は上記実施例には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００４０】
１０  ホスト（サーバ）、
４０  テープカートリッジ、
４５  スロット、
５５  サーボバンド、
６０  テープドライブ、
１００  ストレージ・システム（テープライブラリ・システム）
【図１】
2014115807.tif 000003
【図２】
2014115807.tif 000004
【図３】
2014115807.tif 000005
【図４】
2014115807.tif 000006
【図５】
2014115807.tif 000007
【図６】
2014115807.tif 000008