(57)【要約】【課題】要求されるサービスの水準に応じてフェイルオーバーの優先順位が決定されるクラスタシステムを提供する。【解決手段】ネットワークを介してクライアント計算機と接続されるクラスタシステムにおいて、前記クラスタシステムは、前記クライアント計算機にサービスを提供する複数のノードを備え、前記複数のノードのうち第１ノードは、前記クライアント計算機から受信したフレームの優先度を参照するプライオリティ識別処理部を備え、前記複数のノードのうち第２ノードは、前記第１ノードが管理する複数のソフトウエアリソースを、前記第１ノードのプライオリティ識別処理部が参照した優先度に基づいて決定されたフェイルオーバー優先順位に従ってフェイルオーバーするフェイルオーバー処理部を備える。【選択図】      図１
2006260357.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してクライアント計算機と接続されるネットワークストレージシステムにおいて、
前記ネットワークストレージシステムは、
前記クライアント計算機に一つ以上のサービスＩＰアドレスを使用して一つ以上のファイルシステムを提供する第１ノード及び第２ノードと、
前記第１ノード及び前記第２ノードを相互に接続するノード間通信路と、
前記第１ノード及び前記第２ノードと接続された少なくとも一つのディスクサブシステムと、を備え、
前記ディスクサブシステムは、複数の論理ユニットを備え、
前記複数の論理ユニットのうち少なくとも一つは、前記第１ノード及び前記第２ノードによって使用される共有論理ユニットであり、
前記第１ノードは、
前記クライアント計算機から受信したフレームの優先度を参照するプライオリティ識別処理部と、
前記優先度に基づいて、前記サービスＩＰアドレス及び前記ファイルシステムを含む複数のソフトウエアリソースのフェイルオーバー優先順位を決定する優先順位決定処理部と、
所定のタイミングで所定の監視信号を送信する第１監視処理部と、を備え、
前記優先順位決定処理部は、
前記優先度と前記第１ノードが受信したフレームの数とを乗算した第１の値を算出し、
前記優先度を二乗した値と前記第１ノードが受信したフレームの数とを乗算した第２の値を算出し、
前記第１の値と前記第２の値とを加算した値に基づいて、前記フェイルオーバー優先順位を決定し、
前記決定したフェイルオーバー優先順位を、前記共有論理ユニットに格納し、
前記第２ノードは、
前記第１監視処理部が送信した前記監視信号を受信し、前記所定のタイミングで前記監視信号を受信しなかったとき、前記第１ノードに障害が発生したと判定する第２監視処理部と、
前記第２監視処理部が前記第１ノードに障害が発生したと判定したとき、前記共有論理ユニットに格納された前記フェイルオーバー優先順位を参照し、当該参照したフェイルオーバー優先順位に従って前記複数のソフトウエアリソースをフェイルオーバーするフェイルオーバー処理部と、を備えることを特徴とするネットワークストレージシステム。
【請求項２】
ネットワークを介してクライアント計算機と接続されるクラスタシステムにおいて、
前記クラスタシステムは、前記クライアント計算機にサービスを提供する複数のノードを備え、
前記複数のノードのうち第１ノードは、前記クライアント計算機から受信したフレームの優先度を参照するプライオリティ識別処理部を備え、
前記複数のノードのうち第２ノードは、前記第１ノードが管理する複数のソフトウエアリソースを、前記第１ノードのプライオリティ識別処理部が参照した優先度に基づいて決定されたフェイルオーバー優先順位に従ってフェイルオーバーするフェイルオーバー処理部を備えることを特徴とするクラスタシステム。
【請求項３】
前記クラスタシステムは、前記優先度に基づいて前記フェイルオーバー優先順位を決定する優先順位決定処理部を備えることを特徴とする請求項２に記載のクラスタシステム。
【請求項４】
前記第１ノードが前記優先順位決定処理部を備えることを特徴とする請求項３に記載のクラスタシステム。
【請求項５】
前記優先順位決定処理部は、前記優先度と前記第１ノードが受信したフレームの数とを演算した値に基づいて、前記フェイルオーバー優先順位を決定することを特徴とする請求項４に記載のクラスタシステム。
【請求項６】
前記演算は、前記優先度と前記第１ノードが受信したフレームの数との乗算であることを特徴とする請求項５に記載のクラスタシステム。
【請求項７】
前記演算は、前記優先度を二乗した値と前記第１ノードが受信したフレームの数との乗算であることを特徴とする請求項５に記載のクラスタシステム。
【請求項８】
前記演算は、複数の異なる関数に前記優先度と前記第１ノードが受信したフレームの数とを適用して算出された値の加算であることを特徴とする請求項５に記載のクラスタシステム。
【請求項９】
前記クラスタシステムは、前記複数のノードと接続されたディスクサブシステムを備え、
前記ディスクサブシステムは、複数の論理ユニットを備え、
前記各ソフトウエアリソースは、前記クライアント計算機に対して前記論理ユニット内のファイルへのアクセスを提供するファイルシステムと、前記ファイルシステムにアクセスするためのアドレス情報とを含むことを特徴とする請求項４に記載のクラスタシステム。
【請求項１０】
前記複数の論理ユニットの一つは、前記第１ノード及び前記第２ノードがアクセスする共有論理ユニットであり、
前記第１ノードの優先順位決定処理部は、決定した前記フェイルオーバー優先順位を前記共有論理ユニットに格納し、
前記第２ノードのフェイルオーバー処理部は、前記共有論理ユニットに格納された前記フェイルオーバー優先順位を参照し、当該参照したフェイルオーバー優先順位に従って、前記複数のソフトウエアリソースをフェイルオーバーすることを特徴とする請求項９に記載のクラスタシステム。
【請求項１１】
前記クラスタシステムは、前記第１ノード及び前記第２ノードを相互に接続するノード間通信路を備え、
前記第１ノードは、所定のタイミングで所定の監視信号を送信する第１監視処理部を備え、
前記第２ノードは、前記第１監視処理部が送信した前記監視信号を受信し、前記所定のタイミングで前記監視信号を受信しなかったとき、前記第１ノードに障害が発生したと判定する第２監視処理部を備え、
前記第２ノードのフェイルオーバー処理部は、前記第２監視処理部が前記第１ノードに障害が発生したと判定したとき、前記フェイルオーバー優先順位に従って前記第１ノードが管理するソフトウエアリソースをフェイルオーバーすることを特徴とする請求項２に記載のクラスタシステム。
【請求項１２】
ネットワークを介してクライアント計算機と接続されるクラスタシステムのフェイルオーバー方法において、
前記クラスタシステムは、前記クライアント計算機にサービスを提供する複数のノードを備え、
前記複数のノードのうち第１ノードが前記クライアント計算機から受信したフレームの優先度を参照し、
前記第１ノードが管理する複数のソフトウエアリソースを前記複数のノードのうちの第２ノードにフェイルオーバーするときのフェイルオーバー優先順位を、前記参照された優先度に基づいて決定し、
前記フェイルオーバー優先順位に従って、前記複数のソフトウエアリソースを前記複数のノードのうち第２ノードにフェイルオーバーすることを特徴とするフェイルオーバー方法。
【請求項１３】
前記フェイルオーバー優先順位の決定において、前記優先度と前記第１ノードが受信したフレームの数とを演算した値に基づいて、前記フェイルオーバー優先順位を決定することを特徴とする請求項１２に記載のフェイルオーバー方法。
【請求項１４】
前記演算は、前記優先度と前記第１ノードが受信したフレームの数との乗算であることを特徴とする請求項１３に記載のフェイルオーバー方法。
【請求項１５】
前記演算は、前記優先度を二乗した値と前記第１ノードが受信したフレームの数との乗算であることを特徴とする請求項１３に記載のフェイルオーバー方法。
【請求項１６】
前記演算は、複数の異なる関数に前記優先度と前記第１ノードが受信したフレームの数とを適用して算出された値の加算であることを特徴とする請求項１３に記載のフェイルオーバー方法。
【請求項１７】
前記クラスタシステムは、前記複数のノードと接続されたディスクサブシステムを備え、
前記ディスクサブシステムは、複数の論理ユニットを備え、
前記複数の論理ユニットの一つは、前記第１ノード及び前記第２ノードがアクセスする共有論理ユニットであり、
前記フェイルオーバー優先順位の決定において、決定した前記フェイルオーバー優先順位を前記共有論理ユニットに格納し、
前記複数のソフトウエアリソースのフェイルオーバーは、前記共有論理ユニットに格納された前記フェイルオーバー優先順位を参照し、当該参照したフェイルオーバー優先順位に従って、前記複数のソフトウエアリソースをフェイルオーバーすることを特徴とする請求項１２に記載のフェイルオーバー方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムのフェイルオーバーに関する。
【背景技術】
【０００２】
近年、企業等の業務がコンピュータシステムに依存する傾向が強まるに従って、コンピュータシステムの停止が深刻な損害をもたらすようになった。このようなコンピュータシステム全体の停止を避けるための技術の一つが、クラスタシステムである。
【０００３】
クラスタシステムとは、複数のコンピュータ（ノードとも呼ばれる）が結合したまとまり（すなわち、クラスタ）によって構成されるシステムである。クラスタシステムとして、例えば、負荷分散型、フェイルオーバー型等が知られている。
【０００４】
フェイルオーバークラスタシステムとは、複数のコンピュータによって冗長化されたシステムである。例えば、クライアントコンピュータに業務アプリケーションサービスを提供するサーバが、二つのコンピュータからなるクラスタである場合、一方のコンピュータが障害等のために停止すると、そのコンピュータの業務がもう一方のコンピュータによって引き継がれる。その結果、クライアントコンピュータに対するサービスの提供は継続される。
【０００５】
クライアントコンピュータからは、クラスタ全体が一つのコンピュータのように見える。従って、業務の引継ぎ（フェイルオーバー）が実行されても、クライアントコンピュータは、現在どのコンピュータからサービスが提供されているかを意識することがない。
【０００６】
このようなフェイルオーバークラスタシステムにおいて、フェイルオーバー先（業務の引継ぎ先）のコンピュータの稼動状況を考慮せずにフェイルオーバーを実行した場合、フェイルオーバー先のコンピュータが過負荷となり、応答性が低下する場合がある。そこで、フェイルオーバー先のコンピュータの稼動状況に応じて、フェイルオーバーの優先度を変更する技術が開示されている（特許文献１参照）。
【特許文献１】特開平１１−３５３２９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１によれば、フェイルオーバーの優先度は、フェイルオーバー先のコンピュータの稼動状況に基づいて決定される。しかし、障害等によって停止したコンピュータがユーザに提供していたサービスの品質については考慮されていない。したがって、要求するサービス水準が比較的高いユーザに対するサービスを再開する前に、要求するサービス水準が比較的低いユーザに対するサービスが再開される場合がある。このため、要求されるサービス水準が高いユーザへのサービス再開が遅延する場合があった。
【０００８】
本発明は上記の問題点に鑑みてなされたものであり、要求されるサービスの水準に応じてフェイルオーバーの優先順位が決定されるクラスタシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、ネットワークを介してクライアント計算機と接続されるクラスタシステムにおいて、前記クラスタシステムは、前記クライアント計算機にサービスを提供する複数のノードを備え、前記複数のノードのうち第１ノードは、前記クライアント計算機から受信したフレームの優先度を参照するプライオリティ識別処理部を備え、前記複数のノードのうち第２ノードは、前記第１ノードが管理する複数のソフトウエアリソースを、前記第１ノードのプライオリティ識別処理部が参照した優先度に基づいて決定されたフェイルオーバー優先順位に従ってフェイルオーバーするフェイルオーバー処理部を備えることを特徴とする。
【発明の効果】
【００１０】
本発明のクラスタシステムによれば、要求されるサービスの水準に応じてフェイルオーバーの優先順位が決定される。このため、障害等によってコンピュータが停止したとき、より高い水準のサービスを要求するユーザに対しては、より早くフェイルオーバーを実行してサービスを再開することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を、図面を参照して説明する。
【００１２】
図１は、本発明の実施の形態のクラスタシステムの構成を示すブロック図である。
【００１３】
本実施の形態のクラスタシステム１００は、二つのノード１１０及びディスクサブシステム１２０によって構成される。各ノード１１０とディスクサブシステム１２０との間は、通信路１３０によって接続される。二つのノード１１０の間は、ノード間通信路１３５によって接続される。各ノード１１０は、ＬＡＮ１５０を介して、クライアント１４０と接続される。
【００１４】
本実施の形態のクラスタシステム１００は、クライアント１４０に業務アプリケーションサービスを提供するサーバである。例えば、クラスタシステム１００は、クライアント１４０に、クラスタシステム１００が管理するファイルシステムへのアクセスを提供する。この場合、クラスタシステム１００は、クラスタ構成のネットワークストレージ（Network Attached Storage、ＮＡＳ）に相当する。クラスタシステム１００は、他の任意の業務アプリケーションサービスを提供することもできる。
【００１５】
なお、本発明は、三つ以上のノード１１０によって構成されるクラスタシステムにも適用することができる。本実施の形態では、説明のため、二つのノード１１０によって構成されるクラスタシステム１００の例を示す。
【００１６】
クライアント１４０は、ＬＡＮ１５０を介してクラスタシステム１００にアクセスし、業務アプリケーションサービスの提供を受ける計算機である。例えば、クラスタシステム１００がＮＡＳである場合、クライアント１４０は、クラスタシステム１００が提供するファイルシステム内のファイルを対象とした書き込み要求又は読み出し要求を、クラスタシステム１００に発行する。
【００１７】
図１には、二つのクライアント１４０を示すが、任意の数のクライアント１４０がＬＡＮ１５０に接続され、クラスタシステム１００にアクセスすることができる。なお、これらのクライアント１４０は、後で説明するように、仮想ＬＡＮ（ＶＬＡＮ）を構成する。
【００１８】
ＬＡＮ１５０は、クライアント１４０及び本実施の形態のクラスタシステム１００を通信可能に接続するネットワークである。本実施の形態において、ＬＡＮ１５０の物理層及びデータリンク層は、ＩＥＥＥ８０２．３の規格に準拠する。すなわち、イーサネット（登録商標）フレーム（以下、単にフレームと記載する）がＬＡＮ１５０を介して送受信される。さらに、本実施の形態のフレームは、ＶＬＡＮタグ情報を含む。ＶＬＡＮタグ情報とは、ＩＥＥＥ８０２．１Ｄ（ＩＥＥＥ８０２．１ｐ）に準拠するプライオリティ（優先度）情報及びＩＥＥＥ８０２．１Ｑに準拠する仮想ＬＡＮの識別子等である。本実施の形態で送受信されるフレームについては、後で詳細に説明する。
【００１９】
ＬＡＮ１５０のデータリンク層より上位の階層では、任意のプロトコルを使用することができる。本実施の形態では、ＴＣＰ／ＩＰが採用される。このため、本実施の形態のフレームには、ＩＰパケットが格納される。
【００２０】
ノード１１０は、ネットワークインターフェース１１１、ＣＰＵ１１２、メインメモリ１１３及びディスクアダプタ１１４によって構成される計算機である。クラスタシステム１００がクラスタ構成のＮＡＳである場合、ノード１１０は、いわゆるＮＡＳヘッド（ＮＡＳノードとも呼ばれる）に相当する。
【００２１】
ネットワークインターフェース１１１は、ＬＡＮ１５０に接続され、クライアント１４０と通信するインターフェースである。一般に、ノード１１０は複数のネットワークインターフェース１１１を備えることができる。この場合、各ネットワークインターフェース１１１をＬＡＮ１５０に接続することができる。
【００２２】
ＣＰＵ１１２は、ノード１１０の動作を制御するプロセッサである。具体的には、ＣＰＵ１１２は、メインメモリ１１３に格納されたプログラムを実行する。
【００２３】
メインメモリ１１３は、例えば、半導体メモリであり、ＣＰＵ１１２が実行するプログラム及びＣＰＵ１１２によって参照されるデータを格納する。例えば、メインメモリ１１３には、クラスタシステム１００がクライアント１４０に業務アプリケーションサービスを提供するためのプログラム、フェイルオーバーするためのプログラム及びそれらのプログラムを実行する際に必要となるデータが格納される。メインメモリ１１３に格納されるプログラムについては、後で詳細に説明する。
【００２４】
ディスクアダプタ１１４は、通信路１３０に接続され、ディスクサブシステム１２０と通信するインターフェースである。
【００２５】
通信路１３０上では、例えば、ファイバーチャネル（ＦＣ）又はＳＣＳＩ等のプロトコルによる通信が実行される。通信路１３０は、ストレージエリアネットワーク（ＳＡＮ）であってもよい。
【００２６】
二つのノード１１０は、ノード間通信路１３５によって相互に接続される。ノード１１０は、ノード間通信路１３５を経由して相互に通信することができる。例えば、各ノード１１０は、定期的に所定の信号を相互に送受信することによって、正常に稼動しているか否かを相互に監視する、いわゆるハートビート監視を実行することができる。
【００２７】
ディスクサブシステム１２０は、ディスクコントローラ１２１、ディスクキャッシュ１２２及びディスクドライブ１２３によって構成される。
【００２８】
ディスクコントローラ１２１は、通信路１３０に接続される一つ以上のポート（図示省略）を備え、ノード１１０と通信し、ディスクサブシステム１２０を制御する。具体的には、ディスクコントローラ１２１は、通信路１３０を介してノード１１０と通信し、ノード１１０からの要求に従って、ディスクドライブ１２３にデータを書き込み、又は、ディスクドライブ１２３からデータを読み出す。
【００２９】
ディスクキャッシュ１２２は、例えば、半導体メモリであり、ディスクドライブ１２３に書き込まれるデータ又はディスクドライブ１２３から読み出されたデータを一時的に格納する。
【００３０】
ディスクドライブ１２３は、データを格納するハードディスクドライブである。ディスクサブシステムには、任意の数のディスクドライブ１２３が設けられる。これらのディスクドライブ１２３は、ＲＡＩＤを構成してもよい。図１には、４個のディスクドライブ１２３を示す。
【００３１】
ディスクドライブ１２３の記憶領域は、任意の数の論理ユニット（ＬＵ）１２４に分割される。ＬＵ１２４は、論理的なディスクドライブとして扱われる領域である。ディスクドライブ１２３がＲＡＩＤを構成する場合、図１に示すように、一つのＬＵ１２４は、複数のディスクドライブの記憶領域によって構成されてもよい。各ＬＵ１２４の大きさは任意である。
【００３２】
図１には、一つのディスクサブシステム１２０のみを示すが、本実施の形態のクラスタシステム１００は、複数のディスクサブシステム１２０を備えてもよい。この場合、二つのノード１１０と複数のディスクサブシステム１２０とを接続する通信路１３０は、例えば、ＳＡＮである。
【００３３】
図２は、本発明の実施の形態のクラスタシステム１００の論理的な構成を示すブロック図である。
【００３４】
本実施の形態において、ＬＡＮ１５０に接続されたクライアント１４０等の端末は、複数の仮想ＬＡＮ（ＶＬＡＮ）２０１を構成する。図２の例では、６個の仮想ＬＡＮ２０１が構成されている。各仮想ＬＡＮ２０１は、仮想ＬＡＮ識別子（ＶＬＡＮＩＤ）によって識別される。図２の例では、各仮想ＬＡＮ２０１のＶＬＡＮＩＤは、「１０」、「２０」、「３０」、「４０」、「５０」及び「６０」である。以下の説明において、ＶＬＡＮＩＤが「１０」である仮想ＬＡＮ２０１を単にＶＬＡＮ１０と記載する。他の仮想ＬＡＮ２０１についても同様である。
【００３５】
図１に示したように、本実施の形態のクラスタシステム１００は、二つのノード１１０を備える。以下、二つのノード１１０のうち一方をノード１、もう一方をノード２と記載する。
【００３６】
各ノード１１０は、二つのネットワークインターフェース（ＮＩＦ）１１１を備える。以下、各ノード１１０が備える二つのＮＩＦ１１１のうち一方をＮＩＦ１、もう一方をＮＩＦ２と記載する。
【００３７】
上記の６個の仮想ＬＡＮ２０１のうち、ＶＬＡＮ１０、ＶＬＡＮ２０及びＶＬＡＮ５０は、ノード１及びノード２のＮＩＦ１に接続されたＬＡＮ１５０内に構成される。一方、ＶＬＡＮ３０、ＶＬＡＮ４０及びＶＬＡＮ６０は、ノード１及びノード２のＮＩＦ２に接続されたＬＡＮ１５０内に構成される。
【００３８】
本実施の形態のクラスタシステム１００は、任意の数のＬＵ１２４を備える。図２には、例として、６個のＬＵ１２４を示す。識別子が「ＬＵ１」、「ＬＵ２」及び「ＬＵ３」の三つのＬＵ１２４は、ノード１に論理的に接続されている。すなわち、ノード１は、これらの三つのＬＵ１２４にアクセスすることができる。ノード２には、識別子が「ＬＵ４」及び「ＬＵ５」の二つのＬＵ１２４が論理的に接続されている。残りの一つのＬＵ１２４は、ノード１及びノード２の両方に論理的に接続された共有ＬＵ１２４である。すなわち、ノード１及びノード２は、いずれも、共有ＬＵ１２４にアクセスすることができる。
【００３９】
各ノード１１０は、任意の数のリソースグループ２０２を管理する。図２の例では、各ノード１１０がそれぞれ３つのリソースグループ２０２を管理する。
【００４０】
リソースグループ２０２とは、ノード１１０が各ＶＬＡＮに提供するソフトウエアリソースの集合である。本実施の形態のリソースグループ２０２は、ノード１１０が各ＶＬＡＮに提供するファイルシステム及びそれらのファイルシステムを提供するためのサービスＩＰアドレスの集合である。リソースグループ２０２については、後で詳細に説明する。
【００４１】
ノード１が管理するリソースグループ２０２の名前（リソースグループ名）は、「ＲＧ１−１」、「ＲＧ１−２」及び「ＲＧ１−３」である。ノード２が管理するリソースグループ２０２のリソースグループ名は、「ＲＧ２−１」、「ＲＧ２−２」及び「ＲＧ２−３」である。以下、リソースグループ名が「ＲＧ１−１」であるリソースグループ２０２を、単に「ＲＧ１−１」と記載する。他のリソースグループ２０２についても同様である。
【００４２】
ノード１が管理するＲＧ１−１、ＲＧ１−２及びＲＧ１−３に含まれるファイルシステムは、ノード１がアクセスするＬＵ１、ＬＵ２又はＬＵ３のいずれかに格納される。一方、ノード２が管理するＲＧ２−１、ＲＧ２−２及びＲＧ２−３に含まれるファイルシステムは、ノード２がアクセスするＬＵ４又はＬＵ５のいずれかに格納される。
【００４３】
ノード１及びノード２は、相互にハートビート監視を実行する。すなわち、ノード１及びノード２は、所定の間隔で、所定の信号（ハートビート信号）を相互に送信する。一方のノード１１０が、他方のノード１１０から所定の間隔で送信されたハートビート信号を受信している間は、その他方のノードが正常に動作していると判定する。そして、ハートビート信号が途絶え、受信できなくなった場合、その他方のノード１１０に障害が発生したと判定する。
【００４４】
図３は、本発明の実施の形態のクラスタシステム１００によって管理されるリソースグループ２０２の説明図である。
【００４５】
図３は、例として、ＲＧ１−１及びＲＧ１−２について示す。
【００４６】
図３には、仮想ＬＡＮ２０１に提供する５個のファイルシステム３０１及び６個のサービスＩＰアドレス３０２を示す。
【００４７】
各ファイルシステム３０１は、ファイルシステム名によって識別される。図３の５個のファイルシステム３０１のファイルシステム名は、それぞれ、「ＦＳ−１Ａ」、「ＦＳ−１Ｂ」、「ＦＳ−１Ｃ」、「ＦＳ−２Ａ」及び「ＦＳ−２Ｂ」である。以下、ファイルシステム名が「ＦＳ−１Ａ」であるファイルシステム３０１を、単に「ＦＳ−１Ａ」と記載する。他のファイルシステム３０１についても同様である。
【００４８】
図３の例では、ＦＳ−１Ａ、ＦＳ−１Ｂ及びＦＳ−１ＣがＲＧ１−１に含まれる。ＦＳ−１Ａは、ＶＬＡＮ１０及びＶＬＡＮ２０に提供される。ＦＳ−１Ｂは、ＶＬＡＮ２０に提供される。ＦＳ−１Ｃは、ＶＬＡＮ３０及びＶＬＡＮ４０に提供される。一方、「ＦＳ−２Ａ」及び「ＦＳ−２Ｂ」は、ＲＧ１−２に含まれる。ＦＳ−２Ａ及びＦＳ−２Ｂは、共に、ＶＬＡＮ５０及びＶＬＡＮ６０に提供される。
【００４９】
図３の各サービスＩＰアドレス３０２の値は、それぞれ、「ＳＩＰ−Ｖ１０」、「ＳＩＰ−Ｖ２０」、「ＳＩＰ−Ｖ３０」、「ＳＩＰ−Ｖ４０」、「ＳＩＰ−Ｖ５０」及び「ＳＩＰ−Ｖ６０」である。なお、本実施の形態では説明のために「ＳＩＰ−Ｖ１０」のような記号で示すが、実際のサービスＩＰアドレス３０２は、例えば、「１７２．１６．２．３」のような値となる。
【００５０】
図３の例では、ＳＩＰ−Ｖ１０、ＳＩＰ−Ｖ２０、ＳＩＰ−Ｖ３０及びＳＩＰ−Ｖ４０がＲＧ１−１に含まれる。ＳＩＰ−Ｖ１０は、ＶＬＡＮ１０にＦＳ−１Ａを提供するために使用される。ＳＩＰ−Ｖ２０は、ＶＬＡＮ２０にＦＳ−１Ａ及びＦＳ−１Ｂを提供するために使用される。ＳＩＰ−Ｖ３０は、ＶＬＡＮ３０にＦＳ−１Ｃを提供するために使用される。ＳＩＰ−Ｖ４０は、ＶＬＡＮ４０にＦＳ−１Ｃを提供するために使用される。
【００５１】
一方、ＳＩＰ−Ｖ５０及びＳＩＰ−Ｖ６０は、ＲＧ１−２に含まれる。ＳＩＰ−Ｖ５０は、ＶＬＡＮ５０にＦＳ−２Ａ及びＦＳ−２Ｂを提供するために使用される。ＳＩＰ−Ｖ６０は、ＶＬＡＮ６０にＦＳ−２Ａ及びＦＳ−２Ｂを提供するために使用される。
【００５２】
なお、リソースグループ２０２は、ファイルシステム３０１及びサービスＩＰアドレス３０２以外のソフトウエアリソースを含んでもよい。
【００５３】
図４は、本発明の実施の形態のクラスタシステム１００において実行されるフェイルオーバーの説明図である。
【００５４】
図４は、図２のノード１に障害が発生し、フェイルオーバーが実行された後の状態を示す。
【００５５】
ノード２は、ノード１から送信されたハートビート信号を受信できなくなったとき、ノード１に障害が発生したと判定する。このとき、各仮想ＬＡＮ２０１のクライアント１４０は、ＲＧ１−１、ＲＧ１−２及びＲＧ１−３に含まれるファイルシステム３０１にアクセスすることができない。そこで、これらのファイルシステム３０１をノード１に代わって各仮想ＬＡＮ２０１に提供するため、ノード２は、ＲＧ１−１、ＲＧ１−２及びＲＧ１−３の管理を引き継ぐ。
【００５６】
具体的には、ノード１に接続されていたＬＵ１、ＬＵ２及びＬＵ３をノード２に接続すると共に、ＲＧ１−１、ＲＧ１−２及びＲＧ１−３に含まれるファイルシステム３０１をノード２にマウントする等の処理を実行する。
【００５７】
その結果、各仮想ＬＡＮ２０１のクライアント１４０は、ノード２を介して、ＲＧ１−１、ＲＧ１−２及びＲＧ１−３に含まれるファイルシステム３０１にアクセスできるようになる。
【００５８】
このフェイルオーバーの手順には、上記のように、ファイルシステム３０１をフェイルオーバー先のノード２にマウントする処理等が含まれる。このため、フェイルオーバーの対象となるファイルシステム３０１の数が多くなるほど、フェイルオーバーに要する時間（すなわち、フェイルオーバーの対象となる全てのファイルシステム３０１が利用可能となるまでの時間）も増大する。このため、より早くサービスを開始する必要があるリソースグループ２０２については、優先的にフェイルオーバーを実行することが望ましい。
【００５９】
本実施の形態のクラスタシステム１００は、ＬＡＮ１５０上で送受信されるフレームに含まれるプライオリティ（後述）を参照して、各リソースグループについてフェイルオーバーの優先順位を決定し、その優先順位に従ってフェイルオーバーを実行する。
【００６０】
なお、図４は、例として、ノード１に障害が発生した場合を示したが、保守点検ためにノード１を計画的に停止する場合等にも本発明を適用することができる。
【００６１】
図５は、本発明の実施の形態のクラスタシステム１００を構成するノード１１０の機能ブロック図である。
【００６２】
本実施の形態のノード１１０は、少なくとも、ＶＬＡＮ制御部５００、ファイル共有制御部５１０及びフェイルオーバー制御部５２０を備える。これらの各部は、メインメモリ１１３に格納されたプログラムがＣＰＵ１１２によって実行されることによって実現される。
【００６３】
ＶＬＡＮ制御部５００は、ＶＬＡＮパケット送受信処理部５０１及びプライオリティ識別処理部５０２を含む。これらの処理部は、ＶＬＡＮ制御部５００のサブプログラムに相当する。
【００６４】
ＶＬＡＮパケット送受信処理部５０１は、タグ付きパケットを送受信する。具体的には、ＶＬＡＮパケット送受信処理部５０１は、ＩＥＥＥ８０２．１Ｑの規格によってタグ情報を付与されたパケット（正確には、パケットを格納したフレーム）を受信する。また、クライアント１４０に応答するときに、受信したＶＬＡＮＩＤをパケットに付与して送信する。ＩＥＥＥ８０２．１Ｑに準拠したフレーム（タグ情報及びＶＬＡＮＩＤを含む）については、図６において詳細に説明する。ＶＬＡＮパケット送受信処理部５０１が実行する処理の手順については、図１９及び図２０において詳細に説明する。
【００６５】
プライオリティ識別処理部５０２は、受信したタグ付きパケットのＶＬＡＮＩＤとプライオリティを参照して、両者の対応を管理するテーブルを作成する。プライオリティ識別処理部５０２が作成するテーブルについては、図７において詳細に説明する。また、プライオリティ識別処理部５０２が実行する処理の手順については、図２１において詳細に説明する。
【００６６】
ファイル共有制御部５１０は、アクセス要求受付処理部５１１を含む。アクセス要求受付処理部５１１は、ファイル共有制御部５１０のサブプログラムに相当する。アクセス要求受付処理部５１１は、ファイルシステム３０１に対するアクセス要求を受けた日時、及び、そのアクセスの際に使用されたサービスＩＰアドレス３０２を記録する。アクセス要求受付処理部５１１によって記録される情報（テーブル）については、図８において詳細に説明する。また、アクセス要求受付処理部５１１が実行する処理の手順については、図２２において詳細に説明する。
【００６７】
フェイルオーバー制御部５２０は、優先順位決定処理部５２１、フェイルオーバー処理部５２２及びハートビート監視処理部５２３を含む。これらの処理部は、フェイルオーバー制御部５２０のサブプログラムに相当する。
【００６８】
優先順位決定処理部５２１は、環境設定情報（図示省略）に基づいて、ＶＬＡＮＩＤとサービスＩＰアドレス３０２との対応を示すテーブル、及び、リソースグループ２０２とファイルシステム３０１との対応を示すテーブルを作成する。さらに、優先順位決定処理部５２１は、これらのテーブルの内容を参照して、リソースグループ２０２ごとにフェイルオーバーの優先順位を決定する。優先順位決定処理部５２１は、決定した優先順位を共有ＬＵ１２４に格納する。優先順位決定処理部５２１が作成するテーブル及び優先順位決定処理部５２１が決定する優先順位については、図９から図１８において詳細に説明する。また、優先順位決定処理部５２１が実行する処理については、図２３から図２５において詳細に説明する。
【００６９】
フェイルオーバー処理部５２２は、優先順位決定処理部５２１によって決定された優先順位に従ってフェイルオーバーを実行する。具体的には、フェイルオーバー処理部５２２は、他のノード１１０が障害等によって停止したとき、停止したノード１１０の優先順位決定処理部５２１が共有ＬＵ１２４に格納した優先順位を参照する。そして、その優先順位に従ってリソースグループ２０２のフェイルオーバーを実行し、順次サービスを開始する。フェイルオーバー処理部５２２が実行する処理については、図２６において詳細に説明する。
【００７０】
ハートビート監視処理部５２３は、ハートビート監視を実行する。具体的には、ノード１のハートビート監視処理部５２３は、所定のタイミングで（例えば、所定の時刻に、又は、所定の時間間隔で）所定のハートビート信号をノード２に送信する。その一方で、ノード１のハートビート監視処理部５２３は、ノード２のハートビート監視処理部５２３から送信されたハートビート信号を受信する。そして、ノード１のハートビート監視処理部５２３は、受信しているハートビート信号が途絶えたとき（すなわち、所定のタイミングでハートビート信号を受信できなかったとき）、ノード２に障害が発生したと判定する。
【００７１】
ノード２のハートビート監視処理部５２３も、同様に、所定のタイミングでハートビート信号をノード１に送信する一方で、ノード１から送信されたハートビート信号を受信し、ノード１に障害が発生したか否かを判定する。
【００７２】
図６は、本発明の実施の形態のＬＡＮ１５０上で送受信されるフレーム６００の説明図である。
【００７３】
既に述べたように、本実施の形態のＬＡＮ１５０上で送受信されるフレーム６００は、ＩＥＥＥ８０２．３、ＩＥＥＥ８０２．１Ｄ（ＩＥＥＥ８０２．１ｐ）及びＩＥＥＥ８０２．１Ｑの規格に準拠する。
【００７４】
フレーム６００は、八つのフィールドからなる。各フィールドには、それぞれ、プリアンブル６１０、宛先アドレス６１０、送信元アドレス６３０、タグプロトコル識別子（ＴＰＩＤ）６４０、タグ制御情報（ＴＣＩ）６５０、タイプ６６０、データ６７０及びフレームチェックシーケンス（ＦＣＳ）６８０が格納される。なお、プリアンブル６１０が先頭のフィールドに格納され、ＦＣＳ６８０が末尾のフィールドに格納される。
【００７５】
プリアンブル６１０は、８バイトからなり、ＬＡＮ１５０に接続されたインターフェース（例えば、ネットワークインターフェース１１１）にフレーム６００の開始を認識させ、同期を確立するタイミングを与えるための信号である。
【００７６】
宛先アドレス６２０は、６バイトからなり、フレーム６００の宛先のインターフェースのメディアアクセスコントロールアドレス（ＭＡＣアドレス）である。
【００７７】
送信元アドレス６３０は、６バイトからなり、フレーム６００の送信元のインターフェースのＭＡＣアドレスである。
【００７８】
ＴＰＩＤ６４０は、２バイトからなる。仮想ＬＡＮ２０１をサポートする本実施の形態では、ＴＰＩＤ６４０の値は０ｘ８１００に固定される。
【００７９】
ＴＣＩ６５０は、２バイトからなるタグ制御情報（ＶＬＡＮタグ）である。ＴＣＩ６５０には、３ビットのプライオリティ６５１、１ビットのCanonical Format Indicator（ＣＦＩ）６５２及び１２ビットの仮想ＬＡＮ識別子（ＶＩＤ）６５３が含まれる。
【００８０】
プライオリティ６５１は、ＩＥＥＥ８０２．１ｐに準拠する、フレーム６００の伝送の優先度を示す値であり、ＱｏＳ（Quality of Service）を実現するために利用される。プライオリティ６５１は、「０」から「７」までの８通りの値をとり、この値が大きいほどフレーム６００の優先度が高い。本実施の形態では、プライオリティ６５１の値を参照して、フェイルオーバーするリソースグループ２０２の優先順位が決定される。
【００８１】
ＣＦＩ６５２は、ルーティン情報フィールドがあるか否かを示す。
【００８２】
ＶＩＤ６５３は、クラスタシステム１００に接続された仮想ＬＡＮ２０１の一意の識別子である。ＶＩＤ６５３は、「０」から「４０９５」までの値をとり得るが、仮想ＬＡＮ２０１の識別子として使用されるのは「１」から「４０９４」までの範囲の値である。したがって、最大４０９４個の仮想ＬＡＮ２０１がＶＩＤ６５３によって識別される。
【００８３】
なお、このＶＩＤ６５３は、図２において説明したＶＬＡＮＩＤに相当する。
【００８４】
タイプ６６０は、データ６７０のフィールドに格納される上位層プロトコルの識別子である。例えば、上位層プロトコルがInternet Protocol Version 4（ＩＰｖ４）である場合、タイプ６６０の値は０ｘ０８００である。
【００８５】
データ６７０は、フレーム６００によって伝送されるデータ（いわゆるペイロード）である。フレーム６００には、最小４６バイト、最大１５００バイトのデータ６７０が格納される。本実施の形態では、ＴＣＰ／ＩＰが採用されるため、データ６７０としてＩＰパケットが格納される。
【００８６】
ＦＣＳ６８０は、フレーム６００の宛先アドレス６２０からデータ６７０までのフィールドから算出された４バイトの巡回冗長検査（ＣＲＣ）である。
【００８７】
次に、各ノード１１０が作成する各種のテーブルについて説明する。これらのテーブルは、各ノード１１０が管理するリソースグループ２０２のフェイルオーバーの優先順位を決定するために使用される。
【００８８】
以下、例として、ノード１が作成するテーブルを説明する。ノード１に障害が発生したとき、ノード２は、これらのテーブルの内容に基づいて決定された優先順位に従ってフェイルオーバーを実行することができる。
【００８９】
ノード１は、これらのテーブルをメインメモリ１１３に格納してもよいし、共有ＬＵ１２４に格納してもよい。
【００９０】
なお、ノード２も、同様のテーブルを作成する。ノード２によって作成されたテーブルの内容に基づいて決定された優先順位は、ノード２に障害が発生したときに、ノード１によって参照される。
【００９１】
図７は、本発明の実施の形態のＶＬＡＮＩＤ・プライオリティ対応テーブルの説明図である。
【００９２】
ＶＬＡＮＩＤ・プライオリティ対応テーブル７００は、ＶＬＡＮ制御部内のプライオリティ識別処理部５０２によって作成される（図２１参照）。
【００９３】
ＶＬＡＮＩＤ・プライオリティ対応テーブル７００には、ノード１が受信したフレーム６００の送信元のＶＬＡＮＩＤ７０１及びそのフレーム６００のプライオリティ７０２が格納される。具体的には、ＶＬＡＮＩＤ７０１として、受信したフレーム６００のＶＩＤ６５３の値が格納され、プライオリティ７０２として、そのフレーム６００のプライオリティ６５１の値が格納される。
【００９４】
図７の例では、ＶＬＡＮＩＤ７０１の値「１０」に対応するプライオリティ７０２の値が「７」である。これは、ＶＬＡＮＩＤ７０１の値（すなわち、ＶＩＤ６５３の値）が「１０」である仮想ＬＡＮ２０１（すなわち、ＶＬＡＮ１０）から受信したフレーム６００のプライオリティ６５１の値が「７」であったことを示す。同様に、ＶＬＡＮＩＤ７０１の値「２０」、「３０」、「４０」、「５０」及び「６０」に対応するプライオリティ７０２の値は、それぞれ、「５」、「４」、「２」、「２」及び「３」である。これは、ＶＬＡＮ２０、ＶＬＡＮ３０、ＶＬＡＮ４０、ＶＬＡＮ５０及びＶＬＡＮ６０から受信したフレーム６００のプライオリティ６５１の値が、それぞれ、「５」、「４」、「２」、「２」及び「３」であったことを示す。
【００９５】
なお、仮想ＬＡＮ２０１から新たに受信したフレーム６００のプライオリティ６５１の値が、以前に同一の仮想ＬＡＮ２０１から受信した値と異なっていた場合、プライオリティ識別処理部５０２は、プライオリティ７０２の値を、新たに受信したプライオリティ６５１の値に更新する。例えば、図７の例において、ＶＬＡＮ１０から新たに受信したフレーム６００のプライオリティ６５１の値が「１」であった場合、プライオリティ識別処理部５０２は、ＶＬＡＮＩＤ７０１の値「１０」に対応するプライオリティ７０２の値を、「７」から「１」に更新する（図２１参照）。
【００９６】
図８は、本発明の実施の形態のファイルシステムアクセス情報テーブルの説明図である。
【００９７】
ファイルシステムアクセス情報テーブル８００は、ファイル共有制御部５１０内のアクセス要求受付処理部５１１によって作成される（図２２参照）。
【００９８】
ファイルシステムアクセス情報テーブル８００には、ノード１に対するアクセスごとに、そのアクセス要求を受信した日時８０１、アクセス対象のファイルシステム名８０２及びアクセス対象のサービスＩＰアドレス８０３が格納される。本実施の形態では、ノード１に対するアクセス要求はフレーム６００として送受信されるため、日時８０１は、ノード１がフレーム６００を受信した日時である。
【００９９】
図８の例において、日時８０１の値「２００４１２２００３５１３０」に対応するファイルシステム名８０２及びサービスＩＰアドレス８０３の値は、それぞれ、「ＦＳ−１Ａ」及び「ＳＩＰ−Ｖ１０」である。これは、２００４年１２月２０日午前３時５１分３０秒にノード１が受信したアクセス要求の対象のファイルシステム３０１が「ＦＳ−１Ａ」であり、対象のサービスＩＰアドレス３０２が「ＳＩＰ−Ｖ１０」であったことを示す。
【０１００】
同様に、図８の例において、ノード１は、２００４年１２月２０日午前３時５１分３２秒にＦＳ−１Ｂ及びＳＩＰ−Ｖ２０を対象としたアクセスを、２００４年１２月２０日午前３時５１分３５秒にＦＳ−２Ａ及びＳＩＰ−Ｖ５０を対象としたアクセスを、２００４年１２月２０日午前３時５５分４０秒にＦＳ−２Ｂ及びＳＩＰ−Ｖ６０を対象としたアクセスを、２００４年１２月２０日午前４時５１分２１秒にＦＳ−１Ｃ及びＳＩＰ−Ｖ３０を対象としたアクセス要求を受信している。
【０１０１】
その後も、ノード１がアクセス要求を受信するたびに、アクセス要求受付処理部５１１は、そのアクセス要求を受信した日時８０１、ファイルシステム名８０２及びサービスＩＰアドレス８０３を、ファイルシステムアクセス情報テーブル８００に追加する（図２２参照）。
【０１０２】
図９は、本発明の実施の形態のＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブルの説明図である。
【０１０３】
ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００は、フェイルオーバー制御部５２０内の優先順位決定処理部５２１によって作成される（図２４参照）。
【０１０４】
ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００には、ノード１が管理するファイルシステム３０１にアクセスする仮想ＬＡＮ２０１のＶＬＡＮＩＤ９０１と、その仮想ＬＡＮ２０１がファイルシステム３０１にアクセスする際に使用するサービスＩＰアドレス９０２が格納される。
【０１０５】
仮想ＬＡＮ２０１とサービスＩＰアドレス３０２との対応が図３に示す通りである場合、ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００の内容は、図９に示す通りとなる。すなわち、ＶＬＡＮ１０、ＶＬＡＮ２０、ＶＬＡＮ３０、ＶＬＡＮ４０、ＶＬＡＮ５０及びＶＬＡＮ６０は、それぞれ、ＳＩＰ−Ｖ１０、ＳＩＰ−Ｖ２０、ＳＩＰ−Ｖ３０、ＳＩＰ−Ｖ４０、ＳＩＰ−Ｖ５０及びＳＩＰ−Ｖ６０と対応する。
【０１０６】
ノード１がさらに多くのサービスＩＰアドレス３０２によってさらに多くの仮想ＬＡＮ２０１にサービスを提供する場合、それらの仮想ＬＡＮ２０１のＶＬＡＮＩＤ及びサービスＩＰアドレス３０２が、ＶＬＡＮＩＤ９０１及びサービスＩＰアドレス９０２としてＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００に格納される。
【０１０７】
通常、優先順位決定処理部５２１は、ノード１が初期設定されるときに、環境設定情報（図示省略）を参照して、ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００を作成し、その後は更新しない。ただし、ノード１が新たな仮想ＬＡＮへのサービスの提供を開始する場合、又は、仮想ＬＡＮ２０１とサービスＩＰアドレス３０２との対応を変更する場合等には、優先順位決定処理部５２１がＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００の内容を更新する。
【０１０８】
図１０は、本発明の実施の形態のファイルシステム・リソースグループ対応テーブルの説明図である。
【０１０９】
ファイルシステム・リソースグループ対応テーブル１０００は、フェイルオーバー制御部５２０内の優先順位決定処理部５２１によって作成される（図２４参照）。
【０１１０】
ファイルシステム・リソースグループ対応テーブル１０００には、ノード１が管理するリソースグループ２０２のリソースグループ名と、そのリソースグループ２０２に含まれるファイルシステム３０１のファイルシステム名１００２が格納される。
【０１１１】
本実施の形態のノード１が図３に示すようなリソースグループ２０２を管理する場合、ファイルシステム・リソースグループ対応テーブル１０００の内容は図１０のようになる。すなわち、リソースグループ名１００１の値「ＲＧ１−１」に対応するファイルシステム名１００２の値は、ＦＳ−１Ａ、ＦＳ−１Ｂ及びＦＳ−１Ｃである。また、リソースグループ名１００１の値「ＲＧ１−２」に対応するファイルシステム名１００２の値は、ＦＳ−２Ａ及びＦＳ−２Ｂである。
【０１１２】
ノード１がさらに多くのリソースグループ２０２及びファイルシステム３０１を備える場合、それらのリソースグループ名１００１及びファイルシステム名１００２がファイルシステム・リソースグループ対応テーブル１０００に格納される。
【０１１３】
通常、優先順位決定処理部５２１は、ノード１が初期設定されるときに、環境設定情報（図示省略）を参照して、ファイルシステム・リソースグループ対応テーブル１０００を作成し、その後は更新しない。ただし、ノード１に新たなリソースグループ２０２が追加される場合、リソースグループ２０２にファイルシステム３０１が追加される場合、又は、リソースグループ２０２からファイルシステム３０１が削除される場合等には、優先順位決定処理部５２１がファイルシステム・リソースグループ対応テーブル１０００の内容を更新する。
【０１１４】
図１１は、本発明の実施の形態のアクセスごとのリソースグループアクセスプライオリティテーブルの説明図である。
【０１１５】
アクセスごとのリソースグループアクセスプライオリティテーブル１１００は、フェイルオーバー制御部５２０内の優先順位決定処理部５２１によって作成される。優先順位決定処理部５２１は、ＶＬＡＮＩＤ・プライオリティ対応テーブル７００（図７）、ファイルシステムアクセス情報テーブル８００（図８）、ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００（図９）及びファイルシステム・リソースグループ対応テーブル１０００（図１０）を参照して、アクセスごとのリソースグループアクセスプライオリティテーブル１１００を作成する。
【０１１６】
アクセスごとのリソースグループアクセスプライオリティテーブル１１００には、ノード１に対するアクセスごとに、そのアクセスの日時１１０１、アクセス対象のリソースグループ名１１０２及びそのアクセスのプライオリティ１１０３が格納される。
【０１１７】
日時１１０１は、ファイルシステムアクセス情報テーブル８００の日時８０１に対応する。
【０１１８】
リソースグループ名１１０２は、ファイルシステムアクセス情報テーブル８００のファイルシステム名８０２及びファイルシステム・リソースグループ対応テーブル１０００から導き出される。
【０１１９】
プライオリティ１１０３は、ファイルシステムアクセス情報テーブル８００のサービスＩＰアドレス８０３、ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００及びＶＬＡＮＩＤ・プライオリティ対応テーブル７００から導き出される。
【０１２０】
例えば、ファイルシステムアクセス情報テーブル８００において、２００４年１２月２０日午前３時５１分３０秒にノード１が受信したアクセス要求の対象のファイルシステム名８０２は「ＦＳ−１Ａ」であり、対象のサービスＩＰアドレス名８０３は「ＳＩＰ−Ｖ１０」である。
【０１２１】
ファイルシステム・リソースグループ対応テーブル１０００を参照することによって、「ＦＳ−１Ａ」が「ＲＧ１−１」と対応することが導き出される。
【０１２２】
一方、ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００を参照することによって、「ＳＩＰ−Ｖ１０」がＶＬＡＮＩＤ９０１の値「１０」と対応することが導き出される。さらに、ＶＬＡＮＩＤ・プライオリティ対応テーブル７００を参照することによって、ＶＬＡＮＩＤ９０１の値「１０」がプライオリティ７０２の値「７」と対応することが導き出される。
【０１２３】
したがって、日時１１０１の値「２００４１２２００３５１３０」には、リソースグループ名１１０２の値「ＲＧ１−１」及びプライオリティ１１０３の値「７」が対応することが導き出される。すなわち、ノード１が、２００４年１２月２０日午前３時５１分３０秒に、ＲＧ１−１内のファイルシステム３０１へのアクセス要求を含むフレーム６００を受信し、そのフレーム６００のプライオリティ６５１が「７」であったことを意味する。
【０１２４】
同様にして、日時１１０１の値「２００４１２２００３５１３２」には、リソースグループ名１１０２の値「ＲＧ１−１」及びプライオリティ１１０３の値「５」が対応することが導き出される。日時１１０１の値「２００４１２２００３５１３５」には、リソースグループ名１１０２の値「ＲＧ１−２」及びプライオリティ１１０３の値「２」が対応することが導き出される。日時１１０１の値「２００４１２２００３５５４０」には、リソースグループ名１１０２の値「ＲＧ１−２」及びプライオリティ１１０３の値「３」が対応することが導き出される。日時１１０１の値「２００４１２２００４５１２１」には、リソースグループ名１１０２の値「ＲＧ１−１」及びプライオリティ１１０３の値「４」が対応することが導き出される。
【０１２５】
このようにして、受信したフレーム６００ごとに（すなわち、受信したアクセス要求ごとに）、そのフレーム６００のプライオリティ６５１と、そのフレーム６００のアクセス対象のリソースグループ２０２との対応が明らかになる。
【０１２６】
図１２は、本発明の実施の形態の単位時間当たりのリソースグループアクセスプライオリティテーブルの説明図である。
【０１２７】
単位時間当たりのリソースグループアクセスプライオリティテーブル１２００は、フェイルオーバー制御部５２０内の優先順位決定処理部５２１によって作成される（図２５参照）。
【０１２８】
図１２において、リソースグループ名１２０１は、ノード１が管理するリソースグループ２０２の名前である。本実施の形態の場合、ノード１が管理するリソースグループ名１２０１は、ＲＧ１−１、ＲＧ１−２及びＲＧ１−３である（図２参照）。
【０１２９】
プライオリティ１２０２は、受信したフレーム６００のプライオリティ６５１である。プライオリティ１２０２は、０から７までの値をとる（図６参照）。
【０１３０】
単位時間当たりのリソースグループアクセスプライオリティテーブル１２００において、各リソースグループ名１２０１及びプライオリティ１２０２に対応する値は、所定の単位時間にノード１が受信したフレーム６００の数（すなわち、アクセス要求の回数。以下、単にアクセス回数と記載する）を、リソースグループ名１２０１及びプライオリティ１２０２ごとに集計した値である。本実施の形態では、所定の単位時間を１時間とするが、他の時間（例えば、３０分、２時間、２４時間等）であってもよい。
【０１３１】
具体的には、優先順位決定処理部５２１が、アクセスごとのリソースグループアクセスプライオリティテーブル１１００を参照して、単位時間当たりのリソースグループアクセスプライオリティテーブル１２００を作成する。図１１を例として説明すると、ノード１は、２００４年１２月２０日午前３時５１分３０秒（日時１１０１参照）に、ＲＧ１−１内のファイルシステム３０１へのアクセス要求を含むフレーム６００を受信し（リソースグループ名１１０２参照）、そのフレーム６００のプライオリティ６５１が「７」であった（プライオリティ１１０３参照）。これに対応して、単位時間当たりのリソースグループアクセスプライオリティテーブル１２００のリソースグループ名１２０１が「ＲＧ１−１」かつプライオリティ１２０２が「７」に対応するアクセス回数が「１」加算される。
【０１３２】
図１２は、このようにして集計された、ある１時間のアクセス回数の例である。
【０１３３】
合計１２０３は、ある１時間のアクセス回数をリソースグループ名１２０１ごとに合計した値である。
【０１３４】
図１２の例では、ノード１は、１時間に、ＲＧ１−１へのアクセス要求を合計２６０回受信している。それらの内訳は、プライオリティ６５１が「７」であるアクセスが２００回、プライオリティ６５１が「５」であるアクセスが１０回、プライオリティ６５１が「４」であるアクセスが５０回である。
【０１３５】
さらに、ノード１は、同じ１時間に、ＲＧ１−２へのアクセス要求を合計４９０回受信している。それらの内訳は、プライオリティ６５１が「５」であるアクセスが１０回、プライオリティ６５１が「４」であるアクセスが２００回、プライオリティ６５１が「３」であるアクセスが１５０回、プライオリティ６５１が「２」であるアクセスが１００回、プライオリティ６５１が「１」であるアクセスが３０回である。
【０１３６】
さらに、ノード１は、同じ１時間に、ＲＧ１−３へのアクセス要求を合計５４０回受信している。それらの内訳は、プライオリティ６５１が「３」であるアクセスが４０回、プライオリティ６５１が「１」であるアクセスが２００回、プライオリティ６５１が「０」であるアクセスが３００回である。
【０１３７】
本実施の形態では、図１２のように集計されたアクセス回数に基づいて、リソースグループ２０２をフェイルオーバーする優先順位が決定される。具体的には、優先順位決定処理部５２１が、集計されたアクセス回数に重み係数を乗じた値（以下、重み付きアクセス回数と記載する）を、リソースグループ２０２ごとに合計して、その合計値に基づいて、優先順位を決定する。重み係数は、プライオリティ１２０２の値及びアクセス回数の合計値に基づいて算出される。
【０１３８】
図１３は、本発明の実施の形態の重み関数の説明図である。
【０１３９】
重み関数とは、重み係数を算出する計算式である。
【０１４０】
図１３には、４通りの重み関数を示す。以下の説明において、図１２に示すアクセス回数の値を「基準値」とする。また、図１３において、「ｘ」は、各基準値に対応するプライオリティ１２０２の値である。「ｙ」は、各リソースグループ２０２ごとの基準値の合計１２０３の値である。「ｚ」は、基準値に乗じる重み係数である。
【０１４１】
図１３において、関数番号（＃）１３０１は、４通りの重み関数の識別子である。以下、例えば、関数番号が「１」である重み関数を、「重み関数１」と記載する。
【０１４２】
重み関数１は、「ｚ＝１」である。すなわち、重み関数１が適用された場合、重み係数は、プライオリティ１２０２の値に関らず、「１」となる。この場合、プライオリティ１２０２の値に関らず、アクセス回数のみに基づいてポイントが決定される。ポイントとは、フェイルオーバーの優先順位を決定するために使用される指標である。フェイルオーバーの優先順位が一つの重み関数のみに基づいて決定される場合、ポイントがフェイルオーバーの優先順位となる。ポイントについては、後で詳細に説明する（図１４〜図１７参照）。重み関数１が適用された場合のポイントについては、後で説明する（図１４参照）。
【０１４３】
重み関数２は、「ｚ＝ｘ＋１」である。すなわち、重み関数２が適用された場合、重み係数ｚは、プライオリティ１２０２に「１」を加算した値である。この場合、プライオリティ１２０２の値及びアクセス回数の両方に基づいて優先順位が決定される。なお、プライオリティ１２０２に「１」を加算するのは、そうしないとプライオリティ１２０２が「０」のときのアクセス回数が優先順位に反映されないためである。重み関数２が適用された場合のポイントについては、後で説明する（図１５参照）。
【０１４４】
重み関数３によれば、重み係数ｚの値は、（ｘ＋１）を二乗して求められる。この場合、重み関数２の場合と同様、プライオリティ１２０２の値及びアクセス回数の両方に基づいて優先順位が決定される。ただし、重み関数２の場合と比較すると、プライオリティ１２０２の値がより重視される。重み関数３が適用された場合のポイントについては、後で説明する（図１６参照）。
【０１４５】
重み関数４は、「ｚ＝（ｘ＋１）／ｙ」である。すなわち、重み関数３が適用された場合、重み係数ｚは、プライオリティ１２０２に「１」を加算した値を、リソースグループ２０２ごとのアクセス回数の合計値で除した値である。この場合、プライオリティ１２０２の値のみに基づいて優先順位が決定される。重み関数４が適用された場合のポイントについては、後で説明する（図１７参照）。
【０１４６】
図１４は、本発明の実施の形態において、重み関数１が適用された場合の重み付きアクセス回数の説明図である。
【０１４７】
図１４において、リソースグループ名１４０１は、ノード１が管理するリソースグループ２０２の名前であり、図１２のリソースグループ名１２０１に対応する。
【０１４８】
プライオリティ１４０２は、受信したフレーム６００のプライオリティ６５１であり、図１２のプライオリティ１２０２に対応する。
【０１４９】
各リソースグループ名１４０１及びプライオリティ１４０２に対応する値は、重み関数１が適用された場合の重み付きアクセス回数である。
【０１５０】
合計１４０３は、重み付きアクセス回数のリソースグループ名１４０１ごとの合計値である。
【０１５１】
重み関数１が適用された場合、重み係数ｚの値は常に「１」となる。このため、重み付きアクセス回数は、基準値と同じになる（図１４）。すなわち、合計１４０３は、ＲＧ１−１については「２６０」、ＲＧ１−２については「４９０」、ＲＧ１−３については「５４０」となる。
【０１５２】
ポイント１４０４は、合計１４０３に基づいて決定される値であり、フェイルオーバーの優先順位を決定するために使用される。合計１４０３が最も大きいＲＧ１−３のポイント１４０４が「１」、合計１４０３が２番目に大きいＲＧ１−２のポイント１４０２が「２」、合計１４０３が最も小さいＲＧ１−１のポイント１４０４が「３」となる。
【０１５３】
図１５は、本発明の実施の形態において、重み関数２が適用された場合の重み付きアクセス回数の説明図である。
【０１５４】
図１５において、リソースグループ名１５０１は、ノード１が管理するリソースグループ２０２の名前であり、図１２のリソースグループ名１２０１に対応する。
【０１５５】
プライオリティ１５０２は、受信したフレーム６００のプライオリティ６５１であり、図１２のプライオリティ１２０２に対応する。
【０１５６】
各リソースグループ名１５０１及びプライオリティ１５０２に対応する値は、重み関数２が適用された場合の重み付きアクセス回数である。
【０１５７】
合計１５０３は、重み付きアクセス回数のリソースグループ名１５０１ごとの合計値である。
【０１５８】
ポイント１５０４は、合計１５０３に基づいて決定される値であり、フェイルオーバーの優先順位を決定するために使用される。
【０１５９】
重み関数２が適用された場合、重み係数ｚは、プライオリティ１５０２に「１」を加算した値となる。このとき、重み付きアクセス回数は、図１５に示す通りとなる。例えば、リソースグループ名１５０１が「ＲＧ１−１」かつプライオリティ１５０２が「４」である場合、重み係数ｚの値は、「４」に「１」を加算した「５」となる。このとき、重み付きアクセス回数は「２５０」となる。その右側の括弧内は、重み付きアクセス回数「２５０」が、基準値「５０」に重み係数ｚの値「５」を乗算して得られたことを示す。他のプライオリティ１５０２及び他のリソースグループ名１５０１についても同様にして重み付きアクセス回数が算出される。
【０１６０】
その結果、合計１５０３は、ＲＧ１−１については「１９１０」、ＲＧ１−２については「２０２０」、ＲＧ１−３については「８６０」となる。
【０１６１】
そして、合計１５０３が大きい順に、ＲＧ１−２のポイント１５０４が「１」、ＲＧ１−１のポイント１５０４が「２」、ＲＧ１−３のポイント１５０４が「３」となる。
【０１６２】
図１６は、本発明の実施の形態において、重み関数３が適用された場合の重み付きアクセス回数の説明図である。
【０１６３】
図１６において、リソースグループ名１６０１は、ノード１が管理するリソースグループ２０２の名前であり、図１２のリソースグループ名１２０１に対応する。
【０１６４】
プライオリティ１６０２は、受信したフレーム６００のプライオリティ６５１であり、図１２のプライオリティ１２０２に対応する。
【０１６５】
各リソースグループ名１６０１及びプライオリティ１６０２に対応する値は、重み関数３が適用された場合の重み付きアクセス回数である。
【０１６６】
合計１６０３は、重み付きアクセス回数のリソースグループ名１６０１ごとの合計値である。
【０１６７】
ポイント１６０４は、合計１６０３に基づいて決定される値であり、フェイルオーバーの優先順位を決定するために使用される。
【０１６８】
重み関数３が適用された場合、重み係数ｚは、プライオリティ１６０２に「１」を加算した値を二乗した値となる。このとき、重み付きアクセス回数は、図１６に示す通りとなる。例えば、リソースグループ名１６０１が「ＲＧ１−１」かつプライオリティ１６０２が「４」である場合、重み係数ｚの値は、「４」に「１」を加算した「５」を二乗した値「２５」となる。このとき、重み付きアクセス回数は「１２５０」となる。その右側の括弧内は、重み付きアクセス回数「１２５０」が基準値５０に重み係数ｚの値「２５」を乗算して得られたことを示す。他のプライオリティ１６０２及び他のリソースグループ名１６０１についても同様にして重み付きアクセス回数が算出される。
【０１６９】
その結果、合計１６０３は、ＲＧ１−１については「１４４１０」、ＲＧ１−２については「８７８０」、ＲＧ１−３については「１７４０」となる。
【０１７０】
そして、合計１６０３が大きい順に、ＲＧ１−１のポイント１６０４が「１」、ＲＧ１−２のポイント１６０４が「２」、ＲＧ１−３のポイント１６０４が「３」となる。
【０１７１】
図１７は、本発明の実施の形態において、重み関数４が適用された場合の重み付きアクセス回数の説明図である。
【０１７２】
図１７において、リソースグループ名１７０１は、ノード１が管理するリソースグループ２０２の名前であり、図１２のリソースグループ名１２０１に対応する。
【０１７３】
プライオリティ１７０２は、受信したフレーム６００のプライオリティ６５１であり、図１２のプライオリティ１２０２に対応する。
【０１７４】
各リソースグループ名１７０１及びプライオリティ１７０２に対応する値は、重み関数４が適用された場合の重み付きアクセス回数である。
【０１７５】
合計１７０３は、重み付きアクセス回数のリソースグループ名１７０１ごとの合計値である。
【０１７６】
ポイント１７０４は、合計１７０３に基づいて決定される値であり、フェイルオーバーの優先順位を決定するために使用される。
【０１７７】
重み関数４が適用された場合、重み係数ｚは、プライオリティ１７０２に「１」を加算した値を、リソースグループ名１７０１ごとの基準値の合計値ｙ（すなわち、合計１２０３）で除算した値となる。このとき、重み付きアクセス回数は、図１７に示す通りとなる。例えば、リソースグループ名１７０１が「ＲＧ１−１」かつプライオリティ１７０２が「４」である場合、重み係数ｚの値は、「４」に「１」を加算した「５」を、ＲＧ１−１の基準値の合計値「２６０」（合計１２０３参照）で除算した値となる。このとき、重み付きアクセス回数は「０．９６」となる。その右側の括弧内は、重み付きアクセス回数「０．９６」が、基準値５０に、重み係数ｚの値すなわち「５」を「２６０」で除算した値を乗算して得られたことを示す。他のプライオリティ１７０２及び他のリソースグループ名１７０１についても同様にして重み付きアクセス回数が算出される。
【０１７８】
その結果、合計１７０３は、ＲＧ１−１については「７．３４」、ＲＧ１−２については「４．１１」、ＲＧ１−３については「１．６０」となる。
【０１７９】
そして、合計１７０３が大きい順に、ＲＧ１−１のポイント１７０４が「１」、ＲＧ１−２のポイント１７０４が「２」、ＲＧ１−３のポイント１７０４が「３」となる。
【０１８０】
なお、図１４から図１７の重み付きアクセス回数、合計１４０３等及びポイント１４０４等は、優先順位決定処理部５２１によって算出される。
【０１８１】
図１８は、本発明の実施の形態における優先順位の総合評価の説明図である。
【０１８２】
本実施の形態における優先順位の総合評価は、図１８に示すように、重み関数１から重み関数３までを適用して取得したポイントの合計値に基づいて、優先順位決定処理部５２１によってなされる（図２５参照）。
【０１８３】
図１８において、リソースグループ名１８０１は、ノード１が管理するリソースグループ２０２の名前であり、図１２のリソースグループ名１２０１に対応する。
【０１８４】
ポイント１８０２は、各重み関数を適用した場合の各リソースグループ名１８０１に対応するポイントである。ポイント１８０２は、ポイント１４０４（図１４）、１５０４（図１５）及び１６０４（図１６）に対応する。
【０１８５】
各リソースグループ名１７０１及びプライオリティ１７０２に対応する値は、重み関数４が適用された場合の重み付きアクセス回数である。
【０１８６】
合計１８０３は、ポイント１８０２のリソースグループ名１８０１ごとの合計値である。
【０１８７】
優先順位１８０４は、合計１８０３に基づいて決定されるフェイルオーバーの優先順位である。
【０１８８】
図１４に示す通り、重み関数１を適用した場合のＲＧ１−１のポイント１４０４は「３」である。このため、図１８において、重み関数１を適用した場合のリソースグループ名１８０１「ＲＧ１−１」に対応するポイント１８０２は、「３」となる。同様にして、重み関数１を適用した場合のＲＧ１−２及びＲＧ１−３のポイント１８０２は、それぞれ「２」及び「１」となる。
【０１８９】
同様にして、重み関数２を適用した場合のＲＧ１−１、ＲＧ１−２及びＲＧ１−３のポイント１８０２は、それぞれ「２」、「１」及び「３」となる（図１５のポイント１５０４参照）。
【０１９０】
同様にして、重み関数３を適用した場合のＲＧ１−１、ＲＧ１−２及びＲＧ１−３のポイント１８０２は、それぞれ「１」、「２」及び「３」となる（図１６のポイント１６０４参照）。
【０１９１】
その結果、ＲＧ１−１、ＲＧ１−２及びＲＧ１−３に対応する合計１８０３は、それぞれ、「６」、「５」及び「７」となる。
【０１９２】
そして、合計１８０３が最も小さい「５」であるＲＧ１−２の優先順位１８０４が「１」となる。一方、ＲＧ１−１及びＲＧ１−３の優先順位１８０４は、それぞれ、「２」及び「３」である。優先順位１８０４の値が小さいほど優先順位が高いため、ＲＧ１−２、ＲＧ１−１、ＲＧ１−３の順にフェイルオーバーが実行される。
【０１９３】
優先順位決定処理部５２１は、決定した優先順位１８０４を、共有ＬＵ１２４に格納する。上記のように、本実施の形態の優先順位１８０４はノード１の優先順位決定処理部５２１によって作成されている。このため、ノード１に障害が発生したときに、ノード２は、共有ＬＵ１２４に格納された優先順位１８０４を参照する。そして、ノード２のフェイルオーバー処理部５２２は、優先順位１８０４に従って、ＲＧ１−２、ＲＧ１−１、ＲＧ１−３の順にフェイルオーバーを実行する。
【０１９４】
この場合、優先順位１８０４は、アクセス回数及びプライオリティの両方を考慮して決定されている。優先順位１８０４が最も高いＲＧ１−２を利用する仮想ＬＡＮ２０１は、図３の例では、ＶＬＡＮ５０及びＶＬＡＮ６０である。すなわち、ＶＬＡＮ５０及びＶＬＡＮ６０（より正確には、ＶＬＡＮ５０及びＶＬＡＮ６０に属するクライアント１４０）は、ノード１に対して、他の仮想ＬＡＮ２０１より量及び質の両面で高水準のサービスを要求していると言える。
【０１９５】
したがって、ノード１に障害が発生した場合、ＲＧ１−２を優先してフェイルオーバーすることによって、ＶＬＡＮ５０及びＶＬＡＮ６０に対するサービスが早期に再開される。その結果、ＶＬＡＮ５０及びＶＬＡＮ６０に対するサービスの停止時間が他の仮想ＬＡＮ２０１と比較して短くなり、相対的に高水準のサービスが提供される。
【０１９６】
仮に、合計１８０３が同じ値になった場合、重み関数３に対応するポイント１８０２が小さいリソースグループ２０２の優先順位１８０４の値を小さく（すなわち、優先順位を高く）する。さらに、重み関数３に対応するポイント１８０２も同じ値になった場合、重み関数２に対応するポイント１８０２が小さいリソースグループ２０２の優先順位１８０４の値を小さくする。さらに、重み関数２に対応するポイント１８０２も同じ値になった場合、重み関数１に対応するポイント１８０２が小さいリソースグループ２０２の優先順位１８０４の値を小さくする。
【０１９７】
本実施の形態では、優先順位１８０４は、重み関数１、２及び３を適用した場合のポイント１４０４等の合計１８０３に基づいて決定される。しかし、優先順位１８０４は、重み関数４を適用した場合のポイント１７０４をさらに含む合計に基づいて決定されてもよい。この場合、図１８のポイント１８０２として、重み関数４が適用された場合のポイント１７０４が追加される。
【０１９８】
また、優先順位１８０４は、いずれか一つの重み関数のみに基づいて決定されてもよい。
【０１９９】
例えば、優先順位１８０４が重み関数１のみに基づいて決定される場合、重み関数１が適用された場合のポイント１４０４が優先順位１８０４となる。この場合、ＲＧ１−３、ＲＧ１−２、ＲＧ１−１の順にフェイルオーバーが実行される。
【０２００】
ポイント１４０４は、アクセス回数のみに基づいて決定される。このため、ＲＧ１−３を利用する仮想ＬＡＮ２０１は、他の仮想ＬＡＮ２０１と比較して、量の面で高水準のサービスの提供をノード１に要求していると言える。
【０２０１】
したがって、ノード１に障害が発生した場合、ＲＧ１−３を優先してフェイルオーバーすることによって、ＲＧ１−３によるサービスが早期に再開される。その結果、ＲＧ１−３を利用する仮想ＬＡＮ２０１に対するサービスの停止時間が他の仮想ＬＡＮ２０１と比較して短くなり、相対的に高水準のサービスが提供される。
【０２０２】
また、例えば、優先順位１８０４が重み関数４のみに基づいて決定される場合、重み関数４が適用された場合のポイント１７０４が優先順位１８０４となる。この場合、ＲＧ１−１、ＲＧ１−２、ＲＧ１−３の順にフェイルオーバーが実行される。
【０２０３】
ポイント１７０４は、プライオリティに基づいて決定される。このため、ＲＧ１−１を利用する仮想ＬＡＮ２０１は、他の仮想ＬＡＮ２０１と比較して、質の面で高水準のサービスの提供をノード１に要求していると言える。
【０２０４】
したがって、ノード１に障害が発生した場合、ＲＧ１−１を優先してフェイルオーバーすることによって、ＲＧ１−１によるサービスが早期に再開される。その結果、ＲＧ１−１を利用する仮想ＬＡＮ２０１に対するサービスの停止時間が他の仮想ＬＡＮ２０１と比較して短くなり、相対的に高水準のサービスが提供される。
【０２０５】
次に、図５に示したノード１１０の各部が実行する処理について説明する。以下、例として、ノード１の各部が実行する処理を説明する（図２６を除く）。ノード２の各部も同様の処理を実行する。
【０２０６】
図１９は、本発明の実施の形態のＶＬＡＮパケット受信処理のフローチャートである。
【０２０７】
ＶＬＡＮパケット受信処理は、ノード１がいずれかの仮想ＬＡＮ２０１からパケット（正確には、ＩＰパケットが格納されたフレーム６００。以下においても同様）を受信したときに、ＶＬＡＮパケット送受信処理部５０１によって実行される。
【０２０８】
ＶＬＡＮパケット受信処理が開始されると、最初に、ＶＬＡＮパケット送受信処理部５０１は、停止要求があったか否かを判定する（１９０１）。
【０２０９】
ステップ１９０１において停止要求があったと判定された場合、ＶＬＡＮパケット送受信処理部５０１は、処理を終了する。
【０２１０】
一方、ステップ１９０１において停止要求がなかったと判定された場合、ＶＬＡＮパケット送受信処理部５０１は、パケットを受信する（１９０２）。
【０２１１】
次に、ＶＬＡＮパケット送受信処理部５０１は、プライオリティ識別処理部５０２にプライオリティ識別処理を実行させる（１９０３）。この処理については、後で詳細に説明する（図２１参照）。
【０２１２】
次に、ＶＬＡＮパケット送受信処理部５０１は、アクセス要求受付処理部５１１にアクセス要求受付処理を実行させる（１９０４）。この処理については、後で詳細に説明する（図２２参照）。
【０２１３】
そして、ＶＬＡＮパケット送受信処理部５０１は、再びステップ１９０１の判定を実行する。
【０２１４】
図２０は、本発明の実施の形態のＶＬＡＮパケット送信処理のフローチャートである。
【０２１５】
ＶＬＡＮパケット送信処理は、ノード１がいずれかの仮想ＬＡＮ２０１から受信したパケットに対する応答のパケットを送信するときに、ＶＬＡＮパケット送受信処理部５０１によって実行される。
【０２１６】
ＶＬＡＮパケット送信処理が開始されると、最初に、ＶＬＡＮパケット送受信処理部５０１は、停止要求があったか否かを判定する（２００１）。
【０２１７】
ステップ２００１において停止要求があったと判定された場合、ＶＬＡＮパケット送受信処理部５０１は、処理を終了する。
【０２１８】
一方、ステップ２００１において停止要求がなかったと判定された場合、ＶＬＡＮパケット送受信処理部５０１は、パケットを格納するフレーム６００にＶＬＡＮタグを付与する（２００２）。具体的には、送信するフレーム６００のＴＣＩ６５０の値を設定する。送信するフレーム６００が、受信したフレーム６００に対する応答である場合、送信するフレーム６００のＴＣＩ６５０内のＶＩＤ６５３は、当該受信したフレーム６００のＶＩＤ６５３と同じ値に設定される。
【０２１９】
次に、ＶＬＡＮパケット送受信処理部５０１は、ＶＬＡＮタグが付与されたフレーム６００を送信する（２００３）。
【０２２０】
そして、ＶＬＡＮパケット送受信処理部５０１は、再びステップ２００１の判定を実行する。
【０２２１】
図２１は、本発明の実施の形態のプライオリティ識別処理のフローチャートである。
【０２２２】
プライオリティ識別処理は、図１９のステップ１９０３においてＶＬＡＮパケット送受信処理部５０１によって呼び出されたとき、プライオリティ識別処理部５０２によって実行される。
【０２２３】
プライオリティ識別処理が開始されると、最初に、プライオリティ識別処理部５０２は、受信したフレーム６００からＶＬＡＮタグを除去する（２１０１）。具体的には、受信したフレーム６００からＴＣＩ６５０を除去する。
【０２２４】
次に、プライオリティ識別処理部５０２は、ＶＬＡＮＩＤを探索する（２１０２）。具体的には、ＶＬＡＮＩＤ・プライオリティ対応テーブル７００のＶＬＡＮＩＤ７０１を参照する（図７参照）。
【０２２５】
次に、プライオリティ識別処理部５０２は、除去したＶＬＡＮタグのＶＩＤ６５３と同じ値がＶＬＡＮＩＤ・プライオリティ対応テーブル７００のＶＬＡＮＩＤ７０１に含まれているか否かを判定する（２１０３）。
【０２２６】
ステップ２１０３において、ＶＩＤ６５３と同じ値がＶＬＡＮＩＤ７０１に含まれていると判定された場合、ノード１は、それ以前に同じ仮想ＬＡＮ２０１からパケットを受信したことがある。この場合、プライオリティ識別処理部５０２は、その値のＶＬＡＮＩＤ７０１に対応するプライオリティ７０２を、除去したＶＬＡＮタグのプライオリティ６５１の値に更新する（２１０４）。そして、プライオリティ識別処理部５０２は、処理を終了する。
【０２２７】
一方、ステップ２１０３において、ＶＩＤ６５３と同じ値がＶＬＡＮＩＤ７０１に含まれていないと判定された場合、ノード１は、それ以前に同じ仮想ＬＡＮ２０１からパケットを受信したことがない。この場合、プライオリティ識別処理部５０２は、そのＶＩＤ６５３の値をＶＬＡＮＩＤ７０１に追加する。さらに、追加したＶＩＤ６５３の値に対応するプライオリティ７０２を、除去したＶＬＡＮタグのプライオリティ６５１の値に設定する（２１０５）。そして、プライオリティ識別処理部５０２は、処理を終了する。
【０２２８】
図２２は、本発明の実施の形態のアクセス要求受付処理のフローチャートである。
【０２２９】
アクセス要求受付処理は、図１９のステップ１９０４においてＶＬＡＮパケット送受信処理部５０１によって呼び出されたとき、アクセス要求受付処理部５１１によって実行される。
【０２３０】
アクセス要求受付処理が開始されると、最初に、アクセス要求受付処理部５１１は、アクセス情報を記録する（２２０１）。具体的には、アクセス要求受付処理部５１１は、受信したパケットに含まれるアクセス要求を受信した日時、そのアクセス要求の対象のファイルシステム名、及び、そのアクセス要求の対象のサービスＩＰアドレスを、それぞれ、日時８０１、ファイルシステム名８０２及びサービスＩＰアドレス８０３として、ファイルシステムアクセス情報テーブル８００に追加する（図８参照）。
【０２３１】
次に、アクセス要求受付処理部５１１は、アクセス要求に従って、ファイルの読み出し（Ｒｅａｄ）処理又は書き込み（Ｗｒｉｔｅ）処理を実行する（２２０２）。
【０２３２】
次に、アクセス要求受付処理部５１１は、アクセス要求に対する応答を送信する（２２０３）。具体的には、アクセス要求受付処理部５１１は、ＶＬＡＮパケット送受信部５０１に、ＶＬＡＮパケット送信処理（図２０参照）を実行させる。
【０２３３】
そして、アクセス要求受付処理部５１１は、処理を終了する。
【０２３４】
図２３は、本発明の実施の形態の優先順位決定処理のフローチャートである。
【０２３５】
優先順位決定処理は、優先順位決定処理部５２１によって、ノード１の稼動開始と共に開始され、ノード１が正常に稼動している間、実行され続ける。
【０２３６】
優先順位決定処理が開始されると、最初に、優先順位決定処理部５２１は、初期化処理を実行する（２３０１）。初期化処理については、後で詳細に説明する（図２４参照）。
【０２３７】
次に、優先順位決定処理部５２１は、優先順位更新処理を実行する（２３０２）。優先順位更新処理については、後で詳細に説明する（図２５参照）。
【０２３８】
次に、優先順位決定処理部５２１は、１時間スリープした後（２３０３）、ステップ２３０２に戻る。具体的には、優先順位更新処理（２３０２）を実行した後、１時間後に、再び優先順位更新処理（２３０２）を実行する。以後、同様に、一時間おきに優先順位更新処理（２３０２）を実行する。本実施の形態では、スリープ時間を１時間と設定するが、他の時間（例えば、３０分、２時間、２４時間等）に設定してもよい。
【０２３９】
図２４は、本発明の実施の形態の初期化処理のフローチャートである。
【０２４０】
初期化処理は、優先順位決定処理（図２３）のステップ２３０１において、優先順位決定処理部５２１によって実行される。
【０２４１】
初期化処理が開始すると、最初に、優先順位決定処理部５２１は、ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００を作成する（２４０１）。ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル９００については、図９において説明したため、ここでは説明を省略する。
【０２４２】
次に、優先順位決定処理部５２１は、ファイルシステム・リソースグループ対応テーブル１０００を作成する（２４０２）。ファイルシステム・リソースグループ対応テーブル１０００については、図１０において説明したため、ここでは説明を省略する。
【０２４３】
そして、優先順位決定処理部５２１は、初期化処理を終了する。
【０２４４】
図２５は、本発明の実施の形態の優先順位更新処理のフローチャートである。
【０２４５】
優先順位更新処理は、優先順位決定処理（図２３）のステップ２３０２において、優先順位決定処理部５２１によって実行される。
【０２４６】
優先順位更新処理が開始すると、最初に、優先順位決定処理部５２１は、単位時間当たりのリソースグループアクセスプライオリティテーブル１２００を作成する（２５０１）。単位時間当たりのリソースグループアクセスプライオリティテーブル１２００については、図１２において説明したため、ここでは説明を省略する。
【０２４７】
次に、優先順位決定処理部５２１は、総合評価を実行して、新たな優先順位を決定する（２５０２）。総合評価については、図１８において説明した通りである。ステップ２５０２において新たに決定される優先順位は、図１８の優先順位１８０４である。また、総合評価を実行するために必要な重み付きアクセス回数及び重み関数等については、図１３から図１７において説明した通りである。このため、ここでは説明を省略する。
【０２４８】
次に、優先順位決定処理部５２１は、ステップ２５０２において新たに決定された優先順位を、共有ＬＵ１２４に格納する（２５０３）。
【０２４９】
そして、優先順位決定処理部５２１は、優先順位更新処理を終了する。
【０２５０】
図２６は、本発明の実施の形態のフェイルオーバー処理のフローチャートである。
【０２５１】
フェイルオーバー処理は、ノード１に障害が発生したときに、ノード２のフェイルオーバー処理部５２２によって実行され、ノード２に障害が発生したときに、ノード１のフェイルオーバー処理部５２２によって実行される。ここでは、例として、ノード１に障害が発生したときに、ノード２のフェイルオーバー処理部５２２によって実行されるフェイルオーバー処理について説明する。ノード１のフェイルオーバー処理部５２２も、以下と同様の処理を実行する。
【０２５２】
フェイルオーバー処理が開始すると、最初に、フェイルオーバー処理部５２２は、共有ＬＵ１２４から優先順位１８０４（図１８参照）を読み出す（２６０１）。
【０２５３】
次に、フェイルオーバー処理部５２２は、読み出した優先順位１８０４を識別する（２６０２）。
【０２５４】
次に、フェイルオーバー処理部５２２は、読み出した優先順位１８０４の順に、リソースグループ２０２をフェイルオーバーし、フェイルオーバーが終了した順にサービスを開始（再開）する（２６０３）。
【０２５５】
次に、フェイルオーバー処理部５２２は、全てのリソースグループ２０２についてサービスが再開されたか否かを判定する（２６０４）。
【０２５６】
ステップ２６０４において、全てのリソースグループ２０２についてサービスが再開されていないと判定された場合、ステップ２６０３に戻る。
【０２５７】
一方、ステップ２６０４において、全てのリソースグループ２０２についてサービスが再開されたと判定された場合、フェイルオーバー処理部５２２は、処理を終了する。
【０２５８】
なお、以上の本実施の形態によれば、決定された優先順位１８０４は、共有ＬＵ１２４に格納される。しかし、各ノード１１０が優先順位１８０４を相互に通信することによっても本発明を実施することができる。この場合、各ノード１１０は、例えば、優先順位１８０４をハートビート信号に含めて通信してもよい。この場合、各ノード１１０は、他のノード１１０から受信した優先順位１８０４を、メインメモリ１１３等に格納する。したがって、この場合、共有ＬＵ１２４は不要である。
【０２５９】
また、本実施の形態では、各ノード１１０が、受信したフレーム６００のプライオリティ６５１に基づいて、フェイルオーバーの優先順位１８０４を決定する。しかし、優先順位１８０４は、クラスタシステム１００内のどの部位が決定してもよい。例えば、ノード１が、受信したフレーム６００のプライオリティ６５１等の情報を共有ＬＵ１２４に格納する。そして、ノード１に障害が発生したとき、ノード２が共有ＬＵ１２４内のそれらの情報を参照して優先順位１８０４を決定し、その優先順位１８０４に基づいてフェイルオーバーを実行してもよい。さらに、クラスタシステム１００以外の部位（例えば、ＬＡＮ１５０に接続された管理サーバ（図示省略））が同様にして優先順位１８０４を決定してもよい。
【０２６０】
以上の本実施の形態によれば、ＩＥＥＥ８０２．１Ｄ（ＩＥＥＥ８０２．１ｐ）、ＩＥＥＥ８０２．１Ｑ等に準拠するＶＬＡＮタグ情報を含むフレームがＬＡＮ上で送受信される。
【０２６１】
クラスタシステムを構成する各ノードは、受信したフレームのＶＬＡＮタグ情報に含まれるプライオリティ及びＶＩＤを参照する。そして、参照したプライオリティ及びＶＩＤに基づいて、ノードに障害が発生した場合のフェイルオーバーの優先順位を決定する。例えば、プライオリティの高いフレームを送信したＶＬＡＮが利用するリソースグループについては、優先順位を高くする。
【０２６２】
ノードに障害が発生した場合、他のノードが優先順位を参照してフェイルオーバーを実行する。その結果、高水準のサービスを要求するＶＬＡＮに対して、より早くサービスを再開させることができる。
【０２６３】
また、本実施の形態では、データリンク層のフレームに含まれるプライオリティを参照しているため、上位のプロトコルに依存せずに、フェイルオーバーの優先順位を決定することができる。
【０２６４】
以上の本実施の形態は、本発明をイーサネットフレームにＩＰパケットが格納されたＴＣＰ／ＩＰネットワークに適用した例であるが、本発明は、他の形態のネットワークに適用することもできる。
【０２６５】
例えば、ストレージエリアネットワーク（ＳＡＮ）におけるファイバーチャネルスイッチのゾーニングに本発明を適用することもできる。すなわち、ＳＡＮ上で送受信されるデータリンク層のフレームに、要求されるサービスの水準を示すプライオリティ情報が含まれている場合、そのプライオリティ情報を参照して、上記の本実施の形態と同様の方法でフェイルオーバーの優先順位を決定することができる。
【図面の簡単な説明】
【０２６６】
【図１】本発明の実施の形態のクラスタシステムの構成を示すブロック図である。
【図２】本発明の実施の形態のクラスタシステムの論理的な構成を示すブロック図である。
【図３】本発明の実施の形態のクラスタシステムによって管理されるリソースグループの説明図である。
【図４】本発明の実施の形態のクラスタシステムにおいて実行されるフェイルオーバーの説明図である。
【図５】本発明の実施の形態のクラスタシステムを構成するノードの機能ブロック図である。
【図６】本発明の実施の形態のＬＡＮ上で送受信されるフレームの説明図である。
【図７】本発明の実施の形態のＶＬＡＮＩＤ・プライオリティ対応テーブルの説明図である。
【図８】本発明の実施の形態のファイルシステムアクセス情報テーブルの説明図である。
【図９】本発明の実施の形態のＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブルの説明図である。
【図１０】本発明の実施の形態のファイルシステム・リソースグループ対応テーブルの説明図である。
【図１１】本発明の実施の形態のアクセスごとのリソースグループアクセスプライオリティテーブルの説明図である。
【図１２】本発明の実施の形態の単位時間当たりのリソースグループアクセスプライオリティテーブルの説明図である。
【図１３】本発明の実施の形態の重み関数の説明図である。
【図１４】本発明の実施の形態において、第１の重み関数が適用された場合の重み付きアクセス回数の説明図である。
【図１５】本発明の実施の形態において、第２の重み関数が適用された場合の重み付きアクセス回数の説明図である。
【図１６】本発明の実施の形態において、第３の重み関数が適用された場合の重み付きアクセス回数の説明図である。
【図１７】本発明の実施の形態において、第４の重み関数が適用された場合の重み付きアクセス回数の説明図である。
【図１８】本発明の実施の形態における優先順位の総合評価の説明図である。
【図１９】本発明の実施の形態のＶＬＡＮパケット受信処理のフローチャートである。
【図２０】本発明の実施の形態のＶＬＡＮパケット送信処理のフローチャートである。
【図２１】本発明の実施の形態のプライオリティ識別処理のフローチャートである。
【図２２】本発明の実施の形態のアクセス要求受付処理のフローチャートである。
【図２３】本発明の実施の形態の優先順位決定処理のフローチャートである。
【図２４】本発明の実施の形態の初期化処理のフローチャートである。
【図２５】本発明の実施の形態の優先順位更新処理のフローチャートである。
【図２６】本発明の実施の形態のフェイルオーバー処理のフローチャートである。
【符号の説明】
【０２６７】
１１０  ノード
１１１  ネットワークインターフェース
１１２  ＣＰＵ
１１３  メインメモリ
１１４  ディスクアダプタ
１２０  ディスクサブシステム
１２１  ディスクコントローラ
１２２  ディスクキャッシュ
１２３  ディスクドライブ
１２４  論理ユニット（ＬＵ）
１３０  通信路
１３５  ノード間通信路
１４０  クライアント
１５０  ＬＡＮ
２０１  仮想ＬＡＮ（ＶＬＡＮ）
２０２  リソースグループ
３０１  ファイルシステム
３０２  サービスＩＰアドレス
５００  ＶＬＡＮ制御部
５０１  ＶＬＡＮパケット送受信処理部
５０２  プライオリティ識別処理部
５１０  ファイル共有制御部
５１１  アクセス要求受付処理部
５２０  フェイルオーバー制御部
５２１  優先順位決定処理部
５２２  フェイルオーバー処理部
５２３  ハートビート監視処理部
６００  フレーム
６５０  タグ制御情報（ＴＣＩ）
６５１  プライオリティ
６５３  ＶＬＡＮ識別子（ＶＩＤ）
７００  ＶＬＡＮＩＤ・プライオリティ対応テーブル
８００  ファイルシステムアクセス情報テーブル
９００  ＶＬＡＮＩＤ・サービスＩＰアドレス対応テーブル
１０００  ファイルシステム・リソースグループ対応テーブル
１１００  アクセスごとのリソースグループアクセスプライオリティテーブル
１２００  単位時間当たりのリソースグループアクセスプライオリティテーブル
【図１】
2006260357.tif 000003
【図２】
2006260357.tif 000004
【図３】
2006260357.tif 000005
【図４】
2006260357.tif 000006
【図５】
2006260357.tif 000007
【図６】
2006260357.tif 000008
【図７】
2006260357.tif 000009
【図８】
2006260357.tif 000010
【図９】
2006260357.tif 000011
【図１０】
2006260357.tif 000012
【図１１】
2006260357.tif 000013
【図１２】
2006260357.tif 000014
【図１３】
2006260357.tif 000015
【図１４】
2006260357.tif 000016
【図１５】
2006260357.tif 000017
【図１６】
2006260357.tif 000018
【図１７】
2006260357.tif 000019
【図１８】
2006260357.tif 000020
【図１９】
2006260357.tif 000021
【図２０】
2006260357.tif 000022
【図２１】
2006260357.tif 000023
【図２２】
2006260357.tif 000024
【図２３】
2006260357.tif 000025
【図２４】
2006260357.tif 000026
【図２５】
2006260357.tif 000027
【図２６】
2006260357.tif 000028