(57)【要約】【課題】  階層記憶装置の復旧に要する時間を低減でき、階層記憶装置の復旧を高速に行う。【解決手段】  階層記憶装置は、磁気テープ装置上のバックアップデータ６から磁気ディスク装置上にファイルシステム２１０が復旧されるときに、バックアップデータ６に含まれるｉノード番号を用いて、復旧対象ファイルのｉノード番号を特定ｉｎｏｄｅ割当要求用システムコール５により指定するアプリケーションプログラム１１内のリストア手段１１１と、指定されたｉノード番号をファイルシステムの復旧対象ファイルに割り当てるカーネル１３内のファイル割当手段１３０２とを備える。【選択図】  図２
2005316708.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステム上で稼動する階層記憶装置において、
ファイルの属性情報を含むｉノードを有し且つそのｉノード番号で当該ファイルを一意に識別するファイルシステムが構築された第１の記憶装置と、
前記ファイルシステムのバックアップデータを含むデータを格納する第２の記憶装置と、
前記第２の記憶装置上のバックアップデータから前記第１の記憶装置上に前記ファイルシステムが復旧されるときに、前記バックアップデータに含まれるｉノード番号を用いて、復旧対象ファイルのｉノード番号を指定するｉノード番号指定手段と、
指定されたｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるファイル割当手段とを備えたことを特徴とする階層記憶装置。
【請求項２】
前記ファイル割当手段は、指定されたｉノード番号が前記ファイルシステム上で不使用か否かを判断し、不使用であれば前記ｉノード番号を前記復旧対象ファイルに割り当てる手段であることを特徴とする請求項１記載の階層記憶装置。
【請求項３】
前記ｉノード番号指定手段は、前記オペレーティングシステム上で任意のｉノード番号を指定してシステムコールを起動させる手段であり、
前記ファイル割り当て手段は、前記システムコールで指定された前記ｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てる手段であることを特徴とする請求項１又は２記載の階層記憶装置。
【請求項４】
オペレーティングシステム上で稼動する階層記憶装置であって、
ファイルの属性情報を含むｉノードを有し且つそのｉノード番号で当該ファイルを一意に識別するファイルシステムが構築された第１の記憶装置と、
前記ファイルシステムのバックアップデータを含むデータを格納する第２の記憶装置とを有する階層記憶装置の復旧方法において、
前記第２の記憶装置上のバックアップデータから前記第１の記憶装置上に前記ファイルシステムが復旧されるときに、前記バックアップデータに含まれるｉノード番号を用いて、復旧対象ファイルのｉノード番号を指定するステップと、
指定されたｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるステップとを備えたことを特徴とする階層記憶装置の復旧方法。
【請求項５】
前記ファイルを割り当てるステップは、指定されたｉノード番号が前記ファイルシステム上で不使用か否かを判断し、不使用であれば前記ｉノード番号を前記復旧対象ファイルに割り当てるステップであることを特徴とする請求項４記載の階層記憶装置の復旧方法。
【請求項６】
前記ｉノード番号を指定するステップは、前記オペレーティングシステム上で任意のｉノード番号を指定してシステムコールを起動させるステップであり、
前記ファイル復旧手段は、前記システムコールで指定された前記ｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるステップであることを特徴とする請求項４又は５記載の階層記憶装置の復旧方法。
【請求項７】
オペレーティングシステム上で稼動する階層記憶装置であって、
ファイルの属性情報を含むｉノードを有し且つそのｉノード番号で当該ファイルを一意に識別するファイルシステムが構築された第１の記憶装置と、
前記ファイルシステムのバックアップデータを含むデータを格納する第２の記憶装置とを有する階層記憶装置の復旧プログラムにおいて、
コンピュータに、
前記第２の記憶装置上のバックアップデータから前記第１の記憶装置上に前記ファイルシステムが復旧されるときに、前記バックアップデータに含まれるｉノード番号を用いて、復旧対象ファイルのｉノード番号を指定するステップと、
指定されたｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるステップとを実行させるための階層記憶装置の復旧プログラム。
【請求項８】
前記ファイルを割り当てるステップは、指定されたｉノード番号が前記ファイルシステム上で不使用か否かを判断し、不使用であれば前記ｉノード番号を前記復旧対象ファイルに割り当てるステップであることを特徴とする請求項７記載の階層記憶装置の復旧プログラム。
【請求項９】
前記ｉノード番号を指定するステップは、前記オペレーティングシステム上で任意のｉノード番号を指定してシステムコールを起動させるステップであり、
前記ファイル復旧手段は、前記システムコールで指定された前記ｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるステップであることを特徴とする請求項７又は８記載の階層記憶装置の復旧プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層記憶装置、その復旧方法、及び復旧プログラムに係り、特に低速アクセス装置のバックアップデータから高速アクセス装置のファイルシステムを復旧する方法の工夫に関する。
【背景技術】
【０００２】
コンピュータシステムによる階層記憶管理は、ＨＳＭ（Hierarchical Storage Management）とも呼ばれ、読み書き速度は速いもののコストが高い高速アクセス装置である一次記憶装置（例えば、メモリ、磁気ディスク等）と、読み書き速度は遅いがコストが安い低速アクセス装置である二次記憶装置（例えば、磁気テープ、光磁気ディスク、光ディスク（ＤＶＤ−Ｒ等）等）とを組み合わせて、安価に大容量の記憶装置（階層記憶装置）を構成し、その記憶装置に記憶されているファイルを統合管理するものである。
【０００３】
この階層記憶管理では、使用者が要求したファイルが二次記憶装置に存在する場合にはそのファイルを二次記憶装置から一次記憶装置に自動的にコピーすると共に、使用されなくなったファイルを一次記憶装置から二次記憶装置に自動的に退避させる処理を行う。これにより、使用者は、ファイルの実体が一次記憶装置及び二次記憶装置の何れに存在するかを意識することなく、ファイルを使用することができる。
【０００４】
このような階層記憶管理を行うコンピュータシステムでは、例えば磁気ディスクに障害が発生した場合、その障害の原因を取り除いた後で、磁気テープに事前にバックアップしておいたバックアップデータから磁気ディスク上にファイルを復旧（リストア）する処理が行われる。このようなファイルのバックアップ及びそのリストアを行うコンピュータシステムとしては、オペレーティングシステムとして、ＵＮＩＸ（登録商標、以下省略）を使用したものが一般に知られている。
【０００５】
一般的なＵＮＩＸオペレーティングシステムは、物理装置である磁気ディスク装置上に、スーパーブロック、ｉｎｏｄｅ（index node：ｉノード）リスト、及びデータブロックの構造を有する論理装置であるファイルシステムが構築される（例えば、非特許文献１参照）。この場合において、スーパーブロックは、ファイルシステムの大きさ、ファイルの最大数、空き領域の場所等のファイルシステムの状態に関する情報を保持するものであり、ｉｎｏｄｅリストは、ファイルの種類、ファイルの所有者情報、グループ情報、ファイル作成時間、ファイル更新時間等のメタ情報を保持するｉｎｏｄｅの並びであり、データブロックは、ファイルそのもののデータ（実体）を保持するものである。このファイルシステムでは、ファイルを作成する際にｉｎｏｄｅリスト内の未使用のｉｎｏｄｅが割り当てられ、そのｉｎｏｄｅ番号によって、作成されたファイルを磁気ディスク上で一意に識別可能となっている。この場合、ファイルのメタ情報は、ｉｎｏｄｅリスト内に割り当てられた任意のｉｎｏｄｅ番号を持つｉｎｏｄｅに、ファイルの実体は１つ以上のデータブロックにそれぞれ格納される。
【０００６】
上記ＵＮＩＸオペレーティングシステムが稼動するコンピュータシステムには、上記階層記憶管理用のプログラム（以下、階層記憶管理プログラム）及びそのデータベースが実装される。この階層記憶管理プログラムは、ｉｎｏｄｅ番号をキーとして階層記憶装置を成す磁気ディスク及び磁気テープのそれぞれのファイルの移動等の情報をデータベース上で管理する。
【０００７】
これにより、コンピュータシステムでは、磁気ディスク上のファイルシステムに対するバックアップ手段及びリストア手段を実現している。このリストア手段により磁気テープ上のバックアップデータから磁気ディスク上にファイルを作成して復旧する際、ｉｎｏｄｅ番号は、ｉｎｏｄｅリスト内の空いている番号から新たに割り当てられるため、その多くは、バックアップ時のｉｎｏｄｅ番号とは異なっている。このため、このｉｎｏｄｅ番号をキーとしてデータベースを操作する階層記憶管理プログラムでは、ファイルシステム復旧後の新しいｉｎｏｄｅ番号でも運用を可能とするため、ファイルを１つ復旧するたびにデータベース上の当該ファイルに関する情報を書き換える処理を行っている。
【０００８】
なお、本発明に関連する先行技術文献としては、以下のものがある。
【特許文献１】特開２００１−１１８３６５号公報
【特許文献２】特許第３２７０２１６号公報
【非特許文献１】Maurice J. Bach著、坂本文、多田好克、村井純訳、「ｂｉｔ別冊  ＵＮＩＸカーネルの設計」、１９９０年、共立出版株式会社、ｐ．１８−２０
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来例の技術では、バックアップデータからファイルシステムを復旧する際、ファイルシステム上でファイルを一意に特定するｉｎｏｄｅ番号が変わるので、復旧対象となる全てのファイルについて階層記憶管理プログラムのデータベースを検索し、データベース内に格納されているｉｎｏｄｅ番号を更新する必要があった。このため、復旧するファイル数が増えると、データベースの検索及び更新に時間がかかるようになり、その結果、復旧に要する時間が指数関数的に増加する問題があり、その解決が望まれていた。
【００１０】
本発明は、このような従来の事情を考慮してなされたもので、階層記憶装置の復旧に要する時間を低減でき、階層記憶装置の復旧を高速に行うことを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明に係る階層記憶装置は、オペレーティングシステム上で稼動する階層記憶装置において、ファイルの属性情報を含むｉノードを有し且つそのｉノード番号で当該ファイルを一意に識別するファイルシステムが構築された第１の記憶装置と、前記ファイルシステムのバックアップデータを含むデータを格納する第２の記憶装置と、前記第２の記憶装置上のバックアップデータから前記第１の記憶装置上に前記ファイルシステムが復旧されるときに、前記バックアップデータに含まれるｉノード番号を用いて、復旧対象ファイルのｉノード番号を指定するｉノード番号指定手段と、指定されたｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるファイル割当手段とを備えたことを特徴とする。
【００１２】
本発明に係る階層記憶装置において、前記ファイル割当手段は、指定されたｉノード番号が前記ファイルシステム上で不使用か否かを判断し、不使用であれば前記ｉノード番号を前記復旧対象ファイルに割り当てる手段であってもよい。また、前記ｉノード番号指定手段は、前記オペレーティングシステム上で任意のｉノード番号を指定してシステムコールを起動させる手段であり、前記ファイル割り当て手段は、前記システムコールで指定された前記ｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てる手段であってもよい。
【００１３】
本発明に係る階層記憶装置の復旧方法は、オペレーティングシステム上で稼動する階層記憶装置であって、ファイルの属性情報を含むｉノードを有し且つそのｉノード番号で当該ファイルを一意に識別するファイルシステムが構築された第１の記憶装置と、前記ファイルシステムのバックアップデータを含むデータを格納する第２の記憶装置とを有する階層記憶装置の復旧方法において、前記第２の記憶装置上のバックアップデータから前記第１の記憶装置上に前記ファイルシステムが復旧されるときに、前記バックアップデータに含まれるｉノード番号を用いて、復旧対象ファイルのｉノード番号を指定するステップと、指定されたｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるステップとを備えたことを特徴とする。
【００１４】
本発明に係る階層記憶装置の復旧方法において、前記ファイルを割り当てるステップは、指定されたｉノード番号が前記ファイルシステム上で不使用か否かを判断し、不使用であれば前記ｉノード番号を前記復旧対象ファイルに割り当てるステップであってもよい。また、前記ｉノード番号を指定するステップは、前記オペレーティングシステム上で任意のｉノード番号を指定してシステムコールを起動させるステップであり、前記ファイル復旧手段は、前記システムコールで指定された前記ｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるステップであってもよい。
【００１５】
本発明に係る階層記憶装置の復旧プログラムは、オペレーティングシステム上で稼動する階層記憶装置であって、ファイルの属性情報を含むｉノードを有し且つそのｉノード番号で当該ファイルを一意に識別するファイルシステムが構築された第１の記憶装置と、前記ファイルシステムのバックアップデータを含むデータを格納する第２の記憶装置とを有する階層記憶装置の復旧プログラムにおいて、コンピュータに、前記第２の記憶装置上のバックアップデータから前記第１の記憶装置上に前記ファイルシステムが復旧されるときに、前記バックアップデータに含まれるｉノード番号を用いて、復旧対象ファイルのｉノード番号を指定するステップと、指定されたｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるステップとを実行させるためのものである。
【００１６】
本発明に係る階層記憶装置の復旧プログラムにおいて、前記ファイルを割り当てるステップは、指定されたｉノード番号が前記ファイルシステム上で不使用か否かを判断し、不使用であれば前記ｉノード番号を前記復旧対象ファイルに割り当てるステップであってもよい。また、前記ｉノード番号を指定するステップは、前記オペレーティングシステム上で任意のｉノード番号を指定してシステムコールを起動させるステップであり、前記ファイル復旧手段は、前記システムコールで指定された前記ｉノード番号を前記ファイルシステムの復旧対象ファイルに割り当てるステップであってもよい。
【発明の効果】
【００１７】
本発明によれば、ファイルシステムにファイルを復旧する際に、ファイルシステム上の任意のｉｎｏｄｅ番号を指定してファイルを作成でき、これにより、階層記憶管理プログラムのデータベースの更新を行う必要が無くなり、その結果、階層記憶装置の復旧に要する時間がファイル数にのみ比例するようになり、従来よりも階層記憶装置の復旧を高速に実行できる。
【発明を実施するための最良の形態】
【００１８】
次に、本発明に係る階層記憶装置、その復旧方法、及び復旧プログラムを実施するための最良の形態について図面を参照して詳細に説明する。
【実施例】
【００１９】
図１は、本実施例の階層記憶装置の全体構成を示す機能ブロック図、図２は、その要部構成を示す機能ブロック図をそれぞれ示す。
【００２０】
図１に示す階層記憶装置は、例えばＵＮＩＸオペレーティングシステムが稼動可能なコンピュータシステムから成り、機能上、アプリケーションプログラム１１、階層記憶管理プログラム（ＨＳＭ）１２、及びＵＮＩＸオペレーティングシステムのカーネル（ＵＮＩＸカーネル）１３を含むソフトウェア部１と、一次記憶装置（第１の記憶装置）としての磁気ディスク装置２１及び磁気ディスク用データベース（ＤＢ１）２２を有する高速アクセス装置部２と、二次記憶装置（第２の記憶装置）としての磁気テープ装置３２及び磁気テープ用データベース（ＤＢ２）３１を有する低速アクセス装置部３と、ＣＰＵ４１及びメモリ４２を有する処理部４とを備える。
【００２１】
ソフトウェア部１は、例えばＲＯＭ、磁気ディスク等の記録媒体上に格納され、その実行時に処理部４のＣＰＵ４１によりメモリ４２上に読み出されて実行される。
【００２２】
アプリケーションプログラム１１は、予め設定されたシステムコールを起動してカーネル１３内の関数を読み出し、カーネル１３との間で各種やり取りを実行する。アプリケーションプログラム１１には、図２に示すように、磁気ディスク装置２１上のファイルシステムを復旧するリストア手段（リストア用プログラム）１１１が含まれる。このリストア手段１１１によるシステムコールとして、本実施例では、復旧対象ファイルのパスに加えｉｎｏｄｅ番号を指定可能な特定ｉｎｏｄｅ割当要求用システムコール５（後述参照）が新たに設定されている。この特定ｉｎｏｄｅ割当要求用システムコール５によるファイルのｉｎｏｄｅ番号指定は、後述するように、磁気テープ装置３２上のバックアップデータ６（後述参照）に含まれるｉｎｏｄｅ番号を用いて行われる。
【００２３】
階層記憶管理プログラム１２は、カーネル１３上で動作するもので、所定のアルゴリズムに従い磁気ディスク用データベース２２及び磁気テープ用データベース３１を管理し、磁気ディスク２１上及び磁気テープ３２上のファイルの階層記憶管理に関する所定の操作を実行する。
【００２４】
カーネル１３は、ＵＮＩＸオペレーティングシステムの中枢を担うプログラムからなり、アプリケーションプログラム１１からのシステムコール等に応じて予め定義された関数を呼び出してその関数による所定の処理を実行する。カーネル１３は、図２に示すように、機能上、ファイル管理層１３０及び装置ドライバ層１３１を有する。ファイル管理層１３０には、ｉｎｏｄｅリスト読込手段１３０１、ｉｎｏｄｅ割当手段１３０２、及びｉｎｏｄｅリスト書込手段１３０３が、また装置ドライバ層１３１には、装置アクセス手段１３１１がそれぞれ含まれる。これら手段の動作により、通常の既知処理に加え、後述するように、アプリケーションプログラム１１のリストア手段１１１からの特定ｉｎｏｄｅ割当要求用システムコール５に応じた処理を実行可能となっている。
【００２５】
ｉｎｏｄｅリスト読込手段１３０１は、ファイルシステム２１０上のｉｎｏｄｅリスト２１２から、ｉｎｏｄｅ番号で指定されたｉｎｏｄｅが存在するディスクブロックを読み出す処理を行う（後述の図６のステップＡ１〜Ａ５の処理に対応する）。
【００２６】
ｉｎｏｄｅ割当手段１３０２は、ｉｎｏｄｅリスト読込手段１３０１により読み出したディスクブロックのｉｎｏｄｅから、指定されたｉｎｏｄｅ番号が未使用かどうか調べ、使用中ならエラーを返し、使用していなければそのファイルにｉｎｏｄｅ番号を割り当てる処理を行う（後述の図６のステップＡ６〜Ａ１０の処理に対応する）。
【００２７】
ｉｎｏｄｅリスト書込み手段１３０１は、ｉｎｏｄｅ割当手段１３０２により使用中となったｉｎｏｄｅを磁気ディスク装置２１上に書き込む処理を行う（後述の図６のステップＡ１１、Ａ１２の処理に対応する）。これにより、次の特定ｉｎｏｄｅ割当要求用システムコール５により同じｉｎｏｄｅ番号が指定された場合、使用中なのでエラーを返却することができる。
【００２８】
磁気ディスク装置２１には、前述したように、一般的なＵＮＩＸオペレーティングシステムに基づくファイルシステム２１０が構築される。このファイルシステム２１０は、スーパーブロック２１１、ｉｎｏｄｅリスト２１２、及びデータブロック２１３の構造をもつ（例えば、非特許文献１参照）。このファイルシステム２１１において、ファイルを作成するときは、未使用のｉｎｏｄｅが割り当てられ、このｉｎｏｄｅにファイルの所有者や作成時刻などのメタ情報が格納される。また、ファイルの実体が格納できる容量のひとつ以上のデータブロック２１３が割り当てられる。
【００２９】
ここで、一般的な階層記憶装置では、一次記憶装置である磁気ディスク装置２１に構築されたファイルシステム２１０上にファイルを作成し、ファイルシステム２１０の空き容量が乏しくなった場合、ユーザの明示的な指定または設定により階層記憶管理プログラム１２の処理により磁気ディスク装置２１に構築されたファイルシステム２１０上のファイルを二次記憶装置である磁気テープ装置３２に移動し、磁気ディスク装置２１のデータブロック２１３のうち、当該ファイルのデータブロック２１３を解放する。この際、磁気ディスク用データベース２２および磁気テープ用データベース３１に、移動したファイルの情報が追加される。階層記憶装置では、このように低速アクセス装置部３にファイルが移動した状態のことを、マイグレーション状態という。これにより、ファイルシステム２１０の空き容量が増える。また、磁気ディスク２１から磁気テープ３２に移動してあるファイルをアプリケーションプログラム１１やユーザがアクセスした場合、階層記憶管理プログラム１２の処理により磁気ディスク用データベース２２および磁気テープ用データベース３１を参照して自動的に磁気テープ装置３２から磁気ディスク装置２１にファイルがコピーされる。これにより、ユーザはファイルの実体がどこにあるのかを意識せずにアクセスすることができる。
【００３０】
次に、本実施例の階層記憶装置のリストア手段による復旧方法を説明する。この復旧方法は、処理部４のＣＰＵ４１がソフトウェア部１の各プログラム１１〜１３を実行することにより実施されるものである。
【００３１】
まず、磁気ディスク装置２１のバックアップ手段について説明する。このバックアップ手段では、磁気ディスク装置２１のｉｎｏｄｅリスト２１２、データブロック２１３、磁気ディスク用データベース２２を読み込み、任意の磁気ディスク装置２１上のファイルまたは磁気テープ装置３２に出力する。データブロックを読み込むときは、マイグレーションしてあるファイルかどうかを判別する。マイグレーションしてあるファイルであれば、そのファイルのデータブロックが磁気ディスク装置２１には存在しない、即ち磁気テープ装置３２にのみ存在するため、データブロックを読み込む必要がなく、それだけ高速にバックアップを取ることが可能である。
【００３２】
上記バックアップ手段としては、ＵＮＩＸオペレーティングシステムでは一般的なコマンドであるｄｕｍｐコマンドが使用される。ｄｕｍｐコマンドは、磁気ディスク装置２１上のファイルシステム２１０全体を一括してバックアップするものである。
【００３３】
図３は、バックアップデータのデータ構造を示す。図３において、バックアップデータ６は、ｉｎｏｄｅ６１、データブロック６２、階層記憶管理の磁気ディスク用データベース（ＨＳＭ  ＤＢ）６３の組からなる構造を有する。このうち、ｉｎｏｄｅ６１には、ｉｎｏｄｅ番号６１１、ファイル所有者情報（ユーザＩＤ）６１２、グループ情報（グループＩＤ）６１３、ファイル作成時刻６１４、及びファイル更新時刻６１５、図示しないファイルの種類（通常ファイル、ディレクトリ、シンボリックリンク（他のファイルを指すファイル）等のファイルタイプ）等のデータが含まれる。
【００３４】
なお、バックアップデータ６において、磁気ディスク装置２１から磁気テープ装置３２に移動したファイル、即ちマイグレーションされたファイルの場合は、データブロック６２のデータが欠如し、磁気ディスク装置２１から磁気テープ装置３２に移動していないファイル、即ちマイグレーションしていないファイルの場合は、ＨＳＭ  ＤＢ６３のデータが欠如してバックアップされる。また、磁気ディスク装置２１から磁気テープ装置３２にコピーしたファイル、即ちマイグレーションしたが、磁気ディスク装置２１上のデータブロックは解放していないファイルの場合は、図３に示すように、ｉｎｏｄｅ６１、データブロック６２、ＨＳＭ  ＤＢ６３がセットになってバックアップされる。
【００３５】
次に、上記バックアップ手段によるバックアープデータ６から磁気ディスク装置２１上のファイルを復旧するリストア手段１１１について説明する。
【００３６】
図４は、従来例の階層記憶装置のリストア手段１１１による復旧方法、図５は、本実施例の階層記憶装置のリストア手段１１１による復旧方法をそれぞれ説明するものである。
【００３７】
図４に示す従来のリストア手段１１１では、磁気ディスク装置２１に対しｉｎｏｄｅリスト２１２に基づくディレクトリの作成、リストア対象ファイルの作成と、必要に応じてデータブロック２１３の復旧を行い、磁気ディスク装置用データベース２２の復旧および磁気テープ用データベース３１の更新を行う。
【００３８】
この場合、リストア手段１１がリストア対象となるディレクトリおよびファイルを磁気ディスク装置２１に復旧する際、まずすべてのディレクトリを復旧し、その後ファイルを復旧するが、カーネル１３より割り当てられるｉｎｏｄｅ番号は、空いている、即ち未使用のｉｎｏｄｅが自動的に割り当てられるため、バックアップをとったときのｉｎｏｄｅ番号とは異なる場合がほとんどであった。このため、復旧するファイルに関して、磁気ディスク装置用データベース２２および磁気テープ用データベース３１を新しいｉｎｏｄｅ番号に基づき更新する必要があり、これらのデータベースに登録されているファイル情報が多ければ多いほど検索に時間がかかる問題があった。さらに、これらのデータベースの更新は階層記憶管理プログラム１２を経由して行う必要があったため、リストア手段１１と階層記憶管理プログラム１２の通信時間も無視できなかった。
【００３９】
これに対し、図５に示す実施例のリストア手段１１では、リストア対象となるディレクトリおよびファイルを磁気ディスク装置２１に復旧する際、まずすべてのディレクトリを復旧し、その後でファイルを復旧するが、いずれもカーネル１３に対しバックアップをとったときのｉｎｏｄｅ番号を指定して復旧する。このｉｎｏｄｅ番号の指定は、前述の図３に示すバックアップデータ６中のｉｎｏｄｅ６１に含まれるｉｎｏｄｅ番号６１１を用いて行う。
【００４０】
ここで、従来例のリストア手段１１１では、バックアップしたファイルを復旧する際、バックアップデータ６に含まれるｉｎｏｄｅ６１のうち、ファイル所有者情報６１２やグループ情報６１３、ファイル作成時刻６１４、ファイル更新時刻６１５等のデータを使用して復旧していたが、ｉｎｏｄｅ番号６１１は使用していなかった。これは、復旧する際にｉｎｏｄｅ番号が変わるのは当然のこととされていたためである。
【００４１】
これに対し、本実施例のリストア手段１１１では、ｉｎｏｄｅ番号６１１を復旧の際に使用し、ｉｎｏｄｅ番号６１１がバックアップ作成時と変わらないように工夫されている。これにより、本実施例では、復旧されるファイルのｉｎｏｄｅ番号がバックアップ作成時と変わらないため、磁気テープ用データベース３１を更新する必要がなくなり、さらに階層管理プログラム１２を経由することなく、リストア手段１１が磁気ディスク用データベース２２を直接書き換えることができ、その結果、高速な復旧を可能とする。
【００４２】
次に、図６を参照して、本実施例の階層記憶装置の復旧方法による動作について詳細に説明する。
【００４３】
まず、リストア手段１１により、復旧対象のファイルのパスおよびｉｎｏｄｅ番号を指定して、カーネル１３に対し特定ｉｎｏｄｅ割当要求用システムコール５を呼ぶ。復旧対象ファイルのｉｎｏｄｅ番号は、前述したように、バックアップデータ６に含まれるｉｎｏｄｅ番号６１１を用いて指定される。
【００４４】
これにより、カーネル１３側のｉｎｏｄｅリスト読込手段１３１１が実行され、ファイルシステム２１０のスーパーブロック２１１をロックする（ステップＡ１）。これは、ファイルシステム２１０に対する読み書きを同時に１つに制限するためである。
【００４５】
次いで、ｉｎｏｄｅリスト読込手段１３１１は、スーパーブロック２１１のロックに成功したら、スーパーブロック２１１に格納されている、最大ｉｎｏｄｅ番号を取り出す（ステップＡ２）。最大ｉｎｏｄｅ番号は、ファイルシステム２１０に応じて予め設定される固定値である。
【００４６】
次いで、ｉｎｏｄｅリスト読込手段１３１１は、リストア手段１１により入力したｉｎｏｄｅ番号と最大ｉｎｏｄｅ番号を比較する（ステップＡ３）。その結果、最大ｉｎｏｄｅ番号を超えていれば、エラーを返却し、最大ｉｎｏｄｅ番号を超えていない場合は、そのｉｎｏｄｅ番号で特定されるｉｎｏｄｅが存在するファイルシステム２１０上のディスクブロックアドレスを計算で求める（ステップＡ４）。この計算は、ｉｎｏｄｅの０番、つまり先頭が収められているディスクブロックのアドレスは、ファイルシステムの大きさ等により一意に求められる値であり、ディスクブロック１つに含まれるｉｎｏｄｅの個数も決まっているため、両値に基づき任意のｉｎｏｄｅ番号で特定されるｉｎｏｄｅが存在するディスクブロックアドレスを求めるものである。
【００４７】
次いで、ｉｎｏｄｅリスト読込手段１３１１は、求めたディスクブロックアドレスを装置アクセス手段１３２１に渡し、ファイルシステム２１０のｉｎｏｄｅリスト領域２１２からディスクブロックを読み出す（ステップＡ５）。
【００４８】
次いで、カーネル１３側のｉｎｏｄｅ割当手段１３０２が実行され、読み出したディスクブロックのｉｎｏｄｅリスト２１２から、リストア手段１１が指定したｉｎｏｄｅ番号を持つｉｎｏｄｅを検索し（ステップＡ６）、検索したｉｎｏｄｅリスト２１２に対応する「ディスクｉｎｏｄｅ」が未使用ｉｎｏｄｅかどうかを判定する（ステップＡ７）。
【００４９】
この判定は、ｉｎｏｄｅ中のデータに値が入っているかどうかに基づいて行われる。この判定で用いるｉｎｏｄｅ中のデータとしては、ｉｎｏｄｅが割り当てられたファイルの種類（通常ファイル、ディレクトリ、シンボリックリンク等のファイルタイプ）を格納しているデータ領域を例示でき、このファイルタイプに値が入っていれば、そのｉｎｏｄｅは使用中であり、値が入っていなければそのｉｎｏｄｅは未使用であるとそれぞれ判定する。
【００５０】
上記の判定により、「ディスクｉｎｏｄｅ」が使用中であれば、エラーを返却し、未使用であれば、「メモリｉｎｏｄｅ」を検索する（ステップＡ８）。「メモリｉｎｏｄｅ」は、「ディスクｉｎｏｄｅ」をメモリ４２上にキャッシュ（一時的に保存）したものである。
【００５１】
次いで、ｉｎｏｄｅ割当手段１３０２は、検索したメモリｉｎｏｄｅが未使用ｉｎｏｄｅかどうかを判定する（ステップＡ９）。この判定も、上記と同様に、ｉｎｏｄｅ中のデータ、例えばファイルタイプに値が入っているかどうかに基づいて行われ、値が入っていれば、そのｉｎｏｄｅは使用中であると判定し、値が入っていなければそのｉｎｏｄｅは未使用であるとそれぞれ判定する。
【００５２】
上記の判定により、「メモリｉｎｏｄｅ」が使用中であれば、エラーを返却し、未使用であれば、「メモリｉｎｏｄｅ」に、「ファイルタイプ」、「ユーザＩＤ」、「グループＩＤ」などのファイルの属性情報を格納する（ステップＡ１０）。
【００５３】
次いで、カーネル１３側のｉｎｏｄｅ書き込み手段１３０３が実行され、メモリｉｎｏｄｅの内容をそのままディスクｉｎｏｄｅに反映するようにファイルシステム２１のｉｎｏｄｅリスト領域２１２を更新し（ステップＡ１１）、最後にスーパーブロック２１１をアンロックする（ステップＡ１２）。
【００５４】
以上のステップＡ１〜Ａ１２の処理により、復旧対象ファイルのｉｎｏｄｅのデータ及びそのファイルそのもののデータが復旧されるので、引き続き、磁気ディスク用データベース２２のデータを復旧する。このとき、ｉｎｏｄｅ番号が変わっていないため、バックアップデータ６のデータベース（ＨＳＭ  ＤＢ）６３のデータがそのまま書き込まれる。
【００５５】
従って、本実施例によれば、ファイルシステム２１０上に、アプリケーションプログラム１１が指定したｉｎｏｄｅ番号をもつファイルおよびディレクトリを作成することができ、これにより、バックアップ手段で磁気ディスク装置２１のバックアップをとり、それをリストア手段１１１で復旧したときにファイルシステム上のｉｎｏｄｅ番号を同一とすることができるため、階層記憶管理プログラム１２のようなｉｎｏｄｅ番号をデータベース２２にもつアプリケーションのデータベースを書き換える必要がなくなり、高速に復旧することが可能となる。その結果、磁気ディスク装置の故障などによりファイルシステムが破壊された場合に、ファイルシステム２１０の復旧に伴うシステムの停止時間を大幅に削減することができる。
【００５６】
なお、他の実施例として、ファイルシステム２１０上に作成できる、通常のファイルやディレクトリに加え、シンボリックリンクファイル（他のファイルを指すファイル）や、スペシャルファイル（主に装置にＩ／Ｏを出すための特別なファイル）についても、ｉｎｏｄｅ番号を指定して作成することができるため、これらを含むファイルシステム２１０を復旧することも可能である。
【００５７】
また、ファイルシステム２１０と磁気ディスク用データベース（ＤＢ１）２２のセットは、オペレーティングシステムおよびハードウェアの諸元を超えない限り、１システム中に何個でも定義することができる。
【００５８】
また、上記実施例では、高速アクセス装置部２の一次記憶装置に磁気ディスク装置２１、低速アクセス装置部３の二次記憶装置に磁気テープ装置３２を用いた場合を説明したが、本発明はこれに限らず、高速アクセス装置部２に半導体メモリ等の一次記憶装置（第１の記憶装置）を使用し、低速アクセス装置部３に光磁気ディスク、光ディスク（ＤＶＤ−Ｒ等）等の二次記憶装置（第２の記憶装置）を使用してもよい。
【産業上の利用可能性】
【００５９】
本発明は、ＵＮＩＸオペレーティングシステムが稼動するコンピュータのファイルシステムのリストア技法や、ＵＮＩＸファイルシステムにアプリケーションプログラムがシステムコールを用いて任意のｉｎｏｄｅ番号を持つファイルを作成する方法にも適用できる。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施例に係る階層記憶装置の全体構成を示す機能ブロック図である。
【図２】本発明の実施例に係る階層記憶装置の要部構成を示す機能ブロック図である。
【図３】バックアップデータのデータ構造を示す図である。
【図４】従来の階層記憶装置のリストア手段による復旧方法を説明する図である。
【図５】本発明の実施例に係る階層記憶装置のリストア手段による復旧方法を説明する図である。
【図６】本発明の実施例に係る階層記憶装置の復旧方法を説明するフローチャートである。
【符号の説明】
【００６１】
１  ソフトウェア部
２  高速アクセス装置部
３  低速アクセス装置部
４  処理部
１１  アプリケーションプログラム
１２  階層記憶管理プログラム（ＨＳＭ）
１３  カーネル
２１  磁気ディスク装置
２２  磁気ディスク用データベース（ＤＢ１）
３１  磁気テープ装置
３２  磁気テープ用データベース（ＤＢ２）
４１  ＣＰＵ
４２  メモリ
２１０  ファイルシステム
２１１  スーパーブロック
２１２  ｉｎｏｄｅリスト
２１３  データブロック
【図１】
2005316708.tif 000003
【図２】
2005316708.tif 000004
【図３】
2005316708.tif 000005
【図４】
2005316708.tif 000006
【図５】
2005316708.tif 000007
【図６】
2005316708.tif 000008