(57)【要約】【課題】運用データ群の冗長を他装置に分散配置してサーバ装置の利用効率の向上図ること。【解決手段】複数のサーバ装置の各々は、担当グループの入力データ群を処理することにより担当グループに所属する運用データ群を生成するデータ処理部と、当該運用データ群を記憶するデータ記憶部と、を有する。データ処理部は、担当グループに所属する運用データ群を運用キャッシュデータ群として保持し、データ記憶部は、担当グループに所属する運用データ群の複製である冗長データ群を、当該冗長データ群が記憶されていないサーバ装置のデータ記憶部に格納し、データ処理部は、データ記憶部に格納された第１の非担当グループに所属する冗長データ群の所属グループとは異なる第２の非担当グループに所属する冗長データ群の複製である冗長キャッシュデータ群を保持する。【選択図】図１
2016177578.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバ装置を有する管理システムであって、
前記複数のサーバ装置の各々は、担当グループの入力データ群を処理することにより前記担当グループに所属する運用データ群を生成するデータ処理部と、前記データ処理部によって生成された前記担当グループに所属する運用データ群を記憶するデータ記憶部と、を有し、
前記データ処理部は、
前記担当グループに所属する運用データ群を前記担当グループに所属する運用キャッシュデータ群として保持し、
前記データ記憶部は、
前記担当グループに所属する運用データ群の複製である前記担当グループに所属する冗長データ群を、当該冗長データ群が記憶されていないサーバ装置のデータ記憶部に格納し、
前記データ処理部は、
前記データ記憶部に格納された第１の非担当グループに所属する冗長データ群の所属グループとは異なる第２の非担当グループに所属する冗長データ群の複製である前記第２の非担当グループに所属する冗長キャッシュデータ群を保持する、
ことを特徴とする管理システム。
【請求項２】
前記複数のサーバ装置の複数のデータ記憶部の各々は、相互通信により他のデータ記憶部の稼働状態と、記憶するデータ群の所属グループと、を特定するクラスタを構成することにより、前記特定した他のデータ記憶部の稼働状態と所属グループとを含むクラスタ構成情報を生成し、
前記データ処理部は、
前記クラスタ構成情報に基づいて、前記第２の非担当グループに所属する冗長キャッシュデータ群を保持する、
ことを特徴とする請求項１に記載の管理システム。
【請求項３】
前記データ処理部は、
前記クラスタ構成情報に基づいて、前記第２の非担当グループに所属する冗長データ群を記憶するデータ記憶部を有するサーバ装置のデータ処理部に、前記第２の非担当グループに所属する冗長キャッシュデータ群の事前取得通知を送信し、
前記事前取得通知を送信した結果、前記第２の非担当グループに所属する冗長データ群を記憶するデータ記憶部から、前記第２の非担当グループに所属する冗長キャッシュデータ群を取得して保持する、
ことを特徴とする請求項２に記載の管理システム。
【請求項４】
前記データ記憶部は、
前記クラスタ構成情報に基づいて、前記第１の非担当グループと同一のグループに所属する運用データ群および前記第１の非担当グループに所属する冗長データ群が記憶されていないデータ記憶部を他のデータ記憶部から特定し、
特定したデータ記憶部を有するサーバ装置のデータ処理部に、前記第１の非担当グループに所属する冗長データ群の複製である第１の非担当グループに所属する冗長キャッシュデータ群を配置する、
ことを特徴とする請求項２に記載の管理システム。
【請求項５】
前記データ処理部は、
前記複数のサーバ装置のうち自サーバ装置以外の他のサーバ装置のいずれかのサーバ装置が非稼働状態となった場合、非稼働状態のサーバ装置のデータ記憶部が記憶していた特定の運用データ群の複製である特定の冗長データ群に対応する特定の冗長キャッシュデータ群を保持しているか否かを判断し、
前記特定の冗長キャッシュデータ群を保持している場合、前記特定の冗長キャッシュデータ群を特定の運用キャッシュデータ群に変更し、
前記非稼働状態のサーバ装置の担当グループの入力データ群を処理して前記特定の運用キャッシュデータ群を更新するとともに、前記特定の運用データ群を記憶するデータ記憶部にアクセスして、前記特定の運用データ群を更新する、
ことを特徴とする請求項２に記載の管理システム。
【請求項６】
前記データ記憶部は、
前記いずれかのサーバ装置が非稼働状態となった場合、前記特定の冗長データ群を記憶しているか否かを判断し、
前記特定の冗長データ群を記憶している場合、前記特定の冗長データ群を前記特定の運用データ群に変更する、
ことを特徴とする請求項５に記載の管理システム。
【請求項７】
前記データ処理部は、
前記非稼働状態のサーバ装置の担当グループ、前記非稼働状態のサーバ装置のデータ処理部が保持していた冗長キャッシュデータ群の所属グループ、および前記変更による前記特定の運用キャッシュデータ群の所属グループのうち、前記データ記憶部に前記冗長データ群として記憶されていないグループが存在する場合、前記特定の運用データ群または前記特定の運用データ群の複製である特定の冗長データ群を記憶しているデータ記憶部を特定し、当該データ記憶部から、他のデータ処理部と重複しないように、前記特定の冗長データ群の複製である前記特定の冗長キャッシュデータ群を取得して保持する、
ことを特徴とする請求項５に記載の管理システム。
【請求項８】
前記サーバ装置が追加された場合、前記各データ記憶部は、前記クラスタ構成情報を更新し、
前記データ処理部は、
更新後の前記クラスタ構成情報に基づいて、前記第２の非担当グループに所属する冗長キャッシュデータ群を保持する、
ことを特徴とする請求項２に記載の管理システム。
【請求項９】
前記サーバ装置は、仮想サーバを生成し、前記仮想サーバ上に前記データ処理部と前記データ記憶部とを設定することを特徴とする請求項１に記載の管理システム。
【請求項１０】
前記サーバ装置は、第１の仮想サーバと第２の仮想サーバとを生成し、前記第１の仮想サーバ上に前記データ処理部を設定し、前記第２の仮想サーバに前記データ記憶部を設定する、
ことを特徴とする請求項１に記載の管理システム。
【請求項１１】
担当グループの入力データ群を処理することにより前記担当グループに所属する運用データ群を生成するデータ処理部と、
前記データ処理部によって生成された前記担当グループに所属する運用データ群を記憶するデータ記憶部と、を有し、
前記データ処理部は、
前記担当グループに所属する運用データ群を前記担当グループに所属する運用キャッシュデータ群として保持し、
前記データ記憶部は、
前記担当グループに所属する運用データ群の複製である前記担当グループに所属する冗長データ群を、当該冗長データ群が記憶されていない他のサーバ装置のデータ記憶部に格納し、
前記データ処理部は、
前記データ記憶部に格納された第１の非担当グループに所属する冗長データ群の所属グループとは異なる第２の非担当グループに所属する冗長データ群の複製である前記第２の非担当グループに所属する冗長キャッシュデータ群を保持する、
ことを特徴とするサーバ装置。
【請求項１２】
複数のサーバ装置を有する管理システムによるデータ管理方法であって、
前記複数のサーバ装置の各々は、担当グループの入力データ群を処理することにより前記担当グループに所属する運用データ群を生成するデータ処理部と、前記データ処理部によって生成された前記担当グループに所属する運用データ群を記憶するデータ記憶部と、を有し、
前記データ管理方法は、
前記データ処理部が、
前記担当グループに所属する運用データ群を前記担当グループに所属する運用キャッシュデータ群として保持し、
前記データ記憶部が、
前記担当グループに所属する運用データ群の複製である前記担当グループに所属する冗長データ群を、当該冗長データ群が記憶されていない他のサーバ装置のデータ記憶部に格納し、
前記データ処理部が、
前記データ記憶部に格納された第１の非担当グループに所属する冗長データ群の所属グループとは異なる第２の非担当グループに所属する冗長データ群の複製である前記第２の非担当グループに所属する冗長キャッシュデータ群を保持する、
ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを管理する管理システム、サーバ装置、およびデータ管理方法に関する。
【背景技術】
【０００２】
通信処理装置群を冗長構成にする場合、高速性、高利用効率性、および高信頼性が求められる。
【０００３】
高速性とは、通信データを受信、加工、送信する処理性能を向上させることである。ここで言う高速性とは、通常時の処理性能だけでなく、故障発生時において縮退運用させても処理性能を劣化させないことが求められる。したがって、縮退運用時を見越して通常時において余力を持って運用することが必要である。また、ユーザごとの通信処理に必要な運用データ（ユーザごとの転送パス情報や課金情報など）を持つ場合には、その状態情報を縮退先の装置に冗長データとして常に保持しておいて、縮退運転開始時には即座に該当ユーザの通信処理を再開できる必要がある。
【０００４】
高利用効率性とは、通常運用時におけるリソース（ＣＰＵやメモリなど）利用率を向上させることである。特に、昨今メモリは廉価になり大量搭載が可能になったため、ＣＰＵ利用率が重要である。上記で、縮退運用時を見越して通常時において余力を持って運用することの必要性を述べたが、この余力を極小化することでリソース利用率を向上する。通信処理装置では、従来、運用系（ＡＣＴ：Ａｃｔｉｖｅ）と待機系（ＳＢＹ：Ｓｔａｎｄｂｙ）を１対１で配置していたが、この場合、利用率は全装置で見ると最大５０％までとなる。そのため、全装置を全てＡＣＴとして運用して利用率を向上させる方法が採られ始めている。このような構成を、ＡＬＬ−ＡＣＴ構成、Ｎ分散構成、またはＮ−ＡＣＴ構成などと呼ぶ。
【０００５】
高信頼性とは、ＲＡＳＩＳ（Ｒｅｌｉａｂｉｌｉｔｙ（信頼性）、Ａｖａｉｌａｂｉｌｉｔｙ（可用性）、Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ（保守性）、Ｉｎｔｅｇｒｉｔｙ（完全性）、Ｓｅｃｕｒｉｔｙ（機密性））を向上させることである。特に、冗長構成を組む上では、障害時や復旧時においてデータの破壊や不整合を抑制する完全性が問題になる。
【０００６】
特許文献１では、磁気ディスク装置が持つ本体データを、マスタとなるコントローラにキャッシュするだけでなく、他のコントローラにも冗長データキャッシュを持たせることが開示されている。また、特許文献２では、データ処理装置において、運用データ群を複数グループに分割し、各グループの冗長データ群を他装置に分散配置することが開示されている。さらに、データ処理装置の増減設や故障時縮退の際に冗長系を再構築することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−４７０２９号公報
【特許文献２】特開２０１４−１４９５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、冗長データキャッシュをどのコントローラに持たせるかまでは考慮されていない。そのため、縮退運用時において処理負荷が分散されない問題がある。つまり、いずれかのコントローラが故障した場合、他のコントローラのうちの１つに処理負荷が集中してしまう可能性がある。したがって、高速性と高利用効率性を両立することができない。
【０００９】
また、特許文献２では、二多重の冗長構成であるため、より信頼性を高めるためには冗長度を増加する必要がある。また、冗長度を増加した場合に、運用データと冗長データとの間で整合性を担保する必要もある。
【００１０】
本発明は、このような事情に鑑みてなされたものであり、運用データ群の冗長を他装置に分散配置してサーバ装置の利用効率の向上を図ることを目的とする。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。管理システムは、複数のサーバ装置を有する。前記複数のサーバ装置の各々は、担当グループの入力データ群を処理することにより前記担当グループに所属する運用データ群を生成するデータ処理部と、前記データ処理部によって生成された前記担当グループに所属する運用データ群を記憶するデータ記憶部と、を有する。前記データ処理部は、前記担当グループに所属する運用データ群を前記担当グループに所属する運用キャッシュデータ群として保持し、前記データ記憶部は、前記担当グループに所属する運用データ群の複製である前記担当グループに所属する冗長データ群を、当該冗長データ群が記憶されていないサーバ装置のデータ記憶部に格納し、前記データ処理部は、前記データ記憶部に格納された第１の非担当グループに所属する冗長データ群の所属グループとは異なる第２の非担当グループに所属する冗長データ群の複製である前記第２の非担当グループに所属する冗長キャッシュデータ群を保持する。
【発明の効果】
【００１２】
本発明によれば、運用データ群の冗長を他装置に分散配置してサーバ装置の利用効率の向上を図ることができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】実施例１にかかる管理システムのシステム構成例を示す説明図である。
【図２】コンピュータのハードウェア構成例を示す図である。
【図３】実施例１にかかる初期状態におけるデータ配置例を示す説明図である。
【図４】図３に示した初期状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。
【図５】図３の状態におけるクラスタ構成テーブルの構成例を示す説明図である。
【図６】図３の状態におけるキャッシュデータ配置テーブルの構成例を示す図である。
【図７】図３の状態における転送テーブルの構成例を示す図である。
【図８】実施例１にかかるサーバ装置に故障が発生した際において構築されるデータ配置例を示す説明図である。
【図９】図８に示した状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。
【図１０】図８の状態におけるクラスタ構成テーブルの構成例を示す説明図である。
【図１１】図８の状態における転送テーブルの構成例を示す図である。
【図１２】サーバ装置を増設した際のデータ配置例を示す説明図である。
【図１３】図１２に示した状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。
【図１４】図１２の状態におけるクラスタ構成テーブルの構成例を示す説明図である。
【図１５】図１２の状態におけるキャッシュデータ配置テーブルの構成例を示す図である。
【図１６】図１２の状態における転送テーブルの構成例を示す説明図である。
【図１７】管理装置による図６のキャッシュデータ配置テーブルの作成処理手順例を示すフローチャートである。
【図１８】管理装置による図７の転送テーブルの作成処理手順例を示すフローチャートである。
【図１９】データ処理部により運用キャッシュデータ群を保存する処理手順を示すフローチャートである。
【図２０】データ処理部により冗長キャッシュデータ群を事前取得する処理手順例を示すフローチャートである。
【図２１】図３に示した初期状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。
【図２２】実施例３にかかる初期状態におけるデータ配置例を示す説明図である。
【図２３】実施例３にかかるサーバ装置に故障が発生した際において構築されるデータ配置例を示す説明図である。
【図２４】実施例４にかかる管理システムのシステム構成例を示す説明図である。
【図２５】実施例５にかかる管理システムのシステム構成例を示す説明図である。
【図２６】実施例６にかかる管理システムのシステム構成例を示す説明図である。
【図２７】実施例６にかかる初期状態におけるデータ配置例を示す説明図である。
【図２８】図２７に示した初期状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。
【図２９】実施例６にかかるデータ記憶部による各データ処理部への冗長キャッシュデータ群の配置処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下の実施例においては便宜上その必要があるときは、複数のセクションまたは実施例に分割して説明するが、特に明示した場合を除き、それらはお互い無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明などの関係にある。各実施の形態は、個別で実施してもよいが、組合せて実施してもよい。
【００１５】
また、以下の実施例において、要素の数など（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものではなく、特定の数以上でも特定の数未満でもよいものとする。
【００１６】
さらに、以下の実施例において、その構成要素（要素ステップなどを含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合などを除き、必ずしも必須のものではないことは言うまでもない。
【００１７】
同様に、以下の実施例において、構成要素などの形状、位置関係等に言及するときは、特に明示した場合及び原理的に明らかにそうでないと考えられる場合などを除き、実質的にその形状などに近似または類似するものなどを含むものとする。このことは前記数値及び範囲についても同様である。
【００１８】
以下、添付図面を用いて、本発明にかかる管理システムの実施例について説明する。以下の例では、管理システムの一例として、ゲートウェイシステムを例に挙げて説明する。ゲートウェイシステムは、たとえば、ＥＰＣ（Ｅｖｏｌｖｅｄ  Ｐａｃｋｅｔ  Ｃｏｒｅ）におけるＳ−ＧＷ（Ｓｅｒｖｉｎｇ  Ｇａｔｅｗａｙ）、Ｐ−ＧＷ（ＰＤＮ  Ｇａｔｅｗａｙ）、ＭＭＥ（Ｍｏｂｉｌｉｔｙ  Ｍａｎａｇｅｍｅｎｔ  Ｅｎｔｉｔｙ）をサーバ装置として構成する。なお、本明細書で「運用データ」とは現在扱われているデータである。また、「冗長データ」とは、運用データの複製データであり、たとえば、運用データのバックアップ用のデータとなる。また、運用データは、たとえば、受信されたパケットを解析することにより得られる、パケットの宛先アドレスや送信元アドレスなどパケットの特徴となるセッション情報とする。
【実施例１】
【００１９】
＜システム構成例＞
図１は、実施例１（後述する実施例２、実施例３も同様）にかかる管理システムのシステム構成例を示す説明図である。管理システム１は、管理装置１００、１台以上の振分装置１０１、サーバ装置ＳＶ１〜ＳＶｎ（ｎは１以上の整数）と、を有する。各装置は、スイッチ、またはルータにより構成されるネットワーク１０３によって接続される。また、振分装置１０１は、外部ネットワーク１０４と接続し、管理システム１の対向となる装置、またはシステムとパケットの送受信を行う。
【００２０】
管理装置１００は、制御部１１０を有する。制御部１１０は、サーバ装置ＳＶｉ（ｉは１≦ｉ≦ｎを満たす整数）の構成情報を取得し、各種テーブルの設定を行う。制御部１１０は、図１の構成例では管理装置１００に独立して存在しているが、サーバ装置ＳＶｉに存在しても良い。
【００２１】
振分装置１０１は、分散処理部１１１を備える。分散処理部１１１は、転送テーブル７００（後述）に従って、外部ネットワーク１０４から受信したパケットを適切なサーバ装置ＳＶｉに転送する。
【００２２】
サーバ装置ＳＶｉは、データ処理部ＤＰｉとデータ記憶部ＤＭｉとを備える。データ処理部ＤＰｉは、さらにパケット処理部１２０、冗長データ取得部１２１、運用データキャッシュ部１２２、冗長データキャッシュ部１２３を備える。
【００２３】
パケット処理部１２０は、具体的には、たとえば、受信したパケットを解析することにより、パケットの宛先アドレスや送信元アドレスなどパケットの特徴となるセッション情報をパケットから抽出する。抽出したセッション情報が運用データである。
【００２４】
冗長データ取得部１２１は、パケット処理部１２０から運用データの複製データを取得する。取得した複製データが冗長データとなる。
【００２５】
運用データキャッシュ部１２２は、キャッシュメモリを有し、パケット処理部１２０からの運用データを当該キャッシュメモリに保存する。なお、運用データキャッシュ部１２２に保存された運用データ群を、「運用キャッシュデータ群」と称す。
【００２６】
冗長データキャッシュ部１２３は、キャッシュメモリを有し、冗長データ取得部１２１からの冗長データを当該キャッシュメモリに保存する。冗長データキャッシュ部１２３に保存された冗長データ群を、「冗長キャッシュデータ群」と称す。
【００２７】
データ記憶部ＤＭｉは、多重化部１２４と、運用データ保持部１２５と、冗長データ保持部１２６と、を有する。
【００２８】
多重化部１２４は、自サーバ装置ＳＶｉのデータ記憶部ＤＰｉに記憶されている運用データ群を他のサーバ装置ＳＶｊ（ｉ≠ｊ）上のデータ記憶部ＤＰｊに複製して格納することにより、多重化を実現する。
【００２９】
運用データ保持部１２５は、自サーバ装置ＳＶｉのデータ処理部ＤＰｉからの運用データ群を、自サーバ装置ＳＶｉのデータ記憶部ＤＰｉに格納する。
【００３０】
冗長データ保持部１２６は、多重化部１２４によって複製された運用データ群の複製データ群である冗長データ群を格納する。すなわち、自サーバ装置ＳＶｉにおいて、冗長データ保持部１２６に保持される冗長データ群と、冗長データキャッシュ部１２３にキャッシュされる冗長キャッシュデータ群とは、異なるデータ群である。
【００３１】
＜コンピュータのハードウェア構成例＞
図２は、管理装置１００、振分装置１０１、およびサーバ装置ＳＶｉ（以下、総称して「コンピュータ」）のハードウェア構成例を示す図である。コンピュータは、ＣＰＵ２００と、メモリ２０１と、ストレージ２０２と、１個以上のネットワークインタフェース２０３と、を有する。ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や実施例１に関するソフトウェアプログラムは、ストレージ２０２に記憶されており、コンピュータの起動時にメモリ２０１に展開される。ＣＰＵ２００は、メモリ２０１内に展開されたソフトウェアプログラムを順次読み出して実行する。ネットワークインタフェース２０３は、管理システム１内の他装置や外部ネットワーク１０４と通信するためのインタフェースである。
【００３２】
＜データ配置例＞
つぎに、管理システムにおけるデータ配置例について説明する。具体的には、（Ａ）初期状態において冗長キャッシュデータ群を配置する処理、（Ｂ）サーバ装置ＳＶｉに故障が発生した際においてデータ配置を更新する処理、（Ｃ）サーバ装置ＳＶｉを増設する際においてデータ配置を更新する処理の手順である。以降、サーバ装置ＳＶｉの台数ｎを５台（ｎ＝５）として説明する。
【００３３】
（Ａ）初期状態において冗長キャッシュデータ群を配置する処理
図３は、実施例１にかかる初期状態におけるデータ配置例を示す説明図である。振分装置１０１は、運用データ群および冗長データ群をグループにより管理する。具体的には、たとえば、振分装置１０１は、ハッシュ関数を用いて、入力されたパケットから特徴情報を抽出する。具体的には、たとえば、振分装置１０１は、は、セッションを識別するパケットの宛先アドレスをハッシュ関数に与え、ハッシュ値を抽出する。
【００３４】
転送テーブル７００は、グループ番号と転送先サーバ装置番号とを対応付けたテーブルである。グループ番号とは、セッション情報に割り当てられるグループを特定する情報である。また、転送先サーバ装置番号とは、転送先となるサーバ装置ＳＶｉを特定する番号ｉである。
【００３５】
サーバ装置ＳＶｉの負荷状態を監視する指標の例として、サーバ装置ＳＶｉのプロセッサ使用率や、サーバ装置ＳＶｉの処理しているセッション情報の数がある。本実施例では、振分装置１０１は、入力されたパケットの宛先アドレスなどのセッションに関する特徴情報に基づき、入力されたパケットを、グループというサーバ装置ＳＶｉへの振り分けに使用する単位に分類する。
【００３６】
すなわち、グループとは、パケットの属するセッション情報を複数集約した単位であり、より具体的には、セッションに関する特徴情報についてのハッシュ値が共通するセッション情報の集合である。すなわち、転送テーブル７００におけるグループ番号とは、ハッシュ値の取りうる値である。
【００３７】
図３では、説明の便宜上、グループ数Ｎを「１０」とする。パケットが振分装置１０１に入力されると、ハッシュ関数により、パケットから、たとえば、ハッシュ値であるグループ番号「２」が抽出されたとする。転送テーブル７００において、グループ番号「２」に対応する転送先サーバ装置番号は「１」である。したがって、振分装置１０１は、パケットの転送先をサーバ装置ＳＶ１に決定し、パケットをサーバ装置ＳＶ１に転送する。
【００３８】
このように、振分装置１０１は、各グループの運用キャッシュデータ群がどのサーバ装置ＳＶｉのデータ処理部ＤＰｉに保持されているかを、転送テーブル７００により特定することができる。
【００３９】
サーバ装置ＳＶ１〜ＳＶ５は、データ処理部ＤＰ１〜ＤＰ５とデータ記憶部ＤＭ１〜ＤＭ５を備える。凡例に示すように、データ処理部ＤＰ１〜ＤＰ５には、運用キャッシュデータ群（Ｎ−０）と冗長キャッシュデータ群（Ｎ−１）が配置される。
【００４０】
また、データ記憶部ＤＭ１〜ＤＭ５の各々には、自サーバ装置ＳＶ１〜ＳＶ５における運用データ群［Ｎ−０］と、第１冗長データ群［Ｎ−１］と、第２冗長データ群［Ｎ−２］と、が配置される。第１冗長データ群［Ｎ−１］および第２冗長データ群［Ｎ−２］は、他のサーバ装置ＳＶｊ上の運用データ群の複製データ群である。
【００４１】
ここで、グループ１の運用データ群［１−０］とグループ２の運用データ群［２−０］に着目して説明する。サーバ装置ＳＶ１は、グループ１およびグループ２に所属する。したがって、サーバ装置ＳＶ１のデータ処理部ＤＰ１は、パケット処理部１２０での処理結果であるグループ１に所属する運用データ群［１−０］とグループ２に所属する運用データ群［２−０］を、データ記憶部ＤＭ１に保存する。また、データ処理部ＤＰ１は、運用データ群［１−０］の複製である運用キャッシュデータ群（１−０）と運用データ群［２−０］の複製である運用キャッシュデータ群（２−０）とを、運用データキャッシュ部１２２に保存する。
【００４２】
データ記憶部ＤＭ１の多重化部１２４は、運用データ群［１−０］の複製である冗長データ群［１−１］，［１−２］および運用データ群［２−０］の複製である冗長データ群［２−１］，［２−２］を、自サーバ装置ＳＶ１以外の他のサーバ装置ＳＶ２、ＳＶ３に多重化する。冗長データ群［１−１］，［２−１］が第１冗長データ群であり、サーバ装置ＳＶ２のデータ記憶部ＤＭ２に格納される。また、冗長データ群［１−２］，［２−２］が第２冗長データ群であり、サーバ装置ＳＶ３のデータ記憶部ＤＭ３に格納される。これにより、三多重のバックアップが実現する。
【００４３】
また、サーバ装置ＳＶ４，ＳＶ５のデータ処理部ＤＰ４，ＤＰ５は、グループ１およびグループ２を担当するサーバ装置ＳＶ１のデータ処理部ＤＰ１からの指示により、グループ１に所属する冗長データ群［１−１］およびグループ２に所属する冗長データ群［２−１］を保持しているデータ記憶部ＤＰ２を特定する。サーバ装置ＳＶ４のデータ処理部ＤＰ４は、冗長データ群［１−１］，［２−１］の配置とは異なるように、冗長データ群［２−１］の複製である冗長キャッシュデータ群（２−１）を事前取得し、その冗長データキャッシュ部１２３に保存する。サーバ装置ＳＶ５のデータ処理部ＤＰ５は、冗長データ群［１−１］，［２−１］の配置とは異なるように、冗長データ群［１−１］の複製である冗長キャッシュデータ群（１−１）を事前取得し、その冗長データキャッシュ部１２３に保存する。
【００４４】
以上のように、データ処理部ＤＰ１〜ＤＰ５と、それらと対応するデータ記憶部ＤＭ１〜ＤＭ５は分離しており、各データ処理部ＤＰ１〜ＤＰ５は、冗長データ群［Ｎ−１］，［Ｎ−２］を保持している他のサーバ装置ＳＶ１〜ＳＶ５のデータ記憶部ＤＭ１〜ＤＭ５を特定して、その冗長データ群［Ｎ−１］，［Ｎ−２］の配置とは異なるように冗長キャッシュデータ群を保持する。
【００４５】
なお、冗長データ群［Ｎ−１］，［Ｎ−２］の多重化先は、サーバ装置ＳＶ２，ＳＶ３に限らず、サーバ装置ＳＶ４、ＳＶ５でもよい。また、冗長キャッシュデータの取得元についても、サーバ装置ＳＶ２のデータ記憶部ＤＭ２ではなく、サーバ装置ＳＶ３のデータ記憶部ＤＭ３でもよく、また、両データ記憶部ＤＭ２，ＤＭ３でもよい。
【００４６】
図４は、図３に示した初期状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。まず、データ記憶部ＤＭ１〜ＤＭ５は、クラスタ構築処理を実行する（ステップＳ４００）。データ記憶部ＤＭ１〜ＤＭ５は、データ記憶部ＤＭ１〜ＤＭ５の間でそれぞれのサーバ名やＩＰアドレスなどを含むクラスタ構成情報を収集して共有し、お互いに死活監視し合う。また、データ記憶部ＤＭ１〜ＤＭ５は、どのグループの運用データ群および冗長データ群をどのデータ記憶部ＤＰｉが保持するかを決定し、クラスタ構成情報に含める。そして、データ記憶部ＤＭ１〜ＤＭ５は、クラスタ構成情報に基づいて共通のクラスタ構成テーブル５００Ａ（図５を参照）を生成し、内部に保持する。クラスタ構築処理（ステップＳ４００）は、一般的な分散データベースソフトウェアが持つ機能であり、ここでの詳細な説明は割愛する。
【００４７】
次に、いずれかのデータ記憶部ＤＭｉ（ここでは、例としてデータ記憶部ＤＭ１）が、管理装置１００にクラスタ構成情報を送信する（ステップ４０１）。管理装置１００は、このクラスタ構成情報に基づいてクラスタ構成テーブル５００Ａ（図５を参照）を生成する。
【００４８】
図５は、図３の状態におけるクラスタ構成テーブルの構成例を示す説明図である。上述したように、クラスタ構成テーブル５００Ａは、管理装置１００およびデータ記憶部ＤＭｉが保持する。クラスタ構成テーブル５００Ａは、フィールドとして、サーバ装置番号５０１と、死活情報５０２と、管理対象データ群のグループ番号５０３と、を有する。サーバ装置番号５０１には、値として、サーバ装置ＳＶｉの番号ｉが格納される。死活情報５０２には、値として、サーバ装置番号５０１の値ｉで特定されるサーバ装置ＳＶｉの死活の有無を示す稼働／非稼働状態が格納される。「ＯＫ」が稼働状態を意味し、「ＮＧ」が非稼働状態（障害やメンテナンス）を意味する。
【００４９】
管理対象データ群のグループ番号５０３は、さらに、フィールドとして、運用データ群５０４と、第１冗長データ群５０５と、第２冗長データ群５０６と、を有する。運用データ群５０４には、値として、サーバ装置番号５０１の値ｉで特定されるサーバ装置ＳＶｉが保持する運用データ群［Ｎ−０］の所属グループを特定するグループ番号Ｎが格納される。第１冗長データ群５０５には、値として、サーバ装置番号５０１の値ｉで特定されるサーバ装置ＳＶｉが保持する第１冗長データ群［Ｎ−１］の所属グループを特定するグループ番号Ｎが格納される。第２冗長データ群５０６には、値として、サーバ装置番号５０１の値ｉで特定されるサーバ装置ＳＶｉが保持する第２冗長データ群［Ｎ−２］の所属グループを特定するグループ番号Ｎが格納される。
【００５０】
たとえば、１行目のエントリでは、サーバ装置ＳＶ１については、死活情報５０２が「ＯＫ」（稼働状態）であり、グループ１の運用データ群［１−０］とグループ２の運用データ群［２−０］、グループ９の第１冗長データ群［９−１］とグループ１０の第１冗長データ群［１０−１］、グループ７の第２冗長データ群［７−２］とグループ８の第２冗長データ群［８−２］と、を保持していることを示す。
【００５１】
図４に戻り、管理装置１００は、図５に示したクラスタ構成テーブル５００Ａに基づいてキャッシュデータ配置テーブルを生成し、全てのデータ処理部ＤＰ１〜ＤＰ５にキャッシュデータ配置テーブルを設定する（ステップＳ４０２）。
【００５２】
図６は、図３の状態におけるキャッシュデータ配置テーブルの構成例を示す図である。上述したように、キャッシュデータ配置テーブル６００Ａは、管理装置１００およびデータ処理部ＤＰｉが保持する。キャッシュデータ配置テーブル６００Ａは、フィールドとして、サーバ装置番号６０１と、キャッシュデータ配置先グループ番号６０２と、を有する。サーバ装置番号６０１には、値として、サーバ装置ＳＶｉの番号ｉが格納される。キャッシュデータ配置先グループ番号６０２は、フィールドとして、運用キャッシュデータ群６０３と、第１冗長キャッシュデータ群６０４と、第２冗長キャッシュデータ群６０５と、を有する。
【００５３】
運用キャッシュデータ群６０３には、値として、サーバ装置番号６０１の値ｉで特定されるサーバ装置ＳＶｉが保持する運用データ群［Ｎ−０］のキャッシュデータ群（運用キャッシュデータ群（Ｎ−０））の所属グループを特定するグループ番号Ｎが格納される。第１冗長キャッシュデータ群６０４には、値として、サーバ装置番号６０１の値ｉで特定されるサーバ装置ＳＶｉが保持する第１冗長データ群［Ｎ−１］のキャッシュデータ群（第１冗長キャッシュデータ群（Ｎ−１））の所属グループを特定するグループ番号Ｎが格納される。第２冗長キャッシュデータ群６０５には、値として、サーバ装置番号６０１の値ｉで特定されるサーバ装置ＳＶｉが保持する第２冗長データ群［Ｎ−２］のキャッシュデータ群（第２冗長キャッシュデータ群（Ｎ−２））の所属グループを特定するグループ番号Ｎが格納される。
【００５４】
たとえば、１行目のエントリでは、サーバ装置ＳＶ１には、グループ１に所属する運用キャッシュデータ群（１−０）と、グループ２に所属する運用キャッシュデータ群（２−０）と、グループ３に所属する第１冗長キャッシュデータ群（３−１）と、グループ６に所属する第１冗長キャッシュデータ群（６−１）と、グループ４に所属する第２冗長キャッシュデータ群（４−２）と、グループ５に所属する第２冗長キャッシュデータ群（５−２）と、がデータ処理部ＤＰ１に配置されることを示す。
【００５５】
図３の状態の冗長キャッシュデータ群の配置を構成する場合には、第１冗長キャッシュデータ群グループを示す第１冗長キャッシュデータ群６０４の値列が参照される。一方、第２冗長キャッシュデータ群６０５の値列は、後述する「（Ｂ）サーバ装置に故障が発生した際においてデータ配置を更新する処理」において参照される。
【００５６】
図４に戻る。管理装置１００は、図５のクラスタ構成テーブル５００Ａと図６のキャッシュデータ配置テーブル６００Ａに基づいて転送テーブル７００Ａを生成し、振分装置１０１に転送テーブル７００Ａを設定する（ステップ４０３）。
【００５７】
図７は、図３の状態における転送テーブル７００の構成例を示す図である。転送テーブル７００Ａは、フィールドとして、グループ番号７０１と、転送先サーバ装置番号７０２と、を有する。グループ番号７０１には、値として、セッション情報に割り当てられるグループを特定するグループ番号が格納される。また、転送先サーバ装置番号７０２には、値として、転送先となるサーバ装置ＳＶｉを特定するサーバ装置番号ｉが格納される。たとえば、３行目のエントリは、グループ３に所属する運用データ群［３−０］に係るパケットはサーバ装置ＳＶ２に転送すべきことを示す。
【００５８】
図４に戻る。ステップＳ４０３までに各種テーブル設定が完了した状態になる。次に、振分装置１０１が外部ネットワーク１０４からパケットを受信する。振分装置１０１は、そのパケットから特徴情報を抽出し、特徴情報からそのパケットが属するグループ番号を特定し、転送テーブル７００Ａを参照して、特定したグループ番号に対応する転送先サーバ装置ＳＶｉのデータ処理部ＤＰｉ（ここでは、例としてＤＰ１）に転送する（ステップＳ４０４）。
【００５９】
データ処理部ＤＰ１では、このパケットを処理した結果として、そのパケットに係る運用データを作成または更新し、運用キャッシュデータとして保持する（ステップ４０５）。
【００６０】
データ処理部ＤＰ１は、任意のタイミングで自身が保持するグループ１に所属する運用データ群を、自サーバ装置ＳＶ１内のデータ記憶部ＤＭ１に保存する（ステップＳ４０６）。本シーケンス例では、グループ１に所属する運用データ群［１−０］とグループ２に所属する運用データ群［２−０］とが保存される。
【００６１】
データ記憶部ＤＭ１は、それら運用データ群［１−０］，［２−０］を保存する。また、データ記憶部ＤＭ１は、クラスタ構成テーブル５００Ａの管理対象データ群のグループ番号５０３を参照して、クラスタを構成するサーバ装置ＳＶ２，ＳＶ３のデータ記憶部ＤＭ２，ＤＭ３に冗長データ群［１−１］，［２−１］，［１−２］，［２−２］を保存することにより、多重化を実施する（ステップＳ４０７）。
【００６２】
ステップＳ４０７の後、データ処理部ＤＰ１は、図６のキャッシュデータ配置テーブル６００Ａの第１冗長キャッシュデータ群６０４を参照して、グループ２に所属する冗長キャッシュデータ群（２−１）を保持すべきサーバ装置ＳＶ４と、グループ１に所属する冗長キャッシュデータ群（１−１）を保持すべきサーバ装置ＳＶ５を特定し、それぞれのデータ処理部ＤＰ４、ＤＰ５に対して、当該冗長キャッシュデータ群の取得を促す事前取得通知を送信する（ステップＳ４０８）。
【００６３】
データ処理部ＤＰ４は、事前取得通知を受信すると、自サーバ装置ＳＶ４内のデータ記憶部ＤＭ４を介して、グループ２に所属する冗長データ群［２−０］をグループ２に所属する冗長キャッシュデータ群（２−１）として事前取得する（ステップＳ４０９）。具体的には、たとえば、データ処理部ＤＰ４は、データ記憶部ＤＭ４に、グループ２に属する冗長データ群の取得リクエストを送信する。データ処理部ＤＰ４は、取得リスエストに応じて、クラスタ構成テーブル５００Ａの管理対象データ群のグループ番号５０３を参照して、グループ番号２が存在する管理対象データ群を特定し、サーバ装置番号５０１を参照して、グループ２に所属するサーバ装置を特定する。本例の場合、管理対象データ群として、サーバ装置ＳＶ１の運用データ群［２−０］，サーバ装置ＳＶ２の第１冗長データ群［２−１］，およびサーバ装置ＳＶ３の第２冗長データ群［２−２］が特定される。
【００６４】
そして、データ記憶部ＤＭ４は、特定したいずれかの管理対象データ群（本例では、サーバ装置ＳＶ１の運用データ群［２−０］）を保持するデータ記憶部ＤＭ１から、運用データ群［２−０］の複製を事前取得して、冗長キャッシュデータ群（２−１）として保存する。
【００６５】
なお、本シーケンス例では、グループ２の運用データ群［２−０］を保存するデータ記憶部ＤＭ１から冗長キャッシュデータ群（２−１）を取得しているが、同一内容である第１冗長データ群［２−１］を記憶するデータ記憶部ＤＭ２や、第２冗長データ群［２−２］を保存するデータ記憶部ＤＭ３から取得しても良い。
【００６６】
また、本シーケンス例では、データ処理部ＤＰ４は、自サーバ装置ＳＶ４内のデータ記憶部ＤＭ４を介して冗長キャッシュデータ群を取得しているが、グループ２の運用データ群を保存するデータ記憶部ＤＭ１から直接取得しても良い。
【００６７】
そして、ステップＳ４０９と同様に、データ処理部ＤＰ５は、事前取得通知を受信すると、同一サーバ装置ＳＶ５内のデータ記憶部ＤＭ５を介して、グループ１に属する冗長データ群の複製を事前取得して、冗長キャッシュデータ群（１−１）として保存する（ステップＳ４１０）。他のグループの冗長キャッシュデータ群についても、ステップＳ４０８〜ステップＳ４１０と同様の手順を踏むことで、各サーバ装置ＳＶｉのデータ処理部ＤＰｉに配置される。
【００６８】
以上が、初期状態において冗長キャッシュデータ群を配置する処理を行う手順である。本手順に従えば、データ処理部ＤＰｉは、冗長データ群を保持しているデータ記憶部ＤＭｊを把握して、その冗長データ群の配置とは異なるように冗長データ群のキャッシュデータを保持することになる。
【００６９】
これにより、冗長データ群を他のサーバ装置ＳＶｉに分散配置することによりサーバ装置ＳＶｉの利用効率の向上を図ることができる。また、運用データ群や冗長データ群の整合性の喪失を抑制して信頼性を向上することができる。
【００７０】
データ処理部ＤＰｉでは、縮退運用時のパケット処理負荷の均等化を目的として冗長キャッシュデータ群（Ｎ−１）を分散配置することができる。つまり、データ処理部ＤＰｉでは、通常運用時における利用効率の向上を優先させたデータ配置を採用することが可能となる。また、データ配置の自由度を上げられるので、例えばサーバ装置ＳＶｉのリソース量が異なる場合には、そのリソース量に応じて縮退時の処理負荷が分散されるように、冗長キャッシュデータ群の配置を決めることもできる。
【００７１】
一方、データ記憶部ＤＭｉでは、あるグループに所属する運用データ群または冗長データ群の多重化するサーバ装置ＳＶｉの台数ｎを最小限に抑えることで、検証外の異常系動作が発生する可能性を抑制してデータ群の整合性の喪失を抑制することができる。つまり、データ記憶部ＤＭｉでは、信頼性の向上を優先させたデータ配置を採用することが可能となる。
【００７２】
また、データ記憶部ＤＭｉを高信頼化することで、データ処理部ＤＰｉがたとえ運用データ群［Ｎ−０］または冗長データ群［Ｎ−１］の一部を消失しても、データ記憶部ＤＭｉから取得して復旧することができる。さらに、データ処理部ＤＰｉとデータ記憶部ＤＭｉとの間で冗長データ群［Ｎ−１］の配置の重複を回避することで、管理システム１の全体としての多重度を上げる効果が得られる。
【００７３】
（Ｂ）サーバ装置に故障が発生した際においてデータ配置を更新する処理
図８は、実施例１にかかるサーバ装置ＳＶｉに故障が発生した際において構築されるデータ配置例を示す説明図である。ここでは、図３の状態からサーバ装置ＳＶ１が故障したことを想定する。この場合、サーバ装置ＳＶ１のデータ処理部ＤＰ１がパケット処理を担当していたグループ１とグループ２について、他のサーバ装置ＳＶｉのデータ処理部ＤＰｉがパケット処理を引き継ぐことになる。
【００７４】
図８では、図３においてグループ１に所属する運用キャッシュデータ群（１−０）に対応する冗長キャッシュデータ群（１−１）を保持していたサーバ装置ＳＶ５のデータ処理部ＤＰ５が、故障したサーバ装置ＳＶ１がおこなっていたグループ１のパケット処理を引き継ぐ。
【００７５】
同様に、図３においてグループ２に所属する運用キャッシュデータ群（２−０）に対応する冗長キャッシュデータ群（２−１）を保持していたサーバ装置ＳＶ４のデータ処理部ＤＰ４が、故障したサーバ装置ＳＶ１がおこなっていたグループ２のパケット処理を引き継ぐ。
【００７６】
図８では、グループ１に所属する冗長キャッシュデータ群（１−１）とグループ２に所属する冗長キャッシュデータ群（２−１）が活性化されて、運用キャッシュデータ群（１−０），（２−０）としてパケット処理の際に参照されることになる。このようにして冗長キャッシュデータ群（１−１），（２−１）を、同一グループの冗長データ群［１−１］，［２−１］，［１−２］，［２−２］を記憶するサーバ装置ＳＶ２，ＳＶ３とは重複しないように分散配置しておくことで、サーバ装置ＳＶｉの故障が発生して縮退する場合、データ処理部ＤＰｊでは負荷が均等化することができる。
【００７７】
また、残存するデータ処理部ＤＰｊでは、グループ１〜３、グループ６のデータ群については多重度が減少した状態となる。そのため、サーバ装置ＳＶ２、ＳＶ４，ＳＶ５のデータ処理部ＤＰ２，ＤＰ４，ＤＰ５が、グループ１〜３、グループ６の冗長キャッシュデータ群を新たに事前取得する。
【００７８】
一方、サーバ装置ＳＶ２のデータ記憶部ＤＭ２では、グループ１に所属する冗長データ群［１−１］とグループ２に所属する冗長データ群［２−１］がマスタ昇格して、グループ１の運用データ群［１−０］とグループ２の運用データ群［２−０］になる。ただし、図８の例では、データ記憶部ＤＭ２では、その分減少した多重度を修復する動作を行わない。故障時動作によるデータコピーは、サーバ装置ＳＶｉの復旧と再故障が連続して起こった場合などにデータ群の整合性を失う可能性があることが経験的に知られている。したがって、信頼性を優先して減少した多重度を修復する動作を行わないこととする。
【００７９】
振分装置１０１は、各グループＮに所属する運用キャッシュデータ群（Ｎ−０）がどのサーバ装置ＳＶｉのデータ処理部ＤＰｉに保持されているかを、転送テーブル７００Ａにより特定する。図８の例では、グループ１に所属する運用キャッシュデータ群（１−０）とグループ２に所属する運用キャッシュデータ群（２−０）を保持するサーバ装置ＳＶｉが、サーバ装置ＳＶ１からそれぞれサーバ装置ＳＶ５，ＳＶ４に変更されている。したがって、転送テーブル７００Ａの該当エントリも更新される。振分装置１０１は、変更後の転送テーブル７００Ａに従って、受信したパケットを適切なサーバ装置ＳＶｉに転送する。
【００８０】
たとえば、変更後においては、グループ１のパケットは、サーバ装置ＳＶ５に送られる。サーバ装置ＳＶ５のデータ処理部ＤＰ５は、入力パケットを処理して運用データ群を生成し、マスタ昇格した運用データ群［１−０］を記憶するデータ記憶部ＤＭ２にアクセスして、生成した運用データ群でマスタ昇格した運用データ群［１−０］を更新する。また、データ処理部ＤＰ５は、生成した運用データ群を用いて、活性化した運用キャッシュデータ群（１−０）を更新する。これにより、データ群の整合性を担保することができる。
【００８１】
以上のように、データ処理部ＤＰ１〜ＤＰ５と、それらと対応するデータ記憶部ＤＭ１〜ＤＭ５は分離しており、データ処理部ＤＰ１〜ＤＰ５は、冗長データ群［Ｎ−１］を保持しているデータ記憶部ＤＭ１〜ＤＭ５を把握して、その冗長データ群の配置とは異なるように冗長キャッシュデータ群（Ｎ−１）を保持する。
【００８２】
図９は、図８に示した状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。ここでは、例として、サーバ装置ＳＶ１に故障が発生したものとする（ステップＳ９００）。
【００８３】
稼働状態であるデータ記憶部ＤＭ２〜ＤＭ５の間で、データ記憶部ＤＭ１の故障が検知される。これにより、データ記憶部ＤＭ２〜ＤＭ５は、クラスタ構成を縮退させる（ステップＳ９０１）。この際、データ記憶部ＤＭ２は、クラスタ構成テーブル５００Ａの第１冗長データ群５０５を参照して、グループ１およびグループ２を特定し、グループ１の冗長データ群［１−１］とグループ２の冗長データ群［２−１］を運用データ群［１−０］，［２−０］にマスタ昇格させる（ステップＳ９０２）。データ記憶部ＤＭ２〜ＤＭ５は、変更後のクラスタ構成に基づいてクラスタ構成テーブル５００Ａを更新する。このようなクラスタ構成の縮退は、一般的な分散データベースソフトウェアが持つ機能であり、ここでの詳細な説明は割愛する。
【００８４】
次に、稼働状態であるいずれかのデータ記憶部（ここでは、データ記憶部ＤＭ３とする）が変更後のクラスタ構成情報を管理装置１００に送信する（ステップＳ９０３）。管理装置１００は、変更後のクラスタ構成情報に基づいてクラスタ構成テーブル５００Ｂを再構成する。
【００８５】
図１０は、図８の状態におけるクラスタ構成テーブル５００Ｂの構成例を示す説明図である。クラスタ構成テーブル５００Ｂは、変更後のクラスタ構成情報に基づいてクラスタ構成テーブル５００Ａから更新されたテーブルである。クラスタ構成テーブル５００Ｂでは、サーバ装置ＳＶ１は死活情報５０２が「ＮＧ」となり、故障中であることを示す。
【００８６】
サーバ装置ＳＶ１の死活情報５０２の「ＮＧ」に伴い、クラスタは、「ＮＧ」であるサーバ装置ＳＶ１の運用データ群５０４のグループ番号１，２を第１冗長データ群５０５に保持するサーバ装置ＳＶ２を特定し、そのグループ番号１，２を、第１冗長データ群５０５から運用データ群５０４に移行させる。これにより、サーバ装置ＳＶ２のデータ記憶部ＤＭ２に格納されているグループ１の冗長データ群［１−１］およびグループ２の冗長データ群［２−１］が運用データ群［１−０］，［２−０］に昇格する（マスタ昇格）。
【００８７】
また、クラスタは、「ＮＧ」であるサーバ装置ＳＶ１の運用データ群５０４のグループ番号１，２を第２冗長データ群５０６に保持するサーバ装置ＳＶ３を特定し、そのグループ番号１，２を、第２冗長データ群５０６から第１冗長データ群５０５に移行させる。これにより、サーバ装置ＳＶ３のデータ記憶部ＤＭ２に格納されているグループ１の冗長データ群［１−２］およびグループ２の冗長データ群［２−２］がグループ１の冗長データ群［１−１］およびグループ２の冗長データ群［２−１］に昇格する。クラスタは、変更後のクラスタ構成テーブル５００Ｂに従って、データ群の移動を実行する。
【００８８】
図９に戻る。管理装置１００は、図１０のクラスタ構成テーブル５００Ｂの死活情報５０２から、サーバ装置ＳＶ１が故障したことを検出する。管理装置１００は、図６のキャッシュデータ配置テーブル６００Ａの運用キャッシュデータ群６０３と第１冗長キャッシュデータ群６０４を参照して、サーバ装置ＳＶ１が故障したことによって消滅するキャッシュデータ群のグループを特定する。ここでは、グループ１とグループ２の運用キャッシュデータ群（１−０），（２−０）、グループ３とグループ６の第１冗長キャッシュデータ群（３−１），（６−１）が該当する。そして、管理装置１００は，図８の状態に合わせてキャッシュデータ配置テーブル６００Ａを更新する。
【００８９】
図１１は、図８の状態におけるキャッシュデータ配置テーブル６００Ｂの構成例を示す図である。グループ１の第１冗長キャッシュデータ群（１−１）の元の配置先がサーバ装置ＳＶ５であり、グループ２の第２冗長キャッシュデータ群（２−１）の元の配置先がサーバ装置ＳＶ４であったので、それぞれを運用キャッシュデータ群（１−０），（２−０）にとして活性化させる。また、グループ１、グループ２、グループ３、グループ６の第２冗長キャッシュデータ群（１−２），（２−２），（３−２），（６−２）を、それぞれ第１冗長キャッシュデータ群（１−１），（２−１），（３−１），（６−１）に移行させる。
【００９０】
図９に戻る。管理装置１００は、各データ処理部ＤＰ２〜ＤＰ５に図１１のキャッシュデータ配置テーブル６００Ｂを再設定する。（ステップＳ９０４）。
【００９１】
データ処理部ＤＰ４とデータ処理部ＤＰ５では、再設定されたキャッシュデータ配置テーブル６００Ｂに基づいて、それぞれグループ２の冗長キャッシュデータ群（２−１）とグループ１の冗長キャッシュデータ群（１−１）が活性化される（ステップＳ９０５、ステップＳ９０６）。その後、管理装置１００は、図１０のクラスタ構成テーブル５００Ｂと図１１のキャッシュデータ配置テーブル６００Ｂに基づいて、転送テーブル７００Ａを再構成し、振分装置１０１に転送テーブル７００Ａを再設定する（ステップＳ９０７）。
【００９２】
ステップＳ９０７までに各種テーブル再設定が完了した状態になる。次に、振分装置１０１が外部ネットワーク１０４からパケットを受信する。ここでは、グループ１に属するパケットを受信することを想定する。振分装置１０１は、そのパケットから識別子を抽出し、そのパケットが属するグループ番号を特定し、図１１のキャッシュデータ配置テーブル６００Ｂを参照して適切なデータ処理部ＤＰ５に転送する（ステップＳ９０８）。
【００９３】
データ処理部ＤＰ１では、このパケットを処理した結果として、そのパケットに係る運用データを作成または更新し、運用キャッシュデータとして保持する（ステップＳ９０９）。
【００９４】
データ処理部ＤＰ５は、任意のタイミングで自身が保持するグループの運用データ群を、同一サーバ装置ＳＶ５内のデータ記憶部ＤＭ５に保存する（ステップＳ９１０）。本シーケンス例では、グループ１、グループ９、グループ１０の運用データ群［１−０］，［９−０］［１０−０］が保存される。以降ではグループ１に着目して説明する。
【００９５】
図１０のクラスタ構成テーブル５００Ｂによれば、グループ１の運用データ群［１−０］を管理するサーバ装置ＳＶｉはサーバ装置ＳＶ２であるため、グループ１に属する運用データ群［１−０］は、データ記憶部ＤＭ２に保存されることになる（ステップＳ９１１）。
【００９６】
データ記憶部ＤＭ２は、グループ１の運用データ群［１−０］を保存すると同時に、クラスタを構成するサーバ装置ＳＶ３のデータ記憶部ＤＭ３に冗長データ群［１−１］を保存して多重化を実施する（ステップＳ９１２）。
【００９７】
ステップＳ９１０の後、データ処理部ＤＰ５は、図１１のキャッシュデータ配置テーブル６００Ｂの第１冗長キャッシュデータ群６０４を参照して、グループ１の冗長キャッシュデータ群（１−１）を保持すべきサーバ装置ＳＶ４を特定し、データ処理部ＤＰ４に対して、キャッシュ取得を促す事前取得通知を送信する（ステップＳ９１３）。
【００９８】
データ処理部ＤＰ４は、事前取得通知を受信すると、同一サーバ装置ＳＶ４内のデータ記憶部ＤＭ４を介して、グループ１に属する冗長データ群の複製をキャッシュデータとしてデータ記憶部ＤＭ２から事前取得する（ステップＳ９１４）。なお、本シーケンス例では、グループ１の運用データ群［１−０］を保存するデータ記憶部ＤＭ２から、グループ１の運用データ群［１−０］の複製を取得して、冗長キャッシュデータ群（１−１）として保存する。他のグループの冗長キャッシュデータ群についても、ステップＳ９１３〜ステップＳ９１４と同様の手順を踏むことで、サーバ装置ＳＶ２，ＳＶ５のデータ処理部ＤＰ２，ＤＰ５に再配置される。
【００９９】
以上が、サーバ装置ＳＶ１に故障が発生した際においてデータ配置を更新する処理を行う手順である。本手順に従えば、稼働状態であるデータ処理部ＤＰ２〜ＤＰ５は、冗長データ群を保持しているデータ記憶部ＤＭ２〜ＤＭ５を把握して、その冗長データ群の配置とは異なるように冗長キャッシュデータ群を保持することになる。
【０１００】
これにより、運用データ群の冗長を他装置に分散配置して装置の利用効率を向上すると共に、運用データまたは冗長データの整合性の喪失を抑制して信頼性を向上することができる。データ処理部ＤＰｉでは、縮退運用時のパケット処理負荷の均等化を目的として冗長データ群のキャッシュを分散配置することができる。
【０１０１】
つまり、データ処理部ＤＰｉでは、通常運用時における利用効率の向上を優先させたデータ配置を採用することが可能となる。また、データ処理部ＤＰｉは冗長データ群をキャッシュしておくことで、縮退運用に切り替えた後すぐに状態を引き継ぐことができ、転送性能の劣化を発生させない。
【０１０２】
一方、データ記憶部ＤＭｉでは、あるグループに属する運用データ群または冗長データ群の多重化するサーバ装置ＳＶｉの台数ｎを最小限に抑えることで、検証外の異常系動作が発生する可能性を抑制してデータ群の整合性を失うことを抑制することができる。つまりデータ記憶部ＤＭｉでは、信頼性の向上を優先させたデータ配置を採用することが可能となる。
【０１０３】
（Ｃ）サーバ装置を増設する際においてデータ配置を更新する処理
図１２は、サーバ装置を増設した際のデータ配置例を示す説明図である。ここでは、図３の状態からサーバ装置ＳＶ６を増設することを想定する。この増設は、管理システム１全体の処理能力を拡大することを目的としたものである。
【０１０４】
実施例１では、各データ記憶部ＤＭｉは、一例として、ＤＭ１→ＤＭ２→ＤＭ３→ＤＭ４→ＤＭ５→ＤＭ１の順の円環でクラスタを構成していることを想定しており、増設したサーバ装置ＳＶ６のデータ記憶部ＤＭ６は、データ記憶部ＤＭ５とＤＭ１の間に入ってクラスタを構成する。
【０１０５】
データ記憶部ＤＭ６がデータ記憶部ＤＭ５とＤＭ１の間に入ってクラスタを構成するため、図１２では、データ記憶部ＤＭ６は、グループ１０の運用データ群［１０−０］を管理するようになる。また、サーバ装置ＳＶ６の追加により、冗長データ群のデータ配置変更も発生する。上記データ記憶部ＤＭｉのクラスタ構成の変更に伴い、元々サーバ装置ＳＶ５のデータ処理部ＤＰ５がパケット処理を担当していたグループ１０について、サーバ装置ＳＶ６のデータ処理部ＤＰ６がパケット処理を引き継ぐことになる。また、サーバ装置ＳＶ５のデータ処理部ＤＰ５は、グループ２の冗長キャッシュデータ群（２−１）をあらたに事前取得する。また、サーバ装置ＳＶ６のデータ処理部ＤＰ６は、グループ１の冗長キャッシュデータ群（１−１）およびグループ４の冗長キャッシュデータ群（４−１）をあらたに事前取得する。
【０１０６】
振分装置１０１は、各グループの運用キャッシュデータ群（Ｎ−０）がどのサーバ装置ＳＶｉのデータ処理部ＤＰｉに保持されているかを、転送テーブル７００Ａにより特定する。図１２の例では、グループ１０の運用キャッシュデータ群（１０−０）を保持するサーバ装置ＳＶｉが、サーバ装置ＳＶ６に変更されているため、転送テーブル７００Ａの該当エントリも更新される。振分装置１０１は、この転送テーブル７００Ａに従って、受信したパケットを適切なサーバ装置ＳＶｉに転送する。
【０１０７】
以上のように、データ処理部ＤＰ１〜ＤＰ６と、それらと対応するデータ記憶部ＤＭ１〜ＤＭ６は分離しており、各データ処理部ＤＰ１〜ＤＰ６は、冗長データ群を保持しているデータ記憶部を把握して、その冗長データ群の配置とは異なるように冗長データ群のキャッシュデータを保持する。
【０１０８】
図１３は、図１２に示した状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。まず、サーバ装置ＳＶ６が増設される（ステップＳ１３００）。クラスタを構成するデータ記憶部ＤＭ１〜ＤＭ５の間で、データ記憶部ＤＭ６の追加を検知して、クラスタ構成を更新する（ステップＳ１３０１）。
【０１０９】
これに伴い、図１２で説明したように、データ記憶部ＤＭ１〜ＤＭ６間での運用データ群［Ｎ−０］と冗長データ群［Ｎ−１］，［Ｎ−２］の移動が発生し、データ記憶部ＤＭ１〜ＤＭ６はクラスタ構成情報を更新する（ステップＳ１３０２）。クラスタ構成情報の更新は、一般的な分散データベースソフトウェアが持つ機能であり、ここでの詳細な説明は割愛する。
【０１１０】
次に、いずれかのデータ記憶部ＤＭｉ（ここでは例としてＤＭ１）が管理装置１００に更新後のクラスタ構成情報を送信する（ステップＳ１３０３）。管理装置１００は、当該クラスタ構成情報に基づいてクラスタ構成テーブル５００Ａを再構成する。
【０１１１】
図１４は、図１２の状態におけるクラスタ構成テーブル５００Ｃの構成例を示す説明図である。クラスタ構成テーブル５００Ｃは、ステップＳ１３０３で送信されたクラスタ情勢情報によりクラスタ構成テーブル５００Ａから更新されたテーブルである。クラスタ構成テーブル５００Ｃは、図５のクラスタ構成テーブル５００Ａと比べて、サーバ装置ＳＶ６のエントリが追加されている。データ記憶部ＤＭ６に隣接するデータ記憶部ＤＭ５は、自サーバ装置ＳＶ５の運用データ群５０４のグループ番号「１０」を、サーバ装置ＳＶ６の運用データ群５０４に移行させる。
【０１１２】
また、データ記憶部ＤＭ６に隣接するデータ記憶部ＤＭ１は、自サーバ装置ＳＶ１の第１冗長データ群５０５のグループ番号「９」を、サーバ装置ＳＶ６の第１冗長データ群５０５に移行させる。また、データ記憶部ＤＭ１は、自サーバ装置ＳＶ１の第２冗長データ群５０６のグループ番号「７」，「８」を、サーバ装置ＳＶ６の第２冗長データ群５０６に移行させる。これにより、サーバ装置ＳＶ１の第２冗長データ群５０６にグループ番号が存在しなくなるため、データ記憶部ＤＭ１に隣接するデータ記憶部ＤＭ２は、自サーバ装置ＳＶ２の第２冗長データ群５０６のグループ番号「９」を、サーバ装置ＳＶ１の第２冗長データ群５０６に移行させる。
【０１１３】
その後、管理装置１００は、図１４のクラスタ構成テーブル５００Ｃに基づいてキャッシュデータ配置テーブル６００Ａを更新する。
【０１１４】
図１５は、図１２の状態におけるキャッシュデータ配置テーブル６００Ｃの構成例を示す図である。キャッシュデータ配置テーブル６００Ｃは、キャッシュデータ配置テーブル６００Ａの更新後のテーブルである。キャッシュデータ配置テーブル６００Ｃには、図６と比べて、サーバ装置ＳＶ６のエントリが追加されている。また、各サーバ装置ＳＶｉに対して、キャッシュデータ配置先グループ番号６０２の第１冗長キャッシュデータ群６０４と第２冗長キャッシュデータ群６０５も再計算される。なお、第１冗長キャッシュデータ群６０４と第２冗長キャッシュデータ群６０５の再配置を計算する際には、データ移動を最小限に抑制するアルゴリズムを用いるのが良い。
【０１１５】
具体的には、たとえば、管理装置１００は、サーバ装置ＳＶ６に隣接するサーバ装置ＳＶ５の運用キャッシュデータ群６０３のグループ番号「１０」を、サーバ装置ＳＶ６の運用キャッシュデータ群６０３に移行させる。また、管理装置１００は、サーバ装置ＳＶ６に隣接するサーバ装置ＳＶ５の第１冗長キャッシュデータ群６０４のグループ番号「１」，「４」を、サーバ装置ＳＶ６の第１冗長キャッシュデータ群６０４に移行させる。また、管理装置１００は、サーバ装置ＳＶ６に隣接するサーバ装置ＳＶ５の第２冗長キャッシュデータ群６０５のグループ番号「２」を、サーバ装置ＳＶ６の第２冗長キャッシュデータ群６０５に移行させる。また、管理装置１００は、サーバ装置ＳＶ６に隣接するサーバ装置ＳＶ１の第２冗長キャッシュデータ群６０５のグループ番号「５」を、サーバ装置ＳＶ６の第２冗長キャッシュデータ群６０５に移行させる。
【０１１６】
また、管理装置１００は、サーバ装置ＳＶ５に隣接するサーバ装置ＳＶ４の第１冗長キャッシュデータ群６０４のグループ番号「２」を、サーバ装置ＳＶ５の第１冗長キャッシュデータ群６０４に移行させる。
【０１１７】
また、管理装置１００は、サーバ装置ＳＶ１に隣接するサーバ装置ＳＶ２の第２冗長キャッシュデータ群６０５のグループ番号「７」を、サーバ装置ＳＶ１の第２冗長キャッシュデータ群６０５に移行させる。
【０１１８】
また、管理装置１００は、サーバ装置ＳＶ２に隣接するサーバ装置ＳＶ３の第２冗長キャッシュデータ群６０５のグループ番号「９」を、サーバ装置ＳＶ２の第２冗長キャッシュデータ群６０５に移行させる。
【０１１９】
図１３に戻る。管理装置１００は、図１５のキャッシュデータ配置テーブル６００Ｃから、グループ１０の運用キャッシュデータ群（１０−０）を保持するサーバ装置ＳＶｉが、サーバ装置ＳＶ５からサーバ装置ＳＶ６に変更されたことを検出する。管理装置１００は、サーバ装置ＳＶ５のデータ処理部ＤＰ５に対して、グループ１０の運用キャッシュデータ群（１０−０）を移動するよう指示する（ステップＳ１３０４）。
【０１２０】
データ処理部ＤＰ５は、サーバ装置ＳＶ６のデータ処理部ＤＰ６に、グループ１０の運用キャッシュデータ群（１０−０）を移動する（ステップＳ１３０５）。そして、管理装置１００は、図１５のキャッシュデータ配置テーブル６００Ｃを全てのデータ処理部ＤＰ１〜ＤＰ６に再設定する（ステップＳ１３０６）。 
【０１２１】
また、管理装置１００は、図１４のクラスタ構成テーブル５００Ｃと図１５のキャッシュデータ配置テーブル６００Ｃに基づいて転送テーブル７００Ａを更新し、振分装置１０１に更新後の転送テーブル７００Ｂを設定する（ステップＳ１３０７）。
【０１２２】
図１６は、図１２の状態における転送テーブル７００Ｂの構成例を示す説明図である。転送テーブル７００Ｂは、クラスタ構成テーブル５００Ｃとキャッシュデータ配置テーブル６００Ｃに基づいて転送テーブル７００Ａから更新されたテーブルである。転送テーブル７００Ｂは、転送テーブル７００Ａと比べて、グループ１０の運用データ群［１０−０］に係るパケットはサーバ装置ＳＶ６に転送するように変更されている。
【０１２３】
図１３に戻る。ステップＳ１３０７までに各種テーブル設定が完了した状態になる。次に、振分装置１０１が外部ネットワーク１０４からパケットを受信する。振分装置１０１は、そのパケットから識別子を抽出し、そのパケットが属するグループ番号を特定し、図１６の転送テーブル７００Ｂを参照して適切なデータ処理部ＤＰｉ（ここではＤＰ１）に転送する（ステップＳ１３０８）。
【０１２４】
データ処理部ＤＰ１は、このパケットを処理した結果として、そのパケットに係る運用データを作成または更新し、運用キャッシュデータとして保持する（ステップＳ１３０９）。
【０１２５】
データ処理部ＤＰ１は、任意のタイミングで自身が保持するグループの運用データ群を、同一サーバ装置ＳＶ１内のデータ記憶部ＤＭ１に保存する（ステップＳ１３１０）。本シーケンス例では、グループ１の運用データ群［１−０］とグループ２の運用データ群［２−０］が保存される。データ記憶部ＤＭ１は、それら運用データ群［１−０］，［２−０］を保存する。また、データ記憶部ＤＭ１は、クラスタ構成テーブル５００Ｃを参照して、運用データ群［１−０］，［２−０］の複製である冗長データ群［１−１］，［２−１］をサーバ装置ＳＶ２、ＳＶ３のデータ記憶部ＤＭ２に保存し、かつ、運用データ群［１−０］，［２−０］の複製である冗長データ群［１−２］，［２−２］をサーバ装置ＳＶ３のデータ記憶部ＤＭ３に保存して、多重化を実施する（ステップＳ１３１１）。
【０１２６】
ステップＳ１３１０の後、データ処理部ＤＰ１は、図１５のキャッシュデータ配置テーブル６００Ｃを参照して、グループ２の冗長キャッシュデータ群（２−１）を保持すべきサーバ装置ＳＶ５と、グループ１の冗長キャッシュデータ群（１−１）を保持すべきサーバ装置ＳＶ６を特定し、それぞれのデータ処理部ＤＰ５、ＤＰ６に対して、キャッシュデータ取得を促す事前取得通知を送信する（ステップＳ１３１２）。
【０１２７】
データ処理部ＤＰ５は、事前取得通知を受信すると、同一サーバ装置ＳＶ５内のデータ記憶部ＤＭ５を介して、グループ２に属する冗長データ群［２−０］の複製をサーバ装置ＳＶ１のデータ記憶部ＤＭ１から事前取得し、グループ２に属する冗長データ群（２−１）として保存する（ステップＳ１３１３）。
【０１２８】
そして、ステップＳ１３１３と同様に、データ処理部ＤＰ６は、事前取得通知を受信すると、同一サーバ装置ＳＶ６内のデータ記憶部ＤＭ６を介して、グループ１に属する冗長データ群［１−１］の複製を事前取得し、グループ１に属する冗長キャッシュデータ群（１−１）として保存する（ステップＳ１３１４）。他のグループの冗長キャッシュデータ群（Ｎ−１）についても、ステップＳ１３１２〜ステップＳ１３１４と同様の手順を踏むことで、各サーバ装置ＳＶｉのデータ処理部ＤＰｉに再配置される。
【０１２９】
以上が、サーバ装置ＳＶ６を増設した際において冗長キャッシュデータ群（Ｎ−１）を配置する処理を行う手順である。本手順に従えば、データ処理部ＤＰｉは、冗長データ群［Ｎ−１］を保持しているデータ記憶部ＤＰｉを特定して、その冗長データ群［Ｎ−１］の配置とは異なるように冗長データ群［Ｎ−１］の複製を冗長キャッシュデータ群として保持することになる。
【０１３０】
これにより、運用データ群［Ｎ−０］の冗長を他のサーバ装置ＳＶｉに分散配置して装置の利用効率を向上すると共に、運用データまたは冗長データの整合性を失うことを抑制して信頼性を向上することができる。データ処理部ＤＰｉは、データ記憶部ＤＭｉとは異なるポリシでスケールアウトできるようになる。
【０１３１】
＜管理装置の動作処理手順例＞
実施例１では、管理装置１００は、２つの特徴となる動作を持つ。具体的には、キャッシュデータ配置テーブル６００Ａ、６００Ｃを作成および更新する動作と、転送テーブル７００Ａ、７００Ｂを作成および更新する動作である。
【０１３２】
図１７は、管理装置１００による図６のキャッシュデータ配置テーブル６００Ａの作成処理手順例を示すフローチャートである。まず、管理装置１００が処理を開始する（ステップＳ１７００）。次に、管理装置１００は、図５のクラスタ構成テーブル５００Ａを参照する（ステップＳ１７０１）。クラスタ構成テーブル５００Ａの死活情報５０２が「ＮＧ」となっているサーバ装置ＳＶｉがあるか判断する（ステップＳ１７０２）。死活情報５０２が「ＮＧ」であるサーバ装置ＳＶｉがある場合（ステップＳ１７０２：Ｙｅｓ）、キャッシュデータ配置テーブル６００Ａを正しく作成できないため、処理を終了する（ステップＳ１７０８）。
【０１３３】
ステップＳ１７０２に戻り、死活情報５０２が「ＮＧ」であるサーバ装置ＳＶｉがない場合（ステップＳ１７０２：Ｎｏ）、管理装置１００は、キャッシュデータ配置テーブル６００Ａのそれぞれのサーバ装置番号６０１に対して、以下の処理（ステップＳ１７０４〜ステップＳ１７０６）をループする（ステップＳ１７０３）。まず、管理装置１００は、キャッシュデータ配置テーブル６００Ａの処理対象となるサーバ装置番号６０１のエントリにおいて、キャッシュデータ配置先グループ番号６０２の運用キャッシュデータ群６０３に、クラスタ構成テーブル５００Ａの運用データ群５０４と同じグループ番号を設定する（ステップＳ１７０４）。
【０１３４】
次に、管理装置１００は、キャッシュデータ配置テーブル６００Ａの処理対象となるサーバ装置番号６０１のエントリにおいて、ステップＳ１７０４で設定したそれぞれのグループ番号に対して第１ハッシュ関数を用いてハッシュ値を計算し、そのハッシュ値に基づいて第１冗長キャッシュデータ群６０４に設定するサーバ装置番号を決定する（一般にコンシステント・ハッシュ法と呼ばれる）。すなわち、第１冗長キャッシュデータ群６０４に設定するサーバ装置番号は、ステップＳ１７０４で設定したグループ番号ごとに決定される。当該サーバ装置番号の決定元となるグループ番号を「対象グループ番号」と称す。
【０１３５】
また、管理装置１００は、クラスタ構成テーブル５００Ａを参照して、当該サーバ装置番号が、運用データ群の配置とは異なるサーバ装置番号であることを検査する。もし同じサーバ装置番号であった場合には、管理装置１００は、サーバ装置番号を１つずつずらしながら、第１冗長キャッシュデータ群６０４に設定するサーバ装置番号を決定する。管理装置１００は、上記決定したサーバ装置番号のエントリに対応する第１冗長キャッシュデータ群６０４に、上記決定したサーバ装置番号に対応する対象グループ番号を設定する（ステップＳ１７０５）。
【０１３６】
また、同様にして、管理装置１００は、対象グループ番号に対して第２ハッシュ関数を用いてハッシュ値を計算し、そのハッシュ値に基づいて第２冗長キャッシュデータ群として配置するサーバ装置番号を決定する。ただし、このとき、クラスタ構成テーブル５００Ａを参照して、運用データ群の配置とも第１冗長キャッシュデータ群の配置とも異なるサーバ装置番号であることを検査する。もし同じであった場合には、管理装置１００は、サーバ装置番号を１つずつずらしながら決定する。管理装置１００は、上記決定したサーバ装置番号に対応する第２冗長キャッシュデータ群６０５に、対象グループ番号を設定する（ステップＳ１７０６）。
【０１３７】
管理装置１００は、キャッシュデータ配置テーブル６００Ａの全てのサーバ装置番号６０１に対してステップＳ１７０３に始まるループを繰り返す（ステップＳ１７０７）。ループが終了すると、処理を終了する（ステップＳ１７０８）。
【０１３８】
以上の手順によってキャッシュデータ配置テーブル６００Ａが作成される。これにより、データ処理部ＤＰｉは、自サーバ装置ＳＶｉのデータ記憶部ＤＭｉに運用データ群および冗長データ群として保存されていないグループＮの冗長キャッシュデータ群（Ｎ−１）、（Ｎ−２）を保持することができる。
【０１３９】
図１８は、管理装置１００による図７の転送テーブル７００Ａの作成処理手順例を示すフローチャートである。まず、管理装置１００が処理を開始する（ステップＳ１８００）。次に、転送テーブル７００Ａのそれぞれのグループ番号７０１に対して、以下の処理（ステップＳ１８０２〜ステップＳ１３０７）をループする（ステップＳ１８０１）。ループ処理をしているグループ番号７０１を「対象グループ番号」と称す。
【０１４０】
管理装置１００は、図６のキャッシュデータ配置テーブル６００Ａの運用キャッシュデータ群６０３を参照して、対象グループ番号で特定されるグループに所属する運用キャッシュデータ群を保持しているサーバ装置ＳＶｉのサーバ装置番号ｉ（以下、第１サーバ装置番号）を特定する（ステップＳ１８０２）。たとえば、対象グループ番号が「３」である場合、運用キャッシュデータ群６０３の値「３」に対応するサーバ装置番号６０１の値「２」が第１サーバ装置番号として特定される。
【０１４１】
つぎに、管理装置１００は、図５のクラスタ構成テーブル５００Ａの死活情報５０２を参照して、特定した第１サーバ装置番号の死活情報５０２が「ＯＫ」であるかを判断する（ステップＳ１８０３）。
【０１４２】
特定した第１サーバ装置番号の死活情報５０２が「ＯＫ」である場合（ステップＳ１８０３：Ｙｅｓ）、管理装置１００は、第１サーバ装置番号を、対象グループ番号に対応する転送先サーバ装置番号７０２に設定する（ステップＳ１８０４）。
【０１４３】
ステップＳ１８０３に戻り、特定した第１サーバ装置番号の死活情報５０２が「ＮＧ」である場合（ステップＳ１８０４：Ｎｏ）、管理装置１００は、図６のキャッシュデータ配置テーブル６００Ａの第１冗長キャッシュデータ群６０４を参照して、対象グループ番号で特定されるグループに所属する第１冗長キャッシュデータ群（Ｎ−１）を保持しているサーバ装置ＳＶｉのサーバ装置番号ｉ（以下、第２サーバ装置番号）を特定する（ステップＳ１８０５）。
【０１４４】
管理装置１００は、図５のクラスタ構成テーブル５００Ａの死活情報５０２を参照して、特定した第２サーバ装置番号の死活情報５０２が「ＯＫ」であるかを判断する（ステップＳ１８０６）。
【０１４５】
特定した第２サーバ装置番号の死活情報５０２が「ＯＫ」である場合（ステップＳ１８０６：Ｙｅｓ）、第２サーバ装置番号を、対象グループ番号に対応する転送先サーバ装置番号７０２に設定する（ステップＳ１８０４）。
【０１４６】
ステップＳ１８０６に戻り、特定した第２サーバ装置番号の死活情報５０２が「ＮＧ」である場合（ステップＳ１８０６：Ｎｏ）、管理装置１００は、図６のキャッシュデータ配置テーブル６００Ａの第２冗長キャッシュデータ群６０５を参照して、対象グループ番号で特定されるグループに所属する第２冗長キャッシュデータ群（Ｎ−２）を保持しているサーバ装置ＳＶｉのサーバ装置番号ｉ（以下、第３のサーバ装置番号）を特定する（ステップＳ１８０７）。
【０１４７】
そして、管理装置１００は、特定した第３のサーバ装置番号を、対象グループ番号に対応する転送先サーバ装置番号７０２に設定する（ステップＳ１８０４）。管理装置１００は、全てのグループ番号に対してステップＳ１８０１に始まるループを繰り返す（ステップＳ１８０８）。ループが終了すると、一連の処理を終了する（ステップＳ１８０９）。
【０１４８】
以上の手順によって転送テーブル７００Ａが作成される。これにより、振分装置１０１は、各グループＮの運用キャッシュデータ群（Ｎ−０）がどのサーバ装置ＳＶｉのデータ処理部ＤＰｉに保持されているかを特定し、受信したパケットを適切なサーバ装置ＳＶｉに転送することができる。
【０１４９】
一方、データ処理部ＤＰｉは、２つの特徴となる動作を持つ。具体的には、運用キャッシュデータ群（Ｎ−１）を保存する動作と、冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を事前取得する動作である。以下、図１９と図２０を用いて、データ処理部ＤＰｉの動作の処理フローを説明する。
【０１５０】
図１９は、データ処理部ＤＰｉにより運用キャッシュデータ群（Ｎ−０）を保存する処理手順を示すフローチャートである。本フローチャート例は、例えば図４のシーケンス例におけるステップＳ４０６およびステップＳ４０８の動作に相当する。まず、データ処理部ＤＰｉが処理を開始する（ステップＳ１９００）。
【０１５１】
データ処理部ＤＰｉは、自身が保持する運用キャッシュデータ群（Ｎ−０）のグループ番号Ｎそれぞれに対して、以下の処理（ステップＳ１９０２〜ステップＳ１９０３）をループする（ステップＳ１９０１）。ループ処理をしているグループ番号を「対象グループ番号」と称す。
【０１５２】
データ処理部ＤＰｉは、対象グループ番号Ｎで特定されるグループＮの運用データ群［Ｎ−０］を、自サーバ装置ＳＶｉのデータ記憶部ＤＭｉに保存する（ステップＳ１９０２）。ステップＳ１９０２は、ステップＳ４０６に対応する。
【０１５３】
次に、データ処理部ＤＰｉは、図６のキャッシュデータ配置テーブル６００Ａの第１冗長キャッシュデータ群６０４または第２冗長キャッシュデータ群６０５を参照して、対象グループ番号Ｎで特定されるグループＮの冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を配置すべきサーバ装置ＳＶｊのサーバ装置番号を特定する。そして、特定したサーバ装置番号のデータ処理部ＤＰｊに対して事前取得通知を送信する（ステップＳ１９０３）。ステップＳ１９０２は、ステップＳ４０８に対応する。
【０１５４】
データ処理部ＤＰｉは、全てのグループ番号Ｎに対してステップＳ１９０１に始まるループを繰り返す（ステップＳ１９０４）。ループが終了すると、処理を終了する（ステップＳ１９０５）。
【０１５５】
以上の手順によって、データ処理部ＤＰｉは、自身が保持するグループＮの運用データ群［Ｎ−０］をデータ記憶部ＤＭｉに保存すると共に、そのグループＮの冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を保持すべきサーバ装置ＳＶｊのデータ処理部ＤＰｊに対して、グループＮの冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）の事前取得を促すことになる。
【０１５６】
図２０は、データ処理部ＤＰｉにより冗長キャッシュデータ群を事前取得する処理手順例を示すフローチャートである。データ処理部ＤＰｉが別のデータ処理部ＤＰｊから事前取得通知を受信することで開始する（ステップＳ２０００）。本フローチャート例は、例えば図４のシーケンス例におけるステップＳ４０８〜ステップＳ４１０の動作に相当する。
【０１５７】
まず、データ処理部ＤＰｉは、受信した事前取得通知が示すそれぞれのグループ番号Ｎに対して、以下の処理（ステップＳ２００２）をループする（ステップＳ２００１）。ループ処理をしているグループ番号Ｎを「対象グループ番号」と称す。
【０１５８】
データ処理部ＤＰｉは、同一サーバ装置ＳＶｉ内のデータ記憶部ＤＭｉを介して、対象グループ番号Ｎで特定されるグループＮの冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を取得する（ステップＳ２００２）。なお、本フローチャート例では、同一サーバ装置ＳＶｉ内のデータ記憶部ＤＭｉを介さずに、対象グループ番号Ｎで特定されるグループＮの運用データ群［Ｎ−０］を保存するデータ記憶部ＤＭｊからグループＮの運用データ群［Ｎ−０］の複製となる冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を直接取得しても良い。事前取得通知が示す全てのグループ番号Ｎに対してステップＳ２００１に始まるループを繰り返す（ステップＳ２００３）。ループが終了すると、一連の処理を終了する（ステップＳ２００４）。
【０１５９】
以上の手順によって、データ処理部ＤＰｉは、冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を事前取得することになる。
【０１６０】
上記全ての処理によって、データ処理部ＤＰｉは、冗長データ群［Ｎ−１］を保持しているデータ記憶部ＤＭｊを特定して、その冗長データ群［Ｎ−１］の配置とは異なるように冗長キャッシュデータ群（Ｎ−１）を保持することになる。これにより、運用データ群［Ｎ−０］の冗長データ群［Ｎ−１］を他のサーバ装置に分散配置してサーバ装置の利用効率の向上を図ることができると。また、運用データまたは冗長データの整合性を失うことを抑制して信頼性の向上を図ることができる。
【実施例２】
【０１６１】
実施例２は、データ処理部ＤＰｉ間で、冗長データ群［Ｎ−１］の複製である冗長キャッシュデータ群を直接送受信する例である。なお、実施例２では、実施例１との相違点を中心に説明し、実施例１と同一内容については説明を省略する。実施例２では、データ配置の初期状態を図３に示した内容として説明する。具体的には、図３に示した初期状態において冗長キャッシュデータ群を配置する処理について説明する。
【０１６２】
図２１は、図３に示した初期状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。ステップＳ２１００〜ステップＳ２１０７は、実施例１で説明した図４のシーケンス例のステップＳ４００〜ステップＳ４０７と同様であるため、ここでの説明を省略する。
【０１６３】
ステップＳ２１０６の後、データ処理部ＤＰ１は、図６のキャッシュデータ配置テーブル６００Ａを参照して、グループ２の冗長キャッシュデータ群（２−１），（２−２）を保持すべきサーバ装置ＳＶ４と、グループ１の冗長キャッシュデータ群（１−１），（１−２）を保持すべきサーバ装置ＳＶ５を特定し、それぞれのデータ処理部ＤＰ４、ＤＰ５に対して、キャッシュ取得を促す事前取得通知を送信する（ステップＳ２１０８）。
【０１６４】
データ処理部ＤＰ４は、事前取得通知を受信すると、事前取得通知の送信元であるサーバ装置ＳＶ１のデータ処理部ＤＰ１から、グループ２の冗長キャッシュデータ群（２−１），（２−２）を取得する（ステップＳ２１０９）。
【０１６５】
また、同様に、データ処理部ＤＰ５は、事前取得通知を受信すると、事前取得通知の送信元であるサーバ装置ＳＶ１のデータ処理部ＤＰ１から、グループ１の冗長キャッシュデータ群（１−１），（１−２）を取得する（ステップＳ２１１０）。他のグループＮの冗長キャッシュデータ群についても、ステップＳ２１０８〜ステップＳ２１１０と同様の手順を踏むことで、各サーバ装置ＳＶｉのデータ処理部ＤＰｉに配置される。
【０１６６】
以上が、初期状態において冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を配置する処理を行う手順である。本手順に従えば、実施例１と比べて、冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を事前取得する手順を簡略化することができる。
【実施例３】
【０１６７】
実施例３について説明する。実施例１では、図３に示した初期状態においてサーバ装置ＳＶ５のデータ処理部ＤＰ５、ＤＰ４が第１冗長キャッシュデータ群（１−１）、冗長キャッシュデータ群（２−１）を事前取得した例について説明した。実施例３では、初期状態において、さらに、第２冗長キャッシュデータ群（１−２），（２−２）も事前に取得される例である。なお、実施例３では、実施例１との相違点を中心に説明し、実施例１と同一内容については説明を省略する。
【０１６８】
データ処理部ＤＰｉに運用データ群および冗長データ群のキャッシュデータを配置する処理について、２つの手順を説明する。具体的には、（Ａ）初期状態において冗長キャッシュデータ群を配置する処理、（Ｂ）サーバ装置ＳＶｉに故障が発生した際においてデータ配置を更新する処理の手順である。
【０１６９】
（Ａ）初期状態において冗長キャッシュデータ群を配置する処理
図２２は、実施例３にかかる初期状態におけるデータ配置例を示す説明図である。ここでは、サーバ装置ＳＶ１〜ＳＶ５（ＤＰ１〜ＤＰ５）の５台が存在することを想定する。それぞれのサーバ装置ＳＶ１〜ＳＶ５は、データ処理部ＤＰ１〜ＤＰ５とデータ記憶部ＤＭ１〜ＤＭ５を備える。
【０１７０】
凡例に示すように、データ処理部ＤＰ１〜ＤＰ５には、運用キャッシュデータ群（Ｎ−０）、第１冗長キャッシュデータ群（Ｎ−１）、第２冗長キャッシュデータ群（Ｎ−２）が配置される。また、データ記憶部ＤＭ１〜ＤＭ５には、運用データ群［Ｎ−０］、第１冗長データ群［Ｎ−１］、第２冗長データ群［Ｎ−２］が配置される。ここで、運用データ群［Ｎ−０］と、第１冗長データ群［Ｎ−１］および第２冗長データ群［Ｎ−２］とは、グループに分けて管理されている。
【０１７１】
グループ番号は、運用データ群［Ｎ−０］を生成、参照するパケット処理に係るパケットに含まれる識別子（例えば、ＩＰアドレス、トンネル番号、ユーザセッション番号など）に基づいて決定される。以降の説明では、運用データ群［Ｎ−０］と、第１冗長データ群［Ｎ−１］および第２冗長データ群［Ｎ−２］とは、このグループ単位で扱われる。
【０１７２】
グループ１の運用データ群［１−０］とグループ２の運用データ群［２−０］に着目して説明する。サーバ装置ＳＶ１のデータ処理部ＤＰ１は、パケット処理結果であるグループ１の運用データ群［１−０］とグループ２の運用データ群［２−０］を、データ記憶部ＤＭ１に保存する。データ記憶部ＤＭ１は、グループ１の運用データ群［１−０］およびグループ２の運用データ群［２−０］の複製であるグループ１の冗長データ群［１−１］およびグループ２の冗長データ群［２−１］をサーバ装置ＳＶ２のデータ記憶部ＤＭ２に保存する。同様に、データ記憶部ＤＭ１は、グループ１の運用データ群［１−０］およびグループ２の運用データ群［２−０］の複製であるグループ１の冗長データ群［１−２］およびグループ２の冗長データ群［２−２］をサーバ装置ＳＶ３のデータ記憶部ＤＭ３に保存する。これにより、グループ１の運用データ群［１−０］およびグループ２の運用データ群［２−０］は多重化される。
【０１７３】
ここでは、３台のサーバ装置ＳＶ１〜ＳＶ３を用いてグループ１の運用データ群［１−０］およびグループ２の運用データ群［２−０］は三多重されている。データ記憶部ＤＭ２に記憶された、グループ１の冗長データ群［１−１］およびグループ２の冗長データ群［２−１］が、第１冗長データ群である。データ記憶部ＤＭ３に記憶された、グループ１の冗長データ群［１−２］およびグループ２の冗長データ群［２−２］が、第２冗長データ群である。
【０１７４】
一方、サーバ装置ＳＶ４のデータ処理部ＤＰ４は、グループ１の冗長データ群［１−１］，［１−２］およびグループ２の冗長データ群［２−１］，［２−２］を保持しているデータ記憶部ＤＭ２、ＤＭ３を特定する。
【０１７５】
データ処理部ＤＰ４は、当該冗長データ群の配置とは異なるように、グループ２に属する第１冗長キャッシュデータ群（２−１）を事前取得し、データ処理部ＤＰ５は、当該冗長データ群の配置とは異なるように、グループ１に属する第１冗長キャッシュデータ群（１−１）を事前取得する。
【０１７６】
同様に、データ処理部ＤＰ４は、当該冗長データ群の配置とは異なるように、グループ１に属する第２冗長キャッシュデータ群（１−２）を事前取得し、データ処理部ＤＰ５は、当該冗長データ群の配置とは異なるように、グループ２に属する第２冗長キャッシュデータ群（２−２）を事前取得する。これら冗長キャッシュデータ群の配置は、実施例１で説明した図６のキャッシュデータ配置テーブル６００Ａに従って決定される。
【０１７７】
振分装置１０１は、各グループＮの運用キャッシュデータ群（Ｎ−０）がどのサーバ装置ＳＶｉのデータ処理部ＤＰｉに保持されているかを、転送テーブル７００Ａにより特定する。振分装置１０１は、転送テーブル７００Ａに従って、受信したパケットを適切なサーバ装置ＳＶｉに転送する。
【０１７８】
以上のように、データ処理部ＤＰ１〜ＤＰ５と、それらと対応するデータ記憶部ＤＭ１〜ＤＭ５とは、分離されている。各データ処理部ＤＰ１〜ＤＰ５は、冗長データ群［Ｎ−１］，［Ｎ−２］を保持しているデータ記憶部ＤＭ１〜ＤＭ５を把握して、その冗長データ群［Ｎ−１］，［Ｎ−２］の配置とは異なるように冗長キャッシュデータ群を保持する。
【０１７９】
図２２の状態を構築するために冗長キャッシュデータ群を配置するシーケンス例は、実施例１で説明した図４のシーケンス例において、ステップＳ４０８〜ステップＳ４１０の動作を第２冗長キャッシュデータ群（Ｎ−２）の事前取得にも適用した場合と同様であるため、ここでの説明を省略する。
【０１８０】
以上が、初期状態において冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を配置する処理を行う手順である。本手順に従えば、データ処理部ＤＰｉは、冗長データ群［Ｎ−１］，［Ｎ−２］を保持しているデータ記憶部ＤＭｉを特定して、その冗長データ群［Ｎ−１］，［Ｎ−２］の配置とは異なるように冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を保持することになる。
【０１８１】
（Ｂ）サーバ装置ＳＶｉに故障が発生した際においてデータ配置を更新する処理
図２３は、実施例３にかかるサーバ装置ＳＶｉに故障が発生した際において構築されるデータ配置例を示す説明図である。ここでは、図２２の状態からサーバ装置ＳＶ１が故障したことを想定する。この場合、サーバ装置ＳＶ１のデータ処理部ＤＰ１がパケット処理を担当していたグループ１とグループ２について、グループ１に属する第１冗長キャッシュデータ群を保持していたサーバ装置ＳＶ５のデータ処理部ＤＰ５と、グループ２に属する第１冗長キャッシュデータ群を保持していたサーバ装置ＳＶ４のデータ処理部ＤＰ４とが、パケット処理を引き継ぐ。グループ１の冗長キャッシュデータ群（１−１）とグループ２に属する冗長キャッシュデータ群（２−１）が活性化されて、運用キャッシュデータ群（１−０），（２−０）としてパケット処理の際に参照されることになる。
【０１８２】
このようにして冗長キャッシュデータ群を分散配置しておくことで、サーバ装置ＳＶｉの故障が発生して縮退する場合、データ処理部ＤＰｊでは負荷が均等化することができる。実施例１とは異なり、データ処理部ＤＰｊに第２冗長キャッシュデータ群（Ｎ−２）を事前に配置しているため、サーバ装置ＳＶｉに故障が発生しても第１冗長キャッシュデータ群（Ｎ−１）の再配置を実施する必要がない。
【０１８３】
一方、サーバ装置ＳＶ２のデータ記憶部ＤＭ２では、グループ１の冗長データ群［１−１］およびグループ２の冗長データ群［２−１］が運用データ群［１−０］，［２−０］にマスタ昇格される。また、実施例１とは異なり、データ記憶部ＤＭ２は、サーバ装置ＳＶ４のデータ記憶部ＤＭ４に対して、第２冗長データ群（グループ１の冗長データ群［１−２］およびグループ２の冗長データ群［２−２］）を再構築して、多重度を回復させている。当該多重化は、データ群のコピー完了までの時間が、サーバ装置ＳＶ１の復旧よりも十分早いことがあらかじめ設定されている場合に実施される。
【０１８４】
振分装置１０１は、各グループＮの運用キャッシュデータ群（Ｎ−０）がどのサーバ装置ＳＶｉのデータ処理部ＤＰｉに保持されているかを、転送テーブル７００Ａにより特定する。図２３の例では、グループ１の運用キャッシュデータ群（１−１），（１−２）およびグループ２の運用キャッシュデータ群（２−１），（２−２）を保持するサーバ装置ＳＶｉが、それぞれサーバ装置ＳＶ５、ＳＶ４に変更されている。したがって、転送テーブル７００Ａの該当エントリも更新される。振分装置１０１は、変更後の転送テーブル７００Ａに従って、受信したパケットを適切なサーバ装置ＳＶｉに転送する。
【０１８５】
データ処理部ＤＰ２〜ＤＰ５と、それらと対応するデータ記憶部ＤＭ２〜ＤＭ５は分離している。各データ処理部ＤＰ２〜ＤＰ５は、冗長データ群［Ｎ−１］，［Ｎ−２］を保持しているデータ記憶部ＤＰ２〜ＤＰ５を把握して、その冗長データ群［Ｎ−１］，［Ｎ−２］の配置とは異なるように冗長キャッシュデータ群（Ｎ−１），（Ｎ−２）を保持する。
【０１８６】
なお、図２３の状態を構築するために冗長キャッシュデータ群を配置するシーケンス例は、実施例１で説明した図９のシーケンス例において、ステップＳ９１３〜ステップＳ９１４の動作を削除した内容と同様であるため、ここでの説明を省略する。
【実施例４】
【０１８７】
実施例４は、仮想サーバ（仮想マシン）がデータ処理部ＤＰｉとデータ記憶部ＤＭｉとを備える構成である。なお、実施例４では、実施例１との相違点を中心に説明し、実施例１と同一内容については説明を省略する。
【０１８８】
図２４は、実施例４にかかる管理システムのシステム構成例を示す説明図である。管理システム１は、管理装置１００と、１台以上の振分装置１０１と、サーバ装置ＳＶ１〜ＳＶｎと、を有する。
【０１８９】
サーバ装置ＳＶｉでは、その内部で仮想サーバＶＭｉが動作する。仮想サーバＶＭｉは、ネットワーク１０３からパケットを送受信可能である。また、仮想サーバＶＭｉは、データ処理部ＤＰｉとデータ記憶部ＤＭｉを備える。データ処理部ＤＰｉは、パケット処理部１２０と、冗長データ取得部１２１と、運用データキャッシュ部１２２と、冗長データキャッシュ部１２３とを有する。一方、データ記憶部ＤＭｉは、多重化部１２４と、運用データ保持部１２５と、冗長データ保持部１２６とを有する。また、仮想サーバＶＭｉは、サーバ装置ＳＶｉの中でソフトウェアとして実行されるが、論理的には図２のハードウェア構成例と同様の構成を持つ。
【０１９０】
以上のように、仮想サーバＶＭｉは、仮想サーバＶＭｉを動作させるサーバ装置ＳＶｉのハードウェアに依存されない。したがって、実施例１と比べて柔軟なサービス運用が可能である。
【実施例５】
【０１９１】
実施例５は、データ処理部ＤＰｉとデータ記憶部ＤＭｉが、それぞれ異なる仮想サーバ上で実行される例である。なお、実施例５では、実施例１との相違点を中心に説明し、実施例１と同一内容については説明を省略する。
【０１９２】
図２５は、実施例５にかかる管理システムのシステム構成例を示す説明図である。管理システム１は、管理装置１００と、１台以上の振分装置１０１と、サーバ装置ＳＶ１〜ＳＶｎと、を有する。
【０１９３】
サーバ装置ＳＶｉでは、その内部で仮想サーバＶＭａｉと仮想サーバＶＭｂｉが動作している。仮想サーバＶＭａｉ，ＶＭｂｉは、ネットワーク１０３からパケットを送受信可能である。また、仮想サーバＶＭａｉは、データ処理部ＤＰｉを備える。仮想サーバＶＭｂｉは、データ記憶部ＤＭｉを備える。データ処理部ＤＰｉは、パケット処理部１２０と、冗長データ取得部１２１と、運用データキャッシュ部１２２と、冗長データキャッシュ部１２３とを有する。一方、データ記憶部ＤＭｉは、多重化部１２４と、運用データ保持部１２５と、冗長データ保持部１２６とを有する。また、仮想サーバＶＭａｉ，ＶＭｂｉは、サーバ装置ＳＶｉの中でソフトウェアとして実行されるが、論理的には図２のハードウェア構成例と同様の構成を持つ。
【０１９４】
以上のように、データ処理部とＤＰｉそれに対応するデータ記憶部ＤＭｉがそれぞれ別の仮想サーバＶＭａｉ，ＶＭｂｉ上に存在する場合においても、それら仮想サーバＶＭａｉ，ＶＭｂｉが同一のサーバ装置ＳＶｉ上で動作していればよい。このように、実施例５では、仮想サーバＶＭａｉ，ＶＭｂｉを動作させるサーバ装置ＳＶｉのハードウェアに依存しないなど、実施例１と比べて柔軟なサービス運用が可能である。
【実施例６】
【０１９５】
実施例６は、データ記憶部ＤＭｉが、データ処理部ＤＰｉに対して冗長データ群のキャッシュデータを事前配置する例である。なお、実施例６では、実施例１との相違点を中心に説明し、実施例１と同一内容については説明を省略する。
【０１９６】
図２６は、実施例６にかかる管理システムのシステム構成例を示す説明図である。管理システム１は、管理装置１００と、１台以上の振分装置１０１と、サーバ装置ＳＶ１〜ＳＶｎと、を有する。
【０１９７】
サーバ装置ＳＶ１は、データ処理部ＤＰｉとデータ記憶部ＤＭｉを備える。データ処理部ＤＰｉは、パケット処理部１２０と、運用データキャッシュ部１２２と、冗長データキャッシュ部１２３とを有する。一方、データ記憶部ＤＭｉは、多重化部１２４と、運用データ保持部１２５と、冗長データ保持部１２６と、キャッシュ配置部２６００とを有する。
【０１９８】
すなわち、実施例１の図１と比べて、データ処理部ＤＰｉの冗長データ取得部１２１が削除され、データ記憶部ＤＭｉのキャッシュ配置部２６００が追加された構成となる。キャッシュ配置部２６００は、データ処理部ＤＰｉに対して冗長キャッシュデータ群を配置する。
【０１９９】
図２７は、実施例６にかかる初期状態におけるデータ配置例を示す説明図である。ここでは、サーバ装置ＳＶ１〜ＳＶ５の５台が存在することを想定する。前述したように、それぞれのサーバ装置ＳＶ１〜ＳＶ５は、データ処理部ＤＰ１〜ＤＰ５とデータ記憶部ＤＭ１〜ＤＭ５を備える。データ処理部ＤＰ１〜ＤＰ５、およびデータ記憶部ＤＭ１〜ＤＭ５における各データの配置位置は、実施例１の図３と同様である。
【０２００】
しかし、実施例６では、例えばサーバ装置ＳＶ２のデータ記憶部ＤＭ２が、グループ１の冗長キャッシュデータ群（１−１）とグループ２の冗長キャッシュデータ群（２−１）を、それぞれサーバ装置ＳＶ５、ＳＶ４のデータ処理部ＤＰ５、ＤＰ４に対して、冗長データ群［１−１］，［２−１］の配置とは異なるように事前に配置する。
【０２０１】
なお、図２７では、第１冗長データ群（冗長データ群［１−１］，［２−１］）を持つデータ記憶部ＤＭ２がキャッシュデータ（冗長キャッシュデータ群（１−１），（２−１））の事前配置を行っているが、同内容のデータ群を持つデータ記憶部ＤＭ１またはデータ記憶部ＤＭ３がキャッシュデータの事前配置を行っても良い。
【０２０２】
振分装置１０１は、各グループの運用キャッシュデータ群がどのサーバ装置のデータ処理部に保持されているかを、転送テーブル７００の形で把握している。振分装置１０１は、この転送テーブル７００に従って、受信したパケットを適切なサーバ装置に転送する。
【０２０３】
データ処理部ＤＰ１〜ＤＰ５と、それらと対応するデータ記憶部ＤＭ１〜ＤＭ５は分離している。各データ処理部ＤＰ１〜ＤＰ５は、冗長データ群を保持しているデータ記憶部ＤＭ１〜ＤＭ５によって、その冗長データ群の配置とは異なるように冗長データ群のキャッシュデータを保持する。
【０２０４】
図２８は、図２７に示した初期状態におけるデータ配置例を構成するためのシーケンス例を示すシーケンス図である。まず、データ記憶部ＤＭ１〜ＤＭ５は、クラスタ構築処理を実行する（ステップＳ２８００）。データ記憶部ＤＭ１〜ＤＭ５は、データ記憶部ＤＭ１〜ＤＭ５の間でそれぞれのサーバ名やＩＰアドレスなどを含むクラスタ構成情報を収集して共有し、お互いに死活監視し合う。また、データ記憶部ＤＭ１〜ＤＭ５は、どのグループの運用データ群および冗長データ群をどのデータ記憶部ＤＰｉが保持するかを決定し、クラスタ構成情報に含める。そして、データ記憶部ＤＭ１〜ＤＭ５は、クラスタ構成情報に基づいて共通のクラスタ構成テーブル５００Ａ（図５を参照）を生成し、内部に保持する。クラスタ構築処理（ステップＳ２８００）は、一般的な分散データベースソフトウェアが持つ機能であり、ここでの詳細な説明は割愛する。
【０２０５】
次に、いずれかのデータ記憶部ＤＭｉ（ここでは、例としてデータ記憶部ＤＭ１）が管理装置１００にクラスタ構成情報を送信する（ステップＳ２８０１）。管理装置１００は、このクラスタ構成情報に基づいてクラスタ構成テーブル５００Ａ（図５を参照）を生成する。
【０２０６】
クラスタ構成テーブル５００Ａは、実施例１で説明した図５と同様である。管理装置１００は、図５のクラスタ構成テーブル５００Ａに基づいてキャッシュデータ配置テーブル６００Ａを構成し、全てのデータ記憶部ＤＭ１〜ＤＭ５にキャッシュデータ配置テーブル６００Ａを設定する（ステップＳ２８０２）。ここで構成するキャッシュデータ配置テーブル６００Ａは、実施例１で説明した図６と同様である。
【０２０７】
管理装置１００は、図５のクラスタ構成テーブル５００Ａと図６のキャッシュデータ配置テーブル６００Ａに基づいて転送テーブル７００Ａを生成し、振分装置１０１に転送テーブル７００Ａを設定する（ステップＳ２８０３）。ここで構成する転送テーブル７００Ａは、実施例１で説明した図７と同様である。ステップＳ２８０３までに各種テーブル設定が完了した状態になる。
【０２０８】
次に、振分装置１０１が外部ネットワーク１０４からパケットを受信する。振分装置１０１は、そのパケットから識別子を抽出し、そのパケットが属するグループ番号を特定し、図７の転送テーブル７００Ａを参照して適切なデータ処理部ＤＰｉ（ここではＤＰ１）に転送する（ステップＳ２８０４）。データ処理部ＤＰ１は、このパケットを処理した結果として、そのパケットに係る運用データを作成、または更新し、キャッシュデータとして保持する（ステップＳ２８０５）。
【０２０９】
データ処理部ＤＰ１は、任意のタイミングで自身が保持するグループの運用データ群を、同一サーバ装置ＳＶ１内のデータ記憶部ＤＭ１に保存する（ステップＳ２８０６）。本シーケンス例では、グループ１の運用データ群［１−０］とグループ２の運用データ群［２−０］が保存される。
【０２１０】
データ記憶部ＤＭ１は、それら運用データ群［１−０］，［２−０］を保存すると同時に、クラスタを構成するサーバ装置ＳＶ２、ＳＶ３のデータ記憶部ＤＭ２、ＤＭ３に冗長データ群［１−１］，［２−１］，［１−２］，［２−２］を保存して多重化を実施する（ステップＳ２８０７）。
【０２１１】
サーバ装置ＳＶ２のデータ記憶部ＤＭ２は、冗長データ群［１−１］，［２−１］が保存されると、図６のキャッシュデータ配置テーブル６００Ａを参照して、グループ１の冗長キャッシュデータ群（１−１）とグループ２の冗長キャッシュデータ群（２−１）をそれぞれ配置すべきサーバ装置ＳＶ５、ＳＶ４を特定する。そして、データ記憶部ＤＭ２は、サーバ装置ＳＶ４のデータ処理部ＤＰ４に対して、グループ２の冗長キャッシュデータ群（２−１）を事前配置する（ステップＳ２８０８）。
【０２１２】
また、データ記憶部ＤＭ２は、サーバ装置ＳＶ５のデータ処理部ＤＰ５に対して、グループ１の冗長キャッシュデータ群（１−１）を事前配置する（ステップＳ２８０９）。他のグループの冗長キャッシュデータ群についても、ステップＳ２８０７〜ステップＳ２８０９と同様の手順を踏むことで、各サーバ装置ＳＶｉのデータ処理部ＤＰｉに配置される。
【０２１３】
以上が、初期状態において冗長キャッシュデータ群を配置する処理を行う手順である。本手順に従えば、データ処理部ＤＰｉは、冗長データ群を保持しているデータ記憶部ＤＭｉによって、その冗長データ群の配置とは異なるように冗長データ群のキャッシュデータを保持することになる。
【０２１４】
これにより、運用データ群の冗長を他のサーバ装置ＳＶｉに分散配置してサーバ装置ＳＶｉの利用効率を向上すると共に、運用データまたは冗長データの整合性を失うことを抑制して信頼性を向上することができる。
【０２１５】
データ処理部ＤＰｉでは、縮退運用時のパケット処理負荷の均等化を目的として冗長データ群のキャッシュデータを分散配置することができる。つまり、データ処理部ＤＰｉでは、通常運用時における利用効率の向上を優先させたデータ配置を採用することが可能となる。
【０２１６】
また、データ配置の自由度を上げられるので、例えばサーバ装置ＳＶｉのリソース量が異なる場合には、そのリソース量に応じて縮退時の処理負荷が分散されるように、冗長キャッシュデータ群の配置を決めることもできる。
【０２１７】
一方、データ記憶部ＤＭｉでは、あるグループＮに属する運用データ群または冗長データ群の多重化するサーバ装置ＳＶｉの台数ｎを最小限に抑えることで、検証外の異常系動作が発生する可能性を抑制してデータ群の整合性を失うことを抑制することができる。つまりデータ記憶部ＤＭｉでは、信頼性の向上を優先させたデータ配置を採用することが可能となる。
【０２１８】
また、データ記憶部ＤＭｉを高信頼化することで、データ処理部ＤＰｉがたとえ運用データ群または冗長データ群の一部を消失しても、データ記憶部ＤＭｉから取得して復旧することができる。さらに、データ処理部ＤＰｉとデータ記憶部ＤＭｉの冗長データ群との配置の重複を回避することで、管理システム１全体としての多重度を上げる効果が得られる。
【０２１９】
実施例６のデータ記憶部ＤＭｉは、特徴となる動作を持つ。具体的には、データ処理部ＤＰｉに冗長キャッシュデータ群を配置する動作である。以下、図２９を用いて、データ記憶部ＤＭｉの動作の処理フローを説明する。
【０２２０】
図２９は、実施例６にかかるデータ記憶部ＤＭｉによる各データ処理部ＤＰｉへの冗長キャッシュデータ群の配置処理手順例を示すフローチャートである。なお、ここでは、第１冗長データ群を持つデータ記憶部ＤＭｉが第１冗長データ群の事前配置を行うことを想定して説明するが、運用データ群、または第２冗長データ群を持つデータ記憶部ＤＭｉが第１冗長データ群の事前配置を行っても良い。
【０２２１】
データ記憶部ＤＭｉは、他のデータ記憶部ＤＭｊから第１冗長データ群の保存を指示されることで処理を開始する（ステップＳ２９００）。
【０２２２】
データ記憶部ＤＭｉは、保存指示のあった冗長データ群のそれぞれのグループ番号に対して、以下の処理（ステップＳ２９０２〜ステップＳ２９０６）をループする（ステップＳ２９０１）。ループの処理対象となるグループ番号を「対象グループ番号」と称す。
【０２２３】
まず、データ記憶部ＤＭｉは、図６のキャッシュデータ配置テーブル６００Ａの運用キャッシュデータ群６０３を参照して、対象グループ番号Ｎで特定されるグループＮの運用データ群［Ｎ−０］を保持するサーバ装置ＳＶｉのサーバ装置番号（以下、第１サーバ装置番号）を特定する（ステップＳ２９０２）。
【０２２４】
データ記憶部ＤＭｉは、図５のクラスタ構成テーブル５００Ａの死活情報５０２を参照して、特定した第１サーバ装置番号で特定されるサーバ装置ＳＶｉの死活情報５０２が「ＯＫ」であるかを判断する（ステップＳ２９０３）。
【０２２５】
特定したサーバ装置ＳＶｉの死活情報５０２が「ＯＫ」である場合（ステップＳ２９０３：Ｙｅｓ)、データ記憶部ＤＭｉは、第１冗長キャッシュデータ群６０４を参照して、対象グループ番号で特定されるグループに属する第１冗長キャッシュデータ群を保持すべきサーバ装置のサーバ装置番号（以下、第２サーバ装置番号）を特定する（ステップＳ２９０４）。
【０２２６】
一方、ステップＳ２９０３に戻り、サーバ装置ＳＶｉが死活情報５０２が「ＮＧ」である場合（ステップＳ２９０３：Ｎｏ）、データ記憶部ＤＭｉは、第２冗長キャッシュデータ群６０５を参照して、対象グループ番号で特定されるググループに属する第２冗長キャッシュデータ群を保持すべきサーバ装置ＳＶｉのサーバ装置番号（以下、第２サーバ装置番号）を特定する（ステップＳ２９０５）。
【０２２７】
データ記憶部ＤＭｉは、上記特定した第２サーバ装置番号で特定されるデータ処理部ＤＰｉに対して、対象グループ番号で特定されるグループの冗長キャッシュデータ群を送信して、事前配置する（ステップＳ２９０６）。データ記憶部ＤＭｉは、保存指示のあった冗長データ群の全てのグループ番号に対してステップＳ２９０１に始まるループを繰り返す（ステップＳ２９０７）。ループが終了すると、一連の処理を終了する（ステップＳ２９０７）。
【０２２８】
上記の処理によって、データ処理部ＤＰｉは、冗長データ群を保持しているデータ記憶部ＤＭｉによって、その冗長データ群の配置とは異なるように冗長データ群のキャッシュデータを保持することになる。これにより、運用データ群の冗長を他のサーバ装置に分散配置してサーバ装置の利用効率の向上を図ることができる。また、サーバ装置の縮退が発生した場合でも、故障したサーバ装置の運用データ群のキャッシュデータをキャッシュしているサーバ装置において、データ記憶部からデータ処理部へのデータ移動よりも優先して、当該キャッシュデータが高速で活性化される。したがって、運用データまたは冗長データの整合性の喪失を抑制して信頼性の向上を図ることができる。
【０２２９】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【０２３０】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０２３１】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【０２３２】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０２３３】
１  管理システム
１００  管理装置
１０１  振分装置
１０３  ネットワーク
１０４  外部ネットワーク
１１０  制御部
１１１  分散処理部
１２０  パケット処理部
１２１  冗長データ取得部
１２２  運用データキャッシュ部
１２３  冗長データキャッシュ部
１２４  多重化部
１２５  運用データ保持部
１２６  冗長データ保持部
５００Ａ〜５００Ｃ  クラスタ構成テーブル
６００Ａ，６００Ｂ  キャッシュデータ配置テーブル
７００Ａ，７００Ｂ  転送テーブル
ＤＭｉ データ記憶部
ＤＰｉ データ記憶部
ＳＶｉ サーバ装置
【図１】
2016177578.tif 000003
【図２】
2016177578.tif 000004
【図３】
2016177578.tif 000005
【図４】
2016177578.tif 000006
【図５】
2016177578.tif 000007
【図６】
2016177578.tif 000008
【図７】
2016177578.tif 000009
【図９】
2016177578.tif 000010
【図１０】
2016177578.tif 000011
【図１１】
2016177578.tif 000012
【図１３】
2016177578.tif 000013
【図１４】
2016177578.tif 000014
【図１５】
2016177578.tif 000015
【図１６】
2016177578.tif 000016
【図１７】
2016177578.tif 000017
【図１８】
2016177578.tif 000018
【図１９】
2016177578.tif 000019
【図２０】
2016177578.tif 000020
【図２１】
2016177578.tif 000021
【図２４】
2016177578.tif 000022
【図２５】
2016177578.tif 000023
【図２６】
2016177578.tif 000024
【図２８】
2016177578.tif 000025
【図２９】
2016177578.tif 000026
【図８】
2016177578.tif 000027
【図１２】
2016177578.tif 000028
【図２２】
2016177578.tif 000029
【図２３】
2016177578.tif 000030
【図２７】
2016177578.tif 000031