(57)【要約】【課題】直近のパケット情報から通信状態を復旧させ、コネクションを再接続しなくてもサービスを継続させる。【解決手段】スイッチを通して行われる通信中に生じる障害を再開させるために、前記スイッチは、通信ポートを通してクライアントとサービス系クライアントノードとの間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノードに送信する。前記サービス系クラスタノードに切り替わる待機系クラスタノードは、前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析し、前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元する。【選択図】図１
2010245757.tif 000002
【特許請求の範囲】
【請求項１】
クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系とし、スイッチを通して前記サービス系クラスタノードとクライアントとの間で通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる障害時の無停止通信復旧システムであって、
前記スイッチは、
通信ポートを通して前記クライアントと前記サービス系クライアントノードとの間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノードに送信するパケット複製手段を有し、
前記待機系クラスタノードは、
前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析するパケット解析モジュールと、
前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元するコネクション復元モジュールとを有することを特徴とする障害時の無停止通信復旧システム。
【請求項２】
前記コネクション復元モジュールは、前記コネクションに関するパケットのヘッダ情報とデータとから過去最近に通信していたコネクション情報を復元し、その復元したコネクション情報に基づいて前記通信状態を復元するものである請求項１に記載の障害時の無停止通信復旧システム。
【請求項３】
前記コネクション復元モジュールは、前記コネクション情報が復元不可能なときに、前記コネクションに関するパケットから前記スイッチの通信ポートを割り出し、前記スイッチにリセットを送信することにより通信状態の復元を促すものである請求項１に記載の障害時の無停止通信復旧システム。
【請求項４】
前記コネクション復元モジュールは、前記複製されたパケットから抽出したコネクションに関するパケットと、前記抽出したパケットに基づいて解析したコネクション情報とを解析して、コネクション情報が揃っている場合に通信状態を復元し、コネクション情報が揃っていない場合に通信状態を切断する指令を前記スイッチに送信するものである請求項１に記載の障害時の無停止通信復旧システム。
【請求項５】
前記パケット解析モジュールは、前記コネクションに関するパケットをコネクション毎にＦＩＦＯ方式で記憶しているものである請求項１に記載の障害時の無停止通信復旧システム。
【請求項６】
クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系として通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる無停止通信復旧システムに用いるスイッチであって、
前記スイッチは、前記サービス系クラスタノードとクライアントとの間で通信ポートを通してパケットを通信するものであり、
前記通信ポートを通して前記クライアントと前記サービス系クライアントノードとの間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノードに送信するパケット複製手段を有することを特徴とする無停止通信復旧システムのスイッチ。
【請求項７】
クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系として通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる無停止通信復旧システムに用いる待機系クラスタノードであって、
前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析するパケット解析モジュールと、
前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元するコネクション復元モジュールとを有することを特徴とする障害時の無停止通信復旧システムの待機系クラスタノード。
【請求項８】
前記コネクション復元モジュールは、前記コネクションに関するパケットのヘッダ情報とデータとから過去最近に通信していたコネクション情報を復元し、その復元したコネクション情報に基づいて前記通信状態を復元するものである請求項７に記載の無停止通信復旧システム待機系クラスタノード。
【請求項９】
前記コネクション復元モジュールは、前記コネクション情報が復元不可能なときに、前記コネクションに関するパケットから前記スイッチの通信ポートを割り出し、前記スイッチにリセットを送信することにより通信状態の復元を促すものである請求項７に記載の無停止通信復旧システム待機系クラスタノード。
【請求項１０】
前記コネクション復元モジュールは、前記複製されたパケットから抽出したコネクションに関するパケットと、前記抽出したパケットに基づいて解析したコネクション情報とを解析して、コネクション情報が揃っている場合に通信状態を復元し、コネクション情報が揃っていない場合に通信状態を切断する指令を前記スイッチに送信するものである請求項７に記載の無停止通信復旧システム待機系クラスタノード。
【請求項１１】
前記パケット解析モジュールは、前記コネクションに関するパケットをコネクション毎にＦＩＦＯ方式で記憶しているものである請求項７に記載の無停止通信復旧システム待機系クラスタノード。
【請求項１２】
クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系とし、スイッチを通して前記サービス系クラスタノードとクライアントとの間で通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる障害時の無停止通信復旧方法であって、
前記通信ポートを通して前記クライアントと前記サービス系クライアントノードとの間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノードに送信し、
前記待機系クラスタノード側において、前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析し、
前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元することを特徴とする障害時の無停止通信復旧方法。
【請求項１３】
前記待機系クラスタノード側において、前記コネクションに関するパケットのヘッダ情報とデータとから過去最近に通信していたコネクション情報を復元し、その復元したコネクション情報に基づいて前記通信状態を復元する請求項１２に記載の障害時の無停止通信復旧方法。
【請求項１４】
前記待機系クラスタノード側において、前記コネクション情報が復元不可能なときに、前記コネクションに関するパケットから前記スイッチの通信ポートを割り出し、前記スイッチにリセットを送信することにより通信状態の復元を促す請求項１２に記載の障害時の無停止通信復旧方法。
【請求項１５】
前記待機系クラスタノード側において、前記複製されたパケットから抽出したコネクションに関するパケットと、前記抽出したパケットに基づいて解析したコネクション情報とを解析して、コネクション情報が揃っている場合に通信状態を復元し、コネクション情報が揃っていない場合に通信状態を切断する指令を前記スイッチに送信する請求項１２に記載の障害時の無停止通信復旧方法。
【請求項１６】
前記待機系クラスタノード側において、前記コネクションに関するパケットをコネクション毎にＦＩＦＯ方式で記憶してバッファリングする請求項１２に記載の障害時の無停止通信復旧方法。
【請求項１７】
クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系として通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる無停止通信復旧の動作を制御するための制御プログラムであって、
前記待機系クラスタノードを構成するコンピュータに、
前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析する機能と、
前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元する機能とを実行させることを特徴とする無停止通信復旧制御プログラム。
【請求項１８】
前記コンピュータに、
前記コネクションに関するパケットのヘッダ情報とデータとから過去最近に通信していたコネクション情報を復元し、その復元したコネクション情報に基づいて前記通信状態を復元する機能を実行させる請求項１７に記載の無停止通信復旧制御プログラム。
【請求項１９】
前記コンピュータに、
前記コネクション情報が復元不可能なときに、前記コネクションに関するパケットから前記スイッチの通信ポートを割り出し、前記スイッチにリセットを送信することにより通信状態の復元を促す機能を実行させる請求項１７に記載の無停止通信復旧制御プログラム。
【請求項２０】
前記コンピュータに、
前記複製されたパケットから抽出したコネクションに関するパケットと、前記抽出したパケットに基づいて解析したコネクション情報とを解析して、コネクション情報が揃っている場合に通信状態を復元し、コネクション情報が揃っていない場合に通信状態を切断する指令を前記スイッチに出力する機能を実行させる請求項１７に記載の無停止通信復旧制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタ環境のファイルサーバに利用可能な障害時の無停止通信復旧システム及びその方法に関する。
【背景技術】
【０００２】
クラスタ環境においては、クラスタ単位でデータの遣り取りによるサービスが行われており、そのサービスが継続されることが要求される。前記クラスタ環境では、サービスが行われている際に通信障害が発生する場合も想定されるため、それに対処する方式が開発されている。
【０００３】
前記通信障害の発生は、前記クラスタ環境の分野に限られるものではなく、通信を応用した分野では想定されるものである。クラスタシステムにおける故障復旧方式が特許文献１に開示されている。また、特許文献２には、コールドスタンバイをベースとしてシステムの停止時間を短縮する中継システムが開示されている。また、特許文献３には、再構築可能な故障に対する耐久性を向上させた多重相互接続ネットワークが開示されている。
【特許文献１】再公表特許ＷＯ２００５−０６０１８７号公報
【特許文献２】特開２００７−８１９３３号公報
【特許文献３】特開平５−２０７０１１号公報
【特許文献４】特開平１１−８５５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、クラスタ環境において通信障害が発生することによりサービスノードが切り替わった際、コネクションの再接続を行うために、待機系側でもセッション状態の情報を全て共有する必要があった。この場合、待機系側のリソースの増大を招きかねないという問題がある。
【０００５】
また、特許文献２においても、二つの端末相互間を中継している中継装置に通信障害が生じた際、この中継装置を別の中継装置に切り替えるために、再開処理に必要なジャーナルとしての全ての情報を確保する必要があり、特許文献１と同様の問題が残されている。
【０００６】
また、特許文献３は、スイッチによるネットワークを動的に構成するものであり、相互接続された複数のアクティブ論理スイッチで入出力に使用するポートを選択的に接続する構成に関するものであり、クラスタ環境にそのまま適用することはできず、改良する余地が残されている。
【０００７】
また、特許文献４では、実行系制御プロセスと待機系制御プロセスとに対応させて共有メモリ上にネットワーク情報を記憶させておき、この情報を引き継いで通信を継続させるものであり、コネクションの再接続を行うためにセッション状態の情報を全て共有する必要があった。
【０００８】
クラスタ環境においては、クラスタ単位でデータの遣り取りによるサービスを継続させるためには、セッションの再開に加えて通信状態を復旧させる必要がある。しかしながら、前記特許文献に開示された方式は、その何れもがコネクションの再接続を行うためにセッション状態の情報を全て確保する必要があり、それらの情報を利用してセッションの再開のみを実現するものであるから、通信状態の復旧を実現するには至っていないのが実情である。
【０００９】
本発明の目的は、パケット情報から通信状態を復旧させ、コネクションを再接続しなくてもサービスを継続させる、クラスタ環境における障害時の無停止通信復旧システム及び方法を提供することにある。
【課題を解決するための手段】
【００１０】
前記目的を達成するため、本発明に係る障害時の無停止通信復旧システムは、クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系とし、スイッチを通して前記サービス系クラスタノードとクライアントとの間で通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる障害時の無停止通信復旧システムであって、
前記スイッチは、通信ポートを通して前記クライアントと前記サービス系クライアントノードとの間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノードに送信するパケット複製手段を有し、
前記待機系クラスタノードは、前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析するパケット解析モジュールと、前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元するコネクション復元モジュールとを有することを特徴とする。
【００１１】
以上の説明では、本発明をハードウェア構成による障害時の無停止通信復旧システムとして構築したが、これに限られるものではない。本発明は、前記障害時の無停止通信復旧システムに用いるスイッチ或いは待機系クラスタノードとして構築してもよい。さらには、本発明は、障害時の無停止通信復旧方法、或いは無停止通信復旧制御プログラムとして構築してもよいものである。
【００１２】
本発明を前記障害時の無停止通信復旧システムに用いるスイッチとして構築した場合、本発明に係る無停止通信復旧システムのスイッチは、クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系として通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる無停止通信復旧システムに用いるスイッチであって、
前記スイッチは、前記サービス系クラスタノードとクライアントとの間で通信ポートを通してパケットを通信するものであり、前記通信ポートを通して前記クライアントと前記サービス系クライアントノードとの間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノードに送信するパケット複製手段を有する構成として構築する。
【００１３】
本発明を前記障害時の無停止通信復旧システムに用いるスイッチとして構築した場合、本発明に係る障害時の無停止通信復旧システムの待機系クラスタノードは、クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系として通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる無停止通信復旧システムに用いる待機系クラスタノードであって、
前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析するパケット解析モジュールと、前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元するコネクション復元モジュールとを有する構成として構築する。
【００１４】
本発明を障害時の無停止通信復旧方法として構築した場合、本発明に係る障害時の無停止通信復旧方法は、クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系とし、スイッチを通して前記サービス系クラスタノードとクライアントとの間で通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる障害時の無停止通信復旧方法であって、
前記通信ポートを通して前記クライアントと前記サービス系クライアントノードとの間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノードに送信し、前記待機系クラスタノード側において、前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析し、前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元する構成として構築する。
【００１５】
本発明を障害時の無停止通信復旧制御プログラムとして構築した場合、本発明に係る無停止通信復旧制御プログラムは、クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系として通信を運用する際に、前記サービス系クラスタノードで障害が発生した際に通信を再開させる無停止通信復旧の動作を制御するための制御プログラムであって、
前記待機系クラスタノードを構成するコンピュータに、
前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析する機能と、前記サービス系クラスタノードの動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元する機能とを実行させる構成として構築する。
【発明の効果】
【００１６】
本発明によれば、クラスタ環境のクラスタノードにおいてサービス系クラスタノードで障害が発生しそれまでのサービスを待機系クラスタノードが引き継ぐ際に、予め待機系クラスタノードでサービス系クラスタノードの通信ポートを流れるパケットをバッファリング（ミラー）しておき、通信状態（例えばコネクション開設／切断）の情報をトレースしつつパケット情報から通信状態を復元させ、コネクションを再接続しなくてもサービスを継続することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る障害時の無停止通信復旧システムを示す構成図である。
【図２】本発明の実施形態に係る障害時の無停止通信復旧システムを用いて障害時の無停止通信復旧方法を実行する場合のシーケンスを示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を図に基づいて詳細に説明する。
【００１９】
本発明の実施形態に係る障害時の無停止通信復旧システムは図１に示す様に、クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系とし、スイッチ１を通して前記サービス系クラスタノード（２）とクライアント６との間で通信を運用する際に、前記サービス系クラスタノード（２）で障害が発生した際に通信を再開させる障害時の無停止通信復旧システムを対象とするものである。
【００２０】
そして、本発明の実施形態に係る障害時の無停止通信復旧システムは図１に示す様に、基本的な構成として、前記スイッチ１は、通信ポートを通して前記クライアント６と前記サービス系クライアントノード（２）との間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノードに送信するパケット複製手段１０を有している。さらに、前記待機系クラスタノード（３）は、前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析するパケット解析モジュール５０と、前記サービス系クラスタノード（２）の動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元するコネクション復元モジュール３０とを有することを特徴としている。
【００２１】
本発明の実施形態では、前記スイッチ１のパケット複製手段１０を用いて前記通信ポートを通して前記クライアント６と前記サービス系クライアントノード（２）との間で通信されるパケットを複製し、その複製したパケットを前記待機系クラスタノード（３）に送信し、前記待機系クラスタノード（３）側において、パケット解析モジュール５０を用いて、前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析し、前記コネクション復元モジュール３０を用いて、前記サービス系クラスタノード（２）の動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元する。
【００２２】
次に、本発明の実施形態に係る障害時の無停止通信復旧システムをクラスタ環境のファイルサーバに適用した例に基づいて、さらに詳細に説明する。
【００２３】
本発明の実施形態に係る障害時の無停止通信復旧システムをクラスタ環境のファイルサーバに適用した場合、サービス系クラスタノードには図1に示すサービス系ファイルサーバ２が該当し、待機系クラスタノードには図1に示す待機系ファイルサーバ３が該当する。
【００２４】
クラスタ環境のファイルサーバに適用した本発明の実施形態に係る障害時の無停止復旧システムは図１に示す様に、スイッチ１と、サービス系ファイルサーバ２と、待機系ファイルサーバ３と、クライアント６とを有している。
【００２５】
前記スイッチ１は、前記サービス系ファイルサーバ２と前記クライアント６との相互間で通信ポートを通してパケットの遣り取りを行うものであり、パケット複製手段１０を有している。前記パケット複製手段１０は、前記通信ポートを通して遣り取りするパケットを複製し、その複製したパケットを前記通信ポートとは異なる通信ポートに流すものである。なお、前記異なる通信ポートには、後述するように前記待機系ファイルサーバ３が接続され、前記パケット複製手段１０は、前記複製したパケットを前記待機系ファイルサーバ３に送信するようになっている。
【００２６】
前記待機系ファイルサーバ３は、前記サービス系サーバ２と同様に前記クライアント６にサービスを提供するものであり、前記サービス系サーバ２を現用のサーバとした場合、前記サービス系サーバ２に障害が生じた際に前記サービス系サーバ２に代わって前記クライアント６にサービスを提供するものである。前記待機系ファイルサーバ３は、コネクション復元モジュール３０と、死活監視手段４０と、パケット解析モジュール５０とを有している。なお、前記死活監視手段４０は、前記待機系ファイルサーバ３に装備したが、これに限られるものではなく、前記待機系ファイルサーバ３とは独立させて設けてもよいものである。
【００２７】
前記パケット解析モジュール５０は、前記複製されたパケットからコネクションに関するパケットを抽出し、前記抽出したパケットに基づいてコネクション情報を解析するものであり、パケット受信手段５１と、パケット抽出手段５２と、パケット解析手段５３と、パケットバッファ５４と、コネクション情報記憶部５５とを有している。
【００２８】
前記パケット受信手段５１は、前記パケット複製手段１０が選択した通信ポートに接続して、前記パケット複製手段１０が複製したパケットを受信し、その受信したパケットを前記パケット抽出手段５２に受け渡すものである。
【００２９】
前記パケット抽出手段５２は、受信したパケットからコネクションに関するパケット、具体的は、コネクションの開設／切断、ＮＦＳ（Network  File  System）／ＣＩＦＳ（Common  Internet  File  System）のリクエスト／リプライに関わるパケットを抽出し、前記抽出したパケットを前記パケット解析手段５３に受け渡すものである。
【００３０】
前記パケット解析手段５３は、前記パケット抽出手段５２が抽出したパケットを受け取り、前記抽出されたパケットからコネクション情報を解析し、その解析結果を前記パケットバッファ５４と前記コネクション情報記憶部５５とに出力するものである。
【００３１】
前記パッケトバッファ５４は、前記パケット解析手段５３からの解析結果を得て、コネクション毎に遣り取りされたコネクションに関するパケット、具体的にはＮＦＳ／ＣＩＦＳのリクエスト／リプライに関するパケットを記憶するものである。なお、前記パケットバッファ５４は、前記パケット解析手段５３からの登録要求に基づいて前記パケットをＦＩＦＯ（First−In  First−Out）方式で記憶している。ここに、ＦＩＦＯ方式とは、格納したデータを、古く格納した順に取り出すようにする方式であって、一番新しく格納されたデータが一番最後に取り出される方式を意味する。
【００３２】
前記コネクション情報記憶部５５は、前記パケット解析手段５３からの解析結果を得て、前記パケット解析手段５３が解析したコネクション情報（例えば、ＴＣＰ（Transmission  Control  Protocol）／ＩＰ（Internet  Protocol）ヘッダ、ＮＦＳのファイルハンドラ、ＳＭＢ（Server  Message  Block）ヘッダ）をテーブル形式で記憶するものである。前記死活監視手段４０は、前記サービス系ファイルサーバ２の動作状況を監視して、前記サービス系ファイルサーバ２で障害が発生したかどうかを監視するものである。
【００３３】
前記コネクション復元モジュール３０は、前記サービス系クラスタノード２の動作監視状況に対応して、前記コネクションに関するパケットと前記コネクション情報とに基づいて、通信状態を復元するものである。具体的には、前記コネクション復元モジュール３０は、前記コネクションに関するパケットのヘッダ情報とデータとから過去最近に通信していたコネクション情報を復元し、その復元したコネクション情報に基づいて前記通信状態を復元する。そして、前記コネクション復元モジュール３０は、前記コネクション情報が復元不可能なときに、前記コネクションに関するパケットから前記スイッチの通信ポートを割り出し、前記スイッチにリセットを送信することにより通信状態の復元を促す。また、前記コネクション復元モジュール３０は、前記複製されたパケットから抽出したコネクションに関するパケットと、前記抽出したパケットに基づいて解析したコネクション情報とを解析して、コネクション情報が揃っている場合に通信状態を復元し、コネクション情報が揃っていない場合に通信状態を切断する指令を前記スイッチ１に送信する。
【００３４】
さらに具体的に説明すると、前記コネクション復元モジュール３０は、コネクション解析手段３１と、コネクション復元手段３２と、コネクション切断手段３３とを有している。
【００３５】
前記コネクション解析手段３１は、前記死活監視手段４０による監視結果を得て、前記コネクション記憶部５５が記憶している情報と前記パケットバッファ５４が記憶している情報とに基づいて通信状態（コネクション状態）を解析するものである。
【００３６】
前記コネクション復元手段３２は、前記コネクション解析手段３１が解析した結果を受けて、前記コネクションに関するパケットのヘッダ情報とデータとから過去最近に通信していたコネクション情報を復元し、その復元したコネクション情報に基づいて前記通信状態を復元する。そして、前記コネクション復元手段３２は、前記コネクション解析手段３１による解析の結果で前記コネクション情報が復元不可能なときに、前記コネクションに関するパケットから前記スイッチ１の通信ポートを割り出し、前記スイッチ１にリセット（ＲＳＴ）を送信することにより通信状態の復元を促す。また、前記コネクション復元手段３２は、前記コネクション解析手段３１が解析した結果を受けて、前記複製されたパケットから抽出したコネクションに関するパケットと、前記抽出したパケットに基づいて解析したコネクション情報とを解析して、コネクション情報が揃っている場合に通信状態を復元する。
【００３７】
前記コネクション切断手段３３は、前記コネクション解析手段３１が解析した結果を受けて、コネクション情報が揃っていない場合に、前記コネクション解析手段３１の指示でリセット（ＲＳＴ）を前記スイッチ１に送信するものである。前記スイッチ１は、前記コネクション切断手段３３からの前記リセットを受けてコネクションを切断する。
【００３８】
以上の説明では、本発明の実施形態をハードウェア構成による障害時の無停止通信復旧システムとして構築したが、これに限られるものではない。本発明の実施形態における待機系ファイルサーバ３を構築するコネクション復元モジュール３０とパケット解析モジュール５０とを、ＣＰＵにプログラムを実行させることにより、ソフトウェア上で実現するようにしてもよいものである。
【００３９】
次に、本発明の実施形態に係る無停止通信復旧システムを用いて、クラスタ環境における障害時の無停止通信復旧方法を実行する場合を図１及び図２に基づいて説明する。
【００４０】
以下では、クライアント６がサービス系ファイルサーバ２を利用してファイルアクセスする場合における無停止通信復旧方法について説明する。
【００４１】
クライアント６とサービス系ファイルサーバ２との間において、コネクション開設要求／応答のパケットがスイッチ１の通信ポートを通して送受信されると（図２のステップＳ１，Ｓ２，Ｓ３，Ｓ４）、スイッチ１のパケット複製手段１０は、前記通信ポートを通して送受信された前記パケットを受け取って、前記パケットを複製し、その複製したパケットを、前記通信ポートとは異なる通信ポートを通して待機系ファイルサーバ３のパケット受信手段５１に送信する（図２のステップＳ５）。
【００４２】
前記パケット受信手段５１は、前記パケット複製手段１０が複製した前記パケットを受信すると、そのパケットをそのままパケット抽出手段５２に送信する。前記パケット抽出手段５２は、前記パケット受信手段５１から前記パケットを受け取ると、そのパケットのＴＣＰヘッダのフラグに基づいて、コネクション開設要求か、又はコネクション開設要求に対する応答かを判断し、コネクション情報をコネクション情報記憶部５５に出力する。前記コネクション情報記憶部５５は、前記パケット抽出手段５３からの出力に基づいて前記コネクションに関するパケットをＦＩＦＯ方式で記録する。
【００４３】
次に、前記クライアント６から前記サービス系ファイルサーバ２にファイルアクセス要求／応答のパケットが前記スイッチ１の通信ポートを通して返送されると、同様に前記パケット複製手段１０は、前記通信ポートを通して返送された前記パケットを複製し、その複製したパケットを、前記通信ポートとは異なる通信ポートを通して待機系ファイルサーバ３のパケット受信手段５１に送信する。
【００４４】
前記パケット受信手段５１は、前記パケット複製手段が複製した前記パケットを受信すると、そのパケットをそのままパケット抽出手段５２に送信する。
【００４５】
前記パケット抽出手段５２は、前記パケット受信手段５１から前記パケットを受け取ると、そのパケットから前記コネクションに関するパケットを抽出し、そのパケットを前記パケット解析手段５３に出力する。
【００４６】
前記パケット解析手段５３は、前記パケット抽出手段５２からの前記パケットを受け取ると、前記コネクション情報記憶部５５が記憶しているコネクション情報を読み出し、前記パケット抽出手段５２から受け取った前記パケットにおけるＴＣＰヘッダに基づいて、前記クライアント６から前記サービス系ファイルサーバ２への通信が前記コネクション情報記憶部５５で記憶されているコネクション情報による通信であるかを判定し、前記コネクション情報による通信である場合に、前記パケットにおけるＮＦＳ／ＣＩＦＳのヘッダに基づいて、ファイルアクセス要求か、或いはそのファイルアクセス要求に対する応答かを判断し、前記パケット抽出手段５２から受け取った前記パケットを前記パケットバッファ５４に出力する。前記パケットバッファ５４は、前記パケット解析手段５３から受け取った前記パケットをＦＩＦＯ方式で記憶する。
【００４７】
ここで、前記クライアント６から前記サービス系ファイルサーバ２に前記スイッチ１の通信ポートを通してコネクション切断要求のパケットが返送された場合には、前記コネクション開設要求時の処理と同様に、前記スイッチ１のパケット複製手段１０は、前記通信ポートを通して返送された前記パケットを複製し、その複製したパケットを待機系ファイルサーバ３の前記パケット抽出手段５２に向けて送信する。
【００４８】
前記パケット解析手段５３は、コネクション開設要求時と同様に、前記パケット抽出手段５２が抽出したコネクション切断要求のパケットを受け取ると、その受け取った前記パケットのＴＣＰヘッダに基づいて、前記コネクション情報記憶部５５が記憶しているコネクション情報に前記コネクション切断要求のコネクション情報が存在している場合に、そのコネクション情報を削除する指令を前記コネクション情報記憶部５５に出力する。前記コネクション情報記憶部５５は、前記パケット解析手段５２からの指令を受けて、記憶しているコネクション情報から、前記コネクション切断要求のコネクション情報に該当するコネクション情報を削除する。
【００４９】
次に、前記サービス系ファイルサーバ２で障害が発生した場合について説明する。
【００５０】
前記待機系ファイルサーバ３の死活監視手段４０は、前記サービス系ファイルサーバ２の動作状態を監視している。監視している状態で前記サービス系ファイルサーバ３の障害が発生すると、前記死活監視手段４０は直ちに前記サービス系ファイルサーバ２に障害が発生したことを前記待機系ファイルサーバ３のコネクション復元モジュール３０に通知する。
【００５１】
前記コネクション復元モジュール３０が前記死活監視手段４０から前記サービス系ファイルサーバ２に障害が発生した通知を受け取ると、前記コネクション復元モジュール３０のコネクション解析手段３１は、前記コネクション情報記憶部５５及び前記パケットバッファ５４に記憶されている情報を読み出し、その読み出した情報に基づいて通信状態（コネクション状態）を解析し、その解析結果を前記コネクション復元手段３２及び前記コネクション切断手段３３に出力する。
【００５２】
前記コネクション復元手段３２は、前記コネクション解析手段３１が解析した結果を受けて、前記コネクションに関するパケットのヘッダ情報とデータとから過去最近に通信していたコネクション情報を復元し、その復元したコネクション情報に基づいて前記通信状態を復元する。そして、前記コネクション復元手段３２は、前記コネクション解析手段３１による解析の結果で前記コネクション情報が復元不可能なときに、前記コネクションに関するパケットから前記スイッチ１の通信ポートを割り出し、前記スイッチ１にリセット（ＲＳＴ）を送信することにより通信状態の復元を促す。また、前記コネクション復元手段３２は、前記コネクション解析手段３１が解析した結果を受けて、前記複製されたパケットから抽出したコネクションに関するパケットと、前記抽出したパケットに基づいて解析したコネクション情報とを解析して、コネクション情報が揃っている場合に通信状態を復元する。
【００５３】
さらに、前記コネクション解析手段３１がパケットバッファ５４に残っている最後のリクエスト／リプライ情報に基づいて、リクエストの受信が最後の受信であると解析した場合、前記コネクション復元手段３２は、そのリクエストに対する処理からサービスを再開する旨の指令を前記待機系ファイルサーバ３に出力する。
【００５４】
前記待機系ファイルサーバ３は、上述した前記コネクション復元手段３２による復元の結果を得て、前記サービス系ファイルサーバ２に代わって、前記クライアント６に対するサービスを再開する。そして、前記待機系ファイルサーバ３は、前記コネクション復元手段３２から前記リクエストに対する処理からサービスを再開する旨の指令を受け取った場合、前記そのリクエストに対する処理からサービスを再開する（図２のステップＳ６，Ｓ７）。
【００５５】
また、前記コネクション解析手段３１は、前記コネクション情報記憶部５５に記憶されているコネクション情報と、前記パケットバッファ５４に記憶されている前記コネクションに関するパケットとを読み出し、その読み出したデータに基づいてコネクション状態を解析し、その解析したコネクション情報に結びつくリクエスト／リプライのパケットが前記パケットバッファ５４に存在しない場合、切断指令を前記コネクション切断手段３３に出力する。
【００５６】
前記コネクション切断手段３３は、前記コネクション解析手段３１が解析した結果を受けて、コネクション情報が揃っていない場合に、前記コネクション解析手段３１の指示でリセット（ＲＳＴ）を前記スイッチ１に送信する。前記スイッチ１は、前記コネクション切断手段３３からの前記リセットを受けてコネクションを切断する。
【００５７】
以上のように、本発明の実施形態によれば、クラスタ環境のクラスタノードにおいてサービス系クラスタノードで障害が発生しそれまでのサービスを待機系クラスタノードが引き継ぐ際に、予め待機系クラスタノードでサービス系クラスタノードの通信ポートを流れるパケットをバッファリング（ミラー）しておき、通信状態（例えばコネクション開設／切断）の情報をトレースしつつパケット情報から通信状態を復元させ、コネクションを再接続しなくてもサービスを継続することができる。
【００５８】
また、本発明の実施形態によれば、サービス系ファイルサーバの障害時にフェイルオーバしてもサービス中だったファイルアクセスのコネクションを維持することができ、再接続処理をせずに通信を継続できる。その理由は、サービス系ファイルサーバで通信していたパケットを待機系ファイルサーバでもミラーし、コネクション状態をトレースしコネクションを再構築できるためである。
【００５９】
また、待機系ファイルサーバにおけるコネクション復旧のための処理負荷を低く抑えることができる。その理由は、待機時にはミラーとして流れてくるパケットの処理のみを行いコネクションそのものは扱わず、障害発生時に記憶しているコネクション情報とパケットに基づいてコネクションを復旧させるためである。
【００６０】
また、コネクション復旧時に良く使われているコネクションほど優先的に復旧させることができる。その理由は、ＦＩＦＯ方式に基づいてパケットバッファに記録を実行し、過去最近に通信したパケット情報が優先して残り、この情報を使ってコネクションを復旧するためである。
【００６１】
また、本発明の他の実施形態として、Ｎノードクラスタ環境に拡張して考えた場合、例えばクラスタノードが１０ノードであれば、１Ｇｂｐｓポート×１０と１０Ｇｂｐｓポート×１とをもつスイッチ１を用意し、コネクション復元モジュール３０を装備した各ノードを１Ｇｂｐｓポートに接続し、パケット解析モジュール５０を１０Ｇｂｐｓポートに接続してパケットのミラーを行い、障害発生時には障害ノードのＩＰアドレスに関わるコネクションを稼動している何れかのノードのコネクション復元モジュール３０に、記憶しているコネクション情報を転送し、コネクションを復旧することも可能である。
【００６２】
また、以上説明した実施形態では、本発明の実施形態に係る障害時の無停止通信復旧システムをクラスタ環境のファイルサーバに適用した例を説明したが、これに限られるものではない。クラスタ環境の一のクラスタノードをサービス系、他のクラスタノードを待機系とし、スイッチを通して前記サービス系クラスタノードとクライアントとの間で通信を運用するシステムであれば、本発明の実施形態に係る無停止通信復旧システムを適用することにより、前記サービス系クラスタノードで障害が発生した際に通信を再開させて、障害時の無停止通信の復旧を行うことができるものである。
【産業上の利用可能性】
【００６３】
本発明によれば、例えばクラスタ環境のファイルサーバに利用して、障害時の無停止通信の復旧を実現することに貢献できるものである。
【符号の説明】
【００６４】
１  スイッチ
２  サービス系ファイルサーバ
３  待機系ファイルサーバ
３０  コネクション復元モジュール
５０  パケット解析モジュール
【図１】
2010245757.tif 000003
【図２】
2010245757.tif 000004