(57)【要約】  ＨＳＭ装置の制御をコンピュータに実行させるＨＳＭ制御プログラムであって、一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録ステップと、一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、イベントデータに基づいて名前空間複製データベースを一次記憶装置の名前空間に追随させる名前空間追随ステップと、名前空間複製データベースに基づいて一次記憶装置と二次記憶装置の間のファイル移動の指示を行うファイル移動指示ステップとをコンピュータに実行させる。【特許請求の範囲】
【請求項１】
一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御をコンピュータに実行させるＨＳＭ制御プログラムであって、
前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録ステップと、
前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、
前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随ステップと、
前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示ステップと、
をコンピュータに実行させるＨＳＭ制御プログラム。
【請求項２】
請求項１に記載のＨＳＭ制御プログラムにおいて、
前記ファイル移動指示ステップは、前記一次記憶装置から前記二次記憶装置へ移動させるファイルを、前記名前空間複製データベースに基づいて決定することを特徴とするＨＳＭ制御プログラム。
【請求項３】
請求項１または請求項２に記載のＨＳＭ制御プログラムにおいて、
前記名前空間追随ステップは、名前空間複製データベースの初期の複製が完了した後のイベントデータに基づいて、前記名前空間複製データベースを更新することを特徴とするＨＳＭ制御プログラム。
【請求項４】
請求項１乃至請求項３のいずれかに記載のＨＳＭ制御プログラムにおいて、
前記名前空間複製ステップは、前記名前空間複製データベースの生成中のイベントデータに基づいて、前記名前空間複製データベースを更新することを特徴とするＨＳＭ制御プログラム。
【請求項５】
請求項１乃至請求項４のいずれかに記載のＨＳＭ制御プログラムにおいて、
更に、前記ＨＳＭ制御プログラムが動作するシステムを停止する場合、前記イベントデータ記録ステップにより記録されたイベントデータを前記名前空間複製データベースに反映させるシステム停止ステップをコンピュータに実行させることを特徴とするＨＳＭ制御プログラム。
【請求項６】
請求項１乃至請求項５のいずれかに記載のＨＳＭ制御プログラムにおいて、
更に、前記ＨＳＭ制御プログラムが動作するシステムの異常終了時の後に該システムを起動する場合、前記名前空間複製ステップを実行させることを特徴とするＨＳＭ制御プログラム。
【請求項７】
請求項１乃至請求項６のいずれかに記載のＨＳＭ制御プログラムにおいて、
前記イベントデータ記録部は、所定のイベントデータ量が記録された場合、または所定の期間が経過した場合に、記録したイベントデータで前記名前空間追随ステップを実行させることを特徴とするＨＳＭ制御プログラム。
【請求項８】
請求項１乃至請求項７のいずれかに記載のＨＳＭ制御プログラムにおいて、
前記イベントデータは、ファイル操作またはアーカイブ状態変化の種類と発生した時刻を含むことを特徴とするＨＳＭ制御プログラム。
【請求項９】
請求項１乃至請求項８のいずれかに記載のＨＳＭ制御プログラムにおいて、
前記名前空間複製データベースは、ファイルの属性とアーカイブ状態を含むことを特徴とするＨＳＭ制御プログラム。
【請求項１０】
一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御を行うＨＳＭ制御装置であって、
前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録部と、
前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製部と、
前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随部と、
前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示部と、
を備えてなるＨＳＭ制御装置。
【請求項１１】
請求項１０に記載のＨＳＭ制御装置において、
前記ファイル移動指示部は、前記一次記憶装置から前記二次記憶装置へ移動させるファイルを、前記名前空間複製データベースに基づいて決定することを特徴とするＨＳＭ制御装置。
【請求項１２】
請求項１０または請求項１１に記載のＨＳＭ制御装置において、
前記名前空間追随部は、名前空間複製データベースの初期の複製が完了した後のイベントデータに基づいて、前記名前空間複製データベースを更新することを特徴とするＨＳＭ制御装置。
【請求項１３】
請求項１０乃至請求項１２のいずれかに記載のＨＳＭ制御装置において、
前記名前空間複製部は、前記名前空間複製データベースの生成中のイベントデータに基づいて、前記名前空間複製データベースを更新することを特徴とするＨＳＭ制御装置。
【請求項１４】
請求項１０乃至請求項１３のいずれかに記載のＨＳＭ制御装置において、
前記ＨＳＭ制御装置を備えたシステムを停止する場合、前記イベントデータ記録部は、記録されたイベントデータを前記名前空間複製データベースに反映させることを特徴とするＨＳＭ制御装置。
【請求項１５】
請求項１０乃至請求項１４のいずれかに記載のＨＳＭ制御装置において、
前記ＨＳＭ制御装置を備えたシステムの異常終了時の後に該システムを起動する場合、前記名前空間複製部が動作することを特徴とするＨＳＭ制御装置。
【請求項１６】
請求項１０乃至請求項１５のいずれかに記載のＨＳＭ制御装置において、
前記イベントデータ記録部は、所定のイベントデータ量が記録された場合、または所定の期間が経過した場合に、記録したイベントデータで前記名前空間追随部を実行させることを特徴とするＨＳＭ制御装置。
【請求項１７】
請求項１０乃至請求項１６のいずれかに記載のＨＳＭ制御装置において、
前記イベントデータは、ファイル操作またはアーカイブ状態変化の種類と発生した時刻を含むことを特徴とするＨＳＭ制御装置。
【請求項１８】
請求項１０乃至請求項１７のいずれかに記載のＨＳＭ制御装置において、
前記名前空間複製データベースは、ファイルの属性とアーカイブ状態を含むことを特徴とするＨＳＭ制御装置。
【請求項１９】
一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御を実行するＨＳＭ制御方法であって、
前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録ステップと、
前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、
前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随ステップと、
前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示ステップと、
を実行するＨＳＭ制御プログラム。
【請求項２０】
請求項１９に記載のＨＳＭ制御方法において、
前記ファイル移動指示ステップは、前記一次記憶装置から前記二次記憶装置へ移動させるファイルを、前記名前空間複製データベースに基づいて決定することを特徴とするＨＳＭ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層化された記憶装置の管理を行うＨＳＭ制御プログラム、ＨＳＭ制御装置、ＨＳＭ制御方法に関するものである。
【背景技術】
【０００２】
ＨＳＭ（Hierarchical Storage Management：階層記憶管理）は、テープライブラリなどの低速なストレージ装置（二次ストレージ）とハードディスクなどの高速なストレージ装置（一次ストレージ）を組み合わせることにより、安価な大容量ファイルシステムを構築するものである。【０００３】
ＨＳＭ制御装置においては、一次ストレージにおいて長時間アクセスされていないファイルを特定し、そのファイルを二次ストレージに書き出し、アクセスが要求された時点で一次ストレージに移動することが必要となる。従来、これを実現するために、従来のＨＳＭ制御装置は、階層構造を持つファイルシステムの名前空間を総なめし、ファイルシステムがファイル単位に保持するアクセス時刻を参照することにより、二次ストレージに書き出すファイルを特定する方式を用いている。【０００４】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献１が知られている。このデータ処理装置は、メタデータデータの内容が更新されると、ログが採取され、このログを用いてファイルシステムの不整合の修正を行うものである。
【特許文献１】特開２０００−４８４９９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した名前空間を総なめする方式のＨＳＭ制御装置には、以下の問題がある。【０００６】
第１にファイルシステム総なめオーバヘッドの問題がある。従来のＨＳＭ制御装置では階層構造を持つファイル名前空間を定期的に総なめするために、オーバヘッドが大きくなってしまう。【０００７】
第２に名前空間の排他問題がある。ＨＳＭ制御装置が名前空間を総なめしている間に、ｒｅｎａｍｅ操作などのファイル名変更操作が行われると、総なめの過程で求めたパス名が、実際には存在しない不当なものとなってしまう。このため、ＨＳＭ制御装置は、顧客が設定したポリシと矛盾するデータ移動操作を行ってしまう可能性がある。例えば、検索の途中で、上位ディレクトリがゴミ箱に移されたとすると、ゴミ箱全体を移動対象としてしまうようなことが起こる。こうした問題を防ごうとすると、ＨＳＭ制御装置は総なめの過程で、頻繁に矛盾をチェックし、矛盾があれば総なめをやり直すことが必要となり、論理が非常に複雑となるとともにオーバヘッドが大幅に増加する。【０００８】
第３にＨＳＭポリシ制御の柔軟性がある。一般に階層構造の名前空間は格納されているファイル群の性格を表しているため、ＨＳＭポリシも名前空間に基づいて設定する（あるディレクトリ以下の全ファイルなど）のが自然である。しかし、上述した名前空間の排他問題により、名前空間に基づく複雑なポリシ制御を実現することが難しいという問題があった。【０００９】
第４に二次ストレージに退避されたデータの属性情報不足の問題がある。また上述した名前空間の排他問題により、二次ストレージに格納されるデータに正しいパス名を付加することが難しい。このため、二次ストレージに格納されたデータはファイルシステムのメタデータのみからしかアクセスできないことになり、ファイルシステムのメタデータが壊れると、二次ストレージ上にデータは残っているのにもかかわらず、パス名と対応づけることができないため、ファイルデータを復旧することができないという問題があった。【００１０】
本発明は上述した問題点を解決するためになされたものであり、効率的に名前空間を複製することにより、名前空間に基づく複雑なポリシ制御を実現するＨＳＭ制御プログラム、ＨＳＭ制御装置、ＨＳＭ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するため、本発明は、一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御をコンピュータに実行させるＨＳＭ制御プログラムであって、前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録ステップと、前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随ステップと、前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示ステップとをコンピュータに実行させるものである。【００１２】
また、本発明に係るＨＳＭ制御プログラムにおいて、前記ファイル移動指示ステップは、前記一次記憶装置から前記二次記憶装置へ移動させるファイルを、前記名前空間複製データベースに基づいて決定することを特徴とするものである。【００１３】
また、本発明に係るＨＳＭ制御プログラムにおいて、前記名前空間追随ステップは、名前空間複製データベースの初期の複製が完了した後のイベントデータに基づいて、前記名前空間複製データベースを更新することを特徴とするものである。【００１４】
また、本発明に係るＨＳＭ制御プログラムにおいて、前記名前空間複製ステップは、前記名前空間複製データベースの生成中のイベントデータに基づいて、前記名前空間複製データベースを更新することを特徴とするものである。【００１５】
また、本発明に係るＨＳＭ制御プログラムにおいて、更に、前記ＨＳＭ制御プログラムが動作するシステムを停止する場合、前記イベントデータ記録ステップにより記録されたイベントデータを前記名前空間複製データベースに反映させるシステム停止ステップをコンピュータに実行させることを特徴とするものである。【００１６】
また、本発明に係るＨＳＭ制御プログラムにおいて、更に、前記ＨＳＭ制御プログラムが動作するシステムの異常終了時の後に該システムを起動する場合、前記名前空間複製ステップを実行させることを特徴とするものである。【００１７】
また、本発明に係るＨＳＭ制御プログラムにおいて、前記イベントデータ記録部は、所定のイベントデータ量がメモリ上に記録された場合、または所定の期間が経過した場合に、メモリ上に記録したイベントデータで前記名前空間追随ステップを実行させることを特徴とするものである。【００１８】
また、本発明に係るＨＳＭ制御プログラムにおいて、前記イベントデータは、ファイル操作またはアーカイブ状態変化の種類と発生した時刻を含むことを特徴とするものである。【００１９】
また、本発明に係るＨＳＭ制御プログラムにおいて、前記名前空間複製データベースは、ファイルの属性とアーカイブ状態を含むことを特徴とするものである。【００２０】
また、本発明は、一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御を行うＨＳＭ制御装置であって、前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録部と、前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製部と、前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随部と、前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示部とを備えたものである。【００２１】
また、本発明に係るＨＳＭ制御装置において、前記ファイル移動指示部は、前記一次記憶装置から前記二次記憶装置へ移動させるファイルを、前記名前空間複製データベースに基づいて決定することを特徴とするものである。【００２２】
また、本発明に係るＨＳＭ制御装置において、前記名前空間追随部は、名前空間複製データベースの初期の複製が完了した後のイベントデータに基づいて、前記名前空間複製データベースを更新することを特徴とするものである。【００２３】
また、本発明に係るＨＳＭ制御装置において、前記名前空間複製部は、前記名前空間複製データベースの生成中のイベントデータに基づいて、前記名前空間複製データベースを更新することを特徴とするものである。【００２４】
また、本発明に係るＨＳＭ制御装置において、前記ＨＳＭ制御装置を備えたシステムを停止する場合、前記イベントデータ記録部は、記録されたイベントデータを前記名前空間複製データベースに反映させることを特徴とするものである。【００２５】
また、本発明に係るＨＳＭ制御装置において、前記ＨＳＭ制御装置を備えたシステムの異常終了時の後に該システムを起動する場合、前記名前空間複製部が動作することを特徴とするものである。【００２６】
また、本発明に係るＨＳＭ制御装置において、前記イベントデータ記録部は、所定のイベントデータ量が記録された場合、または所定の期間が経過した場合に、記録したイベントデータで前記名前空間追随部を実行させることを特徴とするものである。【００２７】
また、本発明に係るＨＳＭ制御装置において、前記イベントデータは、ファイル操作またはアーカイブ状態変化の種類と発生した時刻を含むことを特徴とするものである。【００２８】
また、本発明に係るＨＳＭ制御装置において、前記名前空間複製データベースは、ファイルの属性とアーカイブ状態を含むことを特徴とするものである。【００２９】
また、本発明は、一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御を実行するＨＳＭ制御方法であって、前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録ステップと、前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随ステップと、前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示ステップとを実行するものである。
【図面の簡単な説明】
【００３０】
【図１】本発明に係るＨＳＭ装置の構成の一例を示すブロック図である。
【図２】本発明に係るファイル情報取得処理の動作の一例を示すフローチャートである。
【図３】名前空間におけるディレクトリの階層構造の一例を示す図である。
【図４】本発明に係るファイル情報取得処理の動作の一例を示すフローチャートである。
【図５】本発明に係るイベントデータ反映処理の動作の一例を示すフローチャートである。
【図６】本発明に係るマイグレート決定処理の動作の一例を示すフローチャートである。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について図面を参照しつつ説明する。【００３２】
本実施の形態においては、本発明に係るＨＳＭ制御装置であるサーバについて説明する。【００３３】
まず、本発明に係るサーバを有するＨＳＭ装置の構成について説明する。【００３４】
図１は、本発明に係るＨＳＭ装置の構成の一例を示すブロック図である。最近アクセスされたファイルを格納しているディスク装置などの高速ストレージ装置である一次ストレージ１、および長時間アクセスされていないファイルデータが格納されるテープライブラリ装置などの低速ストレージ装置である二次ストレージ２と、本発明に係るＨＳＭ制御装置であり、ファイルデータをアクセスするアプリケーションが動作するサーバ３から構成される。【００３５】
また、サーバ３は、アプリケーション部１１、ファイルシステム制御部１２、名前空間複製部１３、名前空間追随部１４、名前空間複製ＤＢ（Database）１５、マイグレート決定部１６を備える。また、ファイルシステム制御部１２は、イベントデータ記録部２１を備える。【００３６】
次に、サーバ３の各部について説明する。【００３７】
イベントデータ記録部２１は、アプリケーションプログラムが発行したファイル操作要求の履歴をイベントデータとして蓄積するファイルシステム制御部１２内に配置されるプログラムである。イベントデータ記録部２１は、アプリケーション部１１が発行したファイル操作要求の内容をイベントデータに変換してメモリ上に蓄積しておき、一定量たまったところで名前空間複製部１３や名前空間追随部１４に渡す。イベントデータの受け渡しは、通信を使用してもよいし、専用のファイルを介して受け渡してもよい。【００３８】
名前空間複製部１３は、アプリケーション部１１の動作と平行して、ファイルシステムの名前空間の複製を行うプログラムである。名前空間複製部１３は、ファイルシステムの名前空間をたどり、存在するファイルのファイル情報を取得する。このファイル情報と、ファイル情報取得中にイベントデータ記録部２１から受け取ったイベントデータを組み合わせて、名前空間の初期複製を名前空間複製ＤＢ１５として完成させる。【００３９】
名前空間追随部１４は、名前空間の初期複製が完成した後、イベントデータ記録部２１から受け取ったイベントデータに従って複製を更新し、名前空間複製ＤＢ１５を最新の状態に維持する機能を受け持つ。また、名前空間追随部１４は、通知されたファイルアクセスやアーカイブ状態を名前空間複製ＤＢ１５に反映する役割も担う。【００４０】
マイグレート決定部１６は、ポリシ制御の一例として、名前空間複製部１３が設定したファイルアクセス記録とユーザが設定したポリシに従い、一次ストレージ１において長時間アクセスされていないファイルを二次ストレージ２に追い出すため、ファイルシステム制御部１２に指示を出すプログラムである。通常、二次ストレージ２に追い出された（マイグレートされた）ファイルは、アプリケーション部１１がそのファイルをアクセスしたときに、ファイルシステム制御部１２が二次ストレージ２から一次ストレージ１に戻す（リコール）。また、ファイルを更新したタイミングで、ファイルシステム制御部１２により二次ストレージ２上のデータ（アーカイブデータ）が無効化される。二次ストレージ２上のデータはこのタイミングでは消えず、二次ストレージ２が不足するまで、バックアップデータとして残され、ファイルシステム障害時などのリカバリで使われる。【００４１】
次に、イベントデータ、ファイル情報、名前空間複製ＤＢ１５の詳細について説明する。【００４２】
まず、イベントデータについて説明する。【００４３】
イベントデータ記録部２１により作成されるイベントデータ（ｅｖｅｎｔ）はファイルやディレクトリの生成や削除、ファイル名の変更、ファイルアクセス、アーカイブ状態変化などのファイル操作の内容を表しており、操作名と操作が行われた時刻に加え、それぞれ以下のデータを含む。ここで、アーカイブ状態変化とは、アーカイブデータの有効化・無効化、マイグレート、リコールなどの事象を含む。【００４４】
（１）  ファイルあるいはディレクトリの作成
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ｃｒｅａｔｅ
ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝
ｄｉｒ  （ｍｋｄｉｒ時）あるいはｆｉｌｅ  （ｃｒｅａｔｅ時）
ｅｖｅｎｔ．ｆｎａｍｅ  ＝  作成されたファイルの名前
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝
作成されたファイルあるいはディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻【００４５】
（２）  ファイルあるいはディレクトリの削除
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ｄｅｌｅｔｅ
ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝  ｄｉｒ  （ｒｍｄｉｒ時）あるいはｆｉｌｅ  （ｒｅｍｏｖｅ時）
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝  削除されたファイルあるいはディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻【００４６】
（３）  ファイル名の変更
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ｒｅｎａｍｅ
ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝
ｄｉｒ（対象がディレクトリの場合）
あるいはｆｉｌｅ（対象がファイルの場合）
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝
対象のファイルあるいはディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃  ＝
移動先ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ  ＝
変更後のファイルあるいはディレクトリ名
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻【００４７】
（４）  ファイルアクセス（アプリケーションプログラムがファイルをｒｅａｄ／ｗｒｉｔｅ）
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ａｃｃｅｓｓ
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝  ファイルのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻【００４８】
（５）  アーカイブ状態変化
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ａｒｃｈｉｖｅ
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝  ファイルのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｍｉｇｒａｔｅ  ＝
オン（マイグレート状態となった）
あるいはオフ（リコールが起動され、マイグレート状態でなくなった）
ｅｖｅｎｔ．ａｒｃｈｉｖｅ  ＝
オン（二次記憶へのファイルデータの書き出しが完了し、アーカイブデータが有効となった）
あるいはオフ（ファイルが更新された結果アーカイブデータが無効となった）
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻【００４９】
次に、ファイル情報について説明する。【００５０】
名前空間複製復元中にファイルシステムから取得するファイル情報（ｆｓｔａｔ）には、以下のものがある。
ｆｓｔａｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｆｓｔａｔ．ｆｔｙｐｅ  ＝  ｄｉｒ（対象がディレクトリの場合）
あるいはｆｉｌｅ  （対象がファイルの場合）
ｆｓｔａｔ．ｆｎａｍｅ  ＝  ディレクトリあるいはファイルの名前
ｆｓｔａｔ．ｉｎｏｄｅ＃  ＝
ファイルあるいはディレクトリのｉｎｏｄｅ番号
ｆｓｔａｔ．ａｒｃｈｉｖｅ  ＝  オン（アーカイブデータが有効なとき）
あるいはオフ（アーカイブデータが無効なとき）
ｆｓｔａｔ．ｍｉｇｒａｔｅ  ＝  オン（マイグレート状態のとき）
あるいはオフ（マイグレートされていないとき）
ｆｓｔａｔ．ａｔｉｍｅ  ＝  ファイルを最後にアクセスした時刻
ｆｓｔａｔ．ｔｉｍｅ  ＝  ファイル情報取得時刻【００５１】
次に、名前空間複製ＤＢ１５の構成について説明する。【００５２】
名前空間複製ＤＢ１５は、以下のカラム（ｄｂｅ）を持つ、ディレクトリに設定されているファイルあるいはディレクトリ要素ごとにタプルを持つリレーショナルＤＢである。【００５３】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｄｂｅ．ｆｔｙｐｅ  ＝  ｄｉｒ（このタプルがディレクトリをあらわすとき）  あるいは  ｆｉｌｅ  （このタプルがファイルを表すとき）
ｄｂｅ．ｆｎａｍｅ  ＝  ファイルあるいはディレクトリの名前
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ファイルあるいはディレクトリのｉｎｏｄｅ番号
ｄｂｅ．ａｒｃｈｉｖｅ  ＝  オン（アーカイブデータが有効なとき）
あるいはオフ（アーカイブデータが無効なとき）
ｄｂｅ．ｍｉｇｒａｔｅ  ＝  オン（マイグレート状態のとき）
あるいはオフ（マイグレートされていないとき）
ｄｂｅ．ａｔｉｍｅ  ＝  ファイルを最後にアクセスした時刻
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン（ファイル情報取得済みのとき）
あるいはオフ（まだファイル情報を取得していないとき）【００５４】
次に、サーバ３の動作について説明する。【００５５】
図２は、本発明に係るファイル情報取得処理の動作の一例を示すフローチャートである。サーバ３は、名前空間複製処理（Ｓ１１）、名前空間追随処理（Ｓ１２）、マイグレート処理（Ｓ１３）を実行する。【００５６】
次に、サーバ３における動作の詳細について説明する。【００５７】
まず、名前空間複製処理について説明する。【００５８】
名前空間複製処理は、名前空間複製部１３は、名前空間の初期複製を作成する処理であり、ファイル情報取得処理とイベントデータ反映処理からなる。また、名前空間複製処理は、障害発生後のサーバ再立ち上げ時など、メモリ上に蓄積されていたイベントデータが失われ、名前空間複製ＤＢ１５の内容がファイルシステムの最新状態を反映できなくなったときに、名前空間複製ＤＢ１５を再作成する目的で動作する。このように名前空間複製ＤＢ１５を動的に再作成する構成では、イベントデータをイベント発生時に不揮発化する必要がなく、小さい容量のメモリに蓄積するのみで良く、後の名前空間複製ＤＢの追随のオーバヘッドを削減することができる。【００５９】
名前空間複製部１３は、まず、ファイル情報取得処理として、親ディレクトリをオープンし、子ファイル名あるいは子ディレクトリ名を引数として指定し、ファイルシステムの情報取得機能（ｇｅｔｉｎｆｏ）を発行することにより求める。また、名前空間複製部１３は、パス名昇順（あるいは降順）とした名前空間をたどることにより、ファイルシステム内に存在するディレクトリ、ファイルの情報を漏れなく求める。この過程で見逃したものは、イベントデータとして記録されているので、後で補正する。【００６０】
図３は、名前空間におけるディレクトリの階層構造の一例を示す図である。この名前空間は、ディレクトリの階層構造を持ち、ディレクトリ名やファイル名を昇順に左から右へソートしたものである。図４は、本発明に係るファイル情報取得処理の動作の一例を示すフローチャートである。【００６１】
まず、名前空間複製部１３は、対象ファイルシステムのルートディレクトリを基点とし、ディレクトリを左下方向（ディレクトリ名の昇順）に順にたどり、最も左下のディレクトリを見つける。見つけた最も左下のディレクトリを対象ディレクトリとし、検索の過程で求めた対象ディレクトリのパス名を対象ディレクトリパス名とする（Ｓ２０１）。次に、名前空間複製部１３は、対象ディレクトリのファイル情報および対象ディレクトリ内に存在する全ファイルのファイル情報をファイル名昇順にひとつずつ順に求め、ファイル情報記録ファイルの末尾に順に書き込む（Ｓ２０２）。次に、名前空間複製部１３は、対象ディレクトリがルートディレクトリであるか否かの判断を行う（Ｓ２０３）。対象ディレクトリがルートディレクトリである場合（Ｓ２０３，Ｙ）、全ファイルを処理し終わったことを意味するのでファイル情報取得処理を終了する。【００６２】
一方、対象ディレクトリがルートディレクトリでない場合（Ｓ２０３，Ｎ）、名前空間複製部１３は、対象ディレクトリパス名から、対象ディレクトリのひとつ上のディレクトリパス名を求める、すなわち、パス名を構成する最終構成ディレクトリ名を取り除いたパス名を新しいパス名とする。次に、名前空間複製部１３は、求めたディレクトリパス名をルートディレクトリから下方に順に再度検索し、この検索で存在を確認できた最終ディレクトリを基点ディレクトリとする（Ｓ２０５）。パスの途中のディレクトリがｒｅｎａｍｅなどで名前空間の別の位置に動かされている場合、途中でみつからなくなるが、この部分は後続のファイル情報取得処理で見つかるか、イベントデータで必ず通知され、後で補正されるため、無視しても問題ない。【００６３】
次に、名前空間複製部１３は、基点ディレクトリの内容を読み込み、基点ディレクトリ内に未処理のディレクトリがあるか否かの判断を行う（Ｓ２０６）。未処理のディレクトリがある場合（Ｓ２０６，Ｙ）、名前空間複製部１３は、未処理の最も左下のディレクトリを求め、これを対象ディレクトリとし（Ｓ２０７）、処理Ｓ２０２に移行する。未処理のディレクトリが存在しない、すなわち基点ディレクトリ内に対象ディレクトリパス名で示されるより大きなファイル名をもつディレクトリが存在しない場合（Ｓ２０６，Ｎ）、基点ディレクトリのパス名を対象ディレクトリパス名に設定し（Ｓ２０８）、処理Ｓ２０２に移行する。【００６４】
次に、名前空間複製部１３は、対象ファイルシステムのファイル情報取得処理が全て終了すると、その間に発生したイベントデータをファイル情報に反映するイベントデータ反映処理を行う。ファイル情報記録ファイルを先頭から順によみ、ファイル情報記録ファイルに記録されている全てのファイル情報を処理したら、イベントデータ反映処理は終了する。【００６５】
図５は、本発明に係るイベントデータ反映処理の動作の一例を示すフローチャートである。まず、名前空間複製部１３は、未処理のファイル情報を取り出し（Ｓ３０２）、ファイル情報に設定されていた情報取得時刻以前の時刻を持つ、イベントデータを順に取り出し、名前空間複製ＤＢ１５に反映する（Ｓ３０３）。【００６６】
ここで、名前空間複製ＤＢ１５への反映について、イベントデータが、削除系、生成系、ファイル名の変更、ファイルアクセス、アーカイブ状態変化のそれぞれの場合について説明する。【００６７】
イベントデータが削除系（ファイル削除，ディレクトリ削除）の場合、名前空間複製部１３は、削除対象ファイルあるいはディレクトリが既に名前空間複製ＤＢ１５に登録済みなら削除する。そうでなければ何もしない。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。【００６８】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ【００６９】
イベントデータが生成系（ファイル生成，ディレクトリ生成）の場合、名前空間複製部１３は、作成されたファイルあるいはディレクトリが名前空間複製ＤＢ１５に登録済みでなければ情報取得済みで登録する。登録済みならこのイベントデータを無視し、何もしない。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。【００７０】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ【００７１】
未登録時の設定内容を以下に示す。【００７２】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．  ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｔｙｐｅ  ＝  ｅｖｅｎｔ．  ｆｔｙｐｅ
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｆｎａｍｅ
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ａｒｃｈｉｖｅ  ＝  オフ
ｄｂｅ．ｍｉｇｒａｔｅ  ＝  オフ
ｄｂｅ．ａｔｉｍｅ  ＝  ｅｖｅｎｔ．ｔｉｍｅ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン【００７３】
イベントデータがファイル名の変更（ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝＝  ｒｅｎａｍｅ）の場合、名前空間複製部１３は、改名後と同じ名前をもつファイルあるいはディレクトリがすでに登録されていた場合（ファイル名と親ｉｎｏｄｅ番号で評価）、そのエントリを名前空間複製ＤＢ１５から削除する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。【００７４】
ｄｂｅ．ｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝
ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ【００７５】
ここで、対象ファイルが名前空間複製ＤＢ１５に既に登録されているならそのエントリの親情報とファイル名を変更する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。【００７６】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ【００７７】
このときの変更内容を以下に示す。【００７８】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｎａｍｅ  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ【００７９】
ここで、対象ファイルが未登録なら、改名後のファイルを名前空間複製ＤＢ１５に新しいエントリとして登録する。【００８０】
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｎａｍｅ  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オフ【００８１】
イベントデータがファイルアクセス（ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝＝  ａｃｃｅｓｓ）の場合、名前空間複製部１３は、対象ｉｎｏｄｅが未登録ならこのイベントデータを無視する。登録されていたら、登録済みのすべてのエントリのファイル最終アクセス時刻、アーカイブ情報、リコール情報を更新（ハードリンクがあるため）する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。【００８２】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃【００８３】
このときの変更内容を以下に示す。【００８４】
ｄｂｅ．ａｔｉｍｅ  ＝  ｅｖｅｎｔ．ｔｉｍｅ【００８５】
イベントデータがアーカイブ状態変化（ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝＝  ａｒｃｈｉｖｅ）の場合、対象ｉｎｏｄｅが未登録ならこのイベントデータを無視。登録されていたら、すべてのエントリのアーカイブ情報を更新（ハードリンクがあるため）する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。【００８６】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃【００８７】
このときの変更内容を以下に示す。【００８８】
ｄｂｅ．ａｒｃｈｉｖｅ  ＝  ｅｖｅｎｔ．ａｒｃｈｉｖｅ
ｄｂｅ．ｍｉｇｒａｔｅ  ＝  ｅｖｅｎｔ．ｍｉｇｒａｔｅ【００８９】
次に、名前空間複製部１３は、ファイル情報の内容を名前空間複製ＤＢ１５に未登録なら情報取得済みとして登録する（Ｓ３０５）。同一ｉｎｏｄｅ番号を持つタプルが登録されていた場合には、登録されている全てのエントリの内容を変更する。ここで、以下の条件をすべて満たすエントリが存在するとき、登録済みとみなす。【００９０】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｆｓｔａｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｆｓｔａｔ．ｆｎａｍｅ
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｆｓｔａｔ．ｍ＿ｉｎｏｄｅ＃【００９１】
また、未登録時の設定内容を以下に示す。【００９２】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｆｓｔａｔ．  ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｔｙｐｅ  ＝  ｆｓｔａｔ．  ｆｔｙｐｅ
ｄｂｅ．ｆｎａｍｅ  ＝  ｆｓｔａｔ．ｆｎａｍｅ
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｆｓｔａｔ．ｉｎｏｄｅ＃
ｄｂｅ．ａｒｃｈｉｖｅ  ＝  ｆｓｔａｔ．ａｒｃｈｉｖｅ
ｄｂｅ．ｍｉｇｒａｔｅ  ＝  ｆｓｔａｔ．ｍｉｇｒａｔｅ
ｄｂｅ．ａｔｉｍｅ  ＝  ｆｓｔａｔ．ａｔｉｍｅ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン【００９３】
また、同一ｉｎｏｄｅ番号が既に登録済み（すなわちｄｂｅ．ｉｎｏｄｅ＃  ＝  ｆｓｔａｔ．ｉｎｏｄｅ＃の場合）の設定内容を以下に示す。【００９４】
ｄｂｅ．ａｒｃｈｉｖｅ  ＝  ｆｓｔａｔ．ａｒｃｈｉｖｅ
ｄｂｅ．ｍｉｇｒａｔｅ  ＝  ｆｓｔａｔ．ｍｉｇｒａｔｅ
ｄｂｅ．ａｔｉｍｅ  ＝  ｆｓｔａｔ．ａｔｉｍｅ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン【００９５】
次に、名前空間複製部１３は、記録されていた全ファイル情報の処理を終了すると、名前空間の変更との競合のため情報取得で見逃した名前空間のセグメント（情報取得済みが表示されていないディレクトリ）が存在するか否かの判断を行う（Ｓ３１１）。存在しない場合（Ｓ３１１，Ｎ）、このフローを終了する。一方、存在する場合（Ｓ３１１，Ｙ）、そのディレクトリをルートとするファイル情報取得処理、およびその間に発生したイベントデータ反映処理を行い（Ｓ３１２）、処理Ｓ３１１へ戻り、次の情報取得済みが表示されていないディレクトリを見つけ、この処理を繰り返す。【００９６】
次に、名前空間追随処理について説明する。【００９７】
名前空間追随部１４は、名前空間複製処理が完了した後に発生したイベントデータをイベントデータ記録部２１から受け取り、名前空間複製ＤＢ１５に順次反映していく。イベントデータ反映処理は名前空間複製処理とほほ同じだが、ファイル情報を用いない分、単純となる。【００９８】
イベントデータが削除系ファイル操作イベント（ファイル削除、ディレクトリ削除）である場合、名前空間追随部１４は、イベントデータで示されるｉｎｏｄｅ番号、親ｉｎｏｄｅ番号、ファイル名を全て含むエントリを名前空間複製ＤＢ１５上から削除する。【００９９】
イベントデータが生成系ファイル操作イベント（ファイル生成、ディレクトリ生成）である場合、名前空間追随部１４は、イベントデータで示されるｉｎｏｄｅ番号を含むエントリを名前空間複製ＤＢ１５上に登録し、イベントデータで伝えられた属性（タイプ）、および親ｉｎｏｄｅ番号を設定する。【０１００】
イベントデータがファイル名の変更（ｒｅｎａｍｅ）でターゲットと同じファイルがあれば、名前空間追随部１４は削除する。また、名前空間追随部１４は、ソースの親属性を変更する。【０１０１】
イベントデータがファイルアクセスイベントである場合、名前空間追随部１４は、イベントデータで伝えられたアクセス時刻をｉｎｏｄｅ番号で特定し、名前空間複製ＤＢ１５に設定する。【０１０２】
イベントデータがアーカイブ状態変化である場合、名前空間追随部１４は、アーカイブ情報を更新する。【０１０３】
次に、マイグレート処理について説明する。【０１０４】
マイグレート決定部１６は、ファイルシステムが提供するコマンドなどを使い、一次ストレージ１の空きスペース状況を定期的に調べ、空きスペース量がユーザにより指定された量以下になった場合、名前空間複製ＤＢ１５に設定されている情報を使って、マイグレートの対象ファイルを決定し、ファイルシステム制御部１２にマイグレートを要求する。この際、マイグレート決定部１６は、名前空間複製ＤＢ１５から求めたファイルのパス名をファイルシステム制御部１２に渡し、ファイルデータとともに二次ストレージ２に書き出してもらう。マイグレート決定処理は、ユーザポリシに応じて様々な実装を行うことができるが、一例を以下に示す。【０１０５】
図６は、本発明に係るマイグレート決定処理の動作の一例を示すフローチャートである。まず、マイグレート決定部１６は、一次ストレージ１の不足が深刻であるか否かの判断を行う（Ｓ４０１）。【０１０６】
一次ストレージ１の不足が深刻である場合（Ｓ４０１，Ｙ）、マイグレート決定部１６は、名前空間複製ＤＢ１５を検索し、アーカイブ済みでかつマイグレート済みではないファイルを見つけ（Ｓ４１１）、見つけた全てのファイルに対し以下のリリース処理（一次ストレージ域の解放）を行う。次に、マイグレート決定部１６は、見つけたファイルのうち未処理のファイルがあるか否かの判断を行う（Ｓ４１２）。【０１０７】
未処理のファイルがなければ（Ｓ４１２，Ｎ）、このフローを終了する。一方、未処理のファイルがあれば（Ｓ４１２，Ｙ）、マイグレート決定部１６は、名前空間複製ＤＢ１５に設定されているｉｎｏｄｅ番号を引数としてファイルシステム制御部１２に対象ファイルのリリース（一次ストレージ解放）を要求する（Ｓ４１３）。次に、マイグレート決定部１６は、ファイルシステム制御部１２からの応答を得ると、処理Ｓ４１２へ戻り、次の対象ファイルの処理を行う。【０１０８】
ここで、マイグレート決定部１６は、名前空間複製ＤＢ１５はファイルシステムに遅れて追随するため、実際にはファイルが存在しなくなっている場合や、アーカイブが無効になっている場合があり、この場合にはファイルシステム制御部１２がエラー応答を返す。ファイルがアーカイブ済みであった場合、ファイルシステム制御部１２はそのファイルに割り当てていた一次ストレージ領域を解放して正常応答を返す。【０１０９】
一方、一次ストレージ１が不足しているがそれほど深刻ではない場合（Ｓ４０１、Ｎ）、マイグレート決定部１６は、深刻な不足が発生したときに、事態をただちに改善できるようにするため、一定時間以上アクセスされていないファイルをアーカイブする。このため、マイグレート決定部１６は、名前空間複製ＤＢ１５を検索し、最終アクセス時刻が所定の時刻（例えば現時刻―１日）以前でかつ、アーカイブ無効（アーカイブ済みでない）なものを見つける（Ｓ４２１）。次に、マイグレート決定部１６は、見つけたファイルのうち未処理のファイルがあるか否かの判断を行う（Ｓ４２２）。【０１１０】
未処理のファイルがなければ（Ｓ４２２，Ｎ）、このフローを終了する。一方、未処理のファイルがあれば（Ｓ４２２，Ｙ）、マイグレート決定部１６は、名前空間複製ＤＢ１５に設定されている親ｉｎｏｄｅ番号をキーとして、繰り返し名前空間複製ＤＢ１５を検索することで、ファイルのパス名を求める（Ｓ４２３）。次に、マイグレート決定部１６は、ｉｎｏｄｅ番号、ファイルパス名を引数としたアーカイブ要求をファイルシステム制御部１２に出す（Ｓ４２４）。ここで、ファイルシステム制御部１２は、指定されたファイルのデータとファイルパス名、ｉｎｏｄｅ番号を一括して二次ストレージ上に書き出し、処理Ｓ４２２へ戻り、次の対象ファイルの処理を行う。ここで、要求されたファイルが存在しなくなっている場合、ファイルシステム制御部１２はエラーを応答し、要求を無視する。【０１１１】
次に、その他の各部の動作について説明する。【０１１２】
まず、ファイルシステム制御部１２について説明する。【０１１３】
まず、マイグレート決定部１６からのリリース要求があった場合、ファイルシステム制御部１２は、リリース要求を処理し、二次ストレージにファイルデータのコピーが存在する（アーカイブ済み）なら、一次ストレージを返却し、マイグレート済みとする。このとき、イベントデータ記録部２１はアーカイブ状態変化イベントを作成する。【０１１４】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ａｒｃｈｉｖｅ
ｅｖｅｎｔ．ａｒｃｈｉｖｅ  ＝  オン
ｅｖｅｎｔ．ｍｉｇｒａｔｅ  ＝  オン【０１１５】
また、マイグレート決定部１６からのアーカイブ要求があった場合、ファイルシステム制御部１２は、アーカイブ要求を処理し、ファイルデータの二次ストレージ２への書き出しを起動し、マイグレート決定部１６に復帰する。この際、二次ストレージ２に書き出すデータのヘッダ部にファイルのマイグレート決定部１６から通知されたファイルのパス名を付加して書き出す。二次ストレージ２への書き出しが完了すると、イベントデータ記録部２１はアーカイブ状態変化イベントを作成する。【０１１６】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ａｒｃｈｉｖｅ
ｅｖｅｎｔ．ａｒｃｈｉｖｅ  ＝  オン
ｅｖｅｎｔ．ｍｉｇｒａｔｅ  ＝  オフ【０１１７】
また、アプリケーション部１１がマイグレート済みファイルをアクセスしようとした場合、ファイルシステム制御部１２は、アプリケーション部１１がアクセスしようとしたタイミングで、一次ストレージ１上に領域を新たに割り当て、二次ストレージ２上のデータをその領域に読み込む。その後、イベントデータ記録部２１は、リコール完了を表示したアーカイブ状態変化イベントを作成する。【０１１８】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ａｒｃｈｉｖｅ
ｅｖｅｎｔ．ａｒｃｈｉｖｅ  ＝  オン
ｅｖｅｎｔ．ｍｉｇｒａｔｅ  ＝  オフ【０１１９】
また、アプリケーション部１１がファイル操作（ファイル生成・削除、ディレクトリ生成・削除、ファイルｒｅａｄ／ｗｒｉｔｅ）を要求した場合、ファイルシステム制御部１２は要求を処理し、正常に完了した時点で、イベントデータ記録部２１は対応するイベントデータを作成する。【０１２０】
名前空間複製部１３からｇｅｔｉｎｆｏでファイル情報を要求された場合、ファイルシステム制御部１２は、指定されたファイルが親ディレクトリに存在することを確認した上で、指定されたファイルのファイル情報を返す。存在しなければ、エラーを応答。エラーが返された場合の名前空間複製部１３はそのファイルがなかったものとして処理を続ける。【０１２１】
次に、イベントデータ記録部２１について説明する。【０１２２】
イベントデータ記録部２１は、ファイルシステム制御部１２内に存在し、ファイルシステム制御部１２の説明で述べたタイミングでイベントデータを作成し、メモリ上に蓄積する部分である。また、イベントデータ記録部２１は、メモリ上に蓄積されたイベントデータが一定量以上となった、あるいは最後に通知してから、一定時間経過したときに、メモリ上に蓄積されていたイベントデータを一括して、名前空間追随部１４あるいは名前空間複製部１３に通知する。また、システム停止時にも、イベントデータ記録部２１が蓄積していたイベントデータを名前空間追随部１４に通知し、名前空間追随部１４がメモリ上に蓄積されているイベントデータを名前空間複製ＤＢ１５に全て反映する、システム停止処理を行う。【０１２３】
また、イベントデータ記録部２１では、通知するデータ量を削減するため、以下の最適化を施す。まず、イベントデータ記録部２１がファイルアクセスイベントを作成する場合、メモリ上に蓄積されている未通知のイベントデータの中に同じファイルに対するファイルアクセスイベントが含まれているなら、後続のファイルアクセスイベントは捨てる。すなわち、メモリ上に蓄積しない。また、イベントデータ記録部２１がファイル削除イベントの作成を依頼されたときに、対応するファイル生成イベントが未通知のイベントデータとして含まれるなら、ファイル生成イベントをメモリ上で無効化し、イベントデータ通知の対象から取り除く。【０１２４】
次に、サーバ３におけるシステム立ち上げの処理について説明する。【０１２５】
システムを正常終了した場合、上述したように名前空間追随部１４がメモリ上に滞留していたイベントデータを一括して名前空間複製ＤＢ１５に反映する正常終了処理を行うため、次回立ち上げ時に名前空間複製部１３を動作させる必要はない。一方、障害発生の場合、その後の再立ち上げ時には、名前空間複製部１３を動作させ、名前空間複製ＤＢ１５を再初期化するシステム異常終了後起動処理を行う。なお、この場合でも、障害発生直前の名前空間情報は残っているので、名前空間複製の再初期化が完了するまでの間にマイグレーション対象を決定する必要が発生した場合には、マイグレート決定部は古い複製を使って処理を行う。【０１２６】
なお、本実施の形態においては、名前空間複製ＤＢ１５に基づくポリシ制御の例としてマイグレート決定部１６について説明したが、ＨＳＭ制御における他のポリシ制御を名前空間複製ＤＢ１５に基づいて行う構成としても良い。【０１２７】
更に、ＨＳＭ制御装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、ＨＳＭ制御プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、ＨＳＭ制御装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。【０１２８】
ファイル移動指示部とは、実施の形態におけるマイグレート決定部に対応する。また、イベントデータ記録ステップとは、実施の形態におけるイベントデータ記録部の処理に対応する。また、名前空間複製ステップとは、実施の形態における名前空間複製処理に対応する。また、名前空間追随ステップとは、実施の形態における名前空間追随処理に対応する。また、ファイル移動指示ステップとは、実施の形態におけるマイグレート決定部の処理に対応する。また、システム停止ステップとは、実施の形態におけるシステム停止処理に対応する。また、システム異常終了後起動ステップとは、実施の形態におけるシステム異常終了後起動処理に対応する。
【産業上の利用可能性】
【０１２９】
以上説明したように、本発明は、一旦、名前空間複製ＤＢを生成すれば、アプリケーション動作中であっても小さい負荷で名前空間に名前空間複製ＤＢを追随させることができ、ＨＳＭ装置全体の性能を向上させることができる。また、名前空間複製ＤＢを作成することにより、ファイルシステムの動作と切り離して、一貫性のある名前空間に基づく複雑なポリシ制御を行うことができる。また、イベントデータをイベント発生時に不揮発化する必要がなく、小さい容量のメモリに蓄積するのみで良く、後の名前空間複製ＤＢの追随のオーバヘッドを削減することができる。
【図１】
2007032046.tif 000002
【図２】
2007032046.tif 000003
【図３】
2007032046.tif 000004
【図４】
2007032046.tif 000005
【図５】
2007032046.tif 000006
【図６】
2007032046.tif 000007
【手続補正書】
【提出日】平成19年11月26日(2007.11.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御をコンピュータに実行させるＨＳＭ制御プログラムであって、
前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録ステップと、
前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、
前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随ステップと、
前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示ステップと、
をコンピュータに実行させるＨＳＭ制御プログラム。
【請求項２】
請求項１に記載のＨＳＭ制御プログラムにおいて、
更に、前記ＨＳＭ制御プログラムが動作するシステムを停止する場合、前記イベントデータ記録ステップにより記録されたイベントデータを前記名前空間複製データベースに反映させるシステム停止ステップをコンピュータに実行させることを特徴とするＨＳＭ制御プログラム。
【請求項３】
請求項１または請求項２に記載のＨＳＭ制御プログラムにおいて、
更に、前記ＨＳＭ制御プログラムが動作するシステムの異常終了時の後に該システムを起動する場合、前記名前空間複製ステップを実行させることを特徴とするＨＳＭ制御プログラム。
【請求項４】
一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御を行うＨＳＭ制御装置であって、
前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録部と、
前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製部と、
前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随部と、
前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示部と、
を備えてなるＨＳＭ制御装置。
【請求項５】
一次記憶装置と二次記憶装置を用いるＨＳＭ装置の制御を実行するＨＳＭ制御方法であって、
前記一次記憶装置に対するファイル操作またはアーカイブ状態変化をイベントデータとして記録するイベントデータ記録ステップと、
前記一次記憶装置の名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、
前記イベントデータに基づいて前記名前空間複製データベースを前記一次記憶装置の名前空間に追随させる名前空間追随ステップと、
前記名前空間複製データベースに基づいて前記一次記憶装置と前記二次記憶装置の間のファイル移動の指示を行うファイル移動指示ステップと、
を実行するＨＳＭ制御プログラム。
【国際調査報告】
2007032046.tif 000008
2007032046.tif 000009