(57)【要約】【課題】ノードの優先度に応じてフェールオーバ処理の順位を決定し、優先度の高いノードの復旧が遅延するのを防止する。【解決手段】ローカルサイト１のノードに障害が発生したときにはローカルサイト１のノードまたはリモートサイト２のノードでファイルサーバを引き継ぐ方法であって、ローカルサイト１の各ノードについて、フェールオーバの優先度を設定し、予め設定した優先度とフェールオーバ先の範囲の関係に基づいて、ローカルサイト１のノード毎のフェールオーバ先をリモートサイト２またはローカルサイト１のノードのいずれかに設定し、決定したフェールオーバ先のノードへデータのバックアップを行い、フェールオーバ先のノードとの間で障害を検知し、フェールオーバ先のノードが障害を検知したときには、フェールオーバ先のノードが業務を引き継ぐ。【選択図】図１
2007279890.tif 000002
【特許請求の範囲】
【請求項１】
業務を提供する複数のノードと、前記ノードに記憶領域を割り当てた第１のストレージ装置と、を含む第１の系と、
業務を提供可能な複数のノードと、前記ノードに記憶領域を割り当てた第２のストレージ装置とを含む第２の系を備えて、
前記第１の系のノードに障害が発生したときには、前記第１の系のノードまたは前記第２の系のノードで前記業務を引き継ぐフェールオーバ方法であって、
前記第１の系の各ノードについて、フェールオーバの優先度を設定する処理と、
予め設定した優先度とフェールオーバ先の範囲の関係に基づいて、前記第１の系のノード毎のフェールオーバ先を前記第２の系のノードまたは第１の系のノードのいずれかに設定する処理と、
前記決定したフェールオーバ先のノードへデータのバックアップを行う処理と、
前記フェールオーバ先のノードとの間で障害を検知する処理と、
前記フェールオーバ先のノードが障害を検知したときには、前記フェールオーバ先の前記ノードが業務を引き継ぐ処理と、
を含むことを特徴とするフェールオーバ方法。
【請求項２】
優先度を設定する処理は、
前記ノードの利用状況に基づいて、第１の優先度または前記第１の優先度よりも優先順位の低い第２の優先度を設定し、
前記第１の系のノード毎のフェールオーバ先を前記第２の系のノードまたは第１の系のノードのいずれかに設定する処理は、
前記ノードに第１の優先度を設定したときには、第２の系をフェールオーバ先の範囲として設定し、前記ノードに第２の優先度を設定したときには、第１の系をフェールオーバ先の範囲として設定することを特徴とする請求項１に記載のフェールオーバ方法。
【請求項３】
前記第２の系が、前記第１の系で発生した障害の数を検知する処理と、
前記障害の数が予め設定した上限値を超えたときには、前記第１の優先度が設定された第１の系のノードで障害が発生していなくとも、当該ノードの業務を予め引き継ぐ処理と、
を含むことを特徴とする請求項２に記載のフェールオーバ方法。
【請求項４】
前記業務を予め引き継ぐ処理は、
前記第１の優先度が設定された第１の系のノードを前記第２の系で引き継ぐ処理と、
予め設定した猶予時間を経過した後に、前記第２の優先度が設定された第１の系のノードを障害の有無にかかわらず前記第２の系で引き継ぐ処理と、
を含むことを特徴とする請求項３に記載のフェールオーバ方法。
【請求項５】
前記第２の系が、前記第１の系で発生した障害の数を検知する処理は、
前記ノードが提供する業務の識別子と、前記ノードの物理的な識別子とを時系列的に比較する処理と、
前記業務の識別子に対応する現在のノードの物理的な識別子と、過去のノードの物理的な識別子が一致しない組み合わせの数に基づいて前記障害の数を検出する処理と、
を含むことを特徴とする請求項３に記載のフェールオーバ方法。
【請求項６】
前記第１のストレージ装置は、
前記第１の系の複数のノードにファイルシステムを提供し、前記ノード毎に記憶領域を割り当てるＮＡＳ装置であって、
前記ノードは、一つの計算機リソースを論理的に分割した論理区画上に設定されたことを特徴とする特徴とする請求項１に記載のフェールオーバ方法。
【請求項７】
前記第１の系のノード毎のフェールオーバ先を前記第２の系のノードまたは第１の系のノードのいずれかに設定する処理は、
前記ノードに設定された優先度に対応する範囲でフェールオーバ先を検索する処理と、
前記範囲で当該ノードを引き継ぐノードがない場合には、前記優先度を変更してフェールオーバ先の範囲を拡大する処理と、
を含むことを特徴とする請求項２に記載のフェールオーバ方法。
【請求項８】
前記第１の系と第２の系はネットワークを介して接続され、前記第１のストレージ装置または前記第２のストレージ装置の少なくとも一方には、前記ネットワークを介してアクセス可能な共有記憶領域を有し、
前記共有記憶領域には、前記引き継ぎを行う第１の系の各ノードの情報を格納し、
業務を引き継ぐ処理は、
前記共有記憶領域から業務を引き継ぐ第１の系の各ノードの情報を取得し、当該ノードの情報に基づいて前記業務を引き継ぐことを特徴とする請求項１に記載のフェールオーバ方法。
【請求項９】
前記第１の系のノードに障害が発生したときには、前記第１の系内のノードを引き継ぐ第３の系をさらに有し、
前記第３の系は、前記第１の系のノードに障害が発生したときには、前記第２の系に代わって前記業務を引き継ぐことを特徴とする請求項１に記載のフェールオーバ方法。
【請求項１０】
業務を提供する複数のノードと、前記ノードに対応する記憶領域を割り当てた第１のストレージ装置と、を含む第１の系と、
業務を提供可能な複数のノードと、前記ノードに対応する記憶領域を割り当てた第２のストレージ装置と、を含む第２の系と、
前記第１の系と第２の系を接続するネットワークと、前記第１の系のノードに障害が発生したときには前記第２の系のノードで前記業務を引き継ぐバックアップシステムであって、
前記第１の系のノードは、
前記第１の系の各ノードについて、フェールオーバの優先度を設定する優先度設定部と、
前記設定した優先度に基づいて、第１の系の各ノードのフェールオーバ先を前記第２の系のノードまたは第１の系のノードのいずれかに設定するクラスタ設定部と、
前記設定したフェールオーバ先のノードとの間で、障害の発生を監視する第１の障害検知部と、
前記設定したフェールオーバ先のノードへ当該ノードのデータをバックアップするバックアップ処理部と、
前記第１の障害検知部で障害を検知したときには、前記監視対象のノードの業務を引き継ぐ第１のフェールオーバ処理部と、を有し、
前記第２の系のノードは、
前記フェールオーバ対象のノードとの間で、障害の発生を監視する第２の障害検知部と、
前記障害を検知したときには、前記監視対象のノードの業務を前記設定されたノードに引き継ぐ第２のフェールオーバ処理部と、
を有することを特徴とするバックアップシステム。
【請求項１１】
前記優先度設定部は、
前記第１の系のノードの利用状況に基づいて、第１の優先度または前記第１の優先度よりも優先順位の低い第２の優先度を設定し、
前記クラスタ設定部は、
前記ノードに第１の優先度を設定したときには、第２の系をフェールオーバ先の範囲として設定し、前記ノードに第２の優先度を設定したときには、第１の系をフェールオーバ先の範囲として設定することを特徴とする請求項１０に記載のバックアップシステム。
【請求項１２】
前記第２の系のノードは、
前記第１の系で発生した障害の数を検知するバックアップ元監視部を含み、
前記第２のフェールオーバ処理部は、
前記障害の数が予め設定した上限値を超えたときには、前記第１の優先度が設定された第１の系のノードで障害が発生していなくとも、当該ノードの業務を予め引き継ぐことを特徴とする請求項１１に記載のバックアップシステム。
【請求項１３】
前記第２のフェールオーバ処理部は、
前記第１の優先度が設定された第１の系のノードを前記第２の系で引き継ぎを開始した後に、予め設定した猶予時間を経過した後に、前記第２の優先度が設定された第１の系のノードを障害の有無にかかわらず前記第２の系で引き継ぐことを特徴とする請求項１２に記載のバックアップシステム。
【請求項１４】
バックアップ元監視部は、
前記第１の系のノードが提供する業務の識別子と、前記ノードの物理的な識別子とを時系列的に比較し、前記業務の識別子に対応する現在のノードの物理的な識別子と、過去のノードの物理的な識別子が一致しない組み合わせの数に基づいて前記障害の数を検出することを特徴とする請求項１２に記載のバックアップシステム。
【請求項１５】
前記第１のストレージ装置は、
前記第１の系の複数のノードにファイルシステムを提供し、前記ノード毎に前記記憶領域を割り当てるＮＡＳ装置であって、
前記ノードは、一つの計算機リソースを論理的に分割した論理区画上に設定されたことを特徴とする特徴とする請求項１０に記載のバックアップシステム。
【請求項１６】
前記クラスタ設定部は
前記第１の系のノードに設定された優先度に対応する範囲でフェールオーバ先を検索し、前記範囲で当該ノードを引き継ぐノードがない場合には、前記優先度を変更してフェールオーバ先の範囲を拡大することを特徴とする請求項１１に記載のバックアップシステム。
【請求項１７】
前記第１のストレージ装置または前記第２のストレージ装置の少なくとも一方には、前記ネットワークを介してアクセス可能な共有記憶領域を有し、
前記クラスタ設定部は、
前記共有記憶領域に前記引き継ぎを行う第１の系の各ノードの情報を格納し、
前記第２のフェールオーバ処理部は、
前記共有記憶領域から業務を引き継ぐ第１の系の各ノードの情報を取得し、当該ノードの情報に基づいて前記業務を引き継ぐことを特徴とする請求項１０に記載のバックアップシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に格納されたファイルをバックアップする技術の改良に関する。
【背景技術】
【０００２】
複数のコンピュータを用いてバックアップを行う場合、一方のコンピュータに障害が発生したときには、他方のコンピュータで業務を引き継ぐフェールオーバ処理が知られている。
【０００３】
例えば、複数ノードをクラスタで構成し、ノード間で互いに障害の発生を監視し、障害発生時に正常なノードが障害ノードの処理を引き継ぐものが知られている（例えば、特許文献１）。
【特許文献１】特開２００５−３０１５６０号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記フェールオーバ処理での引継ぎ先としては、ローカルサイト内の近接したノードだけでなく、遠隔地にあるリモートサイト内のノードもフェールオーバ処理を実現できる。また、ノード内に複数のファイルサーバが実行される場合（ノード内に複数のブレードサーバが内蔵されている計算機やノード内で仮想的に複数のファイルサーバが実行されている計算機）では、ノード内でフェールオーバ処理を実行することもできる。
【０００５】
フェールオーバ先としては、同一のノード内やローカルサイト内の他ノードに加えて、リモートサイト内のノードといったように複数の選択肢を持つことを考慮すると、以下のような問題が生じる。
【０００６】
ローカルサイトにある複数のノードで障害が発生した場合に、どのノードもリモートサイトへフェールオーバさせる場合では、全てのノードについてフェールオーバ処理を実施するため、本来優先的に回復が必要なノードにも回復遅延（転送処理による遅れ）等の影響を与える可能性がある。
【０００７】
また、同一のノード内やローカルサイト内の他ノードでフェールオーバを行う場合は、災害発生時などで時間とともに障害（災害）の規模が拡大し、フェールオーバ後にさらにフェールオーバが発生することがある。このような場合、引き継ぐ処理が増えたり、引継ぎ先のノードの負荷が増えたり、複数回のフェールオーバによって業務の中断が頻発する可能性がある。このため、各ノードが提供する業務について、復旧（引き継ぎ）の際の優先度が異なる場合では、障害復旧と業務遅延の挽回を急がなくてはならない優先度の高いノードにも悪影響を与えてしまう、という問題がある。
【０００８】
したがって、提供する業務の優先度が高いノードと、優先度が低いノードが混在する場合では、上記従来の技術では優先度にかかわらずフェールオーバ処理が実施されるので、上述のような優先度の高いノードの引き継ぎが遅延する場合が生じる。
【０００９】
また、優先度の高い業務を提供するノードについては、可能であれば自ノードに障害が発生するよりも前にフェールオーバ処理を実施するのが望ましいが、前記従来例では自ノードに障害が発生するまでフェールオーバ処理を実施できないという問題があった。
【００１０】
そこで本発明は、上記問題点に鑑みてなされたもので、ノードの優先度に応じてフェールオーバ処理の順位を決定し、優先度の高いノードの復旧が遅延するのを防止することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、業務を提供する複数のノードと、前記ノードに記憶領域を割り当てた第１のストレージ装置と、を含む第１の系と、業務を提供可能な複数のノードと、前記ノードに記憶領域を割り当てた第２のストレージ装置とを含む第２の系を備えて、前記第１の系のノードに障害が発生したときには、前記第１の系のノードまたは前記第２の系のノードで前記業務を引き継ぐフェールオーバ方法であって、前記第１の系の各ノードについて、フェールオーバの優先度を設定し、予め設定した優先度とフェールオーバ先の範囲の関係に基づいて、前記第１の系のノード毎のフェールオーバ先を前記第２の系のノードまたは第１の系のノードのいずれかに設定し、前記決定したフェールオーバ先のノードへデータのバックアップを行い、前記フェールオーバ先のノードとの間で障害を検知し、前記フェールオーバ先のノードが障害を検知したときには、前記フェールオーバ先の前記ノードが業務を引き継ぐ。
【００１２】
また、前記第２の系が、前記第１の系で発生した障害の数を検知し、前記障害の数が予め設定した上限値を超えたときには、前記第１の優先度が設定された第１の系のノードで障害が発生していなくとも、当該ノードの業務を予め引き継ぐ。
【発明の効果】
【００１３】
したがって、本発明は、各ノードが提供する業務の優先順位に従ってフェールオーバ先を変えることによって、優先順位の高いノードと優先順位の低いノードが、同時に同じ引き継ぎ先へフェールオーバ処理を行うのを回避することで、優先順位の高いノードの回復遅延等の悪影響を低減することができる。
【００１４】
また、優先順位の高い業務を提供するノードは、自身の障害発生前(周辺のノードで障害が発生しとき)に先行してリモートサイトへフェールオーバさせ、優先順位が高くないノードは障害発生後にフェールオーバさせることで、優先順位に応じたフェールオーバ処理の時間差を作ることで、優先順位の高いノードの回復遅延等の悪影響を低減することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１６】
図１は、本発明をストレージ装置としてのＮＡＳ(Network Attached Storage)装置に適用した場合の計算機システムの全体的な構成を示すブロック図である。
【００１７】
図１において、業務を提供するローカルサイト（またはプライマリサイト）１は、複数のＮＡＳ１００、ＮＡＳ２００から構成され、ＬＡＮ１４０を介してＷＡＮ（ネットワーク）５０に接続される。ＷＡＮ５０には、ローカルサイト１が提供するファイルサーバ（業務）を利用するユーザーサイト３と、ローカルサイト１のデータ等をバックアップし、ローカルサイト１に障害が生じたときには業務（ファイル共有機能またはファイルサーバ）を引き継ぐリモートサイト（またはセカンダリサイト）２が接続されているまた、ローカルサイト１内では、ＮＡＳ１００とＮＡＳ２００が相互にバックアップと、フェールオーバ処理を行う。
【００１８】
ローカルサイト１内のＮＡＳ１００は、クラスタ構成された複数のノード１−０〜１−ｎを有し、これらのノード１−０〜１−ｎが、それぞれファイル共有機能（ファイルサーバ）を提供する。なお、ノード１−０〜１−ｎは、後述するようにサーバ計算機を構成するＮＡＳヘッドして構成される。そして、ＮＡＳ１００は、後述するストレージ制御部により複数のディスクドライブをＲＡＩＤ構成により複数の論理ユニット（または論理ボリューム）として提供するＲＡＩＤディスクサブシステム１３０を備える。このＲＡＩＤディスクサブシステム１３０には、少なくとも一つの共有ＬＵ１３０Ｓが設定される。この共有ＬＵ１３０Ｓは、ローカルサイト１内の他のノードやリモートサイト２内のノードからも共有することが可能となっている。
【００１９】
また、ストレージ制御部のリモートコピー部（機能）１２０により、ローカルサイト１内やリモートサイト２の他のＮＡＳへ論理ユニット１３０の内容を複製してバックアップを実現する。また、ローカルサイト１内の他のＮＡＳ２００からのバックアップを受け付けて、ＮＡＳ２００の障害発生時にはＮＡＳ２００のファイル共有機能を引き継ぐ。
【００２０】
ＮＡＳ２００は、ユーザーサイト３へファイル共有機能を提供し、また、ローカルサイト１内でＮＡＳ１００のバックアップと障害時のフェールオーバ処理を行う。ＮＡＳ２００の構成はＮＡＳ１００と同様であり、クラスタ構成された複数のノード２−０〜２−ｎでファイル共有機能を提供可能となっている。また、ＮＡＳ２００は、後述するストレージ制御部により複数のディスクドライブをＲＡＩＤ構成により複数の論理ユニット（または論理ボリューム）として提供するＲＡＩＤディスクサブシステム２３０を備え、ＮＡＳ１００と同様に、少なくとも一つの共有ＬＵ２３０Ｓが設定される。また、ストレージ制御部のリモートコピー部（機能）２２０により、リモートサイト２の他のＮＡＳへ論理ユニット２３０の内容を複製してバックアップを実現する。
【００２１】
上記ＮＡＳ１００、２００がＬＡＮ１４０で接続されてローカルサイト１を構成する。
【００２２】
リモートサイト２はＮＡＳ３００を備え、ローカルサイト１とは地理的に離れた位置に構築される。ＮＡＳ３００は、ローカルサイト１のバックアップと業務の引き継ぎを行う。ＮＡＳ３００の構成はＮＡＳ１００と同様であり、クラスタ構成された複数のノード３−０〜３−ｎでファイル共有機能を提供可能となっている。また、ＮＡＳ３００は、後述するストレージ制御部により複数のディスクドライブをＲＡＩＤ構成により複数の論理ユニット（または論理ボリューム）として提供するＲＡＩＤディスクサブシステム３３０を備え、ＮＡＳ１００と同様に、少なくとも一つの共有ＬＵ３３０Ｓが設定される。また、ストレージ制御部のリモートコピー部（機能）３２０により、ローカルサイト１のＮＡＳ１００またはＮＡＳ２００のデータを受信してＲＡＩＤディスクサブシステム３３０へ格納する。なお、リモートサイト２は、ＬＡＮ２４０がＷＡＮ５０に接続され、ＮＡＳ３００は、このＬＡＮ２４０に接続される。
【００２３】
ローカルサイト１とリモートサイト２では、ＲＡＩＤディスクサブシステム間でリモートコピーによる論理ボリュームの複製が可能であり、ローカルサイト１とリモートサイト２の間は、上述のリモートコピー機能によってローカルサイト１側からリモートサイト２側へファイルシステムの内容が複製される。なお、リモートコピーのタイミングは同期または非同期を任意に設定することができる。
【００２４】
また、ローカルサイト１内のＮＡＳ１００とＮＡＳ２００の間でも、リモートコピー機能によってＮＡＳ１００とＮＡＳ２００の間でノードが有するデータの複製が相互に実行される。
【００２５】
次に、ユーザーサイト３は、ＷＡＮ５０に接続されたＬＡＮ３４０と、ＬＡＮ３４０に接続された複数のクライアント計算機３３と、ローカルサイト１やリモートサイト２を管理する管理用クライアント計算機３２を備える。
【００２６】
クライアント計算機３３は、ローカルサイト１のＮＡＳ１００が提供するファイル共有機能を利用し、ファイルの参照や更新を行う。管理用クライアント計算機３２は、リモートサイト２のＮＡＳ１００、２００や、リモートサイト２のＮＡＳ３００の設定などを行う。
【００２７】
図２は、リモートサイト１のＮＡＳ１００のハードウェアの一例を示すブロック図である。なお、ＮＡＳ２００、３００もＮＡＳ１００と同一の構成であるので、以下に説明するＮＡＳ１００の構成及び機能をＮＡＳ２００、３００も備えるものとする。
【００２８】
ＮＡＳ１００は、複数のノード１−０〜１−ｎとストレージ制御部１１０とＲＡＩＤディスクサブシステム１３０を含んで構成されている。
【００２９】
ＮＡＳ１００の各ノード１−０〜１−ｎには、演算処理を実行するＣＰＵ１１と、プログラムやデータを一時的に格納するメモリ１２と、ＣＰＵ１１とＩ／Ｏのアクセスを制御するデータ転送コントローラ１３と、ＬＡＮ１４０に接続されたネットワークインターフェース１４及びストレージ用のインターフェース１５が設けられている。なお、メモリ１２にデータキャッシュ（図示省略）を設けても良く、あるいは、データキャッシュをデータ転送コントローラ１３側に設けても良い。
【００３０】
メモリ１２には制御プログラム（後述）がロードされており、ＣＰＵ１１が制御プログラムを呼び出して実行することによって後述する各種処理が行われる。
【００３１】
データ転送コントローラ１３は、ＣＰＵ１１、ネットワークインターフェース１４、ストレージインターフェース１５の間でデータを転送する。
【００３２】
そして、ＮＡＳ１００の複数のノード１−０〜１−ｎはクラスタ構成されて、それぞれがファイル共有機能を提供するファイルサーバとして機能する。各ノード１−０〜１−ｎには、それぞれＲＡＩＤディスクサブシステム１３０の論理ユニット（以下、ＬＵ）１３１〜１３６が割り当てられる。ただし、上述のように共有ＬＵ１３０Ｓは、同一筐体内のノード１−０〜１−ｎと他のＮＡＳで共有する。
【００３３】
そして、リモートコピー部１２０は、予め設定されたＮＡＳ２００またはＮＡＳ３００にＬＵ１３１〜１３６のデータ（ファイル）を複写する。
【００３４】
また、各ノード１−０〜１−ｎでは、後述するフェールオーバ部を実行しており、ノード１−０〜１−ｎに障害が生じたときには、後述のようにファイル共有機能の引き継ぎを実行する。
【００３５】
なお、ＮＡＳ２００、３００のＲＡＩＤディスクサブシステム２３０、３３０も上記ＮＡＳ１００と同様に複数のＬＵ１３１〜１３６を備えるものとする。
【００３６】
図３はローカルサイト１のＮＡＳ１００及びＮＡＳ２００のソフトウェア構成を示すブロック図である。なお、ローカルサイト１のＮＡＳ１００とＮＡＳ２００は同一の構成であるので、以下ではＮＡＳ１００の構成のみを説明し、ＮＡＳ２００も同様の構成のものとする。
【００３７】
ＮＡＳ１００の各ノード１−０〜１−ｎ上では、ＯＳ（ＮＡＳ ＯＳ）１５０が実行され、このＯＳ１５０上ではクライアント計算機３３へ所定のファイルシステムを提供するファイル共有機能（ファイルサーバ）１６０と、自ノードまたは他のノードに障害が発生したときにフェールオーバ処理を実行するフェールオーバ機能１７０が実行される。なお、各ノードで実行される機能または処理は、プログラムとして実装されるものである。
【００３８】
ファイル共有機能（以下、ファイルサーバとする）１６０は、ネットワーク（ＬＡＮ１４０、ＷＡＮ５０）に接続されるクライアント計算機３３に、ファイル共有プロトコル（NFS、CIFS）を提供し、クライアント計算機３３間でファイル共有機能を提供する。ファイルサーバ１６０は、クライアント計算機３３からファイル単位のリクエスト（参照、更新）を受付け、ファイルシステムに対してファイル単位のＩ／Ｏ（read/write）を実行する。
【００３９】
フェールオーバ機能１７０は、ノード間または、ノード内で２つのファイルサーバをクラスタ構成として、互いに相手を監視し、監視相手のノードが障害等でダウンした場合に処理を引き継ぐ機能である。
【００４０】
フェールオーバ機能１７０は、ファイルサーバ１６０のＮＡＳ１００内での優先順位を決定する優先順位付け処理部１７１と、同一ＮＡＳ１００内の他のノードや同一ローカルサイト１内の他のノードのファイルサーバの稼働状態を監視するファイルサーバ監視処理１７２と、自ノードあるいは周囲のノードで障害が発生したときに現在提供しているファイルサーバ１６０を他のノードに引き継ぐ引き継ぎ処理１７３と、他のノードのファイルサーバ監視処理１７２に対して自ノードの稼働状態を応答するファイルサーバ監視応答処理１７４と、他のノードから遮断要求を受け付けるシャットダウン要求受付部１７５から構成される。
【００４１】
ここで、フェールオーバを実行するための各種情報は、各ノード１−０〜１−ｎが所属するＮＡＳ１００の共有ＬＵ１３０Ｓに引き継ぎ情報４００−１として各ＮＡＳ装置毎にそれぞれ格納される。つまり、図１で示すように、ローカルサイト１のＮＡＳ１００の共有ＬＵ１３０Ｓには、ＮＡＳ１００内のファイルサーバ１６０に関するリソース情報を保持する引き継ぎ情報４００−１が格納され、ローカルサイト１のＮＡＳ２００の共有ＬＵ２３０Ｓには、ＮＡＳ２００内のファイルサーバ１６０に関するリソース情報を保持する引き継ぎ情報４００−２が格納され、リモートサイト２のＮＡＳ３００の共有ＬＵ３３０Ｓには、ＮＡＳ３００内のファイルサーバ１６０に関するリソース情報を保持する引き継ぎ情報４００−３が格納される。なお、以下では各ＮＡＳ装置の引き継ぎ情報の総称を引き継ぎ情報４００とし、各ＮＡＳ装置の引き継ぎ情報を４００−１〜４００−３として識別する。なお、各ＮＡＳ装置には少なくとも一つの共有ＬＵを備え、そのうちの一つの共有ＬＵに引き継ぎ情報４００を格納すればよい。
【００４２】
さらに各共有ＬＵの引き継ぎ情報４００は、自ＮＡＳ装置のファイルサーバ１６０の引き継ぎ情報４００を他のＮＡＳ装置の引き継ぎ情報４００に配布し、各ＮＡＳ装置の引き継ぎ情報４００は同期している。なお、この引き継ぎ情報４００を相互に配布する処理は、各ＮＡＳ装置のリモートコピー機能を用いることができる。
【００４３】
ローカルサイト１内のＮＡＳ２００では、共有ＬＵ２３０Ｓに各ノード２−０〜２−ｎの引き継ぎ情報４００−２が格納される。
【００４４】
そして、他のノードのファイルサーバ１６０を自ノードに引き継ぐ際、フェールオーバ機能１７０は、ファイルサーバを引き継ぐ元のノードが所属するＮＡＳの共有ＬＵに格納された引き継ぎ情報４００に基づいてフェールオーバ処理を実行する。
【００４５】
また、引き継ぎ情報４００には、フェールオーバを実行した結果、引き継いだファイルサーバ１６０の情報も格納する。
【００４６】
図４はリモートサイト２のＮＡＳ３００のソフトウェア構成を示すブロック図である。
【００４７】
ＮＡＳ３００の各ノード３−０〜３−ｎ上では、ＯＳ（ＮＡＳ ＯＳ）３５０が実行され、このＯＳ３５０上ではクライアント計算機３３へ所定のファイルシステムを提供可能なファイル共有機能（ファイルサーバ）３６０と、自ノードまたは他のノードに障害が発生したときにフェールオーバ処理を実行するフェールオーバ機能３７０が実行される。
【００４８】
フェールオーバ機能３７０は、同一ＮＡＳ１００内の他のノードや同一ローカルサイト１内の他のノードのファイルサーバの稼働状態を監視するファイルサーバ監視処理３７１と、自ノードあるいは周囲のノードで障害が発生したときに現在提供しているファイルサーバ１６０を自ノードに引き継ぐ引き継ぎ処理３７２と、他のノードのファイルサーバ監視処理に対して自ノードの稼働状態を応答するファイルサーバ監視応答処理３７３と、ローカルサイト１内の障害の発生状況を監視するローカルサイト監視処理３７４と、引き継ぐファイルサーバ１６０のノードを決定するフェールオーバ先制御処理３７５と、を有する。
【００４９】
ここで、リモートサイト２が引き継いだローカルサイト１のファイルサーバ１６０の情報は、共有ＬＵ３３０Ｓの引き継ぎ情報４００−３に格納される。引き継いだファイルサーバ１６０をローカルサイト１へ戻す際には、引き継ぎ情報４００−３の内容を、ローカルサイト１の共有ＬＵ１３０Ｓ、２３０Ｓの引き継ぎ情報４００−１、４００−２に書き込むことになる。
【００５０】
＜フェールオーバ処理の概要＞
次に、本発明の概要について、図５に示すノード間の概略図に基づいて以下に説明する。
【００５１】
図５においてローカルサイト１のＮＡＳ１００では、ノード１−０でファイルサーバ１６０を提供し、また、ＮＡＳ２００では、ノード２−０、２−１でファイルサーバ１６０を提供する例を示す。
【００５２】
各ノードのファイルサーバ１６０は、アクセスユーザ数や格納しているファイルサイズ等よってフェールオーバの優先度（優先順位）が設定される。例えば、図示の例では、ノード２−０のファイルサーバ１６０が最も優先順位が高い優先度Ａに設定され、ノード２−１のファイルサーバ１６０が２番目に優先順位が高い優先度Ｂに設定され、ノード１−０のファイルサーバ１６０が３番目の優先順位となる優先度Ｃに設定されたとする。
【００５３】
本発明では、優先順位の高い順にＡ＞Ｂ＞Ｃとした場合、優先度がＡのファイルサーバ１６０は、リモートサイト２へのフェールオーバが可能であり、優先度Ｂのファイルサーバ１６０は、ローカルサイト１内の他のノード（１−１）へのフェールオーバに制限される。さらに、最も低い優先度Ｃのファイルサーバ１６０は、同一ＮＡＳ装置内の他のノードに制限される。あるいは、ひとつのノードで複数のファイルサーバ１６０を提供する場合では、同一ノードの他のファイルサーバ１６０が引き継ぎ先となる。フェールオーバの優先度は、高くなるほど距離的に遠い他のサイトが引き継ぎ先となり、優先度が低くなるほど距離的に近いノードが引き継ぎ先となる。
【００５４】
また、ローカルサイト１とリモートサイト２のサイト間での監視によって、ローカルサイト１で障害（フェールオーバ）が多発している状態で、稼動中の優先度Ａのファイルサーバ１６０をリモートサイト２に事前にフェールオーバさせることも可能である。つまり、リモートサイト２はローカルサイト１内のフェールオーバを監視し、災害や障害などによりローカルサイト１でフェールオーバが頻発していることを検知すると、優先度Ａのファイルサーバ１６０で障害が発生する前にリモートサイト２へフェールオーバを完了することができる。つまり、リモートサイト２は、ローカルサイト１の全体的な障害の傾向に基づいて、優先度の高いファイルサーバ１６０に障害が発生する前にフェールオーバを実施する。
【００５５】
そして、優先度がＡのファイルサーバ１６０がリモートサイト２へフェールオーバしてから一定時間が経過すると、優先度毎のフェールオーバ先の制限を緩和（例えば、優先度Ｂがリモートサイト２へのフェールオーバが可能等）する。これにより、優先度が高いファイルサーバ１６０のフェールオーバが完了した後に、優先度が低いファイルサーバ１６０もリモートサイト２へ引き継ぐことが可能となり、災害や障害からのＮＡＳの復旧を優先度に応じて迅速に行うことが可能となる。
【００５６】
以上のような処理を実現するため、本発明のフェールオーバ機能１７０、３７０は以下のような手順で設定を行う。
（１）判定ルール及びフェールオーバ先の設定
ローカルサイト１内のファイルサーバ１６０の優先度を設定するための判定ルール（優先度設定情報）と、優先度毎のフェールオーバ先を引き継ぎ情報４００に登録する。なお、優先度設定情報は、ユーザーサイト３の管理クライアント３２からローカルサイト１やリモートサイト２の管理者が設定する。
【００５７】
各ファイルサーバ１６０毎にフェールオーバ先の初期値を上記管理者が管理クライアント３２から設定する。また、管理クライアント３２から各ＮＡＳ装置のノード毎に対してＬＵを割り当てておく。例えば、ＮＡＳ１００のノード１−０にはＬＵ１３１、１３２を割り当て、ノード１−１にはＬＵ１３３、１３４を割り当てておく。
（２）ファイルサーバの優先度設定
各ノード１−０〜１−ｎ、２−０〜２−ｎにおいて、各ノード内のファイルサーバ１６０毎にアクセスユーザ数や、格納しているデータ容量などの利用状況を定期的に監視し、ファイルサーバ１６０毎の優先度を後述するように定期的に更新する。ファイルサーバ１６０毎の優先度は、共有ＬＵ１３０Ｓ、２３０Ｓ上の引き継ぎ情報４００−１〜４００−３にそれぞれ格納される。また、各ファイルサーバ１６０のリソース情報（ＩＰアドレス、ファイルシステム、ユーザアカウント情報など）は、予め共有ＬＵ１３０Ｓ、２３０Ｓ、３３０Ｓ上の引き継ぎ情報４００−１〜４００−３に格納しておく。
（３）ファイルサーバのクラスタ構築及び監視処理
各ノード内のファイルサーバ１６０毎に同じ優先度のファイルサーバ１６０同士でクラスタを構成する。クラスタ構成の初期設定は管理クライアント３２等から管理者が設定する。そして、クラスタを構成するファイルサーバ１６０は、フェールオーバ機能１７０のファイルサーバ監視処理１７２により、互いの障害監視を実行する。
（４）フェールオーバ処理
ファイルサーバ１６０の障害を検知したとき、障害が発生したファイルサーバ１６０のリソースを引き継ぎ先のノードが共有ＬＵの引き継ぎ情報４００から取得して、フェールオーバ処理を実施する。その後、引き継ぎ先のノードでファイルサーバ１６０（３６０）を再開する。
（５）フェールオーバ後のクラスタ再構築
フェールオーバ処理が完了したファイルサーバ１６０（３６０）は、フェールオーバ可能な新たな引継ぎ先を探してクラスタを再構築する。ただし、ファイルサーバの優先度によって下記のように引継ぎ先が制限される。
【００５８】
・優先度が低い場合
同一筐体（ＲＡＩＤディスクサブシステムの他のノード、同一ノードの他のサーバ）でフェールオーバが可能。
【００５９】
・優先度が中の場合
ローカルサイト１内で他のＮＡＳへのフェールオーバが可能。
【００６０】
・優先度が高い場合
リモートサイト２へフェールオーバが可能。
上記の制限に基づいて決定した新たな引き継ぎ先について、引き継ぎ先のノードが有する共有ＬＵの引き継ぎ情報４００へ格納する。
【００６１】
なお、優先度が最も低いノードの場合には、フェールオーバしない優先順位としてもよい。すなわち、業務に支障が出ないファイル等は敢えてフェールオーバを実施しない。
（６）リモートサイトからのローカルサイト監視
リモートサイト２からローカルサイト１におけるフェールオーバの発生状況を監視し、一定時間内にしきい値を超える回数のフェールオーバが発生した場合、ローカルサイト１で稼動中の優先度の高いファイルサーバ１６０をリモートサイト２へフェールオーバさせる。フェールオーバの発生状況の監視方法としては、アドレス解決プロトコル（ＡＲＰ：Address Resolution Protocol）を使用して、ローカルサイト１内の各ファイルサーバ１６０のＭＡＣアドレス変更回数をカウントすることができる。つまり、あるＩＰアドレスが割り当てられたファイルサーバ１６０が、頻繁にＭＡＣアドレスを変更するということは、頻繁にノードを変更したことになる。したがって、ＩＰアドレスに対応するＭＡＣアドレスの変更回数を監視することで、フェールオーバの実施回数を取得できる。
（７）フェールオーバ先変更制御
優先度の高いファイルサーバ１６０をリモートサイト２へフェールオーバし処理が完了すると、一定時間経過後にローカルサイト１内で優先度が中または低のファイルサーバ１６０についてフェールオーバ先を拡大する。例えば、
・優先度が低い場合
ローカルサイト１内で他のＮＡＳ装置へのフェールオーバが可能。
【００６２】
・優先度が中の場合
リモートサイト２へフェールオーバが可能。
【００６３】
なお、フェールオーバ先の変更後に他の優先度の高いファイルサーバ１６０のフェールオーバが発生した場合には、フェールオーバ先を上記（５）に示した基本状態に戻すことも可能である。
【００６４】
＜引き継ぎ情報の詳細＞
次に、共有ＬＵに格納されてフェールオーバの際に、引き継ぐファイルサーバ１６０のリソースを提供する引き継ぎ情報について以下に説明する。
【００６５】
引き継ぎ情報４００−１〜４００−３は、共有ＬＵ（１３０Ｓ、２３０Ｓ、３３０Ｓ）が所属するＮＡＳのノードで実行するファイルサーバ１６０の設定及び履歴を格納し、引き継ぎ先のノードへ提供するものである。
【００６６】
図６は、引き継ぎ情報４００を構成する情報の一例を示すブロック図である。引き継ぎ情報４００には、共有ＬＵが所属するＮＡＳ装置のファイルサーバ１６０の設定情報を格納するサーバ情報テーブル４０１と、ファイルサーバ１６０毎に設定されたクライアント計算機３３へ提供するファイル共有機能のＩＰアドレスとファイルシステムの情報を格納するサービスＩＰテーブル４０２と、ファイルサーバ１６０毎のユーザのアカウント情報を格納するユーザ情報テーブル４０３と、ファイルサーバ１６０のＭＡＣアドレスの履歴を格納する格納する引き継ぎ履歴テーブル４０４と、優先度を設定するためのしきい値やフェールオーバ先の範囲などを格納する優先度設定情報４０５が含まれる。
【００６７】
図７は、各ＮＡＳ１００〜３００の共有ＬＵ１３０Ｓ、２３０Ｓ、３３０Ｓに格納されるサーバ情報テーブル４０１の一例を示す。
【００６８】
図７において、サーバ情報テーブル４０１の１つのエントリには、ファイルサーバ名４０１１に対応した設定情報が格納される。所属サイト区分４０１２は、このファイルサーバ１６０の位置を示し、例えば、ローカルサイト１、またはリモートサイト２のいずれかを設定する。
【００６９】
所属ＲＡＩＤサブシステム名４０１３には、ファイルサーバ名４０１１で識別されるファイルサーバ１６０に現在割り当てられているＮＡＳ装置の名称（または識別子）と記憶領域（ＬＵ名）が格納される。
【００７０】
管理ＩＰアドレス４０１４は、ファイルサーバ１６０を管理または監視するため、ファイルサーバ名４０１１に対して予め管理者が割り当てた管理用ＩＰアドレスを格納する。フェールオーバ処理では、この管理ＩＰアドレス４０１４を使用してハートビートの検出や、クラスタ構築時のファイルサーバの検索を実行する。
【００７１】
クラスタステータス４０１５は、現在このファイルサーバがクラスタを構成中であるか否かを示し、クラスタを構成していれば「構成中」が設定され、クラスタを構成していなければ「未構成」が設定され、障害が発生していれば「障害中」が格納される。なお、クラスタステータス４０１５は、初期状態では、クラスタ未構成が設定されている。
【００７２】
サービスＩＰアドレス４０１６には、クライアント計算機３３に対して、ファイル共有機能を提供するために使用されるサービスＩＰアドレスの個数が設定される。このサービスＩＰアドレスは、管理者によって予め設定されたものである。
【００７３】
優先度４０１７には、ファイルサーバのアクセスユーザ数やアクセス頻度あるいは格納するファイルの容量等によって決定されるフェールオーバ先の制御に使用される値が格納される。例えば、上記のようにＡ〜Ｃのいずれかが優先度４０１７に設定される。
【００７４】
引き継ぎ先RAIDサブシステム名４０１８には、クラスタステータス４０１５が「構成中」のものについて、引き継ぎ先のＮＡＳ装置の名称（または識別子）とＬＵ番号を格納する。なお、引き継ぎ先RAIDサブシステム名４０１８には、ＮＡＳ装置の識別子とノードの識別子を格納しても良い。
【００７５】
上記サーバ情報テーブル４０１のうち、管理者によって設定されて固定的に利用されるものは、ファイルサーバ名４０１１、管理ＩＰアドレス４０１４、サービスＩＰアドレス４０１６である。一方、フェールオーバが実施されたときには、当該ファイルサーバ名を実行するノードが変更されると、所属ＲＡＩＤサブシステム名４０１３が変更されることになる。なお、このとき、ノードの変更に伴って、管理ＩＰアドレスとＭＡＣアドレスの関係が変更されることになる。
【００７６】
次に、図８はファイルサーバ１６０が提供するサービスＩＰテーブル４０２を示す。サービスＩＰテーブル４０２には、ファイルサーバ１６０がクライアント計算機３３に対して提供するサービスＩＰアドレスとファイルシステムの関係が格納される。ひとつのエントリには、サーバ名４０２１がクライアント計算機３３に提供するひとつのサービスＩＰアドレス４０２２と、このサービスＩＰアドレスで提供するファイルシステムの個数４０２３と、ファイルシステムの個数に応じたファイルシステム情報４０２４で構成される。ファイルシステム情報４０２４は、クライアント計算機３３によって共有されるファイルサーバ１６０上のファイルシステムに関する情報で、ファイルシステム名、マウントポイント等が格納される。上記サービスＩＰテーブル４０２は、管理クライアント３２から管理者が設定する。
【００７７】
次に、図９はファイルサーバ１６０が受け付けるユーザのアカウント情報を格納するユーザ情報テーブル４０３の一例を示す。このユーザ情報テーブル４０３には、サーバ名４０３１に対応して受け付けるユーザのアカウント数４０３２と、ユーザアカウント数に応じた個々のユーザアカウント情報４０３３が格納される。ユーザアカウント情報４０３３には、ファイルサーバにアクセスするユーザのＩＤやパスワード等が格納される。なお、上記ユーザ情報テーブル４０３は、管理クライアント３２から管理者が設定する。
【００７８】
次に、図１０はローカルサイト１のファイルサーバ１６０の管理ＩＰアドレスとＭＡＣアドレスの関係を格納する引き継ぎ履歴テーブル４０４の一例を示す。
【００７９】
この引き継ぎ履歴テーブル４０４の一つのエントリには、管理ＩＰアドレス４０４１に対応して、引き継いだ日時４０４２と、管理ＩＰアドレスに対応するノードのＭＡＣアドレス４０４３と引き継ぎ回数４０４４と、エントリを作成した日時が格納される。この引き継ぎ履歴テーブル４０４はローカルサイト１に所属するＮＡＳ装置のファイルサーバ１６０に関するもので、ローカルサイト１からリモートサイト２へフェールオーバしたファイルサーバ１６０の情報は、この引き継ぎ履歴テーブル４０４から削除される。逆に、リモートサイト２からローカルサイト１へフェールバックされたファイルサーバ１６０については、この引き継ぎ履歴テーブル４０４のエントリに追加される。なお、引き継ぎ日時４０４２はフェールオーバ処理を実行し、処理を引き継いだ日時が格納される。
【００８０】
この引き継ぎ履歴テーブル４０４は、各ノードの引き継ぎ処理１７３と、後述するリモートサイト２のローカルサイト監視処理３７４によって更新される。
【００８１】
優先度設定情報４０５には、ＮＡＳ１００〜３００で稼動するファイルサーバ１６０のログ情報に基づいて優先度を決定するためのしきい値やパラメータ、条件式などが含まれる。
【００８２】
例えば、同一ＮＡＳ装置内で、単位期間当たりのアクセス数で優先度を決定する場合、
単位期間当たりのアクセス数＞ＡＣ１  優先度＝Ａ
ＡＣ２＜単位期間当たりのアクセス数≦ＡＣ１  優先度＝Ｂ
単位期間当たりのアクセス数≦ＡＣ２          優先度＝Ｃ
としてファイルサーバ１６０毎に設定する。ただし、しきい値ＡＣ１、ＡＣ２は予め設定したしきい値で、ＡＣ１＞ＡＣ２である。なお、単位時間当たりのアクセス数に代わって、累計のアクセス数を用いても良い。
【００８３】
そして、優先度Ａの場合には、リモートサイト２をフェールオーバ先として設定し、優先度Ｂの場合には同一のローカルサイト１内の他のＮＡＳ装置のノードをフェールオーバ先として設定し、優先度Ｃの場合には同一ノード内の他のＬＵまたは同一ＮＡＳ装置内の他のノードをフェールオーバ先として設定する。
【００８４】
上述のように、優先度設定情報４０５は管理者が管理クライアント３２等から予め設定利しておくものである。
【００８５】
この他、ファイル数やファイルの容量あるいはユーザアカウント数などを用いて所定のしきい値や条件式を設定する。あるいは、単位期間当たりのアクセス数とファイル数やファイルの容量及びユーザアカウント数を組み合わせて優先度を設定する条件式を適宜設定してもよい。これらのしきい値や条件式はローカルサイト１やユーザサイト３の特性に応じて適宜設定すればよい。
【００８６】
＜ローカルサイト内での処理＞
以下では、図３に示したローカルサイト１内のノードで実行されるフェールオーバ処理の詳細について説明する。
【００８７】
次に、上記（２）及び図３で示したファイルサーバの優先度設定処理の詳細について、以下に説明する。この処理は、ローカルサイト１内の各ノードのフェールオーバ機能１７０を構成するファイルサーバ優先順位付け処理１７１で、所定の周期毎に実行されるものである。
【００８８】
この優先度設定処理では、ローカルサイト１の各ノードにおいて、ファイルサーバ１６０へのアクセスログなどの情報と、システム管理者が設定した優先順位付けルールに基づいて、ファイルサーバ１６０の優先順位を決定し、サーバ情報テーブル４０１の優先度４０１７へ書き込む。
【００８９】
ここで、各ファイルサーバ１６０は、図１１に示すようなアクセスログ１３００を割り当てられたＬＵ等に格納する。図１１において、アクセスログ１３００の各エントリには、アクセスを行った日時１３０１と、アクセスしたファイルのディレクトリのパス情報１３０２と、アクセスを行ったユーザ情報（ユーザＩＤ）１３０３が格納される。
【００９０】
ファイルサーバ優先順位付け処理１７１で実行される処理の一例を、図１２のフローチャートに示す。
【００９１】
Ｓ１では、フェールオーバ機能１７０を実行するノードが所属するＮＡＳ装置の共有ＬＵから引き継ぎ情報４００を参照し、優先度設定情報４０５を読み込む。このとき、変数としてのアクセスユーザ数Ｎａｃを０にリセットし、変数としてのデータサイズＶｆｌを０にリセットする。Ｓ２では、フェールオーバ機能１７０を実行するノードのファイルサーバが生成したアクセスログ１３００を先頭から１行ずつ読み込む。Ｓ３では、現在読み込んだアクセスログ１３００がファイルの終端（ＥＯＦ：End Of File）に達したか否かを判定する。ファイルの終端に達していなければＳ４へ進み、終端に達していた場合にはＳ６に進む。
【００９２】
Ｓ４では、読み込んだアクセスログの一行からアカウント情報を抽出可能であれば、変数としてのアクセスユーザ数Ｎａｃに１を加算する。次に、ディレクトリのパス情報１３０２からアクセスしたファイルのサイズを取得し、変数としてのファイルサイズＶｆｌに加算する。そして、Ｓ２へ戻ってアクセスログ１３００の次の行を読み込む。
【００９３】
ファイルの終端に達したＳ６では、共有ＬＵの引き継ぎ情報４００から読み込んだ優先度設定情報４０５から読み込んだしきい値及び条件式を、上記アクセスを行ったユーザの総数を示すアクセスユーザ数Ｎａｃと、アクセスしたファイルの総容量を示すデータサイズＶｆｌに適用して優先度を決定する。
【００９４】
例えば、上記２つの値を適用する場合、優先度設定情報４０５のしきい値及び条件式は次のようになる、
優先度Ａ：アクセスユーザ数＞ＸＸ  ＡＮＤ  データサイズ＞ＹＹ
優先度Ｂ：アクセスユーザ数＞ＶＶ  ＡＮＤ  データサイズ＞ＷＷ
優先度Ｃ：アクセスユーザ数＞ＴＴ  ＡＮＤ  データサイズ＞ＵＵ
優先度Ｄ：上記以外
以上の処理により、各ファイルサーバ１６０の優先度が定期的に更新されて。共有ＬＵの引き継ぎ情報４００内のサーバ情報テーブル４０１の優先度４０１７が更新される。
【００９５】
以上の処理により、各ファイルサーバ１６０は、所定の周期毎にアクセスを行ったユーザの総数と、アクセスされたファイルの総容量とから当該ファイルサーバの優先度を決定する。ファイルサーバ優先順位付け処理１７１は、引き継ぎ情報４００のサーバ情報テーブル４０１の優先度４０１７の内容を、上記決定した優先度で周期的に更新する。
【００９６】
すなわち、優先度は、ファイルサーバ１６０の利用率が高いほど、優先度は高くなり、格納するファイルの数やファイルの総容量が大きいほど優先度は高く設定される。
【００９７】
＜ファイルサーバの監視処理の詳細＞
次に、上記（３）で示したファイルサーバの監視処理のうち、ローカルサイト１内でのファイルサーバの監視処理の詳細について以下に説明する。図１３は、ローカルサイト１内の各ノードのフェールオーバ機能１７０を構成するファイルサーバ監視処理１７２で実行される処理の一例を示すフローチャートである。なお、ファイルサーバ監視処理１７２は、フェールオーバ機能１７０が起動している期間はバックグラウンドなどで繰り返して実行される。
【００９８】
Ｓ１１では、フェールオーバ機能１７０を実行するノード上のファイルサーバ１６０の優先度を、共有ＬＵのサーバ情報テーブル４０１から取得する。
【００９９】
Ｓ１２では、リモートサイト２へ問い合わせを行い、自ノードのファイルサーバ１６０の優先度でフェールオーバが可能な範囲を取得する。つまり、同一筐体の他のＬＵ、同一ローカルサイト１内の他のＮＡＳ装置あるいはリモートサイト２のいずれかを取得する。この処理の詳細については、後述する。なお、問い合わせ先のリモートサイト２のノード（ファイルサーバ１６０）は、共有ＬＵの引き継ぎ情報４００内のサーバ情報テーブル４０１から、リモートサイト２でクラスタステータス４０１５が未構成のものに問い合わせる。なお、リモートサイト２でクラスタステータス４０１５が未構成のファイルサーバ３６０がない場合には、「障害中」でないノードに問い合わせればよい。
【０１００】
Ｓ１３では、共有ＬＵのサーバ情報テーブル４０１から自ノードのファイルサーバ１６０の優先度と同一の優先度を持ち、かつ、上記取得した範囲内でファイルサーバ１６０を検索する。この検索は、ファイルサーバ監視処理１７２が、他のＮＡＳ装置あるいはリモートサイト２のＮＡＳ装置の共有ＬＵの引き継ぎ情報４００からサーバ情報テーブル４０１を参照する。
【０１０１】
そして、Ｓ１４では、上記Ｓ１３で検索したファイルサーバ１６０のクラスタステータス４０１５を参照し、クラスタ構成が「未構成」であるか否かを判定し、クラスタを構成するファイルサーバ１６０を検索する。
【０１０２】
クラスタステータス４０１５が「未構成」のファイルサーバ１６０があれば、当該ファイルサーバ１６０をフェールオーバ先のファイルサーバ１６０として選択する。クラスタステータス４０１５が「構成中」あるいは「障害中」の場合には、Ｓ２０へ進んで他のファイルサーバ１６０を検索する。
【０１０３】
ファイルサーバ１６０を選択すると、Ｓ１５へ進んで、検索したファイルサーバ１６０のクラスタステータス４０１５と自ファイルサーバ１６０のクラスタステータス４０１５を「構成中」に変更する。そして、サーバ情報テーブル４０１の自ファイルサーバ１６０の引き継ぎ先RAIDサブシステム名４０１８に、上記選択したファイルサーバ１６０の識別子（ＮＡＳ装置の識別子とノードの識別子）を設定する。
【０１０４】
ここで、上記Ｓ１４の判定でクラスタステータスが「未構成」のファイルサーバ１６０がない場合のＳ２０では、同一の優先度の範囲の全てのファイルサーバ１６０について検索が完了したか否かを判定する。同一の優先度の範囲で検索すべきファイルサーバ１６０が残っている場合には、Ｓ１３へ戻って現在の優先度の範囲で次のファイルサーバ１６０を検索する。一方、同一の優先度の範囲の全てのファイルサーバ１６０を検索しても「未構成」のファイルサーバ１６０がない場合には、Ｓ２１へ進む。Ｓ２１では、現在の優先度の範囲でクラスタを構成可能なファイルサーバ１６０が見つからないため、優先度を所定の値だけ高くする。あるいは、優先度に対応するフェールオーバ先の定義を拡大する。
例えば、優先度を１段階引き上げて、クラスタを構成するファイルサーバ１６０の検索範囲を拡大する。そして、検索範囲を拡大した後にＳ１３の処理へ戻ってファイルサーバ１６０の検索を続行する。つまり、優先度が低いときには同一のＮＡＳ装置に障害が発生して全てのノードが障害中になると引き継ぎ先がなくなる場合がある。このため、優先度を引き上げて、よりフェールオーバ対象範囲の広い優先度を再設定し、クラスタを構成する。
【０１０５】
Ｓ１６では、決定したクラスタ（フェールオーバ先）のノードに対してハートビートを送信し、障害を検出するためのタイマでカウントを開始する。なお、ハートビートの内容について所望のプロトコルで実施することができる。そして、当該ファイルサーバ１６０が稼動するＮＡＳ装置は、所定のタイミングで、フェールオーバ先のノードへリモートコピーによりデータ（ファイルシステム）の複製を行う。
【０１０６】
Ｓ１７では、送信したハートビートに対する応答の有無を判定する。応答があればＳ１６へ戻って再度ハートビートを送信し、カウントをリセットしてからカウントを開始する。なお、Ｓ１６、Ｓ１７の繰り返しは、予め設定したハートビートの送信間隔で実施することができる。
【０１０７】
Ｓ１７で応答がなければ、Ｓ１８へ進んで、カウンタのカウント値が所定値が超えたか否かを判定する。カウント値が所定値以内あればＳ１７へ戻り、カウント値が所定値を超えても応答がない場合には、クラスタの相手に障害が発生したと判定しＳ１９へ進む。Ｓ１９では、フェールオーバ処理を実施するため、引き継ぎ処理１７３を呼び出して起動する。
【０１０８】
以上の処理により、ローカルサイト１内の各ノードは優先度に応じたフェールオーバ先の範囲でクラスタステータスが「未構成」のファイルサーバ１６０を検索し、自ノードのファイルサーバ１６０とクラスタを構築する。クラスタ内のノード間ではＮＡＳ装置のリモートコピー機能によりデータのバックアップが措定のタイミングで実行される。そして、クラスタ内では相互にハートビートの送信により障害の発生を監視し、障害が発生すると引き継ぎ先のノードで引き継ぎ処理１７３を起動するのである。
【０１０９】
ローカルサイト１内のノードにおけるファイルサーバの障害監視処理は、例えば、図１４で示すように、優先度が低いときには、同一筐体のＮＡＳ装置内の他のノードと自ノードがクラスタを構成する。両者のフェールオーバ機能１７０同士で、相互の障害発生状況を監視する。そして、クライアント３２へサービスを提供するノードに障害が発生すると、フェールオーバ先のファイルサーバ１６０が共有ＬＵから引き継ぎ情報４００を取得してフェールオーバを実施する。
【０１１０】
あるいは、図１５で示すように、ひとつのノード内に複数のファイルサーバ１６０を提供する仮想ＮＡＳ装置（後述）では、同一のノード内のファイルサーバ１６０間でクラスタを構成し、障害発生の監視を行うことができる。そして、障害発生時には、同一のノード内で引き継ぎを実施する。
【０１１１】
一方、優先度が高くなると、同一のローカルサイト１内で他のＮＡＳ装置へフェールオーバすることができる。例えば、図１６で示すように、ＮＡＳ１００のノードとＮＡＳ２００のノードでクラスタを構成し、相互に障害発生の監視を実施する。障害時には、ＮＡＳ２００のノードがＮＡＳ１００のノードを引き継いで、ファイルサーバ１６０をユーザサイト３へ提供する。このように、各ノードにおいて、ファイルサーバ１６０の引継ぎ情報４００に基づいて、同じ優先度かつクラスタステータスがクラスタ「未構成」のファイルサーバ１６０を見つけ、引継ぎ情報のステータスをクラスタ「構成中」に更新し、障害監視(ハートビート監視)を開始する。ファイルサーバ１６０の優先度によって、クラスタを組む相手が同一ノード内、同一サイト（ローカルサイト）内、またはリモートサイト２内のファイルサーバ１６０、３６０のいずれかになる。障害監視開始後に障害を検知した場合には、後述の引継ぎ処理を実行する。
【０１１２】
＜フェールオーバ処理の詳細＞
次に、上記図１３のＳ１９で呼び出される引き継ぎ処理１７３の詳細について図１７のフローチャートを参照しながら以下に説明する。この処理は、ローカルサイト１内のノードのファイルサーバ監視処理１７２から呼び出される。
【０１１３】
フェールオーバ処理は、引き継ぎ先のノードで実行される引き継ぎ処理１７３が実行する。
【０１１４】
引き継ぎ処理１７３は、まず、Ｓ２３で監視対象のファイルサーバ１６０が所属する共有ＬＵのサーバ情報テーブル４０１を読み込んで、障害が発生したファイルサーバ１６０のクラスタステータス４０１５を「障害中」に更新する。
【０１１５】
Ｓ２４では、障害が発生したファイルサーバ１６０のリソースを引き継ぐため、共有ＬＵの引き継ぎ情報４００のサーバ情報テーブル４０１から監視対象のファイルサーバ１６０のファイルサーバ名４０１１、管理ＩＰアドレス４０１４、サービスＩＰアドレス個数４０１６、優先度４０１７のリソースを取得する。また、障害が発生したファイルサーバ１６０のサービスＩＰテーブル４０２、ユーザ情報テーブル４０３等のリソースも取得する。
【０１１６】
Ｓ２５では、引き継ぎ処理１７３は、上記取得したリソースで引き継ぎ先のファイルサーバ１６０の設定を更新する。つまり、引き継ぎ処理１７３は、上記取得したファイルサーバ名４０１１、管理ＩＰアドレス４０１４、サービスＩＰアドレス個数４０１６、優先度４０１７を、引き継ぎ先のファイルサーバ１６０のサーバ情報テーブル４０１に設定する。また、ＩＰテーブル４０２、ユーザ情報テーブル４０３を自ファイルサーバ１６０が所属するＮＡＳ装置の共有ＬＵに設定する。そして、ファイルサーバ１６０の業務を再開する。
【０１１７】
そして、引き継ぎ処理１７３は、引き継ぎ履歴テーブル４０４に、引き継いだファイルサーバ１６０の管理ＩＰアドレス４０４１、引き継いだ時刻４０４２、引き継いだノードのＭＡＣアドレス４０４３を書き込む。
【０１１８】
Ｓ２３〜Ｓ２５でフェールオーバ処理が完了し、Ｓ２６以降は、クラスタの再構築を実施する。
【０１１９】
次にＳ２６では、クラスタの再構築を実施するため、自ノードのファイルサーバ１６０の優先度をリモートサイト２へ問い合わせ行い、自ノードのファイルサーバ１６０の優先度でフェールオーバが可能な範囲を取得する。つまり、同一筐体の他のＬＵ、同一ローカルサイト１内の他のＮＡＳ装置あるいはリモートサイト２のいずれかを取得する。この処理の詳細については、後述する。なお、問い合わせ先のリモートサイト２のノード（ファイルサーバ１６０）は、共有ＬＵの引き継ぎ情報４００内のサーバ情報テーブル４０１から、リモートサイト２でクラスタステータス４０１５が未構成のものに問い合わせる。なお、リモートサイト２でクラスタステータス４０１５が未構成のファイルサーバ３６０がない場合には、「障害中」でないノードに問い合わせればよい。
【０１２０】
Ｓ２７では、引き継ぎ情報４００のサーバ情報テーブル４０１から同一の優先度をもつファイルサーバ１６０を検索する。そして、Ｓ２８で検索したファイルサーバ１６０のクラスタステータス４０１５が「未構成」であるかを判定する。未構成であればクラスタを構成するファイルサーバとして選択してＳ２９へ進む。Ｓ２９では、自ファイルサーバ１６０と検索したファイルサーバ１６０のクラスタステータス４０１５を「構成中」に変更する。そして、自ファイルサーバ１６０のサーバ情報テーブル４０１の引き継ぎ先RAIDサブシステム名４０１８に、上記選択したファイルサーバ１６０のノードやＬＵの識別子などを書き込んで処理を終了し、図１３の処理へ戻る。
【０１２１】
一方、Ｓ２８で検索したファイルサーバ１６０のクラスタステータスが「未構成」でなければＳ２７へ戻って再度検索を実行する。
【０１２２】
以上の処理により、障害が発生したクラスタでは、引き継ぎ先のノードが共有ＬＵの引き継ぎ情報４００からリソース情報を取得してファイルサーバ１６０を再開する。そして、同一の優先度をもつファイルサーバ１６０を検索して、新たなクラスタを構成しておく。
【０１２３】
上述のように、フェールオーバ先は優先度４０１７によって制限され、例えば、
優先順位Ａ → リモートサイト
優先順位Ｂ → ローカルサイト内
優先順位Ｃ → 同一ＮＡＳ内
のようにマッピングされる。そして、このような制限された範囲内で、ファイルサーバを検索し、クラスタの再構築を行う。
【０１２４】
＜ファイルサーバ監視応答処理＞
次に、図３のファイルサーバ監視応答処理１７４について、図１８を参照しながら説明する。図１８は、監視対象のファイルサーバ１６０のノードで実行されるファイルサーバ監視応答処理１７４である。この処理は、監視対象のファイルサーバ１６０がフェールオーバ先のノードからハートビートを受信する度に実行される。監視対象のファイルサーバ１６０では、フェールオーバ先のノードからハートビートを受信すると、フェールオーバ先のノードへハートビート（メッセージ）を応答する（Ｓ３１）。これにより、フェールオーバ先のノードは、監視対象のファイルサーバ１６０が稼動していることを確認できる。一方、当該ノードで障害が発生すると、このハートビートの応答が不能になるので、フェールオーバ先のノードで障害発生を検知できるのである。
【０１２５】
＜シャットダウン要求受付処理＞
次に、図３のシャットダウン要求受付処理１７５について、図１９を参照しながら説明する。図１９は、監視対象のファイルサーバ１６０のノードが、他のノードからシャットダウン要求を受信したときに実行する処理である。
【０１２６】
監視対象のファイルサーバ１６０では、フェールオーバ先のノードからシャットダウン要求を受け付けると、当該のノードのシャットダウン処理を実行して停止する（Ｓ４１）
これにより、フェールオーバ先のノードは、障害が発生した監視対象のファイルサーバ１６０を停止させることができる。
【０１２７】
＜リモートサイト内での処理＞
次に、リモートサイト２で実行される各処理の詳細について以下に説明する。図４で示したように、リモートサイト２のノード３−０〜３−ｎでは、フェールオーバ機能３７０が実行される。
【０１２８】
フェールオーバ機能３７０のうち、ローカルサイト監視処理３７４とフェールオーバ先制御処理３７５以外の処理は、ローカルサイト１のノードで実行されるファイルサーバ監視処理１７２と同様である。すなわち、リモートサイト２のフェールオーバ機能３７０のうち、ファイルサーバ監視処理３７１はローカルサイト１のファイルサーバ監視処理１７２と同一の処理であり、引き継ぎ処理３７２はローカルサイト１の引き継ぎ処理１７３と同一であり、ファイルサーバ監視応答処理３７３は、ローカルサイト１のファイルサーバ監視応答処理１７４と同一の処理である。
【０１２９】
以下の説明では、ローカルサイト１のノードと同一の処理についての説明は同一であるので省略し、ローカルサイト１のノードと異なるローカルサイト監視処理３７４と、フェールオーバ先制御処理３７５について説明する。
【０１３０】
なお、リモートサイト２の各ノードは、ローカルサイト１のバックアップサイト（セカンダリサイト）として機能しているので、ローカルサイト１のノードで実行されるファイルサーバ優先度順位付け処理１７１とシャットダウン要求受付処理１７５は有していない。
【０１３１】
＜ローカルサイト監視処理＞
図２０は、リモートサイト２の各ノード３−０〜３−ｎで実行されるローカルサイトの監視処理の一例を示すフローチャートである。この処理は、各ノード３−０〜３−ｎで所定の周期で実行されるものである。
【０１３２】
ローカルサイト監視処理３７４は、ローカルサイト１で稼動中のファイルサーバ１６０の稼動状況を監視し、ローカルサイト１において、広域的にファイルサーバ１６０の障害が発生していないかを監視する。ローカルサイト１でファイルサーバ１６０の障害が頻発している場合には、ローカルサイト１内で優先度の高いファイルサーバ１６０に関しては、自身に障害が発生していなくても周辺で障害が発生しているならば、リモートサイト２へ事前にフェールオーバさせて、データの安全を確保する。
【０１３３】
ローカルサイト監視処理３７４は、まずＳ５１で、共有ＬＵ３００Ｓの引き継ぎ情報４００−３からローカルサイト１内の全てのファイルサーバ１６０の管理ＩＰアドレスを取得する。Ｓ５２以降では、ローカルサイト１のファイルサーバ１６０の管理ＩＰアドレスとＭＡＣアドレスの対応関係を取得する。このため、Ｓ５２では、ローカルサイト１の全てのファイルサーバ１６０について、管理ＩＰアドレスとＭＡＣアドレスの関係を取得したか否かを判定し、完了していればＳ５６へ進み、完了していなければＳ５３に進む。
【０１３４】
Ｓ５３、Ｓ５４ではローカルサイト監視処理３７４が、上記取得したローカルサイト１内の管理ＩＰアドレスに対してアドレス解決プロトコル（ＡＲＰ：Address Resolution Protocol）を用いてＭＡＣアドレスを取得する。このＭＡＣアドレスは、ファイルサーバ１６０が稼働するノードのネットワークインターフェース１４が有するＭＡＣアドレスである。
【０１３５】
Ｓ５５では、取得した管理ＩＰアドレスとＭＡＣアドレスの関係を引き継ぎ履歴テーブル４０４に書き込む。このとき、図１０で示した引き継ぎ履歴テーブル４０４のレコードには、管理ＩＰアドレス４０４１が追加され、ＭＡＣアドレス４０４３、作成日時４０４５が格納される。
【０１３６】
そして、Ｓ５２へ戻って全ての管理ＩＰアドレスについてＭＡＣアドレスを取得したかを判定する。上記Ｓ５２〜Ｓ５５の処理を繰り返すことで、ローカルサイト１内の全てのファイルサーバ１６０について、管理ＩＰアドレスとＭＡＣアドレスの対応関係を引き継ぎ履歴テーブル４０４に記録する。
【０１３７】
次に、全ての管理ＩＰアドレスとＭＡＣアドレスの対応関係が完了すると、ローカルサイト監視処理３７４は、Ｓ５６へ進んで今回、引き継ぎ履歴テーブル４０４に生成した管理ＩＰアドレスのレコードが既にあるか否かを各管理ＩＰアドレス毎に判定する。引き継ぎ履歴テーブル４０４に同一の管理ＩＰアドレスでＭＡＣアドレスが異なるレコードがある場合にはＳ５７へ進む。一方、現在書き込んだＩＰアドレスとＭＡＣアドレスの関係と、直前のＩＰアドレスとＭＡＣアドレスが一致する場合、あるいは同一の管理ＩＰアドレスがない場合には、処理を終了する。
【０１３８】
つまり、引き継ぎ履歴テーブル４０４を管理ＩＰアドレス４０４１でソートし、さらに作成日時の順序でソートして、各管理ＩＰアドレス毎に直前のＭＡＣアドレスと現在のＭＡＣアドレスが変換していないかを調べ、現在と直前のＭＡＣアドレスが異なる場合には、フェールオーバ処理を行った結果、ＭＡＣアドレスが変更されたと判定する。また、現在レコードを作成した管理ＩＰアドレスと同一の各管理ＩＰアドレス４０４１がない場合は、新たに追加されたファイルサーバ１６０であると判定する。
【０１３９】
ＭＡＣアドレスが変化した各管理ＩＰアドレスがある場合のＳ５７では、各管理ＩＰアドレスに対するＭＡＣアドレスの数を抽出する。つまり、各管理ＩＰアドレスに対するＭＡＣアドレスの対応関係の差分を抽出し、その数（ＭＡＣアドレスの変更回数）を計数する。そして、Ｓ５８ではこの計数した管理ＩＰアドレス毎のフェールオーバの回数の合計値を出力する。このフェールオーバ回数の出力は、引き継ぎ履歴テーブル４０４で該当する管理ＩＰアドレス４０４１のうち、最新の作成日時４０４５のレコードの引き継ぎ回数４０４４に設定する。
【０１４０】
次に、Ｓ５９ではＭＡＣアドレスの変更回数が予め設定した上限値を超えたか否かを判定する。この判定結果が上限値を超えた場合には、Ｓ６０へ進んで優先度の高いファイルサーバ１６０を、事前にフェールオーバさせる。このＳ５９の判定では、Ｓ５７で抽出した管理ＩＰアドレスのうちのいずれか一つが、変更回数＞上限値の条件を満たせば、Ｓ６０の処理を実行する。
【０１４１】
Ｓ６０では、優先度の高いファイルサーバ１６０を事前にフェールオーバさせるため、共有ＬＵ３００Ｓのサーバ情報テーブル４０１から、ローカルサイト１内で優先度の高いファイルサーバ１６０を選択する。例えば、優先度＝Ａのものを選択する。そして、選択したファイルサーバ１６０に対してシャットダウンを要求する。要求を受けたファイルサーバ１６０は、図１９の処理によりシャットダウンを実施する。シャットダウンによりハートビートに対する応答が無くなるため、クラスタを構成するファイルサーバが、シャットダウンしたファイルサーバ１６０を引き継ぐことになる。
【０１４２】
以上のように、ローカルサイト１内のファイルサーバ１６０でフェールオーバが発生すると、障害が発生したファイルサーバ１６０のＩＰアドレス（管理ＩＰアドレス、サービスＩＰアドレス）が別のファイルサーバに引き継がれる。これによって、障害の発生前後で、ＩＰアドレスは変わらないが、ハードウェア（ノード）が変わるためにネットワークインターフェース１４のＭＡＣアドレスが変わる。定期的にファイルサーバ１６０のＩＰアドレスとＭＡＣアドレスの対応付けを監視することによって、対応付けの変化回数＝フェールオーバ発生回数とみなして、ローカルサイト１内で発生しているフェールオーバの発生回数をカウントすることが可能となる。ＩＰアドレスとＭＡＣアドレスの対応付けを確認する為には、ＡＲＰなどのアドレス解決プロトコルを使用して、ＩＰアドレスに対応するＭＡＣアドレスを取得することで実現可能である。観測されたフェールオーバの回数と予め設定された回数の上限値を比較し、上限を超えている場合、リモートサイト２側にあって、なおかつクラスタを組んでいるファイルサーバ１６０（優先度＝Ａ）に対して、シャットダウンの指示を出して、ハートビート断の状態にする。これにより、ローカルサイト１内で、頻繁にフェールオーバが発生している場合には、優先度の高いファイルサーバ１６０をシャットダウンさせることで、障害が発生する以前にフェールオーバを実施することができる。
【０１４３】
なお、シャットダウンを指令した管理ＩＰアドレスのファイルサーバ１６０については、リモートサイト２へフェールオーバが実施されるので、この引き継ぎ履歴テーブル４０４からこの管理ＩＰアドレスのレコード削除しておく。これにより、次回のローカルサイト監視処理３７４で、フェールオーバが実施された管理ＩＰアドレスのファイルサーバ１６０が再度フェールオーバされるのを回避する。
【０１４４】
また、引き継ぎ履歴テーブル４０４に格納される管理ＩＰアドレスとＭＡＣアドレスの対応関係は、予め設定した期間（時間）に限定し、例えば、Ｓ５５などの処理で、所定の時間を経過した管理ＩＰアドレスとＭＡＣアドレスのレコードを削除するようにしても良い。この場合、所定時間内（例えば、１０分）でフェールオーバが頻発すると、ローカルサイト１で災害が生じている可能性が高い。この場合、優先度の高いファイルサーバ１６０を事前にフェールオーバさせることで、業務の復旧を迅速に行うことができる。
【０１４５】
なお、上記では管理ＩＰアドレスとＭＡＣアドレスの比較を時系列に行う例を示したが、これらに限定されるものではなく、引き継ぎを行う業務（ファイルサーバ）の識別子と、引き継いだ業務を提供するノードの物理的な識別子とを時系列的に比較することで、フェールオーバの検知を行うことができる。例えば、ファイルサーバの名称とＭＡＣアドレスを時系列的に比較しても良い。
【０１４６】
図２１は、上記ローカルサイト監視処理３７４によって優先度の高いファイルサーバ１６０を事前にフェールオーバする場合の手順を示す説明図である。
【０１４７】
まず、リモートサイト２のファイルサーバ３６０では、ローカルサイト監視処理３７４がＡＲＰによりローカルサイト１内の管理ＩＰアドレスとＭＡＣアドレスの関係からフェールオーバの回数を取得する。そして、ローカルサイト１内のフェールオーバの回数が所定の上限値を超えると、ローカルサイト監視処理３７４は、ローカルサイト１内で優先度の高いファイルサーバ１６０へシャットダウン要求を送信する。
【０１４８】
シャットダウン要求を受信したローカルサイト１のファイルサーバ１６０は、シャットダウン要求受付処理１７２により、自身をシャットダウンさせる。これにより、ハートビートが停止するため、優先度の高いファイルサーバ１６０とクラスタを構成するリモートサイト２のノードでは、ローカルサイト１でクラスタを構成するファイルサーバ１６０が停止したので、ファイルサーバ監視処理３７１が引き継ぎ処理を実行する。
【０１４９】
このように、ローカルサイト１内のフェールオーバの頻度に基づいて、優先度の高いファイルサーバ１６０を意図的に停止させることで、障害発生前にフェールオーバを実施するのである。
【０１５０】
なお、Ｓ５９、Ｓ６０では、ＭＡＣアドレスの変更回数が所定の上限値を超えると優先度の高いファイルサーバ１６０をフェールオーバさせたが、変更回数＞上限値かつ、フェールオーバを実施したファイルサーバ１６０の数が所定値以上として、ＭＡＣアドレスの変更回数とフェールオーバを実施したファイルサーバ１６０の数を条件として、優先度の高いファイルサーバ１６０について先行してフェールオーバを実施するようにしてもよい。
【０１５１】
また、この処理はリモートサイト２のノード３−０〜３−ｎのうち、クラスタステータス４０１５が「未構成」となっているノードがあれば、この「未構成」となっているノードのみでローカルサイト監視処理３７４を実行するようにしても良い。これにより、クラスタを構成中のノードの負荷を低減することができる。あるいは、リモートサイト２のノード３−０〜３−ｎのうちの一つが、このローカルサイト監視処理３７４を実行し、他のノードでは、このローカルサイト監視処理３７４を停止するようにしてもよい。
【０１５２】
＜フェールオーバ先制御処理＞
図２２は、リモートサイト２のノード３−０〜３−ｎで実行されるフェールオーバ先制御処理３７５の一例を示すフローチャートである。この処理はローカルサイト１内のノードで実行されるファイルサーバ優先順位付け処理１７１（図１３のＳ１２）または引き継ぎ処理１７３（図１７のＳ２６）から呼び出される処理である。
【０１５３】
この処理では、ローカルサイト１のファイルサーバ１６０において、フェールオーバのための引継ぎ処理にて次のフェールオーバ先を決定するために呼び出される。呼び出し元に対して、フェールオーバ可能な範囲を返す。ローカルサイト１のファイルサーバ１６０は、応答のあった範囲内で、ファイルサーバ１６０を探し、クラスタ構成を組む。また、リモートサイトの状況（例えば：優先的に使用させるための猶予時間が過ぎた場合）に応じて、優先度の調整によりフェールオーバ先の範囲を変更し、優先度の低い他のファイルサーバ１６０がリモートサイトへフェールオーバを可能にする。
【０１５４】
優先度が低いファイルサーバ１６０のフェールオーバ先は、同一筐体内またはローカルサイト１内に制限されている。このため、災害などでは優先度の高いファイルサーバ１６０がリモートサイト２引き継がれるが、優先度の低いファイルサーバ１６０は引き継がれないことになってしまう。このため、優先度の高いファイルサーバ１６０がリモートサイト２へのフェールオーバを完了した後に、優先度の低いファイルサーバ１６０についても、順次リモートサイト２へフェールオーバを実施して、ローカルサイト１のファイルサーバ１６０をリモートサイト２へ引き継ぐために優先度を柔軟に変更するものがフェールオーバ先制御処理３７５である。
【０１５５】
フェールオーバ先制御処理３７５はで、まず、Ｓ７１で共有ＬＵ３００Ｓの引き継ぎ情報４００から引き継ぎ履歴テーブル４０４を参照し、直前に実行したフェールオーバの日時（つまり、最新のフェールオーバ時刻）を取得する。
【０１５６】
次に、Ｓ７２では現在の時刻を取得し、Ｓ７３では、直前のフェールオーバの実行開始から現在時刻までの経過時間を算出する。
【０１５７】
次に、Ｓ７４では上記で求めた経過時間が予め設定した猶予時間を経過したか否かを判定する。経過時間が猶予時間を経過していればＳ７６へ進み、経過時間が猶予時間以内であればＳ７５へ進む。ここで、猶予時間は、優先度の高いファイルサーバ１６０がリモートサイト２へのフェールオーバを完了するのに必要な時間を考慮して、優先度の低いファイルサーバ１６０のリモートサイト２へのフェールオーバを開始するまでの時間を示す。この猶予時間は、管理クライアント計算機３２等から管理者などが予め優先度設定情報４００へ設定したものである。
【０１５８】
Ｓ７５では、経過時間が猶予時間以内であるので、優先度の再設定（変更）は行わず、上記のように予め設定した優先度とフェールオーバ先の関係を呼び出し元へ通知して処理を終了する。経過時間が猶予時間以内のルールは、例えば、次の通りである。
・優先順位Ａ  →  リモートサイト
・優先順位Ｂ  →  ローカルサイト内
・優先順位Ｃ  →  同一ＲＡＩＤディスクサブシステム１３０（または同一ＮＡＳ装置内）
Ｓ７６では、経過時間が猶予時間を超え、優先度の高いファイルサーバ１６０のフェールオーバが完了しているので、優先度が低いファイルサーバ１６０のフェールオーバ先の範囲を拡大し、優先度とフェールオーバ先の関係を呼び出し元へ通知して処理を終了する。経過時間が猶予時間を超えたときのルールは、例えば、次の通りでる。
・優先順位Ａ、Ｂ  →  リモートサイト内
・優先順位Ｃ  →  ローカルサイト内
こうして、猶予時間が経過すると、優先度に対するフェールオーバ先を拡大して、データを救済するのである。
【０１５９】
なお、上記では、猶予時間をひとつのしきい値として、２つの優先度とフェールオーバ先の関係を定義したが、値の異なる猶予時間を複数のしきい値として設定し、優先度とフェールオーバ先の関係を多数定義してもよい。
【０１６０】
以上の処理により、優先度の高いファイルサーバ１６０のフェールオーバが完了すると、優先度の低いファイルサーバ１６０はフェールオーバ先を拡大してフェールオーバを実行することができる。したがって、優先度の高いノードのリモートサイト２への引き継ぎをまず最初に行って、重要なデータなどの復旧を迅速に行う。その後、優先度の低いファイルサーバ１６０のフェールオーバ先を拡大しておくことで、ローカルサイト１に災害が発生したり障害が発生したときのフェールオーバを円滑に行うことができる。
【０１６１】
＜まとめ＞
以上のように、第１の実施形態によれば、優先度の高いファイルサーバ１６０と優先度の低いファイルサーバ１６０がほぼ同時にフェールオーバを開始するのを回避することで、優先度の高いファイルサーバ１６０の回復遅延等の悪影響を低減することができる。
【０１６２】
そして優先度の高いファイルサーバ１６０は、障害発生前(周辺で障害発生しとき)に先行してリモートサイト２へフェールオーバさせ、優先度が高くないファイルサーバ１６０は障害発生後にフェールオーバさせることで、時間差を作ることで、優先度の高いファイルサーバ１６０の回復遅延等の悪影響を低減することができる。
【０１６３】
＜第２実施形態＞
図２３は第２の実施形態を示し、前記第１実施形態のノード１−０に仮想ＮＡＳ装置（ＶＮＡＳ：Vortual Network Attached Storage）を採用したもので、その他の構成は前記第１実施形態と同様である。
【０１６４】
図２３において、ノード１−０上ではＯＳ１５０上でリソース制御部１５０を実行し、リソース制御部１５０はノード１−０のハードウェアを論理的に分割する。そして、リソース制御部１５０は、分割した各区画Ｖ１〜ＶｎにＬＵ１３１を論理的に分割した領域を割り当てて、各区画Ｖ１〜Ｖｎに記憶領域のルートディレクトリをそれぞれ提供する。各区画Ｖ１〜Ｖｎではファイルサーバ１６０とフェールオーバ機能１７０が実行され、前記第１実施形態と同様に機能する。また、各区画Ｖ１〜Ｖｎには、それぞれ異なるネットワークインターフェースが接続される。
【０１６５】
このように、ひとつのノード１−０を複数の論理区画Ｖ１〜Ｖｎに分割した場合でも、各区画Ｖ１〜Ｖｎ上のファイルサーバ１６０を前記第１実施形態と同様に扱うことができる。
【０１６６】
なお、仮想ＮＡＳ装置としては、上記の他にノード１−０を複数の論理区画に分割して各論理区画でファイルサーバ１６０を実行するものであればよい。例えば、一つのサーバ上で一つのホストＯＳを実行し、このホストＯＳ上で複数のゲストＯＳを稼動させ、各ゲストＯＳをそれぞれサーバとする仮想計算機（米国特許第６，３９７，２４２号）を適用することができる。
【０１６７】
あるいは、ハイパバイザなどのファームウェア（またはミドルウェア）により、物理計算機を複数の論理区画に分割し、各ＬＰＡＲに対して計算機資源（ＣＰＵ、主記憶、Ｉ／Ｏ）を割当て、各ＬＰＡＲ上でそれぞれＯＳを動作させるも仮想計算機（特開２００２−３０４３６４号）を適用することができる。
【０１６８】
＜第３実施形態＞
図２４は第３の実施形態を示し、前記第１実施形態に第２のリモートサイト３００を加えたもので、その他の構成は前記第１実施形態と同様である。
【０１６９】
リモートサイト３には、各サイト同様に構成され、複数のノード５−０〜５−ｎと、ＲＡＩＤディスクサブシステム５３０と共有ディスク５００Ｓとリモートコピー機能５２０を備え、ＷＡＮ５０に接続されている。
【０１７０】
第１のリモートサイトは前記第１実施形態と同様に機能し、第２のリモートサイト３は、引継ぎ処理の代行を実行することができる。第１のリモートサイト２は、例えば、図１３で示したファイルサーバ監視処理を実行し、自身の負荷状況に応じて、引継ぎ処理呼び出し（Ｓ１９）を他のリモートサイト（例えば、第２のリモートサイト３）の引継ぎ処理を呼び出す（要求する）ことで、第１のリモートサイト２で行われていた複数の監視処理と引継ぎ処理を、第２のリモートサイト３で分担し、あるいは分散することが可能である。これによって、各リモートサイト２，３がＭＡＣアドレスの変化を見て、各自の負荷に応じて引継ぎ可能なリモートサイト２または３へ対象のファイルサーバ１６０をフェールオーバさせることが可能となる。
【０１７１】
＜第４実施形態＞
図２５は第４の実施形態を示し、前記第１実施形態のローカルサイト１からＮＡＳ２００を独立させて、第２のローカルサイトとしたものである。リモートサイト２は前記第１実施形態と同様である。
【０１７２】
第２のローカルサイト１’には、前記第１実施形態と同様のＮＡＳ２００’が含まれる。このＮＡＳ２００’は前記第１実施形態のＮＡＳ２００から共有ＬＵとリモートコピー機能を削除したもので、その他は、前記第１実施形態のＮＡＳ２００と同様である。第２のローカルサイト１’はＬＡＮ１４０’を介してＷＡＮ５０に接続されて、ローカルサイト１及びリモートサイト２の共有ＬＵにアクセス可能となっている。
【０１７３】
第２のローカルサイト１’ではリモートコピー機能が無いが、ＷＡＮ５０を通じてローカルサイト１のような他のサイトの共有ＬＵにアクセスすることができる。このため、第２のローカルサイト１’の引継ぎ情報４００を、ローカルサイト１の共有ＬＵ１３０Ｓに登録しておくことで、第１のローカルサイトから第２のローカルサイト１’へフェールオーバを行うことができる。したがって、リモートコピーされていないサイトを含む構成に対しても本発明を適用することが可能となる。
【０１７４】
すなわち、ＷＡＮ５０等のサイト間を接続するネットワークからアクセス可能な共有ＬＵ（共有記憶領域）が少なくとも一つあれば、リモートコピー機能がないストレージ装置（ＮＡＳ）を用いても、本発明のフェールオーバを実現できるのである。
【図面の簡単な説明】
【０１７５】
【図１】システムの全体的な構成を示すブロック図。
【図２】各ＮＡＳ装置のハードウェア構成を示すブロック図。
【図３】ローカルサイト内のノードで実行されるソフトウェア構成を示すロック図。
【図４】リモートサイト内のノードで実行されるソフトウェア構成を示すロック図。
【図５】優先度に基づくフェールオーバの様子を示す、ローカルサイトとリモートサイトのノードを示すブロック図。
【図６】各ＮＡＳ装置の共有ＬＵに格納される引き継ぎ情報の概要を示すブロック図。
【図７】引き継ぎ情報を構成するサーバ情報テーブルの一例を示す説明図。
【図８】同じく、引き継ぎ情報を構成するサービスＩＰテーブルの一例を示す説明図。
【図９】同じく、引き継ぎ情報を構成するユーザ情報テーブルの一例を示す説明図。
【図１０】同じく、引き継ぎ情報を構成する引き継ぎ履歴テーブルの一例を示す説明図。
【図１１】各ファイルサーバが生成するアクセスログの一例を示す説明図。
【図１２】ローカルサイトの各ノードで実行されるファイルサーバ優先順位付け処理の一例を示すフローチャート。
【図１３】各ノードのファイルサーバ監視処理で実行される処理の一例を示すフローチャートである。
【図１４】同一のＮＡＳ装置内でのフェールオーバの一例を示すブロック図。
【図１５】同一のオード内でのフェールオーバの一例を示すブロック図。
【図１６】同一のローカルサイト内で他のＮＡＳ装置へのフェールオーバの一例を示すブロック図。
【図１７】各ノードで実行される引き継ぎ処理の処理の一例を示すフローチャート。
【図１８】各ノードで実行されるファイルサーバ監視応答処理の一例を示すフローチャート。
【図１９】ローカルサイトの各ノードで実行されるシャットダウン受付処理の一例を示すフローチャート。
【図２０】リモートサイトの各ノードで実行されるローカルサイト監視処理の一例を示すフローチャート。
【図２１】ローカルサイトでフェールオーバが頻発したときに、優先度の高いファイルサーバを事前にフェールオーバさせる例を示すブロック図。
【図２２】リモートサイトの各ノードで実行されるフェールオーバ先制御処理の一例を示すフローチャート。
【図２３】第２の実施形態を示し、仮想ＮＡＳ装置の一例を示すブロック図。
【図２４】第３の実施形態を示し、システム全体の構成を示すブロック図。
【図２５】第４の実施形態を示し、システム全体の構成を示すブロック図。
【符号の説明】
【０１７６】
１  ローカルサイト
２  リモートサイト
１００，２００，３００  ＮＡＳ
１２０，２２０，３２０  リモートコピー機能
１３０，２３０，３３０  ＲＡＩＤディスクサブシステム
１３０Ｓ，２３０Ｓ，３３０Ｓ  共有ＬＵ
５０  ＷＡＮ
１６０、３６０  ファイルサーバ
１７０、３７０  フェールオーバ機能
１７１  ファイルサーバ優先度順位付け処理
１７５  シャットダウン要求受付処理
３７４  ローカルサイト監視処理
３７５  フェールオーバ先制御処理
【図１】
2007279890.tif 000003
【図２】
2007279890.tif 000004
【図３】
2007279890.tif 000005
【図４】
2007279890.tif 000006
【図５】
2007279890.tif 000007
【図６】
2007279890.tif 000008
【図７】
2007279890.tif 000009
【図８】
2007279890.tif 000010
【図９】
2007279890.tif 000011
【図１０】
2007279890.tif 000012
【図１１】
2007279890.tif 000013
【図１２】
2007279890.tif 000014
【図１３】
2007279890.tif 000015
【図１４】
2007279890.tif 000016
【図１５】
2007279890.tif 000017
【図１６】
2007279890.tif 000018
【図１７】
2007279890.tif 000019
【図１８】
2007279890.tif 000020
【図１９】
2007279890.tif 000021
【図２０】
2007279890.tif 000022
【図２１】
2007279890.tif 000023
【図２２】
2007279890.tif 000024
【図２３】
2007279890.tif 000025
【図２４】
2007279890.tif 000026
【図２５】
2007279890.tif 000027