(57)【要約】【課題】目標復旧時間内での復旧を可能にすること。【解決手段】ファイル管理装置は、ファイルシステムで用いられるインデックス情報を記憶する可換型記憶媒体を収納可能であり、可換型記憶媒体に対するデータの読出しおよび書込みを行う。情報処理装置は、各可換型記憶媒体に記憶されたインデックス情報をファイル管理装置から取得して保持し、インデックス情報を用いて各可換型記憶媒体に記憶されたファイルを識別する。ファイル管理装置は、システム障害に対する目標復旧時間に基づいて、情報処理装置により保持されるインデックス情報のバックアップを取得するタイミングを決定し、当該タイミングを情報処理装置に通知する。情報処理装置は、通知されたタイミングで、ファイル管理装置を用いて、所定の可換型記憶媒体にインデックス情報のバックアップを取得する。【選択図】図１
2018010398.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステムで用いられるインデックス情報を記憶する複数の可換型記憶媒体を収納可能であり、可換型記憶媒体に対するデータの読出しおよび書込みを行うファイル管理装置と、
前記複数の可換型記憶媒体それぞれに記憶された前記インデックス情報を前記ファイル管理装置から取得して保持し、前記インデックス情報を用いて前記複数の可換型記憶媒体それぞれに記憶されたファイルを識別する情報処理装置と、を有し、
前記ファイル管理装置は、システム障害に対する目標復旧時間に基づいて、前記情報処理装置により保持される前記インデックス情報のバックアップを取得するタイミングを決定し、前記タイミングを前記情報処理装置に通知し、
前記情報処理装置は、通知された前記タイミングで、前記ファイル管理装置を用いて、所定の可換型記憶媒体に前記バックアップを取得する、
ファイル管理システム。
【請求項２】
前記ファイル管理装置は、前記情報処理装置の障害復旧の際に、前記インデックス情報の読込みの対象となる各可換型記憶媒体からの前記読込みの所要時間の合計が前記目標復旧時間以下になるように前記タイミングを決定する、請求項１記載のファイル管理システム。
【請求項３】
前記ファイル管理装置は、前記目標復旧時間に基づいて、障害復旧の際に前記インデックス情報の読出し対象として許容される前記可換型記憶媒体の数の上限値を計算し、前回のバックアップ後に前記インデックス情報が更新された前記可換型記憶媒体の数と前記上限値との比較に応じて前記タイミングを決定する、請求項１または２記載のファイル管理システム。
【請求項４】
前記ファイル管理装置は、前記可換型記憶媒体に対するデータの読出しおよび書込みを行うドライブの数に基づいて前記上限値を計算する、請求項３記載のファイル管理システム。
【請求項５】
前記ファイル管理装置は、前記可換型記憶媒体を前記ドライブから搬送するたびに、当該可換型記憶媒体の前記インデックス情報が更新されたか否かを確認し、前回のバックアップ後に前記インデックス情報が更新された前記可換型記憶媒体の数が前記上限値に達すると、前記インデックス情報の前記バックアップの取得を前記情報処理装置に通知する、請求項４記載のファイル管理システム。
【請求項６】
前記ファイル管理装置は、前回のバックアップ後からの前記複数の可換型記憶媒体それぞれの前記インデックス情報の更新有無を記録し、前記情報処理装置の障害復旧の際に、前記所定の可換型記憶媒体が備えるメモリに前記更新有無を示す更新情報を格納し、
前記情報処理装置は、前記メモリに格納された前記更新情報に基づいて、前記所定の可換型記憶媒体に加えて前記インデックス情報の読出し対象とする前記可換型記憶媒体を選択する、
請求項１乃至５の何れか１項に記載のファイル管理システム。
【請求項７】
ファイルシステムで用いられるインデックス情報を記憶する複数の可換型記憶媒体を収納可能な媒体収納部と、
可換型記憶媒体に対するデータの読出しおよび書込みを行うドライブと、
前記ドライブを用いて複数の可換型記憶媒体それぞれに記憶された前記インデックス情報を読出して情報処理装置に送信し、システム障害に対する目標復旧時間に基づいて、前記情報処理装置により保持される前記インデックス情報のバックアップを取得するタイミングを決定し、前記タイミングを前記情報処理装置に通知する演算部と、
を有するファイル管理装置。
【請求項８】
コンピュータに、
ファイルシステムで用いられるインデックス情報を記憶する可換型記憶媒体に対するデータの読出しおよび書込みを行うドライブを用いて、複数の可換型記憶媒体それぞれから前記インデックス情報を読出して情報処理装置に送信し、
システム障害に対する目標復旧時間に基づいて、前記情報処理装置により保持される前記インデックス情報のバックアップを取得するタイミングを決定し、
前記タイミングを前記情報処理装置に通知する、
処理を実行させるファイル管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイル管理システム、ファイル管理装置およびファイル管理プログラムに関する。
【背景技術】
【０００２】
現在、データの保存に磁気テープを有するテープ媒体が利用されている。例えば、ホストサーバのバックアップデータを磁気テープに書込む磁気テープライブラリ装置が提案されている。この提案では、バックアップデータのインデックス（具体的にはバックアップの作成日時）と記録先媒体情報と記録位置情報とを磁気テープ以外の記憶装置に格納することで、リストア時に、バックアップデータのインデックスによる検索を高速化する。
【０００３】
また、近年では、ＬＴＦＳ（Linear Tape File System）と呼ばれるファイルシステムが利用されることがある。ＬＴＦＳでは、テープ媒体の一部領域をファイルシステム用のインデックス情報を記録する領域（インデックスパーティション）として利用し、テープ媒体に記録されたデータをファイル単位で取り扱えるようにする。
【０００４】
例えば、ＬＴＦＳを用いるシステムで、インデックスパーティションの更新頻度を減らす提案がある。この提案では、テープライブラリにおけるテープの通常のアンマウント時には、メタ情報を、インデックスパーティションに記録する代わりに、ＨＤＤ（Hard Disk Drive）など別のローカルのストレージに記録しておく。そして、テープカートリッジをライブラリから取り出すときのみ、インデックスパーティションを更新する。
【０００５】
なお、第１のデータ格納媒体および第２のデータ格納媒体を備えるデバイスにおいて、第１のデータ格納媒体についてのファイルシステム情報のコピーを、バックアップとして第２のデータ格納媒体に格納する提案もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−６７１１３号公報
【特許文献２】特開２０１５−９０６５５号公報
【特許文献３】特開２０１４−１８２８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のように、可換型の記憶媒体（例えば、テープ媒体）の所定領域にファイルシステム用のインデックス情報を格納することがある。この場合、情報処理装置（例えば、サーバコンピュータ）は、複数の記憶媒体を収納するファイル管理装置（例えば、ライブラリ装置）から、各記憶媒体に格納されたインデックス情報を取得し、当該インデックス情報によりファイルを識別する。情報処理装置は、自身の記憶装置にインデックス情報を保持しておくことで、各記憶媒体上のインデックス情報を直接参照しなくても、自身で保持するインデックス情報により、各記憶媒体内のファイルやディレクトリ構造などを識別できる。
【０００８】
ここで、情報処理装置に障害が発生し、情報処理装置上のインデックス情報を利用できなくなることがある。この場合、全記憶媒体のインデックス情報を順次読出して、情報処理装置上のインデックス情報を復元することが考えられる。しかし、記憶媒体の読出しを行うドライブには限りがあり、また、ドライブに対する記憶媒体の入替えも伴うため、全記憶媒体からインデックス情報を読出すには時間がかかる。このため、情報処理装置上のインデックス情報の復元の所要時間が、システムで許容される障害発生から復旧までの目標復旧時間を超過するおそれがあるという問題がある。
【０００９】
１つの側面では、本発明は、目標復旧時間内での復旧を可能にすることを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、ファイル管理システムが提供される。このファイル管理システムは、ファイル管理装置と情報処理装置とを有する。ファイル管理装置は、ファイルシステムで用いられるインデックス情報を記憶する複数の可換型記憶媒体を収納可能であり、可換型記憶媒体に対するデータの読出しおよび書込みを行う。情報処理装置は、複数の可換型記憶媒体それぞれに記憶されたインデックス情報をファイル管理装置から取得して保持し、インデックス情報を用いて複数の可換型記憶媒体それぞれに記憶されたファイルを識別する。ファイル管理装置は、システム障害に対する目標復旧時間に基づいて、情報処理装置により保持されるインデックス情報のバックアップを取得するタイミングを決定し、当該タイミングを情報処理装置に通知する。情報処理装置は、通知されたタイミングで、ファイル管理装置を用いて、所定の可換型記憶媒体にバックアップを取得する。
【００１１】
また、１つの態様では、ファイル管理装置が提供される。このファイル管理装置は、媒体収納部とドライブと演算部とを有する。媒体収納部は、ファイルシステムで用いられるインデックス情報を記憶する複数の可換型記憶媒体を収納可能である。ドライブは、可換型記憶媒体に対するデータの読出しおよび書込みを行う。演算部は、ドライブを用いて複数の可換型記憶媒体それぞれに記憶されたインデックス情報を読出して情報処理装置に送信し、システム障害に対する目標復旧時間に基づいて、情報処理装置により保持されるインデックス情報のバックアップを取得するタイミングを決定し、当該タイミングを情報処理装置に通知する。
【００１２】
また、１つの態様では、ファイル管理プログラムが提供される。このファイル管理プログラムは、コンピュータに、ファイルシステムで用いられるインデックス情報を記憶する可換型記憶媒体に対するデータの読出しおよび書込みを行うドライブを用いて、複数の可換型記憶媒体それぞれからインデックス情報を読出して情報処理装置に送信し、システム障害に対する目標復旧時間に基づいて、情報処理装置により保持されるインデックス情報のバックアップを取得するタイミングを決定し、当該タイミングを情報処理装置に通知する、処理を実行させる。
【発明の効果】
【００１３】
１つの側面では、目標復旧時間内での復旧を可能にする。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態のファイル管理システムを示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】ライブラリのハードウェア例を示す図である。
【図４】サーバのハードウェア例を示す図である。
【図５】テープ媒体の例を示す図である。
【図６】ＬＴＦＳによるファイル管理例を示す図である。
【図７】テープ媒体のパーティション例を示す図である。
【図８】情報処理システムの機能例を示す図である。
【図９】ＣＭに格納される更新フラグの例を示す図である。
【図１０】更新管理テーブルの例を示す図である。
【図１１】専用媒体のＣＭに格納されるビットマップ例を示す図である。
【図１２】ライブラリによる読込み媒体巻数決定例を示すフローチャートである。
【図１３】サーバによるデータ更新例を示すフローチャートである。
【図１４】ライブラリによる媒体管理例を示すフローチャートである。
【図１５】サーバによるインデックスバックアップ例を示すフローチャートである。
【図１６】ライブラリによるリストア用媒体ロード例を示すフローチャートである。
【図１７】サーバによるリストア例を示すフローチャートである。
【図１８】テープ媒体に対するデータ更新時のシーケンス例である。
【図１９】インデックス情報のリストア時のシーケンス例である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のファイル管理システムを示す図である。第１の実施の形態のファイル管理システムは、ファイル管理装置１および情報処理装置２を有する。
【００１６】
ファイル管理装置１は、複数の可換型記憶媒体を収納可能である。可換型記憶媒体は、例えば、（Linear Tape-Open、ＬＴＯは登録商標）などのテープ媒体である。なお、可換型記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）などの光ディスクカートリッジでもよい。
【００１７】
複数の可換型記憶媒体それぞれは、ファイルシステムで用いられるインデックス情報を記憶する。例えば、ファイルシステムとしては、可換型記憶媒体としてテープ媒体を用いる場合、ＬＴＦＳが考えられる。ただし、可換型記憶媒体として光ディスクカートリッジを用いる場合、ＬＴＦＳ以外のファイルシステム（例えば、ベンダ独自のファイルシステムなど）でもよい。
【００１８】
ファイル管理装置１は、可換型記憶媒体に対するデータの読出しおよび書込みを行う。ファイル管理装置１は、可換型記憶媒体のライブラリ装置またはライブラリと呼ばれるものでもよい。
【００１９】
情報処理装置２は、複数の可換型記憶媒体それぞれに記憶されたインデックス情報をファイル管理装置１から取得して保持する。情報処理装置２は、ファイルシステム（例えば、ＬＴＦＳ）の機能を有する。情報処理装置２は、取得したインデックス情報を用いて複数の可換型記憶媒体それぞれに記憶されたファイルを識別する。
【００２０】
ここで、ファイル管理装置１は、記憶部１ａ、演算部１ｂ、ドライブ１ｃ、ロボット１ｄおよび媒体収納部１ｅを有する。
記憶部１ａは、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置でもよい。記憶部１ａは、目標復旧時間情報Ｄ１１および更新テーブルＤ１２を記憶する。
【００２１】
目標復旧時間情報Ｄ１１は、システム障害に対する目標復旧時間（ＲＴＯ：Recovery Time Objective）を示す情報であり、記憶部１ａに対して予め格納される。例えば、目標復旧時間（ＲＴＯ）＝Ｔである。システム障害に対する目標復旧時間は、情報処理装置２における障害で、情報処理装置２が保持するインデックス情報を利用できなくなった場合に、障害発生から、情報処理装置２上のインデックス情報を復元するまでに許容される時間である。
【００２２】
更新テーブルＤ１２は、ファイル管理装置１に収納された複数の可換型記憶媒体それぞれにおけるインデックス情報の更新有無を示す更新情報である。例えば、更新テーブルＤ１２は、媒体ＩＤ（IDentifier）および更新フラグの項目を有する。媒体ＩＤは、可換型記憶媒体を識別するための識別情報であり、媒体収納部１ｅにおける可換型記憶媒体の収納位置（セル位置）を示す情報（セルＩＤ）でもよい。更新フラグは、情報処理装置２によるインデックス情報の前回のバックアップからの更新有無を示すフラグである。例えば、更新フラグ＝“ＦＡＬＳＥ”は更新なしを示す。更新フラグ＝“ＴＲＵＥ”は更新ありを示す。例えば、更新テーブルＤ１２には、媒体ＩＤ“１”に対して、更新フラグ“ＦＡＬＳＥ”が登録されている。また、更新テーブルＤ１２には、媒体ＩＤ“２”に対して更新フラグ“ＴＲＵＥ”が登録されている。更新テーブルＤ１２には、他の媒体ＩＤに対しても同様に更新フラグが登録されている。
【００２３】
演算部１ｂは、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。演算部１ｂはプログラムを実行するプロセッサであってもよい。「プロセッサ」は、複数のプロセッサの集合（マルチプロセッサ）でもよい。
【００２４】
演算部１ｂは、システム障害に対する目標復旧時間に基づいて、情報処理装置２によるインデックス情報のバックアップのタイミングを決定する。また、演算部１ｂは、更新テーブルＤ１２における更新フラグの更新を行う。
【００２５】
ドライブ１ｃは、可換型記憶媒体に対するデータの読出しおよび書込みを行うデバイスである。ファイル管理装置１は、ドライブ１ｃを複数備えてもよい。ロボット１ｄは、媒体収納部１ｅに収納された可換型記憶媒体のドライブ１ｃへの搬送や、ドライブ１ｃに収納された可換型記憶媒体の媒体収納部１ｅへの搬送を行う。
【００２６】
媒体収納部１ｅは、複数の可換型記憶媒体を収納する収納棚である。例えば、媒体収納部１ｅには、可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・が収納されている。可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・それぞれは、ファイルおよび当該ファイルを識別するためのインデックス情報を記憶する。例えば、可換型記憶媒体Ｃ１はインデックス情報Ｘ１を記憶する。可換型記憶媒体Ｃ２は、インデックス情報Ｘ２を記憶する（他の可換型記憶媒体もインデックス情報を記憶する）。媒体収納部１ｅには、可換型記憶媒体Ｅ１も収納されている。可換型記憶媒体Ｅ１は、情報処理装置２によるインデックス情報のバックアップ（インデックスバックアップと称することがある）を記録するための専用の記録媒体である。ここで、可換型記憶媒体Ｃ１の媒体ＩＤは“１”である。可換型記憶媒体Ｃ２の媒体ＩＤは“２”である。他の可換型記憶媒体も同様に媒体ＩＤにより識別される。
【００２７】
情報処理装置２は、記憶部２ａおよび演算部２ｂを有する。
記憶部２ａは、記憶部１ａと同様に、ＲＡＭなどの揮発性記憶装置でもよいし、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置でもよい。記憶部２ａは、インデックス管理テーブルＤ２１を記憶する。インデックス管理テーブルＤ２１は、可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・それぞれから読出されたインデックス情報の集合である。例えば、インデックス管理テーブルＤ２１は媒体ＩＤおよびインデックス情報の項目を有する。媒体ＩＤは、可換型記憶媒体の識別情報であり、前述のように媒体収納部１ｅにおける可換型記憶媒体の収納位置を示す情報でもよい。インデックス情報は、各可換型記憶媒体から読出されたインデックス情報である。例えば、インデックス管理テーブルＤ２１には、媒体ＩＤ“１”（可換型記憶媒体Ｃ１）に対して、インデックス情報Ｘ１が登録されている。例えば、情報処理装置２は、システムの運用開始前に、可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・の各インデックス情報をファイル管理装置１から取得し、インデックス管理テーブルＤ２１に登録しておいてもよい。すなわち、演算部１ｂは、システムの運用開始前に、可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・の各インデックス情報を、ドライブ１ｃを用いて読出し、情報処理装置２に送信しておいてもよい。あるいは、演算部１ｂは、ある可換型記憶媒体をファイルシステム（例えば、ＬＴＦＳ）により利用可能になるよう設定した際に、該当の可換型記憶媒体のインデックス情報を、情報処理装置２に送信してもよい。
【００２８】
演算部２ｂは、演算部１ｂと同様に、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどを含み得る。演算部２ｂは、プログラムを実行するプロセッサであってもよい。「プロセッサ」は、複数のプロセッサの集合（マルチプロセッサ）でもよい。
【００２９】
演算部２ｂは、記憶部２ａに記憶された所定のプログラムを実行することでファイルシステム（例えば、ＬＴＦＳ）の機能を発揮する。演算部２ｂは、インデックス管理テーブルＤ２１に登録されたインデックス情報に基づいて、可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・に記録されたファイルを識別する。具体的には、演算部２ｂは、インデックス情報Ｘ１を参照して、可換型記憶媒体Ｃ１に格納されているディレクトリ構造やファイルの属性（ファイル名、更新日時およびサイズなど）を認識できる。演算部２ｂは、可換型記憶媒体Ｃ１のファイルにアクセスする場合、可換型記憶媒体Ｃ１をドライブ１ｃに搬送するようファイル管理装置１に指示し、インデックス情報Ｘ１に基づいて、該当のファイルに対する操作を、ファイル管理装置１に指示する。演算部２ｂは、ある可換型記憶媒体に対してファイルの追加、更新、削除などを行うと、当該可換型記憶媒体に格納されたインデックス情報を更新する。この場合、演算部２ｂは、記憶部２ａに記憶されたインデックス管理テーブルＤ２１における当該可換型記憶媒体のインデックス情報も更新する。
【００３０】
演算部２ｂは、ファイル管理装置１から通知されたタイミングで、記憶部２ａに記憶されたインデックス管理テーブルＤ２１のバックアップ（前述のインデックスバックアップに相当）を取得する。
【００３１】
ここで、ファイル管理装置１の演算部１ｂは、前述のように、システムの目標復旧時間Ｔに基づいて当該バックアップのタイミングを決定する。演算部１ｂは、情報処理装置２の障害復旧の際に、インデックス情報の読込みの対象となる各可換型記憶媒体からの読込みの所要時間の合計が目標復旧時間Ｔ以下になるようにバックアップのタイミングを決定する。より具体的には、目標復旧時間Ｔと、障害復旧の際に情報処理装置２へのインデックス情報のリストア対象として許容される可換型記憶媒体の数の上限値Ｋとの関係は、式（１）で表される。
【００３２】
Ｔ＝（ｔ×Ｋ）／Ｄ・・・（１）
ここで、ｔは可換型記憶媒体１巻当たりのインデックス情報の読出しの所要時間である（ロボット１ｄによるドライブ１ｃへの可換型記憶媒体の搬送時間も含む）。Ｄはファイル管理装置１が備えるドライブの数である。演算部１ｂは、式（１）を変形した式（２）により求める。
【００３３】
Ｋ＝（Ｔ／ｔ）×Ｄ・・・（２）
なお、演算部１ｂは、式（２）の右辺の計算結果が小数を含む場合、小数点以下を切り捨てて、Ｋを整数化する。
【００３４】
すると、可換型記憶媒体Ｅ１および可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・のうち、Ｋ巻については、障害復旧時に、該当の可換型記憶媒体からインデックス情報を読出して、情報処理装置２上のインデックス情報をリストアしても目標復旧時間Ｔに間に合うことになる。
【００３５】
このため、演算部１ｂは、可換型記憶媒体Ｅ１の１巻分を除く可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・のうち、Ｋ−１巻についてインデックス情報が更新されたタイミングを、情報処理装置２によるインデックス情報のバックアップを実行するタイミングとする。Ｋから可換型記憶媒体Ｅ１の１巻分を差し引いてＫ−１巻とする理由は、障害復旧時には可換型記憶媒体Ｅ１に格納されたインデックスバックアップのリストアを常に行うからである（可換型記憶媒体Ｅ１を含めてＫ巻とするため）。
【００３６】
演算部１ｂは、前述のように、記憶部１ａに記憶された更新テーブルＤ１２を用いて、可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・のインデックス情報の更新状況を管理する。例えば、演算部１ｂは、情報処理装置２による何れかの可換型記憶媒体のファイル操作によって、当該可換型記憶媒体のインデックス情報が更新されると、更新テーブルＤ１２における該当の可換型記憶媒体の媒体ＩＤに対して更新フラグ“ＴＲＵＥ”を設定する。演算部１ｂは、更新テーブルＤ１２において、更新フラグ“ＴＲＵＥ”の数をカウントする。演算部１ｂは、カウント数がＫ−１に達すると、更新テーブルＤ１２の更新フラグを全て“ＦＡＬＳＥ”に設定し、情報処理装置２にバックアップの実行を通知する。
【００３７】
演算部２ｂは、当該通知に応じて、可換型記憶媒体Ｅ１のドライブ１ｃへの搬送をファイル管理装置１に指示し、インデックス管理テーブルＤ２１のバックアップ（インデックスバックアップ）を可換型記憶媒体Ｅ１に取得する。演算部２ｂは、バックアップが完了すると、バックアップ完了をファイル管理装置１に通知する。
【００３８】
その後、情報処理装置２で障害が発生し、記憶部２ａに記憶されたインデックス管理テーブルＤ２１を使用できなくなった場合を考える。この場合、演算部２ｂは、記憶部２ａまたはスペアの記憶装置にインデックス管理テーブルＤ２１を復元する。具体的には、ファイル管理装置１を用いて、可換型記憶媒体Ｅ１に格納されたインデックスバックアップを復元する。
【００３９】
このとき、ファイル管理装置１の演算部１ｂは、更新テーブルＤ１２に基づいて、可換型記憶媒体Ｅ１に加えてインデックス情報を読出すべき可換型記憶媒体（数は、Ｋ−１巻以下となる）を、情報処理装置２に通知する。演算部２ｂは、通知された各可換型記憶媒体からインデックス情報を、ファイル管理装置１を用いて順次読出し、自身が保持するインデックス管理テーブルＤ２１を障害直前の状態に復元する。ただし、インデックス情報を読出すべき（可換型記憶媒体Ｅ１以外の）可換型記憶媒体がないこともある。その場合、演算部２ｂは、可換型記憶媒体Ｅ１のみを用いた復元を行うことになる。
【００４０】
このように、ファイル管理装置１は、目標復旧時間Ｔに基づいて、障害復旧の際にインデックス情報の読出し対象として許容される可換型記憶媒体の数の上限値Ｋ−１を求める。ファイル管理装置１は、前回のバックアップ後にインデックス情報が更新された可換型記憶媒体の数と、上限値Ｋ−１との比較に応じて次回のバックアップのタイミングを決定する。すると、インデックス管理テーブルＤ２１の復元時、情報処理装置２が読出し対象とする可換型記憶媒体の数を、可換型記憶媒体Ｅ１を含めてＫ巻以下に抑えられる。このため、情報処理装置２は、インデックス管理テーブルＤ２１の復元を、障害発生後から目標復旧時間Ｔ内に終えることができる。
【００４１】
ここで、インデックスバックアップを取得しない運用も考えられる。この場合、情報処理装置２のインデックス管理テーブルＤ２１を復元するために、可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・の全てからインデックス情報を読出すことになる。しかし、各可換型記憶媒体の読出しには、ロボット１ｄにより可換型記憶媒体をドライブ１ｃに搬送したり、ドライブ１ｃを用いてインデックス情報を読出したりする動作を伴う。また、ドライブ１ｃの数も有限である。したがって、全ての可換型記憶媒体からインデックス情報の読出しを行うには時間がかかる。例えば、ファイル管理装置１に収納された可換型記憶媒体の数が７００巻程度の場合、情報処理装置２におけるファイルシステムの再構築に２日程度を要することもある。このため、障害発生から復元までの時間が、予め定められた目標復旧時間Ｔに間に合わなくなる。この問題は、可換型記憶媒体の数が増すほど深刻となる。
【００４２】
一方、可換型記憶媒体Ｃ１，Ｃ２，Ｃ３，・・・のインデックス情報の変更があるたびに、可換型記憶媒体Ｅ１にインデックスバックアップを取得する方法も考えられる。しかし、この方法では、バックアップの取得頻度が過大となり、バックアップ用にドライブ１ｃを占有する頻度および時間も増すため、通常の業務運用に支障をきたすおそれがある。
【００４３】
そこで、ファイル管理装置１は、前回バックアップからインデックス情報が更新された可換型記憶媒体の数が、式（２）で求めた上限値Ｋ−１に達したタイミングをインデックス情報のバックアップ取得タイミングとする。これにより、可換型記憶媒体Ｅ１および他の可換型記憶媒体を用いた情報処理装置２によるインデックス管理テーブルＤ２１の復元を、障害発生から目標復旧時間Ｔ内に終えることができる。また、インデックス情報の変更があるたびにバックアップを取得するよりも、バックアップの取得頻度を抑えることができ、通常の業務運用への影響を抑えることができる。更に、バックアップを可換型記憶媒体Ｅ１に取得することで、情報処理装置２で障害が発生しても、ファイル管理装置１内の各可換型記憶媒体を用いて、障害前に使用していたファイルシステムを適切に復旧させることができる。
【００４４】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、ライブラリ１００およびサーバ２００を有する。
【００４５】
ライブラリ１００は、複数のテープ媒体を収納する。ライブラリ１００は、テープライブラリやライブラリ装置などと呼ばれることもある。ライブラリ１００は、所定のインタフェース（例えば、ファイバチャネル）によりサーバ２００に接続されている。ライブラリ１００は、ファイル管理装置１の一例である。また、テープ媒体は、可換型記憶媒体の一例である。
【００４６】
サーバ２００は、業務サービスの提供に用いられるサーバコンピュータである。サーバ２００は、ネットワーク１０に接続されている。ネットワーク１０は、ＬＡＮ（Local Area Network）でもよいし、インターネットなどの広域ネットワークでもよい。サーバ２００は、ネットワーク１０を介して接続されたクライアントコンピュータ（図示を省略している）に対して業務サービスを提供してもよい。サーバ２００は、情報処理装置２の一例である。
【００４７】
サーバ２００は、ＬＴＦＳの機能を有する。サーバ２００は、ＬＴＦＳの機能により、ライブラリ１００に収納された各テープ媒体に格納されたデータをファイルとして扱う。例えば、サーバ２００は、テープ媒体に対して、業務サービスに用いられるファイルの追加、更新および削除などのファイル操作を行える。
【００４８】
ＬＴＦＳでは、テープ媒体のうちの所定の領域をインデックスパーティションとする。インデックスパーティションは、ＬＴＦＳ用のインデックス情報を格納する領域である。インデックス情報は、該当のテープ媒体におけるデータパーティションに格納されたファイルの属性やディレクトリ構造などを示す情報である。ファイルの属性は、例えば、ファイル名、サイズおよび作成／更新日時などを含む。
【００４９】
ここで、テープ媒体からデータの読出しを行う場合、ライブラリ１００内でテープ媒体をテープドライブ（単にドライブと称する）に搬送する、ドライブを用いてテープ媒体からデータを読取る、といった動作が発生し、時間がかかる。このため、サーバ２００は、各テープ媒体が保持するインデックス情報をサーバ２００が保持する不揮発性の補助記憶装置上にキャッシュし、各テープ媒体に格納されたファイルの管理に用いる。すると、例えば、サーバ２００の再起動時などに各テープ媒体の再読込みが不要となり、サーバ２００は、短時間でファイルアクセスを開始できる。
【００５０】
ところが、サーバ２００で障害が発生し、サーバ２００の補助記憶装置が故障するなどして、サーバ２００上にキャッシュされた各テープ媒体のインデックス情報を利用できなくなることがある。情報処理システムでは、システムの重要性に応じて、障害からの目標復旧時間が予め定められていることがある。この場合、サーバ２００の上記障害に対しても、障害発生から目標復旧時間内に、サーバ２００上にインデックス情報を復元して、ＬＴＦＳを用いた業務運用を復旧させることが求められる。そこで、ライブラリ１００は、障害発生から目標復旧時間内に当該復元が完了するように、情報処理装置２によるインデックス情報のバックアップ取得を制御する機能を提供する。
【００５１】
図３は、ライブラリのハードウェア例を示す図である。ライブラリ１００は、プロセッサ１０１、ＲＡＭ１０２、ＮＶＲＡＭ（Non-Volatile RAM）１０３、媒体リーダ１０４、接続ＩＦ（InterFace）１０５、テープシェルフ１０６、ロボット１０７およびドライブ群１０８を有する。各ユニットは、ライブラリ１００のバスに接続されている。
【００５２】
プロセッサ１０１は、ライブラリ１００の情報処理を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００５３】
ＲＡＭ１０２は、ライブラリ１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるファームウェアのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００５４】
ＮＶＲＡＭ１０３は、ライブラリ１００の補助記憶装置である。ＮＶＲＡＭ１０３は、内蔵の記憶素子に対して、電気的にデータの書込みおよび読出しを行う。ＮＶＲＡＭ１０３は、ファームウェアのプログラム、アプリケーションプログラム、および各種データを記憶する。ライブラリ１００は、ＮＶＲＡＭ１０３として、フラッシュメモリを備えてもよい。
【００５５】
媒体リーダ１０４は、記録媒体１１に記録されたプログラムやデータを読み取る装置である。記録媒体１１として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することができる。媒体リーダ１０４は、例えば、プロセッサ１０１からの命令に従って、記録媒体１１から読み取ったプログラムやデータをＲＡＭ１０２またはＮＶＲＡＭ１０３に格納する。
【００５６】
接続ＩＦ１０５は、サーバ２００と接続するホストインタフェースである。接続ＩＦ１０５としては、例えば、ファイバチャネルを用いることができる。
テープシェルフ１０６は、複数のテープ媒体を収納する収納棚である。テープシェルフ１０６は、セルと呼ばれる収納スペースを複数有し、１つのセルに１つのテープ媒体を収めることができる。また、セルと当該セルに収納されるテープ媒体とは１対１に対応しており、セルのＩＤによってテープ媒体を識別することもできる。
【００５７】
ここで、テープ媒体は、磁気テープおよび磁気テープを収容したカートリッジを有する。磁気テープは、磁性体が蒸着または塗布されたテープ状のフィルムである。カートリッジは、磁気テープを収めるための所定形状のケースである。
【００５８】
例えば、テープシェルフ１０６には、テープ媒体Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，・・・が収納されている。また、テープシェルフ１０６には、テープ媒体Ｅ１１も収納されている。各テープ媒体として、例えば、ＬＴＯ規格に準拠したものを使用することができる。
【００５９】
ここで、テープ媒体Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，・・・は、業務運用で用いられる各種のファイルを記憶するために使用されるテープ媒体である。一方、テープ媒体Ｅ１１は、サーバ２００によるインデックス情報のバックアップ取得専用のテープ媒体である。以下の説明では、テープ媒体Ｅ１１を他のテープ媒体と区別し、バックアップ専用であることを表すために、「専用媒体Ｅ１１」と表記することがある。
【００６０】
ロボット１０７は、プロセッサ１０１からの指示に応じて、テープシェルフ１０６に収納されたテープ媒体をドライブ群１０８に属するドライブに搬送する。また、ロボット１０７は、プロセッサ１０１からの指示に応じて、ドライブに収納されたテープ媒体を、テープシェルフ１０６に搬送する。
【００６１】
ドライブ群１０８は、複数のドライブの集合である。第２の実施の形態の例では、ドライブ群１０８は、ドライブＤ１，Ｄ２の２つのドライブを有する。なお、ライブラリ１００が備えるドライブ数は１でもよいし、３以上でもよい。ドライブＤ１，Ｄ２は、プロセッサ１０１からの指示に応じて、テープ媒体Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，・・・および専用媒体Ｅ１１に対するデータの書込みや読出しを行うテープドライブである。ドライブＤ１には、１つのテープ媒体を収納して、磁気テープに対するデータの書込みや読出しを行える。ドライブＤ２にも、同様に、１つのテープ媒体を収納して、磁気テープに対するデータの書込みや読出しを行える。
【００６２】
図４は、サーバのハードウェア例を示す図である。サーバ２００は、プロセッサ２０１、ＲＡＭ２０２、ＨＤＤ２０３、画像信号処理部２０４、入力信号処理部２０５、媒体リーダ２０６、接続ＩＦ２０７および通信ＩＦ２０８を有する。各ユニットはサーバ２００のバスに接続されている。
【００６３】
プロセッサ２０１は、サーバ２００の情報処理を制御する。プロセッサ２０１は、マルチプロセッサであってもよい。プロセッサ２０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ２０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００６４】
ＲＡＭ２０２は、サーバ２００の主記憶装置である。ＲＡＭ２０２は、プロセッサ２０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ２０２は、プロセッサ２０１による処理に用いる各種データを記憶する。
【００６５】
ＨＤＤ２０３は、サーバ２００の補助記憶装置である。ＨＤＤ２０３は、内蔵した磁気ディスクに対して、磁気的にデータの書込みおよび読出しを行う。ＨＤＤ２０３は、ＯＳのプログラム、アプリケーションプログラム、および各種データを記憶する。サーバ２００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００６６】
画像信号処理部２０４は、プロセッサ２０１からの命令に従って、サーバ２００に接続されたディスプレイ２１に画像を出力する。ディスプレイ２１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００６７】
入力信号処理部２０５は、サーバ２００に接続された入力デバイス２２から入力信号を取得し、プロセッサ２０１に出力する。入力デバイス２２としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００６８】
媒体リーダ２０６は、記録媒体２３に記録されたプログラムやデータを読み取る装置である。記録媒体２３として、例えば、ＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）およびＢｌｕ−ｒａｙなどの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体２３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ２０６は、例えば、プロセッサ２０１からの命令に従って、記録媒体２３から読み取ったプログラムやデータをＲＡＭ２０２またはＨＤＤ２０３に格納する。
【００６９】
接続ＩＦ２０７は、ライブラリ１００と接続するインタフェースである。接続ＩＦ２０７としては、例えば、ファイバチャネルを用いることができる。
通信ＩＦ２０８は、ネットワーク１０を介して他の装置と通信を行う。通信ＩＦ２０８は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
【００７０】
図５は、テープ媒体の例を示す図である。テープ媒体Ｃ１１は、カートリッジＣ１１ａ、磁気テープＣ１１ｂおよびカートリッジメモリＣ１１ｃを有する。
カートリッジＣ１１ａは、前述のように、磁気テープＣ１１ｂを収納するためのケースである。磁気テープＣ１１ｂは、業務処理用の各種データの記録に用いられる。カートリッジメモリＣ１１ｃは、非接触型のＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）である。カートリッジメモリＣ１１ｃは、ライブラリ１００におけるテープ媒体Ｃ１１の管理情報の記録に用いられる。
【００７１】
ドライブＤ１，Ｄ２は、カートリッジメモリＣ１１ｃと非接触通信するＲＦ（Radio Frequency）インタフェースを有し、カートリッジメモリＣ１１ｃに対して、情報の書込み／読出しや、記録された情報の消去を行える。
【００７２】
また、ロボット１０７も、カートリッジメモリＣ１１ｃと非接触通信するＲＦインタフェースを有し、カートリッジメモリＣ１１ｃに対して、情報の書込み／読出しや、記録した情報の消去を行える。
【００７３】
ここで、カートリッジメモリＣ１１ｃを、ＣＭ（Cartridge Memory）と略記することがある。他のテープ媒体も、テープ媒体Ｃ１１と同様に、カートリッジ、磁気テープおよびカートリッジメモリを有する。
【００７４】
図６は、ＬＴＦＳによるファイル管理例を示す図である。例えば、ＬＴＦＳは、ＦＵＳＥ（Filesystem in USErspace）と呼ばれるサーバ２００のＯＳが提供するソフトウェアインタフェースを用いて利用される。例えば、サーバ２００は、ＯＳのカーネル空間（ＯＳカーネルが存在するＲＡＭ２０２のアドレス空間）を用いて、仮想ファイルシステム、ＦＵＳＥおよびデバイスドライバを実行する。また、サーバ２００は、ユーザ空間（ユーザ向けのソフトウェアが存在するＲＡＭ２０２のアドレス空間）を用いて、業務用のアプリケーションおよびＬＴＦＳを実行する。ユーザ空間のアプリケーションは、仮想ファイルシステムおよびＦＵＳＥを介して、ＬＴＦＳにファイル操作の指示を行える。ＬＴＦＳは、サーバ２００が保持するインデックス情報を参照して、該当のファイルを保持するテープ媒体を特定する。ＬＴＦＳは、該当のテープ媒体の所定のドライブへの搬送、および、該当のファイルの書込みや読出しを、デバイスドライバを介してライブラリ１００に指示する。
【００７５】
図７は、テープ媒体のパーティション例を示す図である。磁気テープＣ１１ｂの記憶領域は、インデックスパーティションＰ１およびデータパーティションＰ２に区分されている。インデックスパーティションＰ１は、インデックス情報を記録するための領域である。インデックス情報は、データパーティションＰ２に記録されたファイルを識別するための情報である。前述のように、インデックス情報は、データパーティションＰ２におけるディレクトリ構造やファイル属性の情報を含む。また、インデックス情報は、データパーティションＰ２における各ファイルの記録位置（アドレス）を示すファイルポインタを含む。
【００７６】
図８は、情報処理システムの機能例を示す図である。ライブラリ１００は、記憶部１１０、媒体巻数決定部１２０、バックアップ指示部１３０およびリストア媒体指示部１４０を有する。記憶部１１０は、ＲＡＭ１０２やＮＶＲＡＭ１０３に確保された記憶領域として実現される。媒体巻数決定部１２０、バックアップ指示部１３０およびリストア媒体指示部１４０は、ＲＡＭ１０２に記憶されたプログラムをプロセッサ１０１が実行することで実現される。
【００７７】
記憶部１１０は、各テープ媒体におけるインデックス情報の更新状況を管理するための更新管理テーブルを記憶する。また、記憶部１１０は、サーバ２００により保持されたインデックス情報が障害により利用できなくなってから当該インデックス情報を復元するまでの目標復旧時間を予め記憶する。
【００７８】
媒体巻数決定部１２０は、記憶部１１０に記憶された目標復旧時間に基づいて、サーバ２００のインデックス情報の復元時に読込み対象として許容されるテープ媒体の数（読込み媒体巻数と称する）を決定し、記憶部１１０に格納する。
【００７９】
バックアップ指示部１３０は、媒体巻数決定部１２０により決定された読込み媒体巻数に基づいて、サーバ２００で保持されるインデックス情報のバックアップを取得するタイミングを決定する。バックアップ指示部１３０は、当該バックアップのタイミングを決定するために、各テープ媒体におけるインデックス情報の更新状況を、記憶部１１０に記憶された更新管理テーブルを用いて管理する。バックアップ指示部１３０は、当該タイミングをサーバ２００に通知し、サーバ２００によるインデックス情報のバックアップ取得を指示する。
【００８０】
リストア媒体指示部１４０は、サーバ２００によりインデックス情報のリストアが行われる際に、記憶部１１０に記憶された更新管理テーブルに基づいて、読込み対象のテープ媒体をサーバ２００に指示する。
【００８１】
サーバ２００は、記憶部２１０、データ更新部２２０、バックアップ処理部２３０およびリストア処理部２４０を有する。記憶部２１０は、ＨＤＤ２０３に確保された記憶領域として実現される。データ更新部２２０、バックアップ処理部２３０およびリストア処理部２４０は、ＲＡＭ２０２に記憶されたプログラムをプロセッサ２０１が実行することで実現される。
【００８２】
記憶部２１０は、各テープ媒体に格納されたインデックス情報を、各テープ媒体のＩＤに対応付けて記憶する。各テープ媒体のＩＤは、各テープ媒体のカートリッジに付与されたバーコードによって識別される識別情報でもよいし、テープシェルフ１０６におけるセルＩＤでもよいし、その両方でもよい。
【００８３】
データ更新部２２０は、各テープ媒体のインデックス情報をライブラリ１００から取得し、各テープ媒体のＩＤに対応付けて記憶部２１０に格納する。例えば、システムの運用開始前に、ライブラリ１００のプロセッサ１０１は、ドライブＤ１，Ｄ２を用いてテープ媒体Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，・・・それぞれからインデックス情報を読出し、サーバ２００に送信しておいてもよい。あるいは、プロセッサ１０１は、あるテープ媒体をＬＴＦＳにより利用可能になるよう設定した際に、該当のテープ媒体のインデックス情報を、サーバ２００に送信してもよい。データ更新部２２０は、ライブラリ１００により送信された各テープ媒体のインデックス情報を受信し、記憶部２１０に格納する。
【００８４】
また、データ更新部２２０は、各テープ媒体の磁気テープに対するファイルの書込みや読出し、および、各テープ媒体のカートリッジメモリに対するデータの書込みや読出しをライブラリ１００に指示する。データ更新部２２０は、テープ媒体の磁気テープに対するファイルの書込みを行った場合、記憶部２１０に記憶された該当のテープ媒体のインデックス情報を更新する。データ更新部２２０は、該当のテープ媒体のインデックスパーティションに格納されたインデックス情報にも当該更新を反映させる。
【００８５】
バックアップ処理部２３０は、ライブラリ１００から指示されたタイミングで、記憶部２１０に記憶された各テープ媒体のインデックス情報のバックアップを、専用媒体Ｅ１１に取得する。バックアップ処理部２３０は、ライブラリ１００を用いて、当該バックアップの処理を実行する。
【００８６】
リストア処理部２４０は、ＨＤＤ２０３が故障すると、サーバ２００が備えるスペアのＨＤＤなどに、記憶部２１０に記憶されていた故障直前のインデックス情報を復元し、ＬＴＦＳによるファイル運用を復旧させる。具体的には、リストア処理部２４０は、専用媒体Ｅ１１およびライブラリ１００から通知された読込み対象のテープ媒体を用いて、インデックス情報のローカルストレージへの復旧を行う。
【００８７】
図９は、ＣＭに格納される更新フラグの例を示す図である。テープ媒体Ｃ１１のカートリッジメモリ（ＣＭ）Ｃ１１ｃは、更新フラグを記憶する。更新フラグのデフォルト値は、“ＦＡＬＳＥ”であり、テープ媒体Ｃ１１のインデックス情報の更新がないことを示す（図９（Ａ））。更新フラグは、データ更新部２２０によりテープ媒体Ｃ１１のインデックス情報が更新されたとき、データ更新部２２０により“ＴＲＵＥ”に設定される（図９（Ｂ））。更新フラグ“ＴＲＵＥ”は、テープ媒体Ｃ１１のインデックス情報が更新されたことを示す。更新フラグは、サーバ２００の運用開始時、および、バックアップ取得時に、全てのテープ媒体について“ＦＡＬＳＥ”に設定される。
【００８８】
バックアップ指示部１３０は、ロボット１０７を用いて、テープ媒体Ｃ１１のカートリッジメモリＣ１１ｃの情報を読取り、テープ媒体Ｃ１１におけるインデックス情報の更新状況を更新管理テーブルに記録する。
【００８９】
他のテープ媒体も、テープ媒体Ｃ１１と同様に、カートリッジメモリ内に更新フラグを記憶する。
図１０は、更新管理テーブルの例を示す図である。更新管理テーブル１１１は、記憶部１１０に記憶される。更新管理テーブル１１１は、ＩＤおよび更新フラグの項目を含む。
【００９０】
ＩＤの項目には、テープ媒体を識別するためのＩＤが登録される。前述のように、ＩＤは、テープ媒体のカートリッジに付与されたバーコードによって識別される識別情報でもよいし、テープシェルフ１０６におけるセルＩＤでもよいし、その両方でもよい。更新フラグの項目には、該当のテープ媒体におけるインデックス情報の更新有無を示す更新フラグが登録される。
【００９１】
例えば、更新管理テーブル１１１には、ＩＤが“０００１”、更新フラグが“ＴＲＵＥ”という情報が登録される。これは、ＩＤ“０００１”で識別されるテープ媒体Ｃ１１の更新フラグが“ＴＲＵＥ”であること（インデックス情報の更新あり）を示す。
【００９２】
また、更新管理テーブル１１１には、ＩＤが“０００２”、更新フラグが“ＦＡＬＳＥ”という情報が登録される。これは、ＩＤ“０００２”で識別されるテープ媒体Ｃ１２の更新フラグが“ＦＡＬＳＥ”であること（インデックス情報の更新なし）を示す。
【００９３】
図１１は、専用媒体のＣＭに格納されるビットマップ例を示す図である。専用媒体Ｅ１１は、カートリッジメモリＥ１１ｃを有する。専用媒体Ｅ１１を用いてリストアを行う際、リストア媒体指示部１４０は、カートリッジメモリＥ１１ｃに、ビットマップＢ１を格納する。ビットマップＢ１は、サーバ２００におけるインデックス情報の復旧のために読込み対象とするテープ媒体を表す情報である。ビットマップＢ１は、サーバ２００の障害復旧の際に、ライブラリ１００により専用媒体Ｅ１１が備えるカートリッジメモリＥ１１ｃに格納される。
【００９４】
ビットマップＢ１は、更新管理テーブル１１１に基づいて作成される。ビットマップＢ１は、前回バックアップ（専用媒体Ｅ１１に格納されている最新のバックアップ）の取得時点後の各テープ媒体のインデックス情報の更新有無を示す更新情報といえる。
【００９５】
ビットマップＢ１のビット位置とテープシェルフ１０６におけるセル位置とは、１対１に対応している。例えば、テープシェルフ１０６のセル数が７００個であれば、ビットマップＢ１は７００ビットのデータとなる。
【００９６】
例えば、ビットマップＢ１のあるビットが“０”の場合、当該ビットに対応するセル位置に収納されたテープ媒体は、リストア時の読込み対象ではない。また、ビットマップＢ１のあるビットが“１”の場合、当該ビットに対応するセル位置に収納されたテープ媒体は、リストア時の読込み対象である。リストア処理部２４０は、ドライブＤ１，Ｄ２を用いて、専用媒体Ｅ１１からビットマップＢ１を取得し、読込み対象とするテープ媒体を特定することができる。
【００９７】
次に、ライブラリ１００およびサーバ２００による処理手順を説明する。
図１２は、ライブラリによる読込み媒体巻数決定例を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【００９８】
（Ｓ１）媒体巻数決定部１２０は、記憶部１１０に格納された目標復旧時間Ｔを取得する。媒体巻数決定部１２０は、目標復旧時間Ｔのユーザによる入力を受け付けることで、目標復旧時間Ｔを取得してもよい。
【００９９】
（Ｓ２）媒体巻数決定部１２０は、テープ媒体１巻当たりのインデックス読出しの所要時間ｔを取得する。所要時間ｔは、ロボット１０７によるドライブＤ１（あるいは、ドライブＤ２）へのテープ媒体の搬送時間も含む。例えば、媒体巻数決定部１２０は、あるテープ媒体を用いて、所要時間ｔを実測してもよい。あるいは、媒体巻数決定部１２０は、幾つかのテープ媒体を用いたインデックス情報の読出しの所要時間の平均を、所要時間ｔとしてもよい。
【０１００】
（Ｓ３）媒体巻数決定部１２０は、ライブラリ１００内のドライブ数Ｄを取得する。ライブラリ１００の例では、Ｄ＝２である。
（Ｓ４）媒体巻数決定部１２０は、故障中のドライブがあるか否かを判定する。故障中のドライブがある場合、処理をステップＳ５に進める。故障中のドライブがない場合、処理をステップＳ６に進める。
【０１０１】
（Ｓ５）媒体巻数決定部１２０は、故障中のドライブ数をドライブ数Ｄから減算する。これにより、ドライブ数Ｄから、故障中のドライブ数が除去される。
（Ｓ６）媒体巻数決定部１２０は、第１の実施の形態で例示した式（２）により読込み媒体巻数Ｋを算出する。具体的には、媒体巻数決定部１２０は、Ｋ＝（Ｔ／ｔ）×Ｄとする。なお、左辺が小数を含む場合、媒体巻数決定部１２０は、小数点以下を切り捨てて、Ｋを整数値化する。
【０１０２】
なお、上記の式（１）（２）では、ロボット数が１の場合を想定している。一方、ライブラリによっては、複数のロボットを有することも考えられる。その場合、媒体巻数決定部１２０は、ステップＳ２において、テープ媒体からのインデックス情報の読出し動作を、Ｎ（Ｎは２以上の整数）個のテープ媒体に対し、複数のロボットを用いて連続して試行する。そして、媒体巻数決定部１２０は、Ｎ個のテープ媒体全てから読出しを完了するまでの所要時間を計測する。すると、媒体巻数決定部１２０は、計測した所要時間をＮで割ることで、複数のロボットを用いた場合の１つのテープ媒体当たりのインデックス情報の読出しの所要時間ｔを求めることができる。
【０１０３】
また、式（２）は、ドライブの数も含んでおり、媒体巻数決定部１２０は、ドライブの数に基づいて、Ｋ（およびＫ−１）を算出しているともいえる。
図１３は、サーバによるデータ更新例を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。なお、ステップＳ１１の直前において、テープ媒体Ｃ１１はドライブＤ１に収納されており、テープ媒体Ｃ１１のデータパーティションＰ２においてファイルが更新されたものとする。
【０１０４】
（Ｓ１１）データ更新部２２０は、テープ媒体Ｃ１１のインデックス情報を更新する。この場合、データ更新部２２０は、記憶部２１０に保持されているテープ媒体Ｃ１１のインデックス情報、および、テープ媒体Ｃ１１のインデックスパーティションに記録されたインデックス情報の両方を更新する。
【０１０５】
（Ｓ１２）データ更新部２２０は、カートリッジメモリＣ１１ｃの更新フラグを“ＴＲＵＥ”に設定する。
（Ｓ１３）データ更新部２２０は、テープ媒体Ｃ１１の媒体排出命令をライブラリ１００に送信する。
【０１０６】
なお、テープ媒体Ｃ１１から単にファイルの読出しを行う場合、テープ媒体Ｃ１１に記録されたファイルの更新は生じない。ファイルの読出しのみを行った場合は、データ更新部２２０は、カートリッジメモリＣ１１ｃの更新フラグの設定変更を行わない。
【０１０７】
図１４は、ライブラリによる媒体管理例を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
（Ｓ２１）バックアップ指示部１３０は、ステップＳ１３でサーバ２００により送信された媒体排出命令を受信する。
【０１０８】
（Ｓ２２）バックアップ指示部１３０は、ロボット１０７を用いて、テープ媒体Ｃ１１を、テープシェルフ１０６の所定のセルに搬送する。搬送の際、バックアップ指示部１３０は、ロボット１０７を用いて、カートリッジメモリＣ１１ｃに記憶された更新フラグを参照する。
【０１０９】
（Ｓ２３）バックアップ指示部１３０は、カートリッジメモリＣ１１ｃに記憶された更新フラグに基づいて、テープ媒体Ｃ１１におけるインデックス情報の更新があるか否かを判定する。更新がある（すなわち、更新フラグ＝“ＴＲＵＥ”）の場合、処理をステップＳ２４に進める。更新がない（すなわち、更新フラグ＝“ＦＡＬＳＥ”）の場合、処理を終了する。
【０１１０】
（Ｓ２４）バックアップ指示部１３０は、テープ媒体Ｃ１１のインデックス情報の更新ありを更新管理テーブル１１１に記録する。具体的には、バックアップ指示部１３０は、テープ媒体Ｃ１１のＩＤ“０００１”に対して、更新フラグ“ＴＲＵＥ”を更新管理テーブル１１１に記録する。
【０１１１】
（Ｓ２５）バックアップ指示部１３０は、更新媒体数＝Ｋ−１であるか否かを判定する。更新媒体数＝Ｋ−１の場合、処理をステップＳ２６に進める。更新媒体数＜Ｋ−１の場合、処理を終了する。ここで、更新媒体数とは、前回バックアップ時から（あるいは、運用開始時から）インデックス情報が更新されたテープ媒体の数を意味する。バックアップ指示部１３０は、更新管理テーブル１１１の更新フラグ“ＴＲＵＥ”が設定されているレコードの合計を更新媒体数として求めることができる。
【０１１２】
（Ｓ２６）バックアップ指示部１３０は、ロボット１０７を用いて、専用媒体Ｅ１１を使用していたドライブ（例えば、ドライブＤ１）に搬送する（専用媒体Ｅ１１のＬｏａｄ）。
【０１１３】
（Ｓ２７）バックアップ指示部１３０は、ロボット１０７を用いて、バックアップ情報を専用媒体Ｅ１１のカートリッジメモリＥ１１ｃに記録する。ここで、バックアップ情報は、更新管理テーブル１１１の内容を示す情報である。例えば、更新管理テーブル１１１の内容から、サーバ２００は、前回バックアップ時からインデックス情報が更新されたテープ媒体を特定でき、前回バックアップからの差分としてバックアップすべきインデックス情報を得ることができる。
【０１１４】
（Ｓ２８）バックアップ指示部１３０は、更新管理テーブル１１１をクリアする。具体的には、バックアップ指示部１３０は、更新管理テーブル１１１における各ＩＤの更新フラグを全て“ＦＡＬＳＥ”に設定する。
【０１１５】
（Ｓ２９）バックアップ指示部１３０は、ステップＳ２１の媒体排出命令に対する媒体の排出完了をサーバ２００に通知する。
図１５は、サーバによるインデックスバックアップ例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
【０１１６】
（Ｓ３１）バックアップ処理部２３０は、ライブラリ１００から媒体の排出完了を受信すると、ドライブＤ１内に専用媒体があるか否かを判定する。専用媒体がある場合、処理をステップＳ３２に進める。専用媒体がない場合、処理を終了する。例えば、バックアップ処理部２３０は、ドライブＤ１に収納されたテープ媒体に付与されたバーコードを読み取り、バーコードで示される識別情報が、予め保持している専用媒体Ｅ１１の識別情報に一致するかを確認することで、ステップＳ３１の判定を行える。
【０１１７】
（Ｓ３２）バックアップ処理部２３０は、記憶部２１０に記憶されたインデックス情報のバックアップを専用媒体Ｅ１１に取得する。ここで、バックアップ処理部２３０は、ドライブＤ１を用いて、カートリッジメモリＥ１１ｃからバックアップ情報を取得し、前回のバックアップに対して更新されたインデックス情報の差分を得ることができる。このため、バックアップ処理部２３０は、当該差分のインデックス情報についてバックアップを取得すればよい。ただし、バックアップ処理部２３０は、記憶部２１０に記憶されている全てのテープ媒体のインデックス情報についてフルバックアップを取得してもよい。
【０１１８】
（Ｓ３３）バックアップ処理部２３０は、専用媒体Ｅ１１の媒体搬出命令をライブラリ１００に送信する。
ライブラリ１００は、ステップＳ３３の媒体搬出命令を受信すると、ロボット１０７を用いて、ドライブＤ１からテープシェルフ１０６の所定のセルに専用媒体Ｅ１１を搬送する。こうして、サーバ２００のインデックス情報のバックアップが、専用媒体Ｅ１１に記録される。
【０１１９】
ここで、ステップＳ３１のようにバックアップ処理部２３０は、ライブラリ１００からの媒体の排出完了の通知に応じてドライブＤ１の専用媒体Ｅ１１の有無を確認する。このため、バックアップ指示部１３０は、専用媒体Ｅ１１をドライブＤ１に収納することで、サーバ２００にバックアップの取得タイミングを通知しているといえる。あるいは、バックアップ指示部１３０は、図１４のステップＳ２９において、媒体の排出完了と共に、専用媒体Ｅ１１を所定のドライブに収納したこと、および、バックアップの取得を開始する旨の明示的な指示をサーバ２００に通知してもよい。
【０１２０】
次に、専用媒体Ｅ１１に保存されたバックアップを用いたリストアの手順を説明する。例えば、サーバ２００のＨＤＤ２０３の故障などで、サーバ２００が保持する各テープ媒体のインデックス情報を利用できなくなった場合、サーバ２００は、交換後のＨＤＤ２０３やスペアのＨＤＤなどに対するインデックス情報のリストアを行う。
【０１２１】
図１６は、ライブラリによるリストア用媒体ロード例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
（Ｓ４１）リストア媒体指示部１４０は、専用媒体Ｅ１１のＬＯＡＤ命令をサーバ２００から受信する。
【０１２２】
（Ｓ４２）リストア媒体指示部１４０は、記憶部１１０に記憶された更新管理テーブル１１１を参照して、未バックアップのインデックス情報があるか否かを判定する。未バックアップのインデックス情報がある場合、処理をステップＳ４３に進める。未バックアップのインデックス情報がない場合、処理をステップＳ４５に進める。ここで、リストア媒体指示部１４０は、更新管理テーブル１１１を参照して、更新フラグ“ＴＲＵＥ”のレコードがある場合に、未バックアップのインデックス情報があると判定する。更新フラグ“ＴＲＵＥ”のレコードがない場合に、未バックアップのインデックス情報がないと判定する。
【０１２３】
（Ｓ４３）リストア媒体指示部１４０は、テープシェルフ１０６に収納された媒体巻数分のビットマップＢ１を専用媒体Ｅ１１のカートリッジメモリＥ１１ｃに格納する。媒体巻数には、専用媒体Ｅ１１を含まなくてよい。ビットマップＢ１の全てのビットのデフォルト値は“０”である。
【０１２４】
（Ｓ４４）リストア媒体指示部１４０は、カートリッジメモリ（ＣＭ）Ｅ１１ｃに格納されたビットマップＢ１のうち、未バックアップのテープ媒体に対応するビットに“１”を設定する。具体的には、更新管理テーブル１１１において、更新フラグ“ＴＲＵＥ”が設定されているＩＤに対応するテープ媒体が、未バックアップのテープ媒体である。
【０１２５】
（Ｓ４５）リストア媒体指示部１４０は、専用媒体Ｅ１１をＬＯＡＤ命令で指定されたドライブ（ここでは、ドライブＤ１とする）に搬送する。
図１７は、サーバによるリストア例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１２６】
（Ｓ５１）リストア処理部２４０は、専用媒体Ｅ１１のＬＯＡＤ命令をライブラリ１００に送信する。例えば、リストア処理部２４０は、入力デバイス２２を用いたユーザによるリストア開始指示の入力を受け付けた後に、当該ＬＯＡＤ命令の送信を行う。ステップＳ５１のＬＯＡＤ命令の送信は、図１６で説明したステップＳ４１に対応する（当該ＬＯＡＤ命令に応じてライブラリ１００により専用媒体Ｅ１１がドライブＤ１に搬送される）。
【０１２７】
（Ｓ５２）リストア処理部２４０は、ドライブＤ１内の専用媒体Ｅ１１を検出する。
（Ｓ５３）リストア処理部２４０は、専用媒体Ｅ１１のカートリッジメモリ（ＣＭ）Ｅ１１ｃにビットマップＢ１があるか否かを判定する。ビットマップＢ１がない場合、処理をステップＳ５４に進める。ビットマップＢ１がある場合、処理をステップＳ５５に進める。
【０１２８】
（Ｓ５４）リストア処理部２４０は、専用媒体Ｅ１１からインデックス情報をリストアする。具体的には、リストア処理部２４０は、ライブラリ１００を用いて専用媒体Ｅ１１からのインデックス情報の読出しを行う。リストア処理部２４０は、ローカルストレージ（交換後のＨＤＤ２０３やスペアのＨＤＤなど）に当該インデックス情報を格納する（リストア）。ビットマップＢ１がない場合、インデックス情報を未バックアップであるテープ媒体がないことになるので、専用媒体Ｅ１１のみによってインデックス情報のリストアは完了する。そして、リストア処理部２４０は、専用媒体Ｅ１１の媒体搬出命令をライブラリ１００に送信して、処理を終了する。
【０１２９】
（Ｓ５５）リストア処理部２４０は、専用媒体Ｅ１１からインデックス情報をリストアする。具体的には、リストア処理部２４０は、ライブラリ１００を用いて専用媒体Ｅ１１からのインデックス情報の読出しを行う。リストア処理部２４０は、ローカルストレージ（交換後のＨＤＤ２０３やスペアのＨＤＤなど）に当該インデックス情報を格納する。
【０１３０】
（Ｓ５６）リストア処理部２４０は、カートリッジメモリＥ１１ｃに格納されたビットマップＢ１を基にテープ媒体からインデックス情報をリストアする。リストア処理部２４０は、ビットマップＢ１に基づいて、インデックス情報の読出し対象とするテープ媒体を特定できる。具体的には、ビットマップＢ１で“１”が設定されたビットに対応するセルに収納されたテープ媒体がインデックス情報の読出し対象である。リストア処理部２４０は、ドライブＤ１，Ｄ２に収納された読出し対象のテープ媒体を順次交換させ、各テープ媒体からのインデックス情報の読出しを行い、インデックス情報のリストアを行う。また、リストア処理部２４０は、ビットマップＢ１のうち、インデックス情報の読出しおよびリストアが完了したテープ媒体に対応するビットを“１”から“０”に変更することで、リストアの進捗管理を行える。リストア処理部２４０は、ビットマップＢ１をＲＡＭ２０２やＨＤＤ２０３に複製してリストアの進捗管理に用いてもよい。リストア処理部２４０は、こうしてリストアが完了すると、ドライブに収納されているテープ媒体の媒体排出命令をライブラリ１００に送信して、処理を終了する。
【０１３１】
次に、以上で説明した手順に関して、ライブラリ１００とサーバ２００との間の通信のシーケンスの具体例を説明する。まず、テープ媒体Ｃ１１に対してファイル更新が発生した後、インデックス情報のバックアップ取得を行う場合のシーケンスを例示する。
【０１３２】
図１８は、テープ媒体に対するデータ更新時のシーケンス例である。以下、図１８に示す処理をステップ番号に沿って説明する。
（ＳＴ１）サーバ２００は、ライブラリ１００にテープ媒体Ｃ１１のＬＯＡＤ命令（搬送先ドライブ＝ドライブＤ１）を送信する。ライブラリ１００は、ＬＯＡＤ命令を受信する。
【０１３３】
（ＳＴ２）ライブラリ１００は、テープ媒体Ｃ１１のＬＯＡＤを実行する。具体的には、ライブラリ１００は、ロボット１０７を用いてテープシェルフ１０６からテープ媒体Ｃ１１を取り出し、ドライブＤ１に搬送する。
【０１３４】
（ＳＴ３）ライブラリ１００は、テープ媒体Ｃ１１のＬＯＡＤ成功をサーバ２００に送信する。サーバ２００は、ＬＯＡＤ成功を受信する。
（ＳＴ４）サーバ２００は、ライブラリ１００を用いてドライブＤ１に収納されたテープ媒体Ｃ１１へのデータの書込みを実行する。具体的には、サーバ２００は、テープ媒体Ｃ１１のデータパーティションＰ２に対するファイルの追加、更新または削除を行う。また、サーバ２００は、インデックスパーティションＰ１に対するインデックス情報の更新を行う。このとき、サーバ２００は、記憶部２１０に記憶されたテープ媒体Ｃ１１のインデックス情報の更新も行う（サーバ２００とテープ媒体Ｃ１１とでインデックス情報は同期される）。
【０１３５】
（ＳＴ５）サーバ２００は、ライブラリ１００を用いて、テープ媒体Ｃ１１のカートリッジメモリ（ＣＭ）１１ｃに格納された更新フラグに“ＴＲＵＥ”を設定する。
（ＳＴ６）ライブラリ１００は、ドライブＤ１による書込み完了を検出し、サーバ２００に書込み成功を送信する。サーバ２００は、書込み成功を受信する。
【０１３６】
（ＳＴ７）サーバ２００は、テープ媒体Ｃ１１のＵＮＬＯＡＤ命令（媒体排出命令）をライブラリ１００に送信する。ライブラリ１００は、ＵＮＬＯＡＤ命令を受信する。
（ＳＴ８）ライブラリ１００は、ロボット１０７を用いて、ドライブＤ１に収納されたテープ媒体Ｃ１１を取り出し、テープシェルフ１０６の所定のセルに搬送する。このとき、ライブラリ１００は、ロボット１０７を用いて、カートリッジメモリＥ１１ｃに格納された更新フラグを読取り、テープ媒体Ｃ１１に対するインデックス情報の更新あり（更新フラグ“ＴＲＵＥ”）を更新管理テーブル１１１に記録する。
【０１３７】
（ＳＴ９）ライブラリ１００は、更新管理テーブル１１１を参照して、更新媒体数をカウントし、閾値Ｋ−１と比較する。そして、ライブラリ１００は、更新媒体数＝Ｋ−１であることを検出する。
【０１３８】
（ＳＴ１０）ライブラリ１００は、専用媒体Ｅ１１のＬＯＡＤを実行する。具体的には、ライブラリ１００は、ロボット１０７を用いてテープシェルフ１０６から専用媒体Ｅ１１を取り出し、ドライブＤ１に搬送する。このとき、ライブラリ１００は、専用媒体Ｅ１１のカートリッジメモリＥ１１ｃに更新管理テーブル１１１の内容を書込む。また、ライブラリ１００は、当該更新管理テーブル１１１の書込みが完了すると、記憶部１１０に記憶された更新管理テーブル１１１の更新フラグを全て“ＦＡＬＳＥ”に設定する（更新管理テーブル１１１のリセット）。
【０１３９】
（ＳＴ１１）ライブラリ１００は、テープ媒体Ｃ１１のＵＮＬＯＡＤ成功をサーバ２００に送信する。サーバ２００は、ＵＮＬＯＡＤ成功を受信する。
（ＳＴ１２）サーバ２００は、ドライブＤ１に専用媒体Ｅ１１がＬＯＡＤされていることを確認する。
【０１４０】
（ＳＴ１３）サーバ２００は、ライブラリ１００を用いて、記憶部２１０に記憶された各テープ媒体のインデックス情報を、専用媒体Ｅ１１に書込む。例えば、サーバ２００は、ステップＳＴ１０でカートリッジメモリＥ１１ｃに書込まれた更新管理テーブル１１１の内容に基づいて、インデックス情報のバックアップ対象とするテープ媒体（前回バックアップからの差分）を特定することもできる。
【０１４１】
（ＳＴ１４）ライブラリ１００は、ドライブＤ１によるインデックス情報の書込み完了を検出する。ライブラリ１００は、インデックス情報の書込み成功をサーバ２００に送信する。サーバ２００は、インデックス情報の書込み成功を受信する。
【０１４２】
（ＳＴ１５）サーバ２００は、専用媒体Ｅ１１のＵＮＬＯＡＤ命令をライブラリ１００に送信する。ライブラリ１００は、ＵＮＬＯＡＤ命令を受信する。
（ＳＴ１６）ライブラリ１００は、ロボット１０７を用いて、ドライブＤ１に収納された専用媒体Ｅ１１を取り出し、テープシェルフ１０６の所定のセルに搬送する。
【０１４３】
（ＳＴ１７）ライブラリ１００は、専用媒体Ｅ１１のＵＮＬＯＡＤ成功をサーバ２００に送信する。サーバ２００は、ＵＮＬＯＡＤ成功を受信する。
続いて、サーバ２００のローカルストレージにインデックス情報をリストアする際のシーケンス例を説明する。
【０１４４】
図１９は、インデックス情報のリストア時のシーケンス例である。以下、図１９に示す処理をステップ番号に沿って説明する。
（ＳＴ２１）サーバ２００は、ライブラリ１００にリストア開始の通知を送信する。ライブラリ１００は、リストア開始の通知を受信する。
【０１４５】
（ＳＴ２２）ライブラリ１００は、１ドライブ占有依頼をサーバ２００に送信する。サーバ２００は、１ドライブ占有依頼を受信する。
（ＳＴ２３）サーバ２００は、１ドライブ占有依頼に応じて、ライブラリ１００に１ドライブの占有を指示する。ライブラリ１００は、当該指示を受信し、ドライブＤ１をリストア処理に用いるドライブとして占有する。
【０１４６】
（ＳＴ２４）ライブラリ１００は、ドライブＤ１の占有成功を検出すると、１ドライブの占有ＯＫの通知をサーバ２００に送信する。サーバ２００は、占有ＯＫの通知を受信する。
【０１４７】
（ＳＴ２５）サーバ２００は、専用媒体Ｅ１１のＬＯＡＤ命令（搬送先ドライブ＝ドライブＤ１）をライブラリ１００に送信する。ライブラリ１００は、ＬＯＡＤ命令を受信する。
【０１４８】
（ＳＴ２６）ライブラリ１００は、専用媒体Ｅ１１のＬＯＡＤを実行する。具体的には、ライブラリ１００は、ロボット１０７を用いてテープシェルフ１０６から専用媒体Ｅ１１を取り出し、ドライブＤ１に搬送する。
【０１４９】
（ＳＴ２７）ライブラリ１００は、専用媒体Ｅ１１のカートリッジメモリＥ１１ｃにビットマップＢ１を書込む。ビットマップＢ１の各ビットのデフォルト値は“０”である。ライブラリ１００は、記憶部１１０に記憶された更新管理テーブル１１１に基づいて、ビットマップＢ１のうち、リストア時の読出し対象とするテープ媒体に対応するビットを“１”に設定する。なお、ライブラリ１００は、ステップＳＴ２７を、ステップＳＴ２６の前に実行してもよいし、ステップＳＴ２６の最中に実行してもよい。
【０１５０】
（ＳＴ２８）ライブラリ１００は、専用媒体Ｅ１１のＬＯＡＤ成功をサーバ２００に送信する。サーバ２００は、ＬＯＡＤ成功を受信する。
（ＳＴ２９）サーバ２００は、ライブラリ１００を用いて、専用媒体Ｅ１１のカートリッジメモリＥ１１ｃに格納されたビットマップＢ１の読出しを行う。
【０１５１】
（ＳＴ３０）ライブラリ１００は、ドライブＤ１によるビットマップＢ１の読出し完了を検出し、ビットマップＢ１の読出し結果および読出し成功をサーバ２００に送信する。サーバ２００は、ビットマップＢ１の読出し結果および読出し成功を受信する。
【０１５２】
（ＳＴ３１）サーバ２００は、ライブラリ１００を用いて、専用媒体Ｅ１１の磁気テープに記録されたインデックス情報のバックアップの読出しを行う。
（ＳＴ３２）ライブラリ１００は、ドライブＤ１によるバックアップ（インデックス情報）の読出し完了を検出し、バックアップの読出し結果および読出し成功をサーバ２００に送信する。サーバ２００は、バックアップの読出し結果および読出し成功を受信する。サーバ２００は、専用媒体Ｅ１１から読出したインデックス情報を、ローカルストレージに書込む（リストア）。
【０１５３】
（ＳＴ３３）サーバ２００は、専用媒体Ｅ１１のＵＮＬＯＡＤ命令をライブラリ１００に送信する。ライブラリ１００は、ＵＮＬＯＡＤ命令を受信する。
（ＳＴ３４）ライブラリ１００は、専用媒体Ｅ１１のＵＮＬＯＡＤを実行する。具体的には、ライブラリ１００は、ロボット１０７を用いて、ドライブＤ１に収納された専用媒体Ｅ１１を取り出し、テープシェルフ１０６の所定のセルに搬送する。
【０１５４】
（ＳＴ３５）ライブラリ１００は、専用媒体Ｅ１１のＵＮＬＯＡＤ成功をサーバ２００に送信する。サーバ２００は、ＵＮＬＯＡＤ成功を受信する。
（ＳＴ３６）サーバ２００は、ステップＳＴ２９，ＳＴ３０で読出したビットマップＢ１に基づいて、読出し対象のテープ媒体を特定する。例えば、サーバ２００は、読出し対象のテープ媒体として、テープ媒体Ｃ１１を特定する。サーバ２００は、テープ媒体Ｃ１１のＬＯＡＤ命令（搬送先ドライブ＝ドライブＤ１）をライブラリ１００に送信する。ライブラリ１００は、ＬＯＡＤ命令を受信する。
【０１５５】
（ＳＴ３７）ライブラリ１００は、テープ媒体Ｃ１１のＬＯＡＤを実行する。具体的には、ライブラリ１００は、ロボット１０７を用いてテープシェルフ１０６から専用媒体Ｅ１１を取り出し、ドライブＤ１に搬送する。
【０１５６】
（ＳＴ３８）ライブラリ１００は、テープ媒体Ｃ１１のＬＯＡＤ成功をサーバ２００に送信する。サーバ２００は、ＬＯＡＤ成功を受信する。
（ＳＴ３９）サーバ２００は、ライブラリ１００を用いて、テープ媒体Ｃ１１のインデックスパーティションＰ１に記録されたインデックス情報の読出しを行う。
【０１５７】
（ＳＴ４０）ライブラリ１００は、ドライブＤ１によるインデックス情報の読出し完了を検出し、インデックス情報の読出し結果および読出し成功をサーバ２００に送信する。サーバ２００は、インデックス情報の読出し結果および読出し成功を受信する。サーバ２００は、テープ媒体Ｃ１１から読出したインデックス情報を、ステップＳＴ３２でリストアされた内容に差分として追加する。
【０１５８】
（ＳＴ４１）サーバ２００は、テープ媒体Ｃ１１のＵＮＬＯＡＤ命令をライブラリ１００に送信する。ライブラリ１００は、ＵＮＬＯＡＤ命令を受信する。
（ＳＴ４２）ライブラリ１００は、テープ媒体Ｃ１１のＵＮＬＯＡＤを実行する。具体的には、ライブラリ１００は、ロボット１０７を用いて、ドライブＤ１に収納されたテープ媒体Ｃ１１を取り出し、テープシェルフ１０６の所定のセルに搬送する。
【０１５９】
（ＳＴ４３）ライブラリ１００は、テープ媒体Ｃ１１のＵＮＬＯＡＤ成功をサーバ２００に送信する。サーバ２００は、ＵＮＬＯＡＤ成功を受信する。
ここで、リストアの読出し対象とするテープ媒体が複数ある場合、ライブラリ１００およびサーバ２００は、ステップＳＴ３６〜ＳＴ４３を、対象のテープ媒体数の分だけ繰り返し実行する。その場合、ライブラリ１００およびサーバ２００は、互いに連携し、ドライブＤ１，Ｄ２の両方を並行して用いて（ドライブＤ２もリストア用に占有して）、各テープ媒体からインデックス情報の読出しを行える。
【０１６０】
（ＳＴ４４）サーバ２００は、ライブラリ１００に１ドライブ占有解除を指示する。ライブラリ１００は、当該指示を受信し、ドライブＤ１の占有を解除する。
（ＳＴ４５）ライブラリ１００は、ドライブＤ１の占有の解除成功を検出すると、１ドライブの占有解除ＯＫの通知をサーバ２００に送信する。サーバ２００は、占有解除ＯＫの通知を受信する。前述のように、リストア用に、複数のドライブが占有されることもある。その場合、サーバ２００は、各ドライブの占有解除をライブラリ１００に指示する。そして、ライブラリ１００は、各ドライブに対する占有解除の指示をサーバ２００から受け付け、各ドライブの占有を解除する。サーバ２００は、リストア用に占有された全てのドライブの占有が解除されたことを確認して、ステップＳＴ４６を実行する。
【０１６１】
（ＳＴ４６）サーバ２００は、リストア終了の通知をライブラリ１００に送信する。ライブラリ１００は、リストア終了の通知を受信する。
このようにして、ライブラリ１００およびサーバ２００は、各テープ媒体に記録されたインデックス情報のバックアップの取得、および、サーバ２００におけるインデックスの復元を行う。このとき、ライブラリ１００は、図１２で例示したように、目標復旧時間Ｔに基づいて、リストア時に読込み対象とするテープ媒体の巻数Ｋを決定する。そして、ライブラリ１００は、前回バックアップから更新媒体数が閾値Ｋ−１に達したタイミングをインデックス情報のバックアップの取得タイミングとする。これにより、サーバ２００におけるインデックス情報の復元時には、サーバ２００が読出し対象とするテープ媒体の数を、専用媒体Ｅ１１を含めてＫ巻以下に抑えることができる。このため、サーバ２００は、ローカルストレージへの各テープ媒体のインデックス情報の復元を、障害発生後から目標復旧時間Ｔ内に終えることができる。
【０１６２】
ここで、インデックスバックアップを取得しない運用も考えられる。この場合、障害復旧時、サーバ２００ではインデックス情報を復元するために、テープ媒体Ｃ１１，Ｃ１２，Ｃ１３，・・・の全てからインデックス情報を読出すことになる。しかし、各テープ媒体の読出しには、ロボット１０７によりテープ媒体をドライブＤ１，Ｄ２に搬送したり、ドライブＤ１，Ｄ２を用いてインデックス情報を読出したりする動作を伴う。また、ドライブＤ１，Ｄ２の数も有限である。したがって、全てのテープ媒体からインデックス情報の読出しを行うには時間がかかる。例えば、ライブラリ１００に収納されたテープ媒体の数が７００巻程度の場合、サーバ２００におけるファイルシステムの再構築に２日程度を要することもある。このため、障害発生から復元までの時間が、予め定められた目標復旧時間Ｔに間に合わなくなる。この問題は、テープ媒体の数が増すほど深刻となる。
【０１６３】
一方、テープ媒体Ｃ１１，Ｃ１２，Ｃ１３，・・・それぞれのインデックス情報が更新されるたびに、専用媒体Ｅ１１にインデックスバックアップを取得する方法も考えられる。しかし、この方法では、バックアップの取得頻度が過大となり、バックアップ用にドライブＤ１，Ｄ２を占有する頻度および時間も増すため、通常の業務運用に支障をきたすおそれがある。
【０１６４】
そこで、ライブラリ１００は、前回バックアップからインデックス情報が更新されたテープ媒体の数が、式（２）で求めた上限値Ｋ−１に達したタイミングをインデックス情報のバックアップ取得タイミングとする。これにより、専用媒体Ｅ１１および他のテープ媒体を用いたサーバ２００によるインデックス情報の復元を、障害発生から目標復旧時間Ｔ内に終えることができる。また、インデックス情報の変更があるたびにバックアップを取得するよりも、バックアップの取得頻度を抑えることができ、通常の業務運用への影響を抑えることができる。
【０１６５】
更に、バックアップを専用媒体Ｅ１１に取得することで、サーバ２００で障害が発生し、サーバ２００が利用できなくなっても、ライブラリ１００内の各テープ媒体を用いて、障害前に使用していたファイルシステムを適切に復旧させることができる。例えば、リストアの実行主体を、サーバ２００以外のサーバコンピュータとしてもよい。すなわち、サーバ２００が故障した場合、別のサーバコンピュータが、専用媒体Ｅ１１を用いてファイルシステムを復旧することもできる。
【０１６６】
なお、第１の実施の形態の情報処理は、演算部１ｂにプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、プロセッサ１０１，２０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体１１，２３に記録できる。ここで、ライブラリ１００は、プロセッサ１０１およびＲＡＭ１０２を備えるコンピュータを含むと考えてもよい。同様に、サーバ２００は、プロセッサ２０１およびＲＡＭ２０２を備えるコンピュータを含むと考えてもよい。
【０１６７】
例えば、プログラムを記録した記録媒体１１，２３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。例えば、ライブラリ１００に対応するコンピュータは、記録媒体１１に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＮＶＲＡＭ１０３などの記憶装置に格納する（インストールする）。また、サーバ２００に対応するコンピュータは、記録媒体２３に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ２０２やＨＤＤ２０３などの記憶装置に格納する（インストールする）。コンピュータは、インストール先の記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１６８】
１  ファイル管理装置
１ａ，２ａ  記憶部
１ｂ，２ｂ  演算部
１ｃ  ドライブ
１ｄ  ロボット
１ｅ  媒体収納部
２  情報処理装置
Ｃ１，Ｃ２，Ｃ３，Ｅ１  可換型記憶媒体
Ｄ１１  目標復旧時間情報
Ｄ１２  更新テーブル
Ｄ２１  インデックス管理テーブル
【図１】
2018010398.tif 000003
【図２】
2018010398.tif 000004
【図３】
2018010398.tif 000005
【図４】
2018010398.tif 000006
【図５】
2018010398.tif 000007
【図６】
2018010398.tif 000008
【図７】
2018010398.tif 000009
【図８】
2018010398.tif 000010
【図９】
2018010398.tif 000011
【図１０】
2018010398.tif 000012
【図１１】
2018010398.tif 000013
【図１２】
2018010398.tif 000014
【図１３】
2018010398.tif 000015
【図１４】
2018010398.tif 000016
【図１５】
2018010398.tif 000017
【図１６】
2018010398.tif 000018
【図１７】
2018010398.tif 000019
【図１８】
2018010398.tif 000020
【図１９】
2018010398.tif 000021