(57)【特許請求の範囲】
【請求項１】
データの複製を昇格して原本にするとともに、そのデータを昇格する度に昇格カウンタ値を更新し、前記更新した昇格カウンタ値と閾値とを比較する昇格部と、
前記昇格部の比較結果に基づいて、他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる複製部と、
を備えることを特徴とするサーバ装置。
【請求項２】
前記複製部は、前記他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる場合、前記データおよび当該データの前記更新した昇格カウンタ値を前記他のサーバ装置に送信し、前記データおよび前記昇格カウンタ値を受信した場合、その受信した前記データおよび前記昇格カウンタ値を複製する
ことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記複製部は、前記他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる場合に、前記他のサーバ装置が前記データの複製および当該データの前記昇格カウンタ値を既に記憶しているとき、前記データの前記更新した昇格カウンタ値および当該データの昇格カウンタ値の更新を指示する更新指示情報を当該他のサーバ装置に送信し、当該データの前記更新した昇格カウンタ値および前記更新指示情報を受信した場合、受信した前記データの前記更新した昇格カウンタ値で、既に記憶している当該データの前記昇格カウンタ値を更新する
ことを特徴とする請求項１に記載のサーバ装置。
【請求項４】
前記複製部は、前記他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる場合に、前記他のサーバ装置が前記データの複製および当該データの前記昇格カウンタ値を既に記憶しているとき、前記データの前記昇格カウンタ値の更新を指示する更新指示情報を当該他のサーバ装置に送信し、前記データの前記更新指示情報を受信した場合、受信した当該データの前記更新指示情報に基づいて、既に記憶している当該データの前記昇格カウンタ値を更新する
ことを特徴とする請求項１に記載のサーバ装置。
【請求項５】
前記サーバ装置は、保守装置と通信可能であり、
前記昇格部は、前記昇格部の比較結果に基づいて、前記データを前記保守装置に送信し、前記データの原本を削除する
ことを特徴とする請求項１ないし請求項４のいずれか一項に記載のサーバ装置。
【請求項６】
前記サーバ装置は、
前記昇格部は、前記昇格部の比較結果に基づいて、前記データの複製を削除する指示を示す削除指示情報を前記他のサーバ装置に送信する
ことを特徴とする請求項１ないし請求項５のいずれか一項に記載のサーバ装置。
【請求項７】
コンピュータに、
データの複製を昇格して原本にするとともに、そのデータを昇格する度に昇格カウンタ値を更新し、前記更新した昇格カウンタ値と閾値とを比較する昇格機能と、
前記昇格機能の比較結果に基づいて、他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる複製機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケールアウト型のネットワークサーバシステムにおいて、障害がシステム全体に波及することを防止する技術に関する。
【背景技術】
【０００２】
近年、セッション制御サーバのようなネットワークサーバを複数のサーバ装置で分散処理させるスケールアウト型のネットワークサーバシステムが検討されている（非特許文献１）。スケールアウト型のネットワークサーバシステムは、クラスタ化された複数のサーバ装置によって構成され、単体のサーバ装置で処理できない量の情報を処理することができる。通信事業者によって運用されるネットワークサーバシステムは、システムの高信頼化のために、演算に用いるデータの複製を異なるサーバ装置にバックアップとして記憶させている。非特許文献１では、コンシステントハッシュ法を用いて、クラスタ化されたサーバ装置の集合の中から、データの原本を記憶させるサーバ装置と当該データの複製を記憶させるサーバ装置とを決定している。そして、データの原本を記憶しているサーバ装置に障害が発生した場合には、ネットワークサーバシステムは、当該データの複製を記憶しているサーバ装置を用いて情報の処理を継続することができる。
【０００３】
非特許文献１に記載の技術では、複製されたデータから原本のデータを復元する場合、新たに当該データの処理を担当するサーバ装置は、自身の記憶している複製のデータを原本のデータに昇格させるとともに、新たに他のサーバ装置に当該データの複製を生成する。このような動作によって、ネットワークサーバシステムは、原本のデータと当該データの複製とが必ず存在するように維持することができる。また、このような動作によって、ネットワークサーバシステムは、故障に伴うサーバ装置の停止や保守に伴うサーバ装置の減設（停止）等が発生した場合であっても、データの処理を継続することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】入江道生、外４名、「スケールアウト型セッション制御サーバにおける動的構成変更に関する一検討」、電子情報通信学会技術研究報告、社団法人電子情報通信学会、2011年2月24日、Vol.110、448(NS2010 163-295)、p.407-410
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、データに不正な情報が含まれていた場合等、そのデータ処理時に、処理例外を起こすような障害を発生するケースが想定される。そのようケースでは、処理例外によるサーバ停止、複製を原本に昇格、不正な情報を含むデータの新たな複製が繰り返されてしまう連鎖によって、ネットワークサーバシステムを構成する全てのサーバ装置が停止してしまう虞がある。また、スケールアウト型のネットワークサーバシステムは、単体のサーバ装置では収容することが困難な数の加入者を収容することを想定して構築されている。そのため、ネットワークサーバシステム全体が停止した場合の影響が非常に大きくなるという問題がある。
【０００６】
そこで、本発明は、スケールアウト型のネットワークサーバシステムにおいて、連鎖的に波及していく障害を防止する技術を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明のサーバ装置は、データの複製を昇格して原本にするとともに、そのデータを昇格する度に昇格カウンタ値を更新し、前記更新した昇格カウンタ値と閾値とを比較する昇格部と、前記昇格部の比較結果に基づいて、他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる複製部と、を備えることを特徴とする。
【０００８】
また、前記サーバ装置の前記複製部は、前記他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる場合、前記データおよび当該データの前記更新した昇格カウンタ値を前記他のサーバ装置に送信し、前記データおよび前記昇格カウンタ値を受信した場合、その受信した前記データおよび前記昇格カウンタ値を複製することを特徴とする。
【０００９】
また、前記サーバ装置の前記複製部は、前記他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる場合に、前記他のサーバ装置が前記データの複製および当該データの前記昇格カウンタ値を既に記憶しているとき、前記データの前記更新した昇格カウンタ値および当該データの昇格カウンタ値の更新を指示する更新指示情報を当該他のサーバ装置に送信し、当該データの前記更新した昇格カウンタ値および前記更新指示情報を受信した場合、受信した前記データの前記更新した昇格カウンタ値で、既に記憶している当該データの前記昇格カウンタ値を更新することを特徴とする。
【００１０】
また、前記サーバ装置の前記複製部は、前記他のサーバ装置に前記データの昇格カウンタ値を前記更新した昇格カウンタ値に設定させる場合に、前記他のサーバ装置が前記データの複製および当該データの前記昇格カウンタ値を既に記憶しているとき、前記データの前記昇格カウンタ値の更新を指示する更新指示情報を当該他のサーバ装置に送信し、前記データの前記更新指示情報を受信した場合、受信した当該データの前記更新指示情報に基づいて、既に記憶している当該データの前記昇格カウンタ値を更新することを特徴とする。
【００１１】
このような構成によれば、サーバ装置は、データの複製を生成する回数を制限することができるので、スケールアウト型のネットワークサーバシステムにおいて発生しうる連鎖的な障害を防止し、信頼性を高めることができる。
【００１２】
また、本発明の前記サーバ装置は、保守装置と通信可能であり、前記昇格部が、前記昇格部の比較結果に基づいて、前記データを前記保守装置に送信し、前記データの原本を削除することを特徴とする。
【００１３】
また、本発明の前記サーバ装置は、前記昇格部が、前記昇格部の比較結果に基づいて、前記データの複製を削除する指示を示す削除指示情報を前記他のサーバ装置に送信することを特徴とする。
【００１４】
このような構成によれば、サーバ装置は、データを削除することによって、スケールアウト型のネットワークサーバシステムにおいて発生しうる連鎖的な障害を防止し、信頼性を高めることができる。また、サーバ装置は、連鎖的な障害を引き起こしたデータを保守装置に送信することによって、送信したデータを障害解析に役立てたり、データの復元に役立てたりすることができる。
【００１５】
なお、プログラムに係る発明については、前記したサーバ装置と同様の技術的特徴を備えており、前記サーバ装置と同様の効果を有しているので、「課題を解決するための手段」における記載を省略する。
【発明の効果】
【００１６】
本発明によれば、スケールアウト型のネットワークサーバシステムにおいて、連鎖的に波及していく障害を防止することができる。
【図面の簡単な説明】
【００１７】
【図１】スケールアウト型のネットワークサーバシステムの構成例およびサーバ装置の機能例を示す図である。
【図２】データの原本を記憶しているサーバ装置が停止した場合の処理例を示す図である。
【図３】第１実施形態におけるサーバ装置の処理フロー例を示す図である。
【図４】第２実施形態におけるサーバ装置の処理フロー例を示す図である。
【図５】第３実施形態におけるサーバ装置の処理フロー例を示す図である。
【図６】第４実施形態におけるサーバ装置の処理フロー例を示す図である。
【発明を実施するための形態】
【００１８】
本発明を実施するための形態（以降、「本実施形態」と称す。）について、適宜図面を参照しながら詳細に説明する。
【００１９】
はじめに、スケールアウト型のネットワークサーバシステムの構成例について、図１を用いて説明する。
ネットワークサーバシステム１００は、クライアント装置６０からネットワーク５０を経由してサービス要求のパケットを受信し、そのサービス要求に対応する応答情報を生成し、ネットワーク５０を経由してその応答情報を返信するサービスを提供する機能を有する。
【００２０】
図１では、ネットワークサーバシステム１００は、１台のロードバランサ１、２台の振分けサーバ２、３台のサーバ装置３ａ，３ｂ，３ｃを備えている。なお、サーバ装置を区別しない場合には、符号３を用いることとする。振分けサーバ２の台数およびサーバ装置３の台数は、受信するパケット数の多少に応じて、適宜変更されるものとする。つまり、振分けサーバ２は２台に限られることはなく１台以上であり、サーバ装置３は３台に限られることはなく２台以上であるものとする。
【００２１】
ロードバランサ１は、ネットワーク５０を介してパケットを受信し、任意の振分けサーバ２に対して、ラウンドロビン等の単純な法則に従って当該パケットを振り分ける。
【００２２】
振分けサーバ２は、ロードバランサ１から受信したパケットの情報処理に用いるデータＡ（例えば、セッション状態や処理途中の結果等）の原本（図１では、データＡ（原本）と表記。）がどのサーバ装置３に管理されているかを判別する。そして、振分けサーバ２は、当該データＡの原本を記憶しているサーバ装置３ａをパケットの転送先として決定し、その転送先のサーバ装置３ａに当該パケットを送信する。本実施形態では、サーバ装置３が記憶しているデータを、パケットに含まれているデータと区別するために、データＡとして表記する。なお、データＡは、サーバ装置３に記憶されているデータの一例であり、他にも不図示のデータＢ、データＣ、・・等があるものとするが、本実施形態では、データＡを代表させて説明に用いる。
【００２３】
例えば、振分けサーバ２が、コンシステントハッシュ法を用いてデータＡを管理している場合、パケットに含まれるキー情報（例えば、ＳＩＰ（Session Initiation Protocol）ではＣａｌｌ−ＩＤヘッダに記載される情報）から生成されるハッシュ値と、各サーバ装置３に割り当てられたＩＤ空間の値とを用いて、パケットの転送先のサーバ装置３を決定する。そして、振分けサーバ２は、決定した転送先のサーバ装置３に、当該パケットを送信する。
【００２４】
サーバ装置３は、受信したパケットの情報処理に用いるデータＡを記憶しているので、そのデータＡを用いて当該パケットに対して情報処理を実行し、その処理結果を応答情報として返信する。図１に示す各サーバ装置３同士は、クラスタ化されているものとする。また、各サーバ装置３は、保守運用のために用いられる保守装置４と通信可能になっている。なお、サーバ装置３の機能の詳細については後記する。
【００２５】
保守装置４は、保守者によって保守運用のために用いられ、障害を繰り返し起こす不正データを含むデータＡを記憶し、障害解析処理を実行する機能を有する。
【００２６】
次に、サーバ装置３の機能例について、図１を用いて説明する。
サーバ装置３は、図示しないＣＰＵ（Central Processing Unit）およびメインメモリを有し、記憶部３４に記憶されているアプリケーションプログラム（不図示）をメインメモリに展開して、データ処理部３１、複製部３２および昇格部３３の各機能を具現化している。
【００２７】
データ処理部３１は、受信したパケットの情報処理を実行する機能を有する。
【００２８】
複製部３２は、記憶部３４にデータＡの原本（図１では「データＡ（原本）」と記載。）およびその昇格カウンタ値が記憶されている場合、予め当該データＡの複製（図１では「データＡ（複製）」と記載。）を記憶するように決められているサーバ装置３に当該データＡの複製およびその昇格カウンタ値を記憶させる機能を有する。なお、データＡの昇格カウンタ値は、データＡの複製を原本に昇格させた回数を表している。
また、複製部３２は、データ処理部３１によってデータＡの原本が更新された場合、その更新内容を、当該データＡの複製にも反映させる機能を有する。
【００２９】
昇格部３３は、データＡの複製を原本に昇格する機能を有する。昇格するとは、具体的には、昇格部３３がデータＡの原本の所在を振分けサーバ２に通知することである。また、昇格部３３は、データＡの複製を原本に昇格させる度に、当該データＡの昇格カウンタ値を増加する（更新する）機能を有する。
【００３０】
記憶部３４は、ハードディスク等の記憶装置であり、データ処理部３１によって参照されるデータＡの原本だけでなく、データＡ以外のデータの原本や複製を記憶していたり、前記アプリケーションプログラムを記憶していたりする。
【００３１】
ここで、データＡの原本を記憶しているサーバ装置３ａが停止した場合の処理例について、図２を用いて説明する。
図２に示すように、データＡの原本（図２では「データＡ（原本）」と記載。）を記憶しているサーバ装置３ａが停止した場合、サーバ装置３ｂは、自身に記憶しているデータＡの複製（図２では「データＡ（複製）」と記載。）を原本に昇格する。また、そのデータＡの昇格カウンタ値が、増加される。具体的には、昇格カウンタ値は、１回当たり「１」または所定値だけ増加される。そして、昇格処理以降の当該データＡに関する情報処理は、当該データＡの新たな原本を記憶しているサーバ装置３ｂにおいて実行されるようになる。また、サーバ装置３ｂは、当該データＡの複製を予め記憶するように決められているサーバ装置３ｃに記憶させる。
【００３２】
このようにして、サーバ装置３ａの停止の原因が、データＡに含まれる不正データを用いて情報処理を実行したときに発生したものであった場合（例えばＣ言語のポインタ例外やマルウェア等）、当該データＡの新たな原本を用いて情報処理を実行するサーバ装置３ｂにおいても、サーバ装置３ａと同様の原因により停止状態となる可能性がある。そして、ネットワークサーバシステム１００内の全てのサーバ装置３が停止状態となるまで、不正データを含むデータＡの複製、当該複製を原本へ昇格、サーバ装置３の停止が連鎖的に繰り返されることとなる。
【００３３】
そこで、本実施形態のサーバ装置３は、前記したような連鎖的なサーバ装置３の停止を防止するため、データＡ、データＢ、・・ごとにメタデータとして昇格カウンタ値を関連付けている。昇格カウンタ値には、複製から原本に昇格した回数が記録される。
【００３４】
そして、昇格カウンタ値が予め設定された閾値（所定回数）を超えた場合、サーバ装置３は、それ以上の昇格を発生させないようにする。また、サーバ装置３は、障害解析を目的として、保守装置４に、サーバ停止を引き起こした不正データを含むデータＡを送信する。さらに、昇格を発生させないための一例として、サーバ装置３は、不正データを含むデータＡの原本および複製全てを削除する。保守装置４では、受信した不正データを確認することによって、不具合の分析が行われる。また、データＡは、ネットワークサーバシステム１００上から消滅してしまった場合であっても、保守装置４には残るので、データＡの復元のために利用することができる。
【００３５】
次に、サーバ装置３の処理フロー例について、第１〜第４実施形態として以下に説明する（適宜、図２参照）。各実施形態の前提は、図２に示すように、データＡの原本を記憶しているサーバ装置３ａが停止し、当該データＡの複製を記憶しているサーバ装置３ｂが、当該データＡの複製を原本に昇格するものとする。
【００３６】
第１実施形態では、サーバ装置３ｂが、自身の記憶しているデータＡの複製を原本に昇格し（以降、昇格後と称す。）、データＡの複製を記憶していないサーバ装置３ｃに新たに当該データＡの複製を記憶（設定）させるケースについて、説明する。
【００３７】
第２実施形態では、サーバ装置３ｂが、昇格後、データＡの複製を既に記憶しているサーバ装置３ｃに、データＡの昇格カウンタ値およびその昇格カウンタ値の更新を指示する更新指示情報を送信して、サーバ装置３ｃに昇格カウンタ値を上書き（更新）させるケースについて、説明する。
【００３８】
第３実施形態では、サーバ装置３ｂが、昇格後、データＡの複製を既に記憶しているサーバ装置３ｃに、データＡの昇格カウンタ値の更新を指示する更新指示情報を送信して、サーバ装置３ｃに昇格カウンタ値を更新させるケースについて、説明する。
【００３９】
第４実施形態では、サーバ装置３ｂが、昇格後、データＡの複製を既に記憶しているサーバ装置３ｃに、データＡの複製および昇格カウンタ値を送信して、サーバ装置３ｃにデータＡの複製および昇格カウンタ値を上書き（更新）させるケースについて、説明する。
【００４０】
（第１実施形態）
まず、第１実施形態におけるサーバ装置３ｂの処理フロー例について、図３を用いて説明する。
ステップＳ３０１では、データＡの原本を記憶しているサーバ装置３ａが、データＡを用いた処理によって停止する。
【００４１】
ステップＳ３０２では、データＡの複製を記憶しているサーバ装置３ｂの昇格部３３は、サーバ装置３ａの停止を検出する。具体的には、サーバ装置３ｂの昇格部３３は、サーバ装置３ａとの接続が有効であることを確認するために定期的に行われる通信（例えば、keep alive等）が途絶えたことによって、サーバ装置３ａの停止を検出する。
【００４２】
ステップＳ３０３では、サーバ装置３ｂの昇格部３３は、自身の記憶しているデータＡの複製を原本に昇格する処理を実行する。
ステップＳ３０４では、サーバ装置３ｂの昇格部３３は、データＡの昇格カウンタ値を増加する（更新する）。
【００４３】
ステップＳ３０５では、サーバ装置３ｂの昇格部３３は、前記増加（更新）した昇格カウンタ値と予め決められた閾値とを比較し、前記増加した昇格カウンタ値が閾値を超えるか否かを判定する。
前記増加した昇格カウンタ値が閾値を超えると判定した場合（ステップＳ３０５でＹｅｓ）、処理はステップＳ３０８へ進み、前記増加した昇格カウンタ値が閾値以下であると判定した場合（ステップＳ３０５でＮｏ）、処理はステップＳ３０６へ進む。
【００４４】
ステップＳ３０６では、サーバ装置３ｂの複製部３２は、データＡの原本を複製する指示である複製指示情報を、予め決められているサーバ装置３ｃに送信する。なお、複製指示情報には、データＡおよびそのデータＡの昇格カウンタ値が含まれる。
【００４５】
ステップＳ３０７では、サーバ装置３ｃの複製部３２は、複製指示情報を受信し、データＡおよびそのデータＡの昇格カウンタ値を複製（設定）する。
【００４６】
ステップＳ３０８では、サーバ装置３ｂの昇格部３３は、データＡを保守装置４に送信する。
ステップＳ３０９では、保守装置４は、受信したデータＡを不図示の記憶部に記憶する。
【００４７】
ステップＳ３１０では、サーバ装置３ｂの昇格部３３は、データＡを削除する。
なお、図３には示していないが、サーバ装置３ｂの昇格部３３は、サーバ装置３ｃにデータＡの複製が記憶されている場合、データＡの複製を削除する指示情報をサーバ装置３ｃに送信し、ネットワークサーバシステム１００上からデータＡを削除する。
【００４８】
以上、第１実施形態では、サーバ装置３ｂは、データＡの複製を原本に昇格し、そのデータＡの昇格カウンタ値を増加した後、昇格カウンタ値と閾値とを比較し、昇格カウンタ値が閾値以下と判定した場合、複製指示情報をサーバ装置３ｃ（他のサーバ装置３）に送信する。また、サーバ装置３ｂは、昇格カウンタ値が閾値を超えると判定した場合、データＡを保守装置４に送信し、データＡを削除する。また、サーバ装置３ｂは、サーバ装置３ｃにデータＡの複製が記憶されている場合、データＡの複製を削除する指示情報をサーバ装置３ｃに送信し、ネットワークサーバシステム１００上からデータＡを削除する。このことにより、サーバ装置３は、スケールアウト型のネットワークサーバシステム１００において発生しうる連鎖的なソフトウェア障害を防止し、信頼性を高めることができる。また、サーバ装置３は、連鎖的な障害を引き起こしたデータＡを保守装置４に送信することによって、送信したデータＡを障害解析に役立てることができる。
【００４９】
（第２実施形態）
次に、第２実施形態におけるサーバ装置３ｂの処理フロー例について、図４を用いて説明する。なお、サーバ装置３ｂおよびサーバ装置３ｃには、既にデータＡの複製が記憶されているものとする。また、図４において、ステップＳ３０１〜Ｓ３０５、ステップＳ３０８〜Ｓ３１０の処理は、図３に示す第１実施形態と同様の処理であるので、同じ符号を付し、その説明を省略する。したがって、ここでは、ステップＳ４０６、Ｓ４０７，Ｓ４１１，Ｓ４１２について説明する。
【００５０】
ステップＳ４０６では、サーバ装置３ｂの昇格部３３は、昇格カウンタ値が閾値以下であると判定した場合、昇格カウンタ値およびその昇格カウンタ値の更新を指示する更新指示情報を、サーバ装置３ｃに送信する。
ステップＳ４０７では、サーバ装置３ｃの複製部３２は、更新指示情報を受信し、受信した昇格カウンタ値で、既に記憶していた昇格カウンタ値を更新（上書き）する。なお、上書きする場合には、昇格カウンタ値を一旦削除したあと、昇格カウンタ値を複製するようにしてもよい。
【００５１】
また、昇格カウンタ値が閾値を超えると判定された場合、ステップＳ４１１では、サーバ装置３ｂの昇格部３３は、データＡの複製を削除する指示を示す削除指示情報を、サーバ装置３ｃに送信する。
ステップＳ４１２では、サーバ装置３ｃの昇格部３３は、自身のデータＡの複製を削除する。
【００５２】
以上、第２実施形態は、第１実施形態と比べて、昇格処理後にサーバ装置３ｃに昇格カウンタ値を送信して更新する点、および他のサーバ装置３に記憶されているデータＡの複製を削除する指示を示す削除指示情報を送信する点において異なる。このことにより、サーバ装置３は、第１実施形態の場合と同様に、スケールアウト型のネットワークサーバシステム１００において発生しうる連鎖的なソフトウェア障害を防止することができる。
【００５３】
（第３実施形態）
次に、第３実施形態におけるサーバ装置３ｂの処理フロー例について、図５を用いて説明する。なお、サーバ装置３ｂおよびサーバ装置３ｃには、既にデータＡの複製が記憶されているものとする。また、図５において、ステップＳ３０１〜Ｓ３０５、ステップＳ３０８〜Ｓ３１０の処理は、図３に示す第１実施形態の場合と同様であり、ステップＳ４１１、ステップＳ４１２の処理は、図４に示す第２実施形態の場合と同様の処理であるので、それぞれ同じ符号を付し、その説明を省略する。したがって、ここでは、ステップＳ５０６、Ｓ５０７について説明する。
【００５４】
ステップＳ５０６では、サーバ装置３ｂの昇格部３３は、昇格カウンタ値が閾値以下であると判定した場合、昇格カウンタ値の更新を指示する更新指示情報を、サーバ装置３ｃに送信する。
ステップＳ５０７では、サーバ装置３ｃの複製部３２は、更新指示情報を受信し、記憶していた昇格カウンタ値を更新する。
【００５５】
以上、第３実施形態は、第２実施形態に比べて、サーバ装置３ｂの昇格部３３が、昇格カウンタ値の更新を指示する更新指示情報を送信すると、サーバ装置３ｃの複製部３２が、昇格カウンタ値を更新する点において異なる。このことにより、サーバ装置３は、スケールアウト型のネットワークサーバシステム１００において発生しうる連鎖的なソフトウェア障害を防止することができる。
【００５６】
（第４実施形態）
次に、第４実施形態におけるサーバ装置３ｂの処理フロー例について、図６を用いて説明する。なお、サーバ装置３ｂおよびサーバ装置３ｃには、既にデータＡの複製が記憶されているものとする。また、図６において、ステップＳ３０１〜Ｓ３０５、ステップＳ３０８〜Ｓ３１０の処理は、図３に示す第１実施形態の場合と同様であり、ステップＳ４１１、ステップＳ４１２の処理は、図４に示す第２実施形態の場合と同様の処理であるので、それぞれ同じ符号を付し、その説明を省略する。したがって、ここでは、ステップＳ６０６、Ｓ６０７について説明する。
【００５７】
ステップＳ６０６では、サーバ装置３ｂの昇格部３３は、昇格カウンタ値が閾値以下であると判定した場合、データＡおよび昇格カウンタ値を、サーバ装置３ｃに送信する。
ステップＳ６０７では、サーバ装置３ｃの複製部３２は、受信したデータＡおよび昇格カウンタ値で、既に記憶していたデータＡの複製および昇格カウンタ値を上書き（更新）する。なお、上書きする場合には、データＡの複製および昇格カウンタ値を一旦削除したあと、データＡおよび昇格カウンタ値を複製するようにしてもよい。
【００５８】
以上、第４実施形態は、第３実施形態に比べて、サーバ装置３ｂの昇格部３３が、データＡおよび昇格カウンタ値そのものを送信し、サーバ装置３ｃの複製部３２が、受信したデータＡおよび昇格カウンタ値で記憶していたデータＡの複製および昇格カウンタ値を上書きする。このことにより、サーバ装置３は、スケールアウト型のネットワークサーバシステム１００において発生しうる連鎖的なソフトウェア障害を防止することができる。
【００５９】
以上、第１〜第４実施形態におけるスケールアウト型のネットワークサーバシステム１００のサーバ装置３ｂは、自身の記憶しているデータＡの複製を原本に昇格させて、昇格カンタ値を更新した後、昇格カウンタ値と予め決めてある閾値とを比較する。サーバ装置３ｂは、昇格カウンタ値が閾値以下であると判定した場合、サーバ装置３ｃ（他のサーバ装置３）に、データＡおよび昇格カウンタ値を複製（または上書き）する。また、サーバ装置３ｂは、昇格カウンタ値が閾値を超えると判定した場合、データＡを不正データと判定して、データＡを保守装置４に送信する。また、サーバ装置３ｂは、そのデータＡの原本を削除するとともに、データＡの複製を削除させる削除指示情報を他のサーバ装置３に送信する。このことにより、サーバ装置３は、スケールアウト型のネットワークサーバシステム１００において発生しうる連鎖的なソフトウェア障害を防止し、システムの信頼性を高めることができる。また、サーバ装置３は、連鎖的な障害を引き起こしたデータＡを保守装置４に送信することによって、送信したデータＡを障害解析に役立てることができる。
【００６０】
なお、本実施形態では、データの複製を昇格したときに、昇格カウンタ値を増加するように説明したが、昇格カウンタ値を減少させるようにしても構わない。その場合、図３〜図６のステップＳ３０５では、「昇格カウンタ値＜閾値」として、昇格カウンタ値が閾値を下回った場合に「ステップＳ３０５でＹｅｓ」と判定し、昇格カウンタ値が閾値以上の場合に「ステップＳ３０５でＮｏ」と判定するようにすればよい。
【符号の説明】
【００６１】
１  ロードバランサ
２  振分けサーバ
３，３ａ，３ｂ，３ｃ  サーバ装置
４  保守装置
３１  データ処理部
３２  複製部
３３  昇格部
３４  記憶部
５０  保守装置
６０  クライアント装置
１００  ネットワークサーバシステム
【図１】
0005932875.tif 000002
【図２】
0005932875.tif 000003
【図３】
0005932875.tif 000004
【図４】
0005932875.tif 000005
【図５】
0005932875.tif 000006
【図６】
0005932875.tif 000007