(57)【要約】【課題】複数の仮想一元化ファイルシステム間でレプリケーションの対象となる仮想一元化ファイルシステムの部分コピーをリアルタイムに作成するファイルレプリケーション方法を提供する。【解決手段】レプリケーション元仮想一元化ファイルシステムに、ファイルディレクトリの構造と属性情報を管理する一元管理ディレクトリ、コピー対象のファイルを設定するレプリケーション情報、クライアントからの要求を一元的に受け付ける要求受付手段、一元管理ディレクトリとレプリケーション情報に従ってレプリケーションするかどうかを判定し、判定結果によりファイルアクセス要求をレプリケーション元とレプリケーション先の仮想一元化ファイルシステムに同時に転送するレプリケーション手段を設ける。【選択図】図１
2004252957.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続した複数のネットワークストレージ装置とレプリケーション装置とを含み、該レプリケーション装置はレプリケーション元のネットワークストレージ装置に存在する全ファイル及びディレクトリの属性情報を管理する管理テーブルを有する分散ファイルシステムにおいて、レプリケーション元のネットワークストレージ装置のデータの一部コピーをレプリケーション先のネットワークストレージに作成するファイルレプリケーション方法であって、
予め前記レプリケーション装置内にレプリケーション対象のファイルを特定するレプリケーション情報を記録するステップと、
クライアントからのファイルアクセス要求を受け付けるステップと、
前記管理テーブルと前記レプリケーション情報を使用して、前記ファイルアクセス要求の実行に伴ってレプリケーション動作を行なうか否かを判定するステップと、
前記判定の結果がレプリケーション動作を行なうという場合には、該ファイルアクセス要求を前記レプリケーション元のネットワークストレージ装置と、前記レプリケーション先のネットワークストレージ装置に対して同時に転送するステップとを有するファイルレプリケーション方法。
【請求項２】
前記レプリケーション装置は、レプリケーション元ネットワークストレージ装置と、レプリケーション先ネットワークストレージ装置の間で、コピー対象のファイル及びディレクトリの内容が一致するか否かを示す同期情報を含み、前記判定ステップでは前記同期情報が一致を示すこと一つの条件にレプリケーション動作を行うと判定することを特徴とする請求項１記載のファイルレプリケーション方法。
【請求項３】
前記判定ステップでは、受け付けたファイルアクセス要求が書き込み要求であることを一つの条件にレプリケーション動作を行なうと判定することを特徴とする請求項１記載の分散ファイルシステムのファイルレプリケーション方法。
【請求項４】
ネットワークに接続した複数のネットワークストレージ装置の間でファイルレプリケーションを行なうレプリケーション装置であって、
レプリケーション元のネットワークストレージ装置に存在する全ファイル及びディレクトリの属性情報を管理する管理テーブルと、
レプリケーションするかどうかを示すレプリケーション情報を保持する手段と、
クライアントからのファイルアクセス要求を一元的に受け付ける要求受付手段と、
該ファイルアクセス要求を複数のネットワークストレージ装置に同時に転送するレプリケーション手段を備え、
該レプリケーション手段は、
該管理テーブルとレプリケーション情報を利用してレプリケーションするかどうかを判定する判定手段と、
判定結果に従い、該ファイルアクセス要求を、レプリケーション元のネットワークストレージ装置と、レプリケーション先のネットワークストレージ装置に対して同時に転送する要求処理手段を含むことを特徴とするレプリケーション装置。
【請求項５】
前記レプリケーション手段は、さらにレプリケーション元のネットワークストレージ装置とレプリケーション先のネットワークストレージ装置の間で、コピー対象の全ファイルおよび全ディレクトリの整合性をとる整合手段を含むことを特徴とする請求項4記載のレプリケーション装置。
【請求項６】
前記判定手段は、受け付けたファイルアクセス要求が書き込み要求である場合にレプリケーションを行なうと判定することを特徴とする請求項４記載のレプリケーション装置。
【請求項７】
前記レプリケーション装置は、前記レプリケーション元のネットワークストレージ装置と前記レプリケーション先のネットワークストレージ装置間でコピー対象のファイルおよびディレクトリの内容が一致することを示す同期情報を保持する手段を更に有し、前記判定手段は、該同期情報も使用してレプリケーションするかどうかを判定することを特徴とする請求項４記載のレプリケーション装置。
【請求項８】
前記レプリケーション情報は、特定ユーザ識別子あるいはグループ識別子を持つファイル、あるいは特定ディレクトリに所属するファイル、あるいは特定ファイル識別子を持つファイルがコピー対象であることを示す少なくとも一つ以上のルールであることを特徴とする請求項４記載のレプリケーション装置。
【請求項９】
複数のネットワークストレージと、これらネットワークストレージに分散して存在するファイル及びディレクトリの構造と属性情報を一元管理し、これらネットワークストレージを外部から一元的にアクセス可能とする仮想一元化装置とを含む仮想一元化ファイルシステムのデータの一部コピーを外部ネットワークストレージに作成するファイルレプリケーション方法であって、
予め前記仮想一元化装置内にレプリケーション対象のファイルを特定するレプリケーション情報を記録するステップと、
クライアントから前記仮想一元化ファイルシステムへのファイルアクセス要求を一元的に受け付けるステップと、
ファイルごとにネットワークストレージを決定して設定するマッピング手段により前記ファイルアクセス要求の対象ファイルの格納先のネットワークストレージを特定するステップと、
前記レプリケーション情報を用い、前記ファイルアクセス要求の実行に伴ってレプリケーション動作を行なうか否かを判定するステップと、
特定したネットワークストレージに前記ファイルアクセス要求を転送するとともに、前記判定の結果がレプリケーション動作を行なうという場合には、該ファイルアクセス要求をレプリケーション先の外部ネットワークストレージにも転送し、もって前記対象ファイルの格納先のネットワークストレージとレプリケーション先の外部ネットワークストレージの双方で該ファイルアクセス要求が要求するファイルアクセスを実行させるステップとを有するファイルレプリケーション方法。
【請求項１０】
前記判定ステップでは、受け付けたファイルアクセス要求が書き込み要求であることを一つの条件にレプリケーション動作を行なうと判定することを特徴とする請求項９記載のファイルレプリケーション方法。
【請求項１１】
前記ファイル格納先のネットワークストレージ装置からの該ファイルアクセス要求に対する応答と、前記レプリケーション先のネットワークストレージからの該ファイルアクセス要求に対する応答を収集し1つにまとめて前記クライアントに返送するステップを更に含むことを特徴とする請求項９記載のファイルレプリケーション方法。
【請求項１２】
ネットワークに接続された複数のネットワークストレージを仮想的に単一のファイルシステムに見せる複数ネットワークストレージの仮想一元化装置であって、
前記仮想一元化ファイルシステムに存在する全ファイル及びディレクトリの構造と属性情報を管理する一元管理ディレクトリと、
外部ファイルシステムをレプリケーション先としてレプリケーションすべきファイルを特定するレプリケーション情報を保持する手段と、
クライアントからのファイルアクセス要求を受け付ける要求受付手段と、
前記ファイルアクセス要求のファイルアクセス対象のネットワークストレージを決定するマッピング手段と、
該一元管理ディレクトリとレプリケーション情報を使用して前記ファイルアクセス要求のファイルアクセス対象を前記外部ファイルシステムにレプリケーションするかどうかを判定する判定手段と、
判定手段によりレプリケーションを行なうと判定した場合、前記ファイルアクセス要求を、レプリケーション先の外部ファイルシステムと、該マッピング手段により決定したネットワークストレージに対して同時に、前記ファイルアクセス要求を転送する要求転送手段とを有することを特徴とする複数ネットワークストレージの仮想一元化装置。
【請求項１３】
前記仮想一元化ファイルシステムと前記レプリケーション先の外部ファイルシステムの間で、コピー対象のファイルおよびディレクトリの整合性をとる整合手段を更に有することを特徴とする請求項１２記載の複数ネットワークストレージの仮想一元化装置。
【請求項１４】
前記仮想一元化ファイルシステムに属するネットワークストレージ装置からのファイルアクセス要求に対する応答と、前記レプリケーション先の外部ファイルシステムのからのファイルアクセス要求に対する応答をあつめて1つの応答にしてクライアントに返送する応答収集手段を更に有することを特徴とする請求項１２記載の複数ネットワークストレージの仮想一元化装置。
【請求項１５】
前記仮想一元化ファイルシステムと前記レプリケーション先のファイルシステム間で、コピー対象の全ファイルおよびディレクトリが一致することを示す同期情報を保持する手段を更に有し、前記判定手段が、該同期情報も使用してレプリケーションするかどうかを判定することを特徴とする請求項１２記載の複数ネットワークストレージの仮想一元化装置。
【請求項１６】
前記判定手段は、ファイルアクセス要求が読み出し要求である場合にはレプリケーションしないと判定し、レプリケーション先の外部ファイルシステムには該ファイルアクセス要求を転送しないことを特徴とする請求項１２記載の複数ネットワークストレージの仮想一元化装置。
【請求項１７】
前記レプリケーション情報は、特定ユーザ識別子あるいはグループ識別子を持つファイル、あるいは特定ディレクトリ配下のファイル、あるいは特定ファイル識別子を持つファイルがコピー対象であること示す少なくとも一つ以上のルールである請求項１２記載の複数ネットワークストレージの仮想一元化装置。
【請求項１８】
一元管理ディレクトリで管理されるファイルおよびディレクトリがマスタであることを示すマスタ情報を保持する手段を更に有し、前記判定手段が、該マスタ情報にも従ってレプリケーションするかどうかを判定することを特徴とする請求項１２記載の複数ネットワークストレージの仮想一元化装置。
【請求項１９】
前記レプリケーション情報は、該ルールに加えて、該ルールを適用先の仮想一元化ファイルシステムを識別する情報も含むことを特徴とする請求項１７記載の複数ネットワークストレージの仮想一元化装置。
【請求項２０】
複数のネットワークストレージと仮想一元化装置から構成する仮想一元化ファイルシステムにおいて、
該仮想一元化装置は、レプリケーション手段を有し、
第一の仮想一元化ファイルシステムは、クライアントからのアクセス要求に応答して、レプリケーション手段を起動し、該第一の仮想一元化ファイルシステムの部分コピーをネットワークに接続した異なる仮想一元化ファイルシステムにリアルタイムに作成することを特徴とする仮想一元化ファイルシステム。
【請求項２１】
ネットワークに接続し、複数のネットワークストレージと仮想一元化装置から構成する仮想一元化ファイルシステムにおいて、
該仮想一元化装置は、レプリケーション手段を有し、
第一の仮想一元化ファイルシステムは、クライアントからのアクセス要求に応答して、レプリケーション手段を起動し、該第一の仮想一元化ファイルシステムの部分コピーを、ネットワークに接続した別のネットワークストレージにリアルタイムに作成することを特徴とする仮想一元化ファイルシステム。
【請求項２２】
前記仮想一元化ファイルシステムと前記レプリケーション先の外部ファイルシステムのそれぞれのディスク容量とディスク使用量を定期的に取得し、前記ディスク容量とディスク使用量から、レプリケーション可能なディスク容量とディスク使用量を決定する容量管理手段を更に有することを特徴とする請求項１２記載の複数ネットワークストレージの仮想一元化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数ネットワークストレージ装置間のファイルレプリケーション方法およびファイルレプリケーション機能を備えたネットワークストレージ装置に関する。
【背景技術】
【０００２】
従来、データはクライアント計算機に直接接続したストレージ（ＤＡＳ:Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）に格納されていた。ＤＡＳ上のデータは直接接続しているクライアント計算機を介してのみアクセス可能であるため、クライアント計算機が他のクライアント計算機に接続したＤＡＳのデータをアクセスする場合には、ＤＡＳが接続している計算機を経由してデータをアクセスする必要があった。
【０００３】
しかしながら、近年のネットワーク技術の発展により個々のクライアント計算機に格納すべきデータ量が飛躍的に増大している。それに伴い、これらのデータを効率良く管理したいというニーズも増大し、ＤＡＳに代わりネットワークに接続したストレージシステム（ネットワークストレージ）が導入されるようになってきた。ネットワークストレージを導入することにより、複数のクライアント計算機間でデータを共有できるため、管理者は共有データを効率良く管理することができる。
【０００４】
ネットワークストレージの例としては、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）で接続されてブロックアクセスを提供するＳＡＮストレージ、ＩＰネットワークやＩｎｆｉｎｉｂａｎｄ等で接続されてファイルアクセスを提供するＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）がある。その中でもＮＡＳは、ＳＡＮストレージに比べて安価であり、かつＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）やＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）のような複数の標準的なファイルアクセスプロトコルを用いて複数のクライアント計算機が簡単にファイルを共有することができるため、その市場は拡大している。
【０００５】
このように、ネットワークストレージは、管理者が効率的に複数クライアント計算機の共有データを一括して管理できるため、世の中に広く受け入れられている。一方、ネットワークストレージに格納された共有データは、管理者によりテープドライブ等を使用してバックアップされ、必要に応じてテープドライブから復旧していた。しかしながら、テープドライブは低速であるため、それを利用したバックアップや復旧は非常に時間がかかり、この時間は共有データ量に比例して増大してしまう。特に、近年のハードディスク技術の進展により、ネットワークストレージの容量もますます増大しており、低速なテープバックアップは効率が悪い。
【０００６】
低速なテープバックアップの問題点を解決するため、近年、ネットワークストレージに保持した共有データの複製をテープドライブではなくネットワークに接続した別のネットワークストレージに保持する方法が用いられてきている。この方法により、テープドライブを利用したバックアップよりも高速に，共有データの複製を作成することができ、かつ高速に復旧できる。
【０００７】
例えば、非特許文献１には、複数のネットワークストレージにおいて、リアルタイムにファイルのコピーを作成する方法が開示されている。ＶＥＲＩＴＡＳ  Ｆｉｌｅ  Ｒｅｐｌｉｃａｔｏｒは、クライアントからの更新系のファイルアクセス要求を受け取ると、レプリケーションの対象となる第一のファイルシステムとレプリケーション先の複数のファイルシステムに同時にその要求を転送する。レプリケーションは、対象となるファイルシステム全体に対して行なう。
【０００８】
また、特許文献１には、ジャーナリングファイルシステムと呼ぶファイルレプリケーションのための特別な機能を持つ仮想一元化スイッチが、プライマリの仮想一元化ファイルシステムを構成するサーバ群と、セカンダリのファイルサーバの両方に対して、更新系のファイルアクセス要求を転送してファイルシステム全体のコピーを生成する方法が開示されている。ジャーナリングファイルスイッチは、プライマリの仮想一元化ファイルシステムを構成するサーバ群から応答を受け取ると、セカンダリのファイルサーバにおいて更新系リクエストが処理されるのを待たずに、その応答をクライアントに返送する。それにより、ファイルコピーのオーバヘッドを削減することができる。
【０００９】
さらに、特許文献２には、分散型のコンピュータシステムにおいて、レプリケーション対象のコンピュータシステムのサブツリーのみをコピーするレプリケーション装置が開示されている。このレプリケーション装置では、クライアントからのファイルアクセス要求は、ファイルを持つコンピュータシステムに転送される。コンピュータシステムは、更新系のファイルアクセス要求である場合、変更があったことをレプリケーテッド記憶変更記録簿と呼ぶログに登録する。レプリケーテッド記憶変更記録簿に登録された更新系リクエストは、一定の間隔あるいはあらかじめスケジュールされた間隔で、レプリケーション先のコンピュータシステムにコピーされる。
【００１０】
【非特許文献１】VERITAS File Replicator 3.0.3, System Administrator's Guide,２００１年６月、VERITAS Software Corporation発行
【００１１】
【特許文献１】米国特許公開２００２／０１２０７６３号
【特許文献２】特開平０７−２１９８３０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記非特許文献１及び特許文献１に記載された技術では、複数のネットワークストレージ間あるいは複数の仮想一元化ファイルシステム間でリアルタイムにファイルのコピーを作成することができる。しかしながら、レプリケーションはファイルシステム全体に対して行なう必要がある。
【００１３】
先に述べたように、ネットワークストレージの容量はますます増大しているため、ファイルシステム全体のコピーしか作成できない場合には、バックアップ時間が増大してしまい問題である。さらに、共有データにはバックアップが必須な重要ファイルとバックアップの必要がないファイルが含まれる。しかしながら、上記第１および第２の公知例では、管理者が重要ファイルのみのバックアップを取得すればよい場合でも、ファイルシステム全体のコピーしか作成できないため、バックアップ時間がかかるだけでなく、コピー先のネットワークストレージの容量も十分に用意しなければならないことが問題である。
【００１４】
一方、上記特許文献２に記載されているファイルレプリケーション方法はファイルシステムのサブツリーのコピーを作成する方法を提供しているが、クライアントからのファイルアクセス要求に応答して、コピーをリアルタイムに作成することができない。そのため、障害が発生するような場合に最新データのバックアップが保持されていないことが問題である。
【００１５】
この問題点を解決するために、複数のネットワークストレージにおいて、ファイルシステムの部分コピーをリアルタイムに作成するファイルレプリケーション方法を提供する必要がある。
【００１６】
また、複数の仮想一元化ファイルシステムにおいても、仮想一元化ファイルシステムの部分コピーをリアルタイムに作成するファイルレプリケーション方法を提供する必要がある。
【００１７】
さらに，上記特許文献２では、選択的なファイルレプリケーション実行中の複数の仮想一元化ファイルシステムにおいて、仮想一元化ファイルシステムの一部に障害が発生したり、仮想一元化ファイルシステムが接続したネットワークに障害が発生し、障害から復旧するときに、管理者が手動で整合性をとる必要がある。手動で整合性をとるということは、管理者がバックアップをとったすべてのファイルについて、コピー済か否かを調査する必要がある。
【００１８】
この問題点を解決するために、選択的なファイルレプリケーション実行中の複数の仮想一元化ファイルシステムにおいて、仮想一元化ファイルシステムあるいはネットワークに障害が発生し、障害復旧する場合に、複数の仮想一元化ファイルシステム間で自動でコピー対象のファイルおよびディレクトリの整合性をとって、レプリケーションを再開する方法を提供する必要がある。
【００１９】
本発明の第１の課題は、複数のネットワークストレージ間でレプリケーションの対象となるファイルシステムの部分コピーをリアルタイムに作成するファイルレプリケーション方法を提供することにある。
本発明の第2の課題は、複数の仮想一元化ファイルシステム間でレプリケーションの対象となる仮想一元化ファイルシステムの部分コピーをリアルタイムに作成するファイルレプリケーション方法を提供することにある。
【００２０】
本発明の第３の課題は、部分コピー実行中の複数のネットワークストレージあるいは複数の仮想一元化ファイルシステムにおいて、ファイルシステムの一部あるいはファイルシステムが接続するネットワークに障害が発生し、障害から復旧する場合でも、簡単にオリジナルのファイルおよびディレクトリとコピーの整合性をとる方法を提供することにある。
【課題を解決するための手段】
【００２１】
本発明の第１の課題は、複数ネットワークストレージで構成された分散システムに、レプリケーション対象ファイルシステムのファイルディレクトリに関する属性情報を管理する管理テーブルと、コピーするかどうかの条件を示すレプリケーション情報と、クライアントからのファイルアクセス要求を受け付ける要求受付手段と、受け付けたファイルアクセス要求が更新系リクエストである場合に管理テーブルとレプリケーション情報を使用してレプリケーションするかどうかを判定する判定手段と、判定結果に従って、レプリケーション対象ネットワークストレージ装置のファイルシステムと、レプリケーション先ネットワークストレージのファイルシステムに対して、同時にそのファイルアクセス要求を転送する要求処理手段を設けることで解決できる。
【００２２】
本発明の第２の課題は、レプリケーション元の仮想一元化ファイルシステムに属する仮想一元化装置に、レプリケーション元の仮想一元化ファイルシステムのファイルディレクトリツリー構造とファイル識別子を管理する一元管理ディレクトリと、ファイルをコピーするかどうかの条件を示すレプリケーション情報と、クライアントからのファイルアクセス要求を一元的に受け付ける要求受付手段と、ファイルアクセス要求の対象ファイルを保持するネットワークストレージを決定するマッピング手段と、受け付けたファイルアクセス要求が更新系リクエストである場合に、一元管理ディレクトリの管理する属性情報とレプリケーション情報を利用してレプリケーションするかどうかを判定する判定手段と、判定結果にしたがって、レプリケーション元の仮想一元化ファイルシステムに属し、マッピング手段により決定したネットワークストレージだけでなく、レプリケーション先の仮想一元化装置に対して、同時にファイルアクセス要求を転送する要求処理手段を設けることで解決できる。
【００２３】
本発明の第3の課題は、第２の課題を解決する手段に加えて、レプリケーション対象の仮想一元化ファイルシステムに属する仮想一元化装置に、レプリケーション元のコピー対象のファイルおよびディレクトリと、レプリケーション先の仮想一元化ファイルシステムに保持するファイルおよびディレクトリとの整合性をとる整合手段を設けることで解決できる。
【００２４】
複数のネットワークストレージで構成される分散システムにおいて、要求受付手段が一括してクライアントからのファイルアクセス要求を受け付け、管理テーブルを利用してレプリケーションするかどうかを判定し、コピー対象のファイルに対するファイルアクセス要求のみを、レプリケーション元ネットワークストレージと、レプリケーション先ネットワークストレージの両方に並行して転送することで、レプリケーション元ネットワークストレージのファイルシステムの部分コピーをリアルタイムに別のネットワークストレージに作成することができる。
【００２５】
また、複数ネットワークストレージと仮想一元化装置で構成される仮想一元化ファイルシステムにおいて、クライアントからファイルアクセス要求が発行されると、仮想一元化装置がそのファイルアクセス要求を受け付け、一元管理ディレクトリを利用して、アクセス対象ファイルの存在するネットワークストレージを特定し、かつアクセス対象のファイルがコピー対象であるかどうかを判定し、コピー対象のファイルに対するファイルアクセス要求である場合にのみ、アクセス対象のネットワークストレージとレプリケーション先仮想一元化ファイルシステムの仮想一元化装置に対してファイルアクセス要求を並行して転送することで、レプリケーション元仮想一元化ファイルシステムの部分コピーをリアルタイムに別の仮想一元化ファイルシステムに作成することができる。
【００２６】
さらに、レプリケーション対象仮想一元化ファイルシステムを構成する仮想一元化装置が、コピー元のファイルと、レプリケーション先仮想一元化ファイルシステムに格納したファイルとの整合性をとる手段を持つため、障害発生によりレプリケーション元とレプリケーション先の仮想一元化ファイルシステム間でコピー対象のファイルおよびディレクトリの整合性が崩れても、簡単に再度整合性をとることができる。
【発明の効果】
【００２７】
以上のように、本発明によりレプリケーション元ネットワークストレージのファイルシステムの部分コピーをリアルタイムに別のネットワークストレージに作成することができる。これにより、大容量ネットワークストレージに保持したデータのバックアップを効率よく行なうことができる。
また、レプリケーション対象元仮想一元化ファイルシステムの部分コピーをリアルタイムに別の仮想一元化ファイルシステムに作成することができ、これにより大容量仮想一元化ファイルシステムのデータバックアップを効率良く行うことができる。
さらに、障害発生によりレプリケーション元とレプリケーション先仮想一元化ファイルシステム間でコピー対象のファイルおよびディレクトリの整合性が崩れても、障害復旧時に簡単に再度整合性をとることができる。これにより、障害復旧に必要な管理コストを削減できる。
【発明を実施するための最良の形態】
【００２８】
＜代表的実施例＞
図１に本発明の実施の形態であるネットワークストレージシステム全体の構成例を示す。ネットワークストレージシステムは、クライアント１００〜１０１、ネットワーク１０２、レプリケーション元仮想一元化ファイルシステム１０３、レプリケーション先仮想一元化ファイルシステム１０４で構成する。本実施の形態では、クライアント１００〜１０１がレプリケーション元仮想一元化ファイルシステム１０３を使用してファイル共有を行なっている場合に、レプリケーション元仮想一元化ファイルシステム１０３のファイルおよびディレクトリの複製をレプリケーション先仮想一元化ファイルシステム１０４に生成する方法について詳細に説明する。レプリケーション元仮想一元化ファイルシステム１０３とレプリケーション先仮想一元化ファイルシステム１０４の構成は同じであるが、レプリケーション先仮想一元化ファイルシステム１０４はクライアント１００〜１０１がアクセスしないように設定する。具体的には、ｅｘｐｏｒｔｓファイルにレプリケーション元仮想一元化ファイルシステム１０３を登録しない。また、レプリケーション先仮想一元化ファイルシステム１０４では、レプリケーションに関する設定情報の値が異なる。設定情報については後述する。また、レプリケーション元仮想一元化ファイルシステム１０３とレプリケーション先仮想一元化ファイルシステム１０４の全体容量は同じである必要はない。
【００２９】
本実施の形態では、レプリケーション先はレプリケーション元と同様に仮想一元化ファイルシステムであるが、コピー対象のディレクトリおよびファイルを保持できさえすれば、レプリケーション先は大容量のネットワークストレージでもよい。
クライアント１００〜１０１は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）クライアントプログラムあるいは、ＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）を介して、ネットワーク１０２経由で、レプリケーション元仮想一元化ファイルシステム１０３にアクセスする。ここで、クライアントとしてＮＦＳとＣＩＦＳのみを例にとったが、これ以外の標準的なファイルアクセスプロトコルを利用してもよい。その他のファイルアクセスプロトコルとしては、ＡＦＰ（Ａｐｐｌｅ  Ｆｉｌｅ  Ｐｒｏｔｏｃｏｌ）やＮＣＰ（Ｎｅｔｗａｒｅ  Ｃｏｒｅ  Ｐｒｏｔｏｃｏｌｓ）等がある。
【００３０】
ネットワーク１０２は、ＩＰネットワークであれば、ローカルエリアネットワーク（ＬＡＮ）でも、ワイドエリアネットワーク（ＷＡＮ）でもよい。
レプリケーション元仮想一元化ファイルシステム１０３は、仮想一元化装置１１０、内部ネットワーク１１５、ネットワークストレージ１２０〜１２２で構成する。
ネットワークストレージ１２０〜１２２は、専用装置であってもよいし、ストレージ装置を有する汎用サーバ、ワークステーション、あるいはＰＣにリモート制御手段を搭載してもよい。本実施の形態では、ネットワークストレージ１２０〜１２２は内部ネットワーク１１５に接続しているが、ネットワーク１０２に接続してもよい。
ネットワークストレージ１２０は、リモート制御手段１３０、ストレージ装置１４０で構成する。ネットワークストレージ１２１〜１２２の構成もネットワークストレージ１２０と同様である。
【００３１】
リモート制御手段１３０は、内部ネットワーク１１５に接続し、クライアント１００〜１０１からのマウント要求およびファイルの生成要求、読み出し要求、書きこみ要求、あるいはディレクトリの生成、ディレクトリの削除等を行なう。マウントとは、ネットワークを介してアクセスするネットワークストレージのファイルシステムをクライアント計算機のファイルシステムの一部分にする処理である。マウント処理により、クライアントはネットワーク上に分散するストレージ装置をあたかもクライアントのローカルファイルシステムのようにアクセスできる。リモート制御手段１３０は、ＮＦＳあるいはＣＩＦＳ等の標準的なファイルアクセスプロトコルを使用して、クライアント１００〜１０１と通信を行なう。例えば、ＮＦＳプロトコルを使用する場合には、公知のｍｏｕｎｔｄとｎｆｓｄを使用する。
【００３２】
クライアント１００〜１０１は、ストレージ装置に対してファイルハンドルを利用してファイルアクセス要求を発行する。ファイルハンドルはファイルオブジェクトの識別子であり、全ファイルに対して一意であることが保証されている。ファイルオブジェクトとはファイルあるいはディレクトリのいずれかである。ファイルハンドルは、親ディレクトリのｉノード番号とファイルオブジェクトのｉノード番号を含む。
【００３３】
ＮＦＳプロトコルで規定されたファイルやディレクトリに対するアクセス要求としては、ファイル名を与えてファイルハンドルを取得するＬＯＯＫＵＰ要求、ファイルを生成するＣＲＥＡＴＥ要求、ファイルを読み出すＲＥＡＤ要求、ファイルを書きこむＷＲＩＴＥ要求、ファイルの属性を設定するＳＥＴＡＴＴＲ要求、ファイルの属性を読み出すＧＥＴＡＴＴＲ要求、ファイルを削除するＲＥＭＯＶＥ要求、ファイル名を変更するＲＥＮＡＭＥ要求、ディレクトリを生成するＭＫＤＩＲ要求、ディレクトリを読み出すＲＥＡＤＤＩＲ要求、およびディレクトリを削除するＲＭＤＩＲ要求がある。このうち更新系のファイルアクセス要求は、ＣＲＥＡＴＥ要求、ＷＲＩＴＥ要求、ＳＥＴＡＴＴＲ要求、ＲＥＭＯＶＥ要求、ＲＥＮＡＭＥ要求、ＭＫＤＩＲ要求、ＲＭＤＩＲ要求である。そのほかにも、更新系のファイルアクセス要求としては、ＬＩＮＫ要求、ＳＹＭＬＩＮＫ要求がある。
【００３４】
リモート制御手段１３０は、マウント要求およびＬＯＯＫＵＰ要求処理の結果得られるファイルハンドルを引数として、クライアントからのファイルアクセス要求を受け付け、各要求を処理して結果をクライアントに返す。
ＣＩＦＳプロトコルを使用する場合には、公知のＳａｍｂａ等を使用すればよい。本実施の形態ではクライアント１００〜１０１がＮＦＳプロトコルを利用してレプリケーション元仮想一元化ファイルシステム１０３にアクセスするものとする。
【００３５】
ストレージ装置１４０にはファイルシステムを搭載する。ＵＮＩＸ（登録商標）系のオペレーティングシステムとしては、サン・マイクロシステムズ社にＳｏｌａｒｉｓ、インターナショナル・ビジネス・マシーン社（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ）社のＡＩＸ、ヒューレット・パッカード社（Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  Ｃｏｍｐａｎｙ）のＨＰ―ＵＸ、Ｌｉｎｕｘ、及び、ＦｒｅｅＢＳＤ等がある。
【００３６】
仮想一元化装置１１０は、ネットワークストレージ１２０〜１２２を仮想的に一元管理し、クライアント１００〜１０１からは仮想的に一つのファイルシステムに見えるようにする。すなわち、クライアント１００〜１０１に対して、単一のファイルディレクトリツリー構造を見せる。本実施の形態では、管理者があらかじめコピー対象として設定するファイルに対するファイルアクセス要求を仮想一元化装置１１０に送信すると、仮想一元化装置１１０がそのアクセス要求を、リアルタイムにレプリケーション元仮想一元化ファイルシステム１０３のいずれかのネットワークストレージと、レプリケーション先仮想一元化ファイルシステム１０４に対して並行して転送することに特徴がある。一方、ディレクトリに対するファイルアクセス要求の場合、仮想一元化装置１１０は、そのアクセス要求をリアルタイムにレプリケーション元仮想一元化ファイルシステム１０３の全ネットワークストレージと、レプリケーション先仮想一元化ファイルシステム１０４に対して転送する。
【００３７】
仮想一元化装置１１０は、管理手段１５０、要求受付手段１５１、レプリケーション手段１５２、判定手段１５３、マッピング手段１５４、ホストテーブル１５５、レプリケーションホストテーブル１５６、一元管理ディレクトリ１５７、容量管理テーブル１５８で構成する。
【００３８】
本実施の形態では、仮想一元化装置１１０はリモート制御手段やストレージ装置持たないが、仮想一元化装置１１０にリモート制御手段やストレージ装置を含んでもよい。
管理手段１５０は、仮想一元化装置１１０に常駐し、クライアント１００〜１０１からの管理要求に従い、ＩＰアドレス、名前情報、マウントポイント等の基本的な設定情報を設定する。基本的な設定情報は、他に、時刻、アカウント、セキュリティ情報等がある。管理手段１５０を介したファイルアクセス操作としては、新しく共有ディレクトリを作成したり、ディレクトリのアクセス権限の変更する処理がある。
【００３９】
管理手段１５０は、複数のネットワークストレージを仮想一元化したり、複数の仮想一元化ファイルシステム間でファイルのレプリケーションを行なう場合に、ホストテーブル１５５、レプリケーションホストテーブル１５６、一元管理ディレクトリ１５７、容量管理テーブル１５８の内容を書き換える。また、管理手段１５０は、レプリケーション手段１５２に設定される設定情報を書き換える。設定情報の詳細は後述する。さらに、管理手段１５０は、要求受付手段１５１、レプリケーション手段１５２、マッピング手段１５４を呼び出してファイルアクセス要求を処理する。
管理手段１５０は、複数の仮想一元化ファイルシステム間でファイルのレプリケーションを行う場合に、各仮想一元化ファイルシステムのディスク容量とディスク使用量を一元的に管理する。また、管理手段１５０は、一定時間が経過するたびに複数の仮想一元化ファイルシステムが正常に機能しているかどうかをチェックする。さらに、管理手段１５０は、仮想一元化ファイルシステムにおいて、一元管理ディレクトリ１５７のファイルディレクトリ構造と、ネットワークストレージ１２０〜１２２のファイルディレクトリ構造が一致しているかどうかをチェックし、不一致の場合には、それらを一致させる。また、複数の仮想一元化ファイルシステム間のファイルディレクトリ構造が一致するかどうかもチェックし、不一致の場合にはそれらを一致させる。管理手段１５０の詳細は後述する。
【００４０】
管理者は、クライアント１００〜１０１上の汎用Ｗｅｂブラウザをユーザインタフェースとして管理手段１５０にアクセスする。あるいは、クライアント上に専用のユーザインタフェースプログラムを搭載してそれを用いてもよい。あるいは、仮想一元化装置１１０にコンソールを接続してそれを用いてもよい。仮想一元化装置１１０には、Ｗｅｂブラウザ等を利用してアクセスできるように、Ｗｅｂサーバを搭載する。Ｗｅｂサーバは公知のＡｐａｃｈｅ等を使用する。本実施の形態では、管理手段１５０は、複数ネットワークストレージから仮想一元化ファイルシステムを構成するための設定を行なうと共に、複数の仮想一元化ファイルシステム間におけるファイルレプリケーションのための設定を行なう。
【００４１】
要求受付手段１５１は、クライアント１００〜１０１からのマウント要求を処理する。またクライアント１００〜１０１からのファイルアクセス要求を受け付け、そのファイルアクセス要求をレプリケーション手段１５２に転送する。本実施の形態では、クライアント１００〜１０１は、前述のＮＦＳプロトコルを用いて、要求受付手段１５１にアクセスする。仮想一元化装置１１０とネットワークストレージ１２０〜１２２のファイルシステム間もＮＦＳプロトコルを用いてファイルアクセスを行なうものとする。クライアントがＣＩＦＳクライアントである場合には、ＣＩＦＳプロトコルを用いて、要求受付手段１５１にアクセスする。その場合、仮想一元化装置１１０の要求受付手段１５１とネットワークストレージ１２０〜１２２のストレージ装置間でのファイルアクセスは、ＮＦＳプロトコルを使用する。ＣＩＦＳプロトコルを使用したファイルアクセスは、Ｓａｍｂａ等の公知の技術を用いて実現できるため、ここでは詳細には説明しない。
【００４２】
別の実現形態としては、クライアントと仮想一元化装置間、あるいは要求受付手段１５１とネットワークストレージ１２０〜１２２のストレージ装置間でｉＳＣＳＩプロトコルのようなＩＰストレージ向きプロトコルを使用する方法もありうる。
レプリケーション手段１５２は、判定手段１５３を含み、要求受付手段１５１により呼び出される。レプリケーション手段１５２は、一元管理ディレクトリ１５７にアクセスし、判定手段１５２により、要求受付手段１５１から転送されたファイルアクセス要求をレプリケーションするかどうかを判定する。レプリケーションすると判定した場合には、ファイルアクセス要求の対象であるレプリケーション元の仮想一元化ファイルシステム１０３に属するいずれかのネットワークストレージと、レプリケーション先仮想一元化ファイルシステム１０４の仮想一元化装置１１１に対して同時にそのファイルアクセス要求を転送する。判定手段１５２の詳細については後述する。また、一元管理ディレクトリ１５７に関しても後述する。
【００４３】
ホストテーブル１５５は、仮想一元化ファイルシステム１０３のメンバ情報を管理する。図２にホストテーブル１５５の構成を示す。ホストテーブル１５５は、仮想一元化ファイルシステム１０３のメンバとなるネットワークストレージの名前情報とメンバ間で一意なネットワークストレージ識別子との対応付けを行なう。２０１の行はメンバとなるネットワークストレージのストレージ装置の名前情報であり、２０２の行は、各ストレージ装置のマウントポイント、２０３の行は各ネットワークストレージのストレージ装置に対応する識別子である。一つのネットワークストレージに複数のストレージ装置が存在する場合には、各ストレージ装置に対応して識別子を用意する。図２では、ネットワークストレージ１２０（ＮＳ１２０）のネットワークストレージ識別子をＰＳ１、ネットワークストレージ１２１（ＮＳ１２１）のネットワークストレージ識別子をＰＳ２、ネットワークストレージ１２２（ＮＳ１２２）のネットワークストレージ識別子をＰＳ３に設定する。ホストテーブル１５５は、さらに各ストレージ装置のルートファイルハンドルを保持してもよい。
【００４４】
本実施の形態では、仮想一元化装置１１０はリモート制御手段やストレージ装置を持たないが、リモート制御手段やストレージ装置を持つ場合には、ホストテーブル１５５に仮想一元化装置１１０の名前情報とストレージ装置のマウントポイント、ストレージ装置に対する識別子を登録すればよい。
【００４５】
レプリケーションホストテーブル１５６は、レプリケーション先の仮想一元化ファイルシステムのメンバ情報を管理する。図３にレプリケーションホストテーブル１５６の構成を示す。レプリケーションホストテーブル１５６の構成はホストテ―ブル１５５と同様である。但し、レプリケーションホストテーブル１５６は、仮想一元化ファイルシステムに所属する各ネットワークストレージ装置ではなく、仮想一元化ファイルシステムそのものを管理する。３０１の行は、レプリケーションのメンバとなる仮想一元化ファイルシステムの名前情報を管理する。３０２の行は、各仮想一元化ファイルシステムのマウントポイントを管理する。３０３の行は、各仮想一元化ファイルシステムの識別子である。図３では、仮想一元化ファイルシステム１０４（ＶＦＳ１０３）の識別子をＶＦＳ１に設定している。ファイル及びディレクトリのコピーを一つ以上の仮想一元化ファイルシステムに作成する場合には、レプリケーションホストテーブル１５６に追加すればよい。本発明の実施の形態では、レプリケーションホストテーブル１５６でレプリケーション先の仮想一元化ファイルシステムを管理するが、ホストテーブル１５５にレプリケーション先の仮想一元化ファイルシステムの名前情報とマウントポイントを含んでもよい。また、名前情報とマウントポイントに加えて、レプリケーション先のルートファイルハンドルを含んでもよい。
【００４６】
一元管理ディレクトリ１５７は、ネットワークストレージ１２０〜１２２を含む仮想一元化ファイルシステム１０３全体のファイルディレクトリツリー構造と、全ファイル識別子（属性情報）のみを管理する。クライアントには一元管理ディレクトリ１５７のファイルディレクトリツリー構造を見せるが、一元管理ディレクトリ１５７上の各ファイルは、各ファイルの実体であるデータを持たない。全データは、ネットワークストレージ１２０〜１２２に分散して格納する。
【００４７】
本実施の形態では、クライアントには仮想的に単一のファイルディレクトリツリー構造を見せるための一元管理ディレクトリ１５７として、ファイルシステムを利用する。一般的なファイルシステムは、ファイルディレクトリツリー構造とファイル識別子と共に、ファイルの実体であるデータも格納してしまう。そこで、仮想一元化装置１１０は、一元管理ディレクトリ１５７のファイルシステムにダミーファイルを生成する。ダミーファイルはファイルの実体であるデータを持たない。
【００４８】
容量管理テーブル１５８は、レプリケーション元の仮想一元化ファイルシステム１０３およびレプリケーション先の仮想一元化ファイルシステム１０４のディスク使用量に関する情報とディスク容量に関する情報を管理する。図７に容量管理テーブルの構成を示す。本発明の実施の形態では、仮想一元化ファイルシステムの構成が異なる場合がある。このとき、レプリケーション元の仮想一元化ファイルシステム１０３のディスクの空き容量がレプリケーション先の仮想一元化ファイルシステム１０４のディスクの空き容量よりも小さければ、ファイルやディレクトリのレプリケーションを行うことができる。しかしながら、レプリケーション元のディスクの空き容量がレプリケーション先の仮想一元化ファイルシステムのディスクの空き容量よりも大きい場合、レプリケーション先の仮想一元化ファイルシステムのディスクに空きがなくなると、レプリケーションできなくなる可能性がある。そこで、容量管理テーブル１５８は、レプリケーション可能なディスク容量を保証するため、複数の仮想一元化ファイルシステムのディスク使用量とディスク容量のうち、最も大きいディスク使用量および最も小さいディスク容量をレプリケーション可能なディスク使用量とディスク容量として管理する。
【００４９】
７０１の行は、レプリケーションのメンバとなる仮想一元化ファイルシステムの名前情報を管理する。７０２の行は、各メンバのディスク使用量を管理する。各メンバのディスク使用量の最大値をレプリケーション全体のディスク使用量として管理する。７０３の行は、各メンバのディスク容量を管理する。各メンバのディスク容量の最小値をレプリケーション全体のディスク容量として管理する。本発明の実施の形態では、容量管理テーブル１５８で各仮想一元化ファイルシステムのディスク使用量とディスク容量を管理するが、ホストテーブル１５５あるいはレプリケーションホストテーブル１５６にこれらの情報を含んでもよい。
【００５０】
クライアントが仮想一元化装置１１０にファイル生成要求（ＮＦＳプロトコルではＣＲＥＡＴＥ要求に相当する）を発行すると、レプリケーション手段１５２は一元管理ディレクトリ１５７にファイル構造を作るが、ファイルの実体はネットワークストレージ１２０〜１２２のファイルシステムに格納する。また、クライアント１００が仮想一元化装置１１０にＲＥＡＤ要求を発行すると、要求受付手段１５１がＲＥＡＤ要求を受け付け、レプリケーション手段１５２に転送する。レプリケーション手段１５２は、一元管理ディレクトリ１５７にアクセスして、ダミーファイルを特定し、ダミーファイルを利用してファイルの実体を格納するネットワークストレージを決定する。次に、そのネットワークストレージからファイルの実体であるデータを読み出し、一元管理ディレクトリ１５７で管理する属性情報とあわせて、クライアントに返送する。なお、一元管理ディレクトリ１５７は、ファイルディレクトリツリー構造とファイル識別子の管理さえできればよいため、必ずしもファイルシステムを使用する必要はない。ファイル識別子が全ファイルに対して一意であることを保証できれば、データベースを利用してもよいし、専用のテーブルで管理してもよい。
【００５１】
マッピング手段１５４は、ファイルとファイルの格納先のネットワークストレージとを対応つける。本実施の形態では、マッピング手段１５４は、一元管理ディレクトリ１５７に作成したダミーファイルの中に、ファイルの実体を格納するネットワークストレージの識別子を格納する。ネットワークストレージの識別子はホストテーブル１５５に登録したシステムに一意な値であり、各ダミーファイルに書きこむネットワークストレージの識別子は、各ネットワークストレージに均等にファイルが分配されるように決定する。具体的には、ＣＲＥＡＴＥ要求によりファイルを新しく生成する場合に、ラウンドロビンでファイルの実体を格納するネットワークストレージの識別子を決定する。その他にも、各ネットワークストレージの容量を監視して、格納されている容量が均等になるようにネットワークストレージを決定することもできる。あるいは、特定ディレクトリ以下のファイルを全て同じネットワークストレージに割り当てることもできる。
【００５２】
本実施の形態では、ダミーファイルにファイルの実体を格納するネットワークストレージの識別子を格納する方法をとったが、ダミーファイルではなく、各ディレクトリ毎に保持するファイル名とファイルの実体を格納するネットワークストレージの識別子を対応付けるリストを別途保持してもよい。ファイル識別子から、各ファイルの実体を格納するネットワークストレージが一意に決定できる方法であれば、専用のテーブルで管理してもよいし、他のどのような方法を用いてもよい。また、ダミーファイルに保持したファイル識別子から各ファイルの実体を格納するネットワークストレージを高速に特定するため、頻繁にアクセスするファイル識別子に関しては、その実体を格納するネットワークストレージの識別子と、そのネットワークスストレージ上のファイル識別子の対応関係を高速なメモリ上に保持してもよい。これにより、ダミーファイルを読み出さなくとも、ファイルの実体を格納するネットワークストレージに対して直接ファイルアクセス要求を転送できるようになる。
【００５３】
次に、管理手段１５０について詳細に説明する。図１１に管理手段１５０の構成を示す。管理手段１５０は、容量管理手段１１０１、システムチェック手段１１０２、ヘルスチェック手段１１０３で構成する。
容量管理手段は１１０１、レプリケーション元とレプリケーション先の仮想一元化ファイルシステムのディスク使用量とディスク容量とを容量管理テーブル１５８を用いて管理し、レプリケーション可能なディスク空き容量を保証する。容量管理手段１１０１は、定期的にレプリケーション元とレプリケーション先の仮想一元化ファイルシステムに対して、ディスク容量とディスク使用量を取得するためのファイルアクセス要求を発行し、容量管理テーブル１５８に記録する。例えば、ＮＦＳプロトコルの場合、ディスク容量とディスク使用量を取得するファイルアクセス要求には、ＳＴＡＴＦＳ要求がある。容量管理テーブル１５８で管理するレプリケーション可能なディスク空き容量を超えてクライアントがファイルを書き込もうとした場合、容量管理手段１１０１は書き込みエラーをクライアントに返送する。
【００５４】
システムチェック手段１１０２は、仮想一元化ファイルシステム１０３の一元管理ディレクトリ１５７のファイルディレクトリ構造とネットワークストレージ１２０〜１２２のファイルディレクトリ構造が一致しているかどうかを判定し、不一致の場合には、一致させる。また、レプリケーション元仮想一元化ファイルシステム１０３の一元管理ディレクトリ１５７のファイルディレクトリ構造とレプリケーション先仮想一元化ファイルシステム１０４の一元管理ディレクトリ１６７のファイルディレクトリ構造が一致しているかどうかを判定する。不一致の場合には一致させる。一致しているかどうかは、例えばＮＦＳプロトコルにおけるＬＯＯＫＵＰ要求を発行し、その属性情報を取得することで比較できる。また、システムチェック手段１１０２は、不一致を修正した場合には、修正記録をログに書き込む。
【００５５】
ヘルスチェック手段１１０３は、レプリケーション元の仮想一元化ファイルシステム１０３とレプリケーション先の仮想一元化ファイルシステム１０４が正常に動作しているかどうかを判定する。本発明の実施の形態では、レプリケーション元の仮想一元化ファイルシステムと、レプリケーション先の仮想一元化ファイルシステムかどうかでヘルスチェック手段１１０３の処理が異なる。レプリケーション元かどうかはレプリケーション手段１５２のマスタフラグ４１１をチェックすることにより判定できる。マスタフラグ４１１の詳細は後述する。レプリケーション元の仮想一元化ファイルシステム１０３は、一定時間毎に、ファイルアクセス要求をレプリケーション先の仮想一元化ファイルシステムに対して発行する。ＮＦＳプロトコルによるファイルアクセス要求の場合、例えばＳＴＡＴＦＳ要求等を用いる。レプリケーション元の仮想一元化ファイルシステムのヘルスチェック手段１１０３は、一定時間毎に、レプリケーション先の仮想一元化ファイルシステムからの応答をチェックする。発行したファイルアクセス要求に対する応答がエラーとなった場合や、一定時間応答が得られなかった場合には、レプリケーション先の仮想一元化ファイルシステムに障害が発生したと判断して、障害通知メール等を管理者に送付する。
【００５６】
レプリケーション先の仮想一元化ファイルシステムのヘルスチェック手段１１０３は、一定時間毎に受け取ったファイルアクセス要求、すなわちＦＳＳＴＡＴ要求をチェックする。ヘルスチェックのためのこのファイルアクセス要求は、レプリケーション先からは常に同じインターバルで発行されているため、一定時間が経過してもＦＳＳＴＡＴ要求が転送されてこない場合には、レプリケーション元の仮想一元化ファイルシステムに障害が発生したと判断して、障害通知メール等を管理者に送付する。
【００５７】
本発明の実施の形態では、ＦＳＳＴＡＴ要求を用いて、レプリケーション元とレプリケーション先の仮想一元化ファイルシステムが正常であるかどうかを判定したが、別のアプリケーションプログラムを搭載してヘルスチェックを実現してもよい。複数の仮想一元化ファイルシステムが正常に動作しているかどうかを判定できる方法であれば、他のどんな方法を用いてもよい。
【００５８】
次に、レプリケーション手段１５２について図４を用いて詳細に説明する。レプリケーション手段１５２は、判定手段１５３、要求処理手段４０１、応答収集手段４０２、整合手段４０３、同期フラグ４１０、マスタフラグ４１１、ルールテーブル４１２、レプリケーションキャッシュ４１３で構成する。
【００５９】
判定手段１５３は、要求受付手段１５１から呼び出され、要求受付手段１５１が受け付けたファイルアクセス要求をレプリケーションするかどうかを判定する。本実施の形態では、要求受付手段１５１が受け付けたファイルアクセス要求が更新系要求であること、同期フラグ４１０が設定されていること、マスタフラグ４１１が設定されていること、ファイルアクセス要求がコピー対象であること、の４つのＡＮＤ条件が成立した場合にレプリケーションを行なう。同期フラグ４１０およびマスタフラグ４１１に関しては後述する。ファイルアクセス要求が参照系要求である場合には、レプリケーション先仮想一元化ファイルシステム１０４にはそのアクセス要求を転送しない。また、同期フラグの値が“偽”である場合、レプリケーション先仮想一元化ファイルシステム１０４にはその要求を転送しない。さらに、マスタフラグ４１１の値が“偽”である場合にも、レプリケーション先仮想一元化ファイルシステム１０４にはアクセス要求を転送しない。その上、ファイルアクセス要求がコピー対象でなければ、レプリケーション先仮想一元化ファイルシステム１０４には、ファイルアクセス要求を転送しない。
【００６０】
要求処理手段４０１は、判定手段１５３の判定の結果、レプリケーションを行うと判定した場合に、要求受付手段１５１が受け付けたファイルアクセス要求をレプリケーション元仮想一元化ファイルシステム１０３に属するネットワークストレージ１２０〜１２２と、レプリケーション先仮想一元化ファイルシステム１０４の仮想一元化装置１１１に同時に転送する。判定手段１５３の判定の結果、レプリケーションしないと判定した場合には、要求受付手段１５１が受け付けたファイルアクセス要求をレプリケーション元仮想一元化ファイルシステム１０３に属するネットワークストレージ１２０〜１２２にのみ転送する。
【００６１】
要求処理手段４０１は、レプリケーションを行うと判定した場合には、レプリケーション元とレプリケーション先の仮想一元化ファイルシステムで処理するファイルアクセス要求の順序保証も行う。
応答収集手段４０２は、レプリケーション元仮想一元化ファイルシステム１０３に属するネットワークストレージ１２０〜１２２と、レプリケーション先仮想一元化ファイルシステム１０４からの応答をまとめて一つにしてクライアントに返送する。
【００６２】
整合手段４０３は、図１に示す管理手段１５０により呼び出され、レプリケーション元仮想一元化ファイルシステム１０３に存在するコピー対象のファイル及びディレクトリとレプリケーション先仮想一元化ファイルシステム１０４に存在するファイルおよびディレクトリの整合性をとる。具体的には、コピー対象のファイルおよびディレクトリが一致するかどうかを検査し、一致しない場合には、レプリケーション元仮想一元化ファイルシステム１０３の内容を最新の情報として、レプリケーション先仮想一元化ファイルシステム１０４に反映する。
【００６３】
同期フラグ４１０は、整合手段４０３により設定され、レプリケーション元仮想一元化ファイルシステム１０３におけるコピー対象のファイル及びディレクトリと、レプリケーション先仮想一元化ファイルシステム１０４におけるコピーしたファイル及びディレクトリが一致するかどうかを示す。同期フラグ４１０の初期化時は“偽”と設定する。一致している場合には“真”とし、不一致の場合には“偽”とする。
【００６４】
マスタフラグ４１１は、管理手段１５０により設定され、レプリケーション元仮想一元化ファイルシステム１０３のファイル及びディレクトリがマスタであることを示す。マスタフラグ４１１は、初期化時に“偽”と設定する。レプリケーション元仮想一元化ファイルシステム１０３のレプリケーション手段１５２のマスタフラグ４１１には、“真”と設定し、レプリケーションホストテーブル１５６に登録したレプリケーション先仮想一元化ファイルシステム１０４のレプリケーション手段１６２のマスタフラグ４１１には“偽”と設定する。
ルールテーブル４１２は、管理手段１５０により設定され、コピー対象の特定ディレクトリ全体あるいは特定ユーザ識別子あるいは特定グループ識別子を保持する。あるいは、コピー対象ファイルの識別子を保持する。例えば、管理者が特定ユーザのファイルをコピーすると設定する場合には、ルールテーブル４１２にそのユーザの識別子を格納する。レプリケーション元仮想一元化ファイルシステム１０３に属する全ファイルのコピーを作成する場合には、ルールテーブル４１２のかわりに、コピーフラグを用意すればよい。あるいは、ルールテーブル４１２に全ファイルディレクトリのコピーを作成するルールを記載してもよい。あるいは、ルールテーブル４１２とコピーフラグを併用してもよい。
【００６５】
ファイルの識別子によりファイルのコピーを保持するレプリケーション先の仮想一元化ファイルシステムを変更する場合には、ルールテーブル４１２のルール毎に、レプリケーションホストテーブル１５６に設定したレプリケーション先の仮想一元化ファイルシステムの識別子を対応させればよい。これにより、レプリケーション先の仮想一元化ファイルシステムが複数存在する場合に、仮想一元化ファイルシステム毎に異なる条件でファイルのコピーを作成することができる。さらに、ファイル識別子毎にレプリケーション先仮想一元化ファイルシステムを変更する場合には、レプリケーションホストテーブル１５６の各メンバに対応する同期フラグを持つことにより、より細かな条件でファイルシステムの部分コピーを作成することができる。
【００６６】
レプリケーションキャッシュ４１３は、頻繁にアクセスするレプリケーション元の仮想一元化ファイルシステムの一元管理ディレクトリのダミーファイルのファイル識別子とレプリケーション先の仮想一元化ファイルシステムの一元管理ディレクトリのダミーファイルのファイル識別子の対応関係をメモリ上に格納する。レプリケーションキャッシュ４１３に対応関係が記録されている場合、クライアントがファイル識別子を用いてレプリケーション元の仮想一元化ファイルシステムにアクセスする場合で、かつレプリケーション先の仮想一元化ファイルシステムにもそのコピーを作成する場合に、レプリケーション先の仮想一元化ファイルシステムの一元管理ディレクトリに直接アクセスすることができる。本発明の実施の形態では、仮想一元化ファイルシステムのダミーファイルのファイル識別子とファイルの実体を保持するネットワークストレージにおけるファイル識別子の対応関係を保持するキャッシュを持つが、レプリケーションキャッシュに保持する内容を該キャッシュに含んでもよい。
【００６７】
本実施の形態では、ルールテーブル４１２にコピー条件を保持する方法をとったが、ルールテーブル４１２ではなく、一元管理ディレクトリ１５７の各ダミーファイルにコピーするかどうかを示すコピー識別子を保持してもよい。あるいは、各ディレクトリ毎にディレクトリ内に保持するファイルとコピー識別子を対応付けるリストを別途保持してもよい。ファイル識別子から、そのファイルがコピー対象であるかどうかを一意に決定できる方法であれば、専用のテーブルで管理してもよいし、他のどのような方法を用いてもよい。
【００６８】
レプリケーション先仮想一元化ファイルシステム１０４の構成は、レプリケーション元仮想一元化ファイルシステム１０３と同じであるため、詳細説明は省略する。ただし、本実施の形態では、レプリケーション先仮想一元化ファイルシステム１０４のレプリケーションホストテーブル１６６にはレプリケーション先の仮想一元化ファイルシステムは登録されていない。また、レプリケーション手段１６２が使用する同期フラグおよびマスタフラグの値も“偽”に設定される。これらの設定は、レプリケーション元仮想一元化ファイルシステム１０３の管理手段１５０を利用して設定してもよいし、管理者が直接レプリケーション先仮想一元化ファイルシステム１０４の管理手段１６０にアクセスして設定してもよい。
【００６９】
次に、レプリケーション手段１５２が行なうレプリケーション処理について図５を用いて詳細に説明する。要求受付手段１５１がクライアントからファイルアクセス要求を受け付けると、要求受付手段１５１はレプリケーション手段１５２を呼び出し、レプリケーション処理を行なう。
レプリケーション処理は、判定処理５１０、要求転送処理５１１、応答収集処理５１２からなる。
【００７０】
判定処理５１０は、プロセス５０２において、要求受付手段１５１が受け付けたファイルアクセス要求をレプリケーションするかどうかを判定する。レプリケーションをする場合には要求転送処理４１１のプロセス５０４を、レプリケーションしない場合にはプロセス５０３を行なう。判定処理５１０の詳細については後述する。
【００７１】
要求転送処理５１１は、プロセス５０２の判定結果に従って、プロセス５０３あるいはプロセス５０４を行なう。プロセス５０３は、判定処理５１０の判定結果が“ＹＥＳ”である場合に行なわれ、ファイルアクセス要求をレプリケーション元仮想一元化ファイルシステム１０３のホストテーブル１５５に登録したファイルの実体を格納するネットワークストレージに転送すると共に、レプリケーションホストテーブル１５６に登録した仮想一元化ファイルシステム１０４に対してもそのファイルアクセス要求を転送する。本実施の形態では、ディレクトリに対するファイルアクセス要求の場合、レプリケーション元仮想一元化ファイルシステム１０３に属する全ネットワークストレージに対してディレクトリに対するファイルアクセス要求を転送すると共に、レプリケーションホストテーブル１５６に登録した仮想一元化ファイルシステム１０４に転送する。
【００７２】
プロセス５０４は、判定処理５１０の判定結果が“ＮＯ”である場合に行なわれ、ファイルアクセス要求をレプリケーション元仮想一元化ファイルシステム１０３のホストテーブル１５５に登録したファイルの実体を格納するネットワークストレージのみに転送する。ディレクトリに対するファイルアクセス要求の場合、レプリケーション元仮想一元化ファイルシステム１０３に属する全ネットワークストレージに対してアクセス要求を転送する。
【００７３】
応答収集処理５１２は、要求転送処理５１１の応答を収集し、一つにしてクライアントに返送する。プロセス５０５は、判定処理５１０の判定結果が“ＹＥＳ”の場合に行なわれ、ファイルに対するアクセス要求の場合には、レプリケーション元仮想一元化ファイルシステム１０３のファイル格納先ネットワークストレージからの応答と、レプリケーション先仮想一元化ファイルシステム１０４からの応答をあわせて一つの応答にしてクライアント１００に返送する。ディレクトリに対するファイルアクセス要求の場合、レプリケーション元仮想一元化ファイルシステム１０３の全てのネットワークストレージからの応答と、レプリケーション先仮想一元化ファイルシステム１０４からの応答をあわせて一つにしてクライアント１００に返送する。
【００７４】
プロセス５０６は、判定処理５１０の判定結果が“ＮＯ”の場合に行なわれ、ファイルに対するファイルアクセス要求の場合、レプリケーション元仮想一元化ファイルシステム１０３のファイル格納先ネットワークストレージからの応答をクライアント１００に返送する。ディレクトリに対するファイルアクセス要求の場合には、レプリケーション元仮想一元化ファイルシステム１０３の全てのネットワークストレージからの応答をまとめて一つにしてクライアント１００に返送する。
【００７５】
本実施の形態では、応答収集処理５１２が転送先のネットワークストレージや仮想一元化ファイルシステムからの応答全てを待ち合わせてからクライアントに応答を返送する例を示したが、クライアントに対するレスポンス時間を短縮するため、複数の転送先からの最も早い応答を受け取った後、他の応答を待たずにクライアント１００にその応答を返送してもよい。あるいは、複数の転送先からの全応答と、レプリケーション手段１５２による次のファイルアクセス要求の一元管理ディレクトリ１５７に対するアクセスの応答を待ち合わせてから、クライアントに応答を返送してもよい。転送先のネットワークストレージや仮想一元化ファイルシステムからの応答すべてを待ち合わせる方法の場合、いずれかの応答が消失した場合のエラー処理が簡単であるが、待ち合わせのオーバヘッドが大きい。一方、もっとも早い応答を受け取った後、他の応答を待たずにクライアント１００に応答を返送する場合は、レプリケーションをしていない場合と同等のファイルアクセス性能を得られるが、一方でエラー処理が難しくなる。どのように待ち合わせを行うかは、性能とエラー処理の複雑さのトレードオフにより決定すべきである。
【００７６】
次に、判定処理５１０の詳細フローについて図１、図４、および図６を用いて説明する。要求受付手段１５１がファイルアクセス要求を受け付けると、判定手段１５３を呼び出す。判定手段１５３は、判定処理５１０を行なう。判定処理５１０は、プロセス６０２においてファイルアクセス要求が更新系要求であるかどうかを判定する。更新系要求である場合には、判定結果を“ＹＥＳ”としてプロセス６０３を行なう。
【００７７】
プロセス６０３では、マスタフラグ４１１を調査し、コピー対象のファイル及びディレクトリがオリジナルであるかどうかを調査する。マスタフラグ４１１の値が“真”である場合には、判定結果は“ＹＥＳ”となり、プロセス６０４を行なう。
【００７８】
プロセス６０４では、同期フラグ４１０により、コピー対象のファイル及びディレクトリとレプリケーション先仮想一元化ファイルシステムのコピー先ファイルおよびディレクトリが一致するかどうかを調査する。同期フラグ４１０の値が“真”である場合には、判定結果は“ＹＥＳ”となり、プロセス６０５を行なう。
【００７９】
プロセス６０５は、ファイルアクセス要求のアクセス対象のファイルオブジェクトがコピー対象であるかどうかを判定する。プロセス６０５は、プロセス６０９、プロセス６１０からなる。プロセス６０９では、ファイルアクセス要求のアクセス対象のファイルオブジェクトがディレクトリである場合には、コピー対象でとして判定結果を“ＹＥＳ”にして、プロセス６０６を行う。ファイルアクセス要求の対象ファイルオブジェクトが、ファイルである場合には、プロセス６１０を行う。プロセス６１０は、ファイルアクセス対象ファイルオブジェクトが図４に示すルールテーブル４１２のコピー条件を満たすかどうかを判定する。判定では、一元管理ディレクトリ１５７にアクセスし、ファイルの属性情報を取得し、取得した属性情報とルールテーブル４１２のコピー条件を比較する。コピー条件が成立する場合は、判定結果を“ＹＥＳ”とし、プロセス６０６を行う。条件不成立の場合は、コピー対象外ファイルとして判定結果を“ＮＯ”としてプロセス６０７を行う。
【００８０】
本実施の形態では、ファイルアクセス要求の対象ファイルオブジェクトがディレクトリである場合には、必ずコピー対象とする。そのため、レプリケーション元仮想一元化ファイルシステムとレプリケーション先仮想一元化ファイルシステム間で同じディレクトリ構造を持つ。このようにすることで、障害復旧時の整合処理を簡単にすることができる。ただし、ディレクトリに対するファイルアクセス要求の場合にも、ルールテーブル４１２を利用してコピー条件が成立するかどうかを判定することにより、ファイルだけでなく、ディレクトリに関してもコピー対象かどうかを個別に選択する方法も容易に実現できる。また、コピーフラグを用いて、仮想一元化ファイルシステム１０３のファイルシステム全体をコピーする場合、プロセス６０５において、ファイルやディレクトリの区別なく、コピーフラグの値が“真”かどうかを調査することにより、コピー判定を行なえばよい。
【００８１】
プロセス６０６では、レプリケーション判定を“ＹＥＳ”として判定処理５１０を完了する。プロセス６０２、プロセス６０３、プロセス６０４、プロセス６０５のいずれかの判定結果が“ＮＯ”である場合には、プロセス６０７を行ない、レプリケーション判定を“ＮＯ”として判定処理５１０を完了する。
【００８２】
次に、レプリケーション判定が“ＹＥＳ”である場合の、要求転送処理５１１及び応答収集処理５１２における、ファイルアクセス要求の処理について詳細に説明する。本実施の形態では、レプリケーション手段１５２が受け付けたファイルアクセス要求に関して、判定処理５１０において、判定結果が“ＹＥＳ”となる場合に、そのアクセス要求を、レプリケーション元仮想一元化ファイルシステム１０３だけでなく、レプリケーション先仮想一元化ファイルシステム１０４にも転送する。ファイルアクセス要求の処理にはＮＦＳプロトコルを利用する。ここで、ＮＦＳバージョン２における更新系要求は、ＣＲＥＡＴＥ要求、ＷＲＩＴＥ要求、ＲＥＭＯＶＥ要求、ＲＥＮＡＭＥ要求、ＭＫＤＩＲ要求、ＲＭＤＩＲ要求、ＳＥＴＡＴＴＲ要求、ＬＩＮＫ要求、ＳＹＭＬＩＮＫ要求である。
【００８３】
最初に、ファイルハンドルの構成について説明する。ファイルハンドルは親ディレクトリのｉノード番号と、ファイルオブジェクトのｉノード番号を含む。
次に、本実施の形態において、レプリケーションの対象となる更新系要求処理の詳細について説明する。
【００８４】
図８にＣＲＥＡＴＥ要求処理の流れを示す。ＣＲＥＡＴＥ要求は、ファイルを生成するディレクトリのファイルハンドルＨと、ファイルの名前Ｆを引数とする。図１のレプリケーション手段１５２は、要求受付手段１５１からＣＲＥＡＴＥ要求を受け取るとプロセス８０１を呼び出す。
【００８５】
プロセス８０２では、ファイルハンドルＨのフィールド７０２から、ファイルを生成するディレクトリのｉノード番号ＰＩを取りだし、このｉノード番号で識別されるディレクトリにファイルの名前がＦとなるダミーファイルを生成する。
【００８６】
プロセス８０３では、マッピング手段１５４およびホストテーブル１５５を利用して、ＣＲＥＡＴＥ要求のファイルを格納するネットワークストレージ識別子ＰＳを決定する。
【００８７】
プロセス８０４では、識別子ＰＳをダミーファイルＦに書き込む。書きこみは、例えばＷＲＩＴＥ要求を利用する。
【００８８】
プロセス８０５では、レプリケーションホストテーブル１５６を利用して、ＣＲＥＡＴＥ要求を転送するレプリケーション先仮想一元化ファイルシステムＶＦＳを決定する。
【００８９】
プロセス８０６では、クライアントから送られてきたＣＲＥＡＴＥ要求をネットワークストレージＰＳと仮想一元化ファイルシステムＶＦＳに対して発行する。
【００９０】
プロセス８０７では、ネットワークストレージＰＳと、仮想一元化ファイルシステムＶＦＳの両方から、ＣＲＥＡＴＥ要求に対する応答を収集する。
【００９１】
プロセス８０８では、ダミーファイルＦを生成したディレクトリのｉノード番号ＰＩとダミーファイルのｉノード番号Ｉからファイルハンドル７００を構成して、クライアント１００に返す。
【００９２】
図９はＷＲＩＴＥ要求処理の流れを示す。ＷＲＩＴＥ要求は、読み出すファイルＦのファイルハンドルＨと読み出すファイルＦの親ディレクトリのファイルハンドルＨｐを引数とする。図１に示すようにレプリケーション手段１５２が要求受付手段１５１からＷＲＩＴＥ要求を受け取ると、図９のプロセス９０１を呼び出し、ＷＲＩＴＥ要求処理を行なう。
【００９３】
プロセス９０２では、ファイルハンドルＨからダミーファイルＦを読み出し、ダミーファイルＦからファイル格納先のネットワークストレージＰＳを求める。
【００９４】
プロセス９０３では、ネットワークストレージＰＳからファイルＦの実体に対するファイルハンドルＨｐｓを取得する。ファイルハンドルＨｐｓは、ネットワークストレージＰＳに対してＬＯＯＫＵＰ要求を発行することにより取得できる。一度取得したファイルハンドルＨｐｓの値とファイルハンドルＨとの対応関係を仮想一元化装置１１０に記録しておくことで次にファイルハンドルＨを用いてＷＲＩＴＥ要求を発行する場合には、ＬＯＯＫＵＰ要求を発行しなくてもファイル格納先ネットワークストレージＰＳにおけるファイルハンドルＨｐｓを取得できる。
【００９５】
プロセス９０４では、レプリケーションホストテーブル１５６に登録した仮想一元化ファイルシステムＶＦＳから、ファイルＦの実体に対するファイルハンドルＨｖｆｓを取得する。ファイルハンドルＨｖｆｓは、仮想一元化ファイルシステムＶＦＳに対してＬＯＯＫＵＰ要求を発行することにより取得できる。一度取得したファイルハンドルＨｖｆｓの値とファイルハンドルＨとの対応関係を仮想一元化装置１１０に記録しておくことで、次にファイルハンドルＨを用いて仮想一元化ファイルシステムＶＦＳに対してＷＲＩＴＥ要求を発行する場合に、ＬＯＯＫＵＰ要求を発行しなくてもレプリケーション先仮想一元化ファイルシステムＶＦＳにおけるファイルハンドルＨｖｆｓを取得できる。
【００９６】
プロセス９０５では、取得したファイルハンドルＨｐｓを引数としてＷＲＩＴＥ要求をネットワークストレージＰＳに発行する。さらに、取得したレプリケーション先のファイルハンドルＨｖｆｓを引数としてＷＲＩＴＥ要求をレプリケーション先仮想一元化ファイルシステムＶＦＳに発行する。
【００９７】
プロセス９０６では、ネットワークストレージＰＳおよび仮想一元化ファイルシステムＶＦＳそれぞれがＷＲＩＴＥ要求の返り値を返すと、その結果をまとめて一つにしてクライアント１００に返す。
ＲＥＭＯＶＥ要求処理とＲＥＮＡＭＥ要求処理もＷＲＩＴＥ要求処理と同じであるため、詳細説明は省略する。
【００９８】
図１０にＭＫＤＩＲ要求処理の流れを示す。ＭＫＤＩＲ要求は、生成するディレクトリの名前Ｄと、生成する親ディレクトリのファイルハンドルＨを引数とする。図１に示すように、レプリケーション手段１５２が要求受付手段１５１からＭＫＤＩＲ要求を受け付けると、図１０のプロセス１００１を行なう。
【００９９】
プロセス１００２では、ファイルハンドルＨのフィールド７０２に保持されたｉノード番号によって識別される一元管理ディレクトリ１５７のディレクトリ内に、名前Ｄのディレクトリを生成する。生成したディレクトリのｉノード番号はＩとする。
【０１００】
プロセス１００３では、ホストテーブル１５５に登録されている全ネットワークストレージと、レプリケーションホストテーブル１５６に登録されている全仮想一元化ファイルシステムに対して、ＭＫＤＩＲ要求を発行して名前Ｄのディレクトリを生成する。
【０１０１】
プロセス１００４では、プロセス１００３で転送したＭＫＤＩＲ要求からの応答全てを受け取ると、ディレクトリＤの親ディレクトリのｉノード番号ＰＩと一元管理ディレクトリ１５６に生成したディレクトリＤのｉノード番号Ｉからファイルハンドルを生成し、クライアント１００に返送する。
【０１０２】
ＲＭＤＩＲ要求処理もＭＫＤＩＲ要求処理と同じであり、ＭＫＤＩＲ要求をＲＭＤＩＲ要求に変更すれば容易に実現できる。ＳＹＭＬＩＮＫ要求処理もＭＫＤＩＲ要求処理と同じであり、ＭＫＤＩＲ要求をＳＹＭＬＩＮＫ要求に変更すればよい。ＳＥＴＡＴＴＲ要求に関しては、アクセス対象のファイルオブジェクトがディレクトリの場合、ＭＫＤＩＲ要求処理と同様に、各ネットワークストレージとレプリケーション先の仮想一元化ファイルシステムに対してＳＥＴＡＴＴＲ要求を発行してディレクトリ属性の設定を行なう。なお、アクセス対象のファイルオブジェクトがファイルであるＳＥＴＡＴＴＲ要求処理は、ＷＲＩＴＥ要求処理と同様に実現できる。
【０１０３】
本実施の形態では、クライアントからのファイルアクセス要求が参照系要求である場合、図６に示す判定処理の結果は“ＮＯ”となり、レプリケーションを行なわない。ＮＦＳバージョン２における参照系要求としては、ＬＯＯＫＵＰ要求、ＲＥＡＤ要求、ＲＥＡＤＬＩＮＫ要求、ＲＥＡＤＤＩＲ要求、ＧＥＴＡＴＴＲ要求、ＳＴＡＴＦＳ要求がある。
【０１０４】
次に、ＬＯＯＫＵＰ要求処理の流れについて説明する。ＬＯＯＫＵＰ要求は、ファイルオブジェクトの親ディレクトリのファイルハンドルＨと、ファイルオブジェクトの名前Ｆを引数とする。図１に示すようにレプリケーション手段１５２が、要求受付手段１５１からＬＯＯＫＵＰ要求を受け取ると、次の処理を行う。
【０１０５】
まず、ファイルハンドルＨから親ディレクトリのｉノード番号ＰＩを取りだし、このｉノード番号で識別される一元管理ディレクトリ１５７に存在する名前Ｆのファイルオブジェクトのｉノード番号Ｉを取得する。そして、親ディレクトリのｉノード番号ＰＩとファイルオブジェクトＦのｉノード番号Ｉをあわせてファイルハンドルを構成し、それをクライアント１００に返す。
【０１０６】
ＲＥＡＤＤＩＲ要求の処理はＬＯＯＫＵＰ要求と同様で、対象ディレクトリの情報を一元管理ディレクトリ１５７から読み出し、クライアント１００に返す。
【０１０７】
図１２はＲＥＡＤ要求処理の流れを示す。ＲＥＡＤ要求は、読み出すファイルＦのファイルハンドルＨと読み出すファイルＦの親ディレクトリのファイルハンドルＨｐを引数とする。図１に示すように、レプリケーション手段１５２が要求受付手段１５１からＲＥＡＤ要求を受け取ると、図１２のプロセス１２０１を呼び出す。プロセス１２０２では、ファイルハンドルＨからダミーファイルＦを読み出し、ダミーファイルＦからファイル実体格納先のネットワークストレージＰＳを求める。プロセス１２０３では、ネットワークストレージＰＳからファイルＦの実体に対するファイルハンドルＨｐｓを取得する。ファイルハンドルＨｐｓは、ネットワークストレージＰＳに対してＬＯＯＫＵＰ要求を発行することにより取得できる。一度取得したファイルハンドルＨｐｓの値とファイルハンドルＨとの対応関係を一元管理ディレクトリ１５７内部に記録しておくことで次にファイルハンドルＨを用いてＲＥＡＤ要求を発行する場合には、ＬＯＯＫＵＰ要求を発行しなくてもファイル格納先ネットワークストレージＰＳにおけるファイルハンドルＨｐｓを取得できる。
【０１０８】
プロセス１２０４では、取得したファイルハンドルＨｐｓを引数としてＲＥＡＤ要求をネットワークストレージＰＳに発行する。プロセス１２０５では、ネットワークストレージＰＳがＲＥＡＤ要求の返り値である読み出し結果を返すと、その結果をクライアント１００に返す。
【０１０９】
ＧＥＴＡＴＴＲ要求は、ホストテーブル１５５に登録した各ネットワークストレージに対して要求を発行してディレクトリ属性の読み出しを行なう。アクセス対象のファイルオブジェクトがファイルの場合、図１２に示すＲＥＡＤ要求処理と同様ファイル格納先のネットワークストレージに発行すればよい。
【０１１０】
次に、図４に示す整合手段４０３を用いた整合処理の流れについて詳細に説明する。図１に示すようにレプリケーション元仮想一元化ファイルシステム１０３とレプリケーション先仮想一元化ファイルシステム１０４でファイルのレプリケーションを行なっている場合に、どちらかのファイルシステムに障害が発生したり、ネットワーク等に一時的な障害が発生すると、同期フラグ４１０の値を“偽”として、レプリケーション処理を停止する。クライアントがレプリケーション元仮想一元化ファイルシステム１０３にアクセス可能な場合は、仮想一元化ファイルシステム１０３のみで運用を継続する。仮想一元化ファイルシステム１０３に障害が発生し、クライアントがアクセスできない場合には、管理者がコピー対象のファイルのみを持つレプリケーション先仮想一元化ファイルシステム１０４をクライアントに公開するように設定を変更する。例えば、レプリケーション先仮想一元化ファイルシステム１０４のｅｘｐｏｒｔｓファイルを変更する。
【０１１１】
レプリケーション元仮想一元化ファイルシステム１０３のみで運用を継続し、ネットワーク等の一時的な障害が復旧し、レプリケーション先仮想一元化ファイルシステム江１０４と再度レプリケーションを行なう場合、管理者は管理手段１５０を用いて整合手段４０３を呼び出し、複数の仮想一元化ファイルシステムの間で、コピー対象ファイルおよびディレクトリの整合をとる。
【０１１２】
整合手段４０３は、最初仮想一元化ファイルシステム１０３のみで運用している場合に、新しい仮想一元化ファイルシステム１０４をレプリケーション先として追加して、仮想一元化ファイルシステム１０４にコピー対象のファイルおよびディレクトリ全てをコピーし、あたらしくレプリケーション運用する場合にも用いられる。
【０１１３】
図１３に整合処理の流れを説明する。管理者が整合要求を管理手段１５０に発行すると、管理手段１５０は整合手段４０３を呼び出し、整合処理を開始する。プロセス１３０２では、一元管理ディレクトリ１５７のファイルディレクトリツリーに未探索のファイルオブジェクトＦが存在するかどうかをチェックする。未探索のファイルオブジェクトＦが存在する場合は、プロセス１３０３においてＦがディレクトリであるかどうかを判定する。Ｆがファイルである場合には、プロセス１３０４において、Ｆがルールテーブル４１２に設定したコピー条件を満たすかどうかを調査する。コピー条件が成立しない場合には、コピーの必要はないため、プロセス１３０２に戻る。条件が成立する場合には、プロセス１３０５を行なう。プロセス１３０３において、Ｆがディレクトリである場合にはプロセス１３０５を行なう。プロセス１３０５では、レプリケーションホストテーブル１５６に登録した仮想一元化ファイルシステム１０４（ＶＦＳ１０４）にアクセスし、コピーしたファイルオブジェクトＦ（コピーＦ）を読み出す。
【０１１４】
プロセス１３０６では、コピーＦがあるかどうかを調査する。もし、ＶＦＳ１０４にコピーＦが存在しなければ、プロセス１３０７においてＶＦＳ１０４に新しくコピーＦを作成し、プロセス１３０２に戻る。ファイルの場合、コピーＦの作成は、ＣＲＥＡＴＥ要求とＷＲＩＴＥ要求をＶＦＳ１０４に発行することにより実現できる。プロセス１３０６において、コピーＦが存在する場合にはプロセス１３０８を行なう。プロセス１３０８では、レプリケーション元仮想一元化ファイルシステムであるＶＦＳ１０３に存在するファイルオブジェクトＦとレプリケーション先仮想一元化ファイルシステム１０４（ＶＦＳ１０４）に存在するコピーＦの内容が一致するかどうかを調査する。一致する場合には、プロセス１３０２に戻る。一致しない場合には、プロセス１３０９において、ＶＦＳ１０４に存在するコピーＦにＶＦＳ１０３のファイルオブジェクトＦを上書きして、プロセス１３０２に戻る。
【０１１５】
上書きは、ＶＦＳ１０４にＷＲＩＴＥ要求を発行することにより実現できる。プロセス１０３２は、未探索のファイルオブジェクトＦがなくなれば、プロセス１３１０を行なう。プロセス１３１０では、ＶＦＳ１０３とＶＦＳ１０４において、コピー対象のファイルおよびディレクトリが一致するとして、レプリケーション手段１５２の同期フラグを“真”に設定して処理を終了する。同期フラグが“真”になったことで、クライアントからのファイルアクセス要求に対して、レプリケーション処理を開始することができる。レプリケーション元仮想一元化ファイルシステム１０３の全ファイルシステムのコピーを作成する場合、プロセス１３０３、プロセス１３０４を行なわずに、コピーフラグが“真”であるかによりレプリケーション元とレプリケーション先の仮想一元化ファイルシステムの全ファイルおよびディレクトリに対して整合性をとればよい。
【０１１６】
本実施の形態では、一元管理ディレクトリ１５７のファイルディレクトリツリーを探索しレプリケーション元とレプリケーション先の仮想一元化ファイルシステムにおいてファイルオブジェクトＦが一致するかどうかを順番に調査する。ファイルオブジェクト毎に順番に整合をとっていくのではなく、最初にレプリケーション元とレプリケーション先の仮想一元化ファイルシステムにおけるファイルディレクトリツリーのリストファイルを取得し、リストファイルを比較することで、レプリケーション元とレプリケーション先の仮想一元化ファイルシステムにおけるコピー対象のファイルおよびディレクトリの整合性を取る方法でもよい。リストを取得するための最も一般的な方法としては、ｌｓコマンドを利用すればよい。
【０１１７】
あるいは、レプリケーション元仮想一元化ファイルシステム１０３の一元管理ディレクトリ１５７がファイルあるいはディレクトリをレプリケーション先にコピーしたかどうかのコピー完了情報を保持し、最初にレプリケーション先仮想一元化ファイルシステム１０４にディレクトリツリーのコピーを作成し、その後、コピー完了情報に従って、レプリケーション元からレプリケーション先の仮想一元化ファイルシステムにファイルをコピーする方法でもよい。
【０１１８】
次に、本実施の形態におけるレプリケーション処理全体の流れについて説明する。管理者が仮想一元化ファイルシステム１０３と仮想一元化ファイルシステム１０４を用意し、仮想一元化ファイルシステム１０３の部分コピーを仮想一元化ファイルシステム１０４に生成することを想定する。
【０１１９】
図１４に管理者による複数仮想一元化ファイルシステム間のレプリケーション設定手順を示す。レプリケーション設定手順は、仮想一元化ファイルシステムの設定（ステップ１４０２）、レプリケーション先仮想一元化ファイルシステムの設定（ステップ１４０３）、レプリケーション対象ファイル設定（ステップ１４０４）、レプリケーション開始コマンド入力（ステップ１４０５）の順に行なう。
【０１２０】
ステップ１４０２では、管理者は、Ｗｅｂブラウザ経由あるいは、専用のユーザインタフェースプログラムを利用して、レプリケーション元仮想一元化ファイルシステム１０３とレプリケーション先仮想一元化ファイルシステム１０４の管理手段１５０、１６０にアクセスして、仮想一元化ファイルシステムの設定を行なう。設定情報としては、仮想一元化装置のＩＰアドレス、名前情報、仮想一元化装置メンバのＩＰアドレス、名前情報等がある。管理手段１５０および１６０は、ホストテーブル１５５および１６５に各仮想一元化ファイルシステムのメンバを登録する。ホストテーブル１５５には、ネットワークストレージ１２０、１２１、１２２を登録し、それぞれに対して識別子ＰＳ１、ＰＳ２、ＰＳ３を設定する。またレプリケーション先仮想一元化ファイルシステム１０４のホストテーブル１６５には、ネットワークストレージ１２３、１２４、１２５を登録し、それぞれに対して、ＰＳ４、ＰＳ５、ＰＳ６を設定する。管理手段１５０および１６０は、メンバ登録処理において、各ネットワークストレージのファイルシステムに一元管理ディレクトリ１５７および１６７のディレクトリツリーをコピーする。
【０１２１】
ステップ１４０３では、管理者は、Ｗｅｂブラウザ経由あるいは、専用のユーザインタフェースプログラムを利用して、レプリケーション元仮想一元化ファイルシステム１０３の管理手段１５０にアクセスして、レプリケーション先仮想一元化ファイルシステム１０４を設定する。管理手段１５０は、図１に示すレプリケーションホストテーブル１５６にレプリケーション先仮想一元化ファイルシステム１０４を登録する。具体的には、レプリケーション先仮想一元化ファイルシステム１０４の識別子をＶＦＳ１と設定する。さらに、レプリケーション元仮想一元化ファイルシステム１０３の管理手段１５０は、マスタフラグ４１１を“真”にする。
【０１２２】
ステップ１４０４では、ステップ１４０３と同様、管理者はレプリケーション元仮想一元化ファイルシステム１０３にアクセスして、コピー対象のファイルを設定する。例えば、管理者が特定グループに所属するファイルのみをコピー対象とする場合には、ファイル識別子に含まれるグループ識別子をＷｅｂブラウザ経由で、管理手段１５０に送信する。管理手段１５０は、その設定内容を、図４に示すルールテーブル４１２に保持する。例えば、本実施の形態では、ルールテーブル４１２にグループ識別子＝“１”を保持する。
【０１２３】
ステップ１４０５では、ステップ１４０４と同様、管理者はレプリケーション元仮想一元化ファイルシステム１０３にアクセスして、レプリケーション開始コマンドを入力する。入力後、レプリケーション開始コマンドが、レプリケーション元仮想一元化ファイルシステム１０３の管理手段１５０に書きこまれる。書き込みは、ＨＴＭＬプロトコルのＰＵＴコマンドを利用して実現できる。そのほかにも、Ｗｅｂ対応のインタフェースを利用すれば公知の技術で実現できる。管理手段１５０は、管理者からの書き込みを契機として、レプリケーション元仮想一元化ファイルシステム１０３においてレプリケーション処理を開始する。このとき、同期フラグ４１０が“偽”である場合には、整合手段４０３を起動して、整合処理を行ない、仮想一元化ファイルシステム１０３と仮想一元化ファイルシステム１０４におけるコピー対象ファイルの整合をとる。整合を取った後、同期フラグ４１０を“真”にする。同期フラグ４１０が“真”である場合には、仮想一元化ファイルシステム１０３と仮想一元化ファイルシステム１０４の間でファイルのレプリケーション処理を開始することができる。
【０１２４】
次に、ファイルレプリケーション処理の例を示す。本実施の形態では、クライアントとレプリケーション元仮想一元化ファイルシステム１０３間のファイルアクセスではＮＦＳプロトコルを利用するものとする。ＮＦＳプロトコルでは、最初にクライアントがレプリケーション元仮想一元化ファイルシステム１０３に対してマウント要求を発行して、共有ファイルのマウントポイントをクライアントのファイルシステムの一部分にマウントする。レプリケーション元仮想一元化ファイルシステム１０３の要求受付手段１５１は、クライアントからのマウント要求に対して、公知のｍｏｕｎｔｄを利用してマウント要求に応える。ｍｏｕｎｔｄは、レプリケーション元仮想一元化ファイルシステム１０３のマウントポイントのファイルハンドルをクライアントに返送する。以降、クライアントは、ファイルハンドルを利用して、仮想一元化ファイルシステム１０３にアクセスする。
【０１２５】
例えば、グループ１に所属するクライアントが新しくファイルを作成した場合を考える。クライアントが新規ファイル作成要求（ＮＦＳプロトコルではＣＲＥＡＴＥ要求）をレプリケーション元仮想一元化ファイルシステム１０３に発行すると、要求受付手段１５１がその要求を受け付ける。ＣＲＥＡＴＥ要求は、ファイル識別子にグループ識別子＝“１”、ユーザ識別子＝“５”を含む。要求受付手段１５１は、次にレプリケーション手段１５２を呼び出す。レプリケーション手段１５２は、図５に示すレプリケーション処理を開始する。まずプロセス５１０において、判定処理を行なう。図６に示すように、判定処理５１０では、プロセス６０２において、ＣＲＥＡＴＥ要求は更新系要求であるため、判定結果は“ＹＥＳ”となる。プロセス６０３では、レプリケーション元仮想一元化ファイルシステム１０３のマスタフラグ４１１は“真”であるため、判定結果は“ＹＥＳ”となる。さらにプロセス６０４において、レプリケーション元仮想一元化ファイルシステム１０３の同期フラグ４１０は“真”であるため判定結果は“ＹＥＳ”となる。次にプロセス６０９において、ＣＲＥＡＴＥ要求はファイルを対象としているため、プロセス６１０を行ない、図４に示すルールテーブル４１２の条件が成立するかどうかを判定する。先に記載したように、ルールテーブル４１２には、グループ識別子＝“１”が保持されている。プロセス６１０では、ＣＲＥＡＴＥ要求のグループ識別子とルールテーブル４１２に保持したグループ識別子を比較する。比較結果、条件が成立するため，プロセス６０６においてレプリケーション判定は“ＹＥＳ”となり、判定処理５１０を終了する。
【０１２６】
次に図５に示す要求転送処理５１１を行なう。レプリケーション判定結果は“ＹＥＳ”であるため、プロセス５０３を行なう。プロセス５０３では、具体的に、図８に示すＣＲＥＡＴＥ要求処理を実行する。ＣＲＥＡＴＥ要求処理では、まずプロセス８０２において、レプリケーション元仮想一元化ファイルシステム１５７にダミーファイルを生成し、そのファイルのｉノード番号を取得する。プロセス８０３では、ホストテーブル１５５とマッピング手段１５４を利用して、ファイル格納先のネットワークストレージＰＳを決定する。ここで、ファイル格納先のネットワークストレージは、ＰＳ１とする。次にプロセス８０４において、ダミーファイルＦにファイル格納先ネットワークストレージ識別子ＰＳ１を書きこむ。プロセス８０５では、レプリケーションホストテーブル１５６には仮想一元化ファイルシステム１０４が登録されているため、それにＣＲＥＡＴＥ要求を転送することを決定する。プロセス８０６は、ＣＲＥＡＴＥ要求をＰＳ１とＶＦＳ１に対してＣＲＥＡＴＥ要求を発行する。
【０１２７】
ＰＳ１におけるＣＲＥＡＴＥ要求処理では、新規ファイルが作成され、応答がレプリケーション手段１５２の応答収集手段４０２に返送される。同時にＶＦＳ１にもＣＲＥＡＴＥ要求は転送され、応答がレプリケーション手段１５２の応答収集手段４０２に返送される。
【０１２８】
レプリケーション元仮想一元化ファイルシステム１０３からレプリケーション先仮想一元化ファイルシステム１０４（ＶＦＳ１）に転送されたＣＲＥＡＴＥ要求の処理について説明する。レプリケーション先仮想一元化ファイルシステム１０４の要求受付手段１６１は、レプリケーション元仮想一元化ファイルシステム１０３が発行したＣＲＥＡＴＥ要求を受け付ける。要求受付手段１６１はレプリケーション手段１６２を起動する。レプリケーション手段１６２は、判定手段１６３を用いて、図６に示す判定処理を行ない、プロセス６０２ではファイルアクセス要求が更新系要求であるかどうかを判定する。ＣＲＥＡＴＥ要求は更新系要求であるため、判定結果は“ＹＥＳ”となる。次にプロセス６０３において、マスタフラグが“真”であるかを調査する。仮想一元化ファイルシステム１０４は、レプリケーション先であるため、マスタフラグは“偽”となっている。そのため、プロセス６０３の判定結果は“ＮＯ”となり、プロセス６０７におけるレプリケーション判定も“ＮＯ”となる。図５に示す要求転送処理５１１では、レプリケーション判定が“ＮＯ”であるため、プロセス５０４を行なう。プロセス５０４では、ホストテーブル１６５を用いて、ＣＲＥＡＴＥ要求をファイル格納先ネットワークストレージに転送し、プロセス５０６において、応答をレプリケーション元仮想一元化ファイルシステム１０３のレプリケーション手段１５２の応答収集手段４０２に返送する。
【０１２９】
仮想一元化ファイルシステム１０３のレプリケーション手段１５２の応答収集手段４０２は、ＶＦＳ１とＰＳ１からの応答を収集し、一つにして、クライアントに返送してレプリケーション処理を完了する。
【０１３０】
本実施の形態では、ＣＲＥＡＴＥ要求およびＭＫＤＩＲ要求をレプリケーションする場合、コピー対象かどうかの判定に、ＣＲＥＡＴＥ要求が引数としてもつ初期属性（ＮＦＳプロトコルでは、ｓａｔｔｒに相当）とルールテーブル４１２を利用する。
【０１３１】
その他の更新系のファイルアクセス要求の場合、一元管理ディレクトリ１５７のディレクトリおよびダミーファイルの属性情報とルールテーブル４１２のコピー条件を比較することで、レプリケーションするかどうかを判定する。
【０１３２】
＜変形例１＞
上述した代表的実施の形態では、一元管理ディレクトリ１５７とファイルの実体を保持する各ネットワークストレージとの対応付けを行なうために、各ダミーファイルがファイル実体を格納するネットワークストレージの識別子を保持した。ところが、この管理方法では、ファイルアクセスの度にダミーファイルをオープンして、ネットワークストレージの識別子を読み取る必要があるため、ダミーファイルをオープンするオーバヘッドは大きくなる。
【０１３３】
そこで、変形例１では、一元管理ディレクトリ１５７に配置するダミーファイルにはネットワークストレージ識別子を持たない。そのかわりに、ファイルをグループ化し、ファイルグループ毎にファイルを保持するネットワークストレージの識別子を決定する。
【０１３４】
図１５に変形例１におけるネットワークストレージシステムの構成を示す。変形例１では、仮想一元化ファイルシステム１０３および１０４の仮想一元化装置１１０〜１１１がグループテーブル１５００〜１５０１を有する。また、一元管理ディレクトリ１５０２〜１５０３のダミーファイルの構造、マッピング手段１５０４〜１５０５の処理が実施の形態とは異なる。さらに、レプリケーション手段１５２で処理するファイルアクセス要求のうち、ネットワークストレージに保持したファイルの実体をアクセスする場合の要求処理が異なる。具体的には、ＣＲＥＡＴＥ要求、ＲＥＡＤ要求、ＷＲＩＴＥ要求、ＲＥＮＡＭＥ要求、ＲＥＭＯＶＥ要求、ＳＹＭＬＩＮＫ要求、ＬＩＮＫ要求処理におけるファイル格納先ネットワークストレージを決定するプロセスが異なる。また、ＳＥＴＡＴＴＲ要求およびＧＥＴＡＴＴＲ要求のうちアクセス対象のファイルオブジェクトがファイルであるものについては、ファイル格納先ネットワークストレージを決定するプロセスが異なる。
【０１３５】
グループテーブル１５００の構造を図１６に示す。グループテーブル１６０１の構造はグループテーブル１６００と同じである。グループテーブル１６００は、ファイルとファイルが属するファイルグループの対応関係を与える。具体的には、ファイル識別子であるｉノード番号Ｉと、ｉノード番号Ｉで識別されるファイルグループの識別子Ｇを与える。１６０１の行は４つのファイルグループの識別番号０〜３を示す。１６０２の行は、１６０１の各ファイルグループに属するファイルを格納するネットワークストレージ識別子ＰＳを示す。ファイルグループ０に属するファイルの格納先は識別子ＰＳ１を持つネットワークストレージであり、ファイルグループ３に属するファイルの格納先は識別子ＰＳ２を持つネットワークストレージである。ネットワークストレージの識別子がどのネットワークストレージに対応するかはホストテーブル１５５を参照すればよい。
【０１３６】
一元管理ディレクトリ１５０２には各ネットワークストレージに分散されて保持されるファイルのダミーを置くが、変形例１では、ダミーファイルには格納先ネットワークストレージの識別情報を保持しない。一元管理ディレクトリ１５０３の構造も一元管理ディレクトリ１５０２と同じである。
【０１３７】
マッピング手段１５０４は、ファイルとファイルが属するファイルグループの対応を与える。具体的には、一元管理ディレクトリ１５７で管理されるダミーファイルの識別子であるｉノード番号Ｉを検索鍵としハッシュ値をファイルグループ識別子とするハッシュ関数で与える。例えば、ファイルをＮ個のファイルグループに分割する場合のハッシュ関数として、ｉノード番号Ｉにファイルグループ数Ｎのモジュロ演算（Ｎで割ったあまり）を適用して得られた値をファイルグループ識別子Ｇとする。例えば、ファイルグループ数Ｎが４の場合、ファイルグループ識別子は０〜３のいずれかをとる。ファイルグループ数Ｎはネットワークストレージシステムの構成の違いによらず不変である。マッピング手段１５０５の構成はマッピング手段１５０４と同じである。
【０１３８】
次に、変形例１におけるレプリケーション処理の流れについて、図１５を用いて説明する。クライアントがファイル更新要求（ＷＲＩＴＥ要求）をレプリケーション元仮想一元化ファイルシステム１０３に発行すると、要求受付手段１５１がその要求を受け付ける。要求受付手段１５１は、要求を受け付けると、レプリケーション手段１５２を呼び出し、レプリケーション処理を開始する。レプリケーション処理では、判定手段１５３によりレプリケーションをするかどうかを判定する。判定の結果、レプリケーション判定が“ＹＥＳ”である場合には、本発明の実施例と同じように要求転送処理を行なうが、変形例１では、アクセス対象がファイルである場合のファイル格納先のネットワークストレージを、一元管理ディレクトリ１５０２とグループテーブル１５００を利用して特定する点が異なる。
例えば、ＷＲＩＴＥ要求の場合、図９に示すプロセス９０３の処理が実施例とは異なる。まず、ＷＲＩＴＥ要求がアクセス対象とするダミーファイルＦのｉノード番号を読み出し、マッピング手段１５０４を用いて、ファイルグループを特定する。次にグループテーブル１５００を参照し、ネットワークストレージＰＳを特定する。
【０１３９】
＜変形例２＞
上述の代表的実施の形態では、複数の仮想一元化ファイルシステム間でファイルシステムの部分コピーをリアルタイムに作成するレプリケーション方法について説明した。実施の形態の変形例２では、複数の仮想一元化ファイルシステムではなく、複数ネットワークストレージ間でファイルシステムの部分コピーをリアルタイムに作成する点が実施例とは異なる。
【０１４０】
図１７は、実施の形態の変形例２におけるネットワークストレージシステム全体の構成例を示す。ネットワークストレージシステムは、クライアント１７００〜１７０１、ネットワーク１７０２、レプリケーション装置１７１０、内部ネットワーク１７１５、ネットワークストレージ１７２０〜１７２２で構成する。
【０１４１】
レプリケーション装置１７１０以外の構成は本発明の実施の形態と同じであるため、説明を省略する。また、各ネットワークストレージの容量は同じである必要はない。レプリケーション先ネットワークストレージは、コピー対象のディレクトリおよびファイルを保持するための容量を持てばよい。さらに、変形例２では、レプリケーション元もレプリケーション先もネットワークストレージであるが、レプリケーション元はネットワークストレージで、レプリケーション先は仮想一元化ファイルシステムでもよい。
【０１４２】
レプリケーション装置１７１０は、管理手段１７５０、要求受付手段１７５１、レプリケーション手段１７５２、判定手段１７５３、ホストテーブル１７５４、レプリケーションホストテーブル１７５５、管理テーブル１７５６、容量管理テーブル１７５７で構成する。実施の形態の変形例２では、レプリケーション装置１７１０に特徴がある。変形例２では、レプリケーション装置１７１０は、リモート制御手段およびストレージ装置を持たないが、レプリケーション装置１７１０がリモート制御手段やストレージ装置をもってもよい。また、レプリケーション装置は複数存在してもよい。
【０１４３】
管理手段１７５０および要求受付手段１７５１の構成および機能は、本発明の実施の形態で説明した管理手段１５０および要求受付手段１５１と同じであるため、説明を省略する。また、変形例２では、本発明の実施の形態で説明したマッピング手段１５４は必要ない。
【０１４４】
ホストテーブル１７５４は、レプリケーション元ネットワークストレージのＩＰアドレスや名前情報を管理する。レプリケーションホストテーブル１７５４は、レプリケーション先ネットワークストレージを管理する。例えば、変形例２では、ホストテーブル１７５４には、ネットワークストレージ１７２０を登録する。また、レプリケーションホストテーブル１７５４には、ネットワークストレージ１７２１〜１７２２を登録する。
【０１４５】
管理テーブル１７５６は、ホストテーブル１７５４に登録したネットワークストレージのファイルシステムのファイルディレクトリ構造とファイルおよびディレクトリの属性情報を管理する。管理方法は、発明の実施の形態で説明したように、ファイルシステムを利用してもよいし、テーブルを新たに設けてもよい。
【０１４６】
容量管理テーブル１７５７は、ホストテーブル１７５４およびレプリケーションホストテーブル１７５５に登録したネットワークストレージのディスク容量とディスク使用量を管理する。それぞれのディスク容量のうち、最も少ない容量をレプリケーションに使用可能なディスク容量として管理し、それぞれのディスク使用量のうち、最も多いものをレプリケーションで使用されたディスク容量として管理する。
【０１４７】
レプリケーション手段１７５２は、本発明の実施の形態で説明した図１に示すレプリケーション手段１５２の構成と同じである。ただし、変形例２では、ホストテーブル１７５４の登録内容を調査すれば、どのネットワークストレージがマスタであるファイルおよびディレクトリを保持するかを判別可能であるため、マスタフラグ４１１は必要ない。但し、レプリケーション装置が各ネットワークストレージに含まれる構成の場合、コピー元となるネットワークストレージのレプリケーション装置において、マスタフラグ４１１を“真”に設定する。
【０１４８】
判定手段１７５３は、ファイルアクセス要求の種類、同期フラグ４１０、ルールテーブル４１２に設定した条件を満たすかによってレプリケーション処理をするかどうかを判定する。本発明の実施の形態では、マスタフラグ４１１も利用して条件判定を行なっていたが、変形例２では、マスタフラグ４１１を利用しない。
【０１４９】
判定手段１７５３に同期フラグ４１０およびルールテーブル４１２を備えること、及びこれら同期フラグ、ルールテーブルを用いた判定の手法は上述の代表的実施の形態と同じである。
【０１５０】
変形例２におけるレプリケーション処理では、まず判定手段１７５３を用いて判定処理を行なう。
判定処理では、まずファイルアクセス要求が更新系要求かどうかを判定し、次に、同期フラグが“真”かどうかを判定し、ルールテーブルによりアクセス要求の対象がコピー対象であるかどうかを判定する。いずもが“ＹＥＳ”の場合にレプリケーション判定が “ＹＥＳ”となる。
【０１５１】
レプリケーション判定が“ＹＥＳ”である場合には、要求転送処理において、ファイルアクセス要求をホストテーブル１７５４に登録したネットワークストレージと、レプリケーションホストテーブル１７５５に登録したネットワークストレージに転送する。レプリケーション判定が“ＮＯ”である場合には、ホストテーブル１７５４に登録したネットワークストレージにのみファイルアクセス要求を転送する。
【０１５２】
＜変形例３＞
上述の代表的実施の形態では、仮想一元化ファイルシステムに保持したデータの部分コピーをリアルタイムに作成するレプリケーション方法について説明した。変形例３では、ファイルのレプリケーションを行なっている複数の仮想一元化ファイルシステムにおいて、クライアントが管理手段１５０を介してレプリケーション元仮想一元化ファイルシステムに設定する設定情報のコピーも作成する。コピー対象の設定情報としては、アカウントやセキュリティ情報や時刻情報がある。あるいは、ＩＰアドレスや名前情報を含むこともある。設定情報は、更新される度に特定ファイルにパッキングする。特定ファイルはルールテーブル４１２においてコピー対象として設定することで、設定が変更された場合には必ずコピーされるようにする。仮に、レプリケーション元仮想一元化ファイルシステム１０３に障害が発生し使用できなくなった場合には、管理者がレプリケーション先仮想一元化ファイルシステム１０４をマスタとして設定するのに応答して、管理手段１６０は、特定ファイルをアンパッキングし、設定情報を設定する。
【０１５３】
変形例３では、設定情報をレプリケーション先仮想一元化ファイルシステム１０４に特定ファイルとしてコピーする方法を記載したが、クライアント計算機に設定情報のバックアップを取得しておく方法でもよい。あるいはクライアントが明示的に設定情報をレプリケーション元とレプリケーション先の仮想一元化ファイルシステムに入力してもよい。
【０１５４】
＜変形例４＞
上述の代表的実施の形態では、３台のネットワークストレージを仮想化した仮想一元化ファイルシステムに保持したデータの部分コピーをリアルタイムに作成するレプリケーション方法について説明した。そのため、ネットワークストレージが１台の場合にも、一元管理ディレクトリ１５７にアクセスして、ダミーファイルからファイルの実体を保持するネットワークストレージの識別子を特定した後、ネットワークストレージにアクセスする必要があった。つまり、ファイルの実体を保持するネットワークストレージが一意に決まるにもかかわらず、常に一元管理ディレクトリ１５７へのディスクアクセスと、ネットワークストレージへのディスクアクセスが発生していた。変形例４では、このようなネットワークストレージが１台の場合において、ファイルアクセスおよびファイルのレプリケーションを高速に行うため、ネットワークストレージの数が１台の場合には一元管理ディレクトリ１５７のダミーファイルにファイルの実体を保持する。レプリケーション手段１５２の要求処理手段４０１は、一元管理ディレクトリ１５７にアクセスにおいて、ファイルの実体を保持するネットワークストレージを特定するのではなく、ファイルの実体であるデータを書き込む。
【産業上の利用可能性】
【０１５５】
本発明はストレージシステムにて部分バックアップをリアルタイムバックアップにて可能にするものなので、重要なファイルのみを正確にバックアップできる、障害時復旧のコストを削減できる等の利点があり、大容量分散ストレージシステムの分野で利用可能性が高い。
【図面の簡単な説明】
【０１５６】
【図１】本発明の実施の形態であるネットワークストレージシステムの全体構成を示すブロック図である。
【図２】上記実施の形態におけるホストテーブル１５５の構成を示す図である。
【図３】上記実施の形態におけるレプリケーションホストテーブル１５６の構成を示す図である。
【図４】上記実施の形態におけるレプリケーション手段１５２の構成を示す機能ブロック図である。
【図５】上記実施の形態におけるレプリケーション処理を示すフロー図である。
【図６】上記実施の形態における判定処理５１０を示すフロー図である。
【図７】上記実施の形態における容量管理テーブル１５８の構成を示す図である。
【図８】上記実施の形態におけるＣＲＥＡＴＥ要求処理を示すフロー図である。
【図９】上記実施の形態におけるＷＲＩＴＥ要求処理を示すフロー図である。
【図１０】上記実施の形態におけるＭＫＤＩＲ要求処理を示すフロー図である。
【図１１】上記実施の形態における管理手段１５０の構成を示す機能ブロック図である。
【図１２】上記実施の形態におけるＲＥＡＤ要求処理を示すフロー図である。
【図１３】上記実施の形態における整合処理を示す図である。
【図１４】上記実施の形態におけるレプリケーション設定手順を示すフロー図である。
【図１５】実施の形態の変形例１であるネットワークストレージシステムの全体構成を示すブロック図である。
【図１６】上記変形例１のグループテーブル１５００の構成を示す図である。
【図１７】実施の形態の変形例２であるネットワークストレージシステムの全体構成を示すブロック図である。
【符号の説明】
【０１５７】
１００〜１０１…クライアント、１０２…ネットワーク、１０３…レプリケーション元仮想一元化ファイルシステム、１０４…レプリケーション先仮想一元化ファイルシステム、１１０〜１１１…仮想一元化装置、１１５〜１１６…内部ネットワーク、１２０〜１２５…ネットワークストレージ、１３０〜１３５…リモート制御手段、１４０〜１４６…ストレージ装置、１５０…管理手段、１５１…要求受付手段、１５２…レプリケーション手段、１５３…判定手段、１５４…マッピング手段、１５５…ホストテーブル、１５６…レプリケーションホストテーブル、１５７…一元管理ディレクトリ、１５８…容量管理テーブル、１６０…管理手段、１６１…要求受付手段、１６２…レプリケーション手段、１６３…判定手段、１６４…マッピング手段、１６５…ホストテーブル、１６６…レプリケーションホストテーブル、１６７…一元管理ディレクトリ、１６８…容量管理テーブル、４０１…設定手段、４０２…要求処理手段、４０３…応答収集手段、４０４…整合手段、４１０…同期フラグ、４１１…マスタフラグ、４１２…ルールテーブル、４１３…レプリケーションキャッシュ、１１０１…容量管理手段、１１０２…システムチェック手段、１１０３…ヘルスチェック手段、１５００〜１５０１…グループテーブル、１７５６…管理テーブル、１７５７…容量管理テーブル。
【図１】
2004252957.tif 000003
【図２】
2004252957.tif 000004
【図３】
2004252957.tif 000005
【図４】
2004252957.tif 000006
【図５】
2004252957.tif 000007
【図６】
2004252957.tif 000008
【図７】
2004252957.tif 000009
【図８】
2004252957.tif 000010
【図９】
2004252957.tif 000011
【図１０】
2004252957.tif 000012
【図１１】
2004252957.tif 000013
【図１２】
2004252957.tif 000014
【図１３】
2004252957.tif 000015
【図１４】
2004252957.tif 000016
【図１５】
2004252957.tif 000017
【図１６】
2004252957.tif 000018
【図１７】
2004252957.tif 000019