(57)【要約】【課題】計算機間を接続するパスを変更することによって、計算機の状態に応じたサービスを提供する。【解決手段】複数の物理パスによって互いに通信可能な第１の計算機及び第２の計算機が含まれる計算機システムで、第１の計算機及び第２の計算機の間では、物理パスが割り当てられた複数の論理パスを介してデータが転送され、複数の論理パスには第１の論理パス及び第２の論理パスが含まれ、第１の計算機及び第２の計算機の少なくとも一方の状態の変更が検出されると、検出された状態に基づいて、第１の論理パスに割り当てられる物理パスの数と、第２の論理パスに割り当てられる物理パスの数との比率を算出し、算出された比率を第１の計算機及び第２の計算機に通知する。【選択図】図１
2010134515.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機を含み、前記複数の計算機は互いに通信可能であり、前記複数の計算機間の通信を制御する通信制御装置を含む計算機システムにおいて、前記計算機の記憶部に格納されたデータを転送するデータ転送方法であって、
前記複数の計算機には、複数の物理パスによって通信する第１の計算機及び第２の計算機が含まれ、
前記第１の計算機は、前記第２の計算機に備えられた第１のインタフェースと、前記第１のインタフェースから通信可能な第１のプロセッサと、前記第１のプロセッサからアクセス可能な第１の記憶部と、を備え、
前記第２の計算機は、前記第１の計算機に備えられた第２のインタフェースと、前記第２のインタフェースから通信可能な第２のプロセッサと、前記第２のプロセッサからアクセス可能な第２の記憶部と、を備え、
前記第１の計算機及び前記第２の計算機は、前記物理パスが割り当てられた複数の論理パスを介してデータを転送し、
前記複数の論理パスには、第１の論理パス及び第２の論理パスが含まれ、
前記通信制御装置は、
前記第１の計算機及び前記第２の計算機の少なくとも一方の状態の変更を検出し、
前記検出された状態に基づいて、前記第１の論理パスに割り当てられる物理パスの数と、前記第２の論理パスに割り当てられる物理パスの数との比率を算出し、
前記算出された比率を前記第１の計算機及び前記第２の計算機に通知することを特徴とするデータ転送方法。
【請求項２】
前記第１の論理パスには、前記第１の計算機から前記第２の計算機に送信されるデータを含む送信パケットが送信され、
前記第２の論理パスには、前記送信パケットを冗長化した冗長パケットが送信され、
前記第２の計算機は、前記送信パケットが損失された場合には、前記冗長パケットに基づいて、前記送信パケットを復元することを特徴とする請求項１に記載のデータ転送方法。
【請求項３】
前記第１の計算機は、前記第１の論理パスに割り当てられた物理パスの数が、前記第２の論理パスに割り当てられた物理パスの数よりも大きい場合には、前記冗長パケットに格納されたデータを圧縮して送信することを特徴とする請求項２に記載のデータ転送方法。
【請求項４】
前記第１の記憶部には、第１のデータベースが記憶され、
前記第２の記憶部には、第２のデータベースが記憶され、
前記第１の計算機は、前記第１のデータベースに格納されたデータが更新された場合には、前記更新されたデータを前記送信パケットに格納し、
前記第２の計算機は、前記送信パケットに格納された前記更新されたデータを、前記第２のデータベースに反映させることによって、前記第１のデータベースと前記第２のデータベースとを同期させることを特徴とする請求項２に記載のデータ転送方法。
【請求項５】
前記第１の計算機は、前記送信パケットをマルチキャストすることを特徴とする請求項４に記載のデータ転送方法。
【請求項６】
前記通信制御装置は、前記第２の計算機に障害が発生したことによって状態の変更が検出された場合には、前記第１の論理パスに割り当てられた物理パスの数が前記第２の論理パスに割り当てられた物理パスの数よりも大きくなるように、前記比率を算出することを特徴とする請求項２に記載のデータ転送方法。
【請求項７】
前記計算機システムには、前記計算機の状態に対応した前記計算機間の通信における信頼度が定義され、
前記通信制御装置は、前記信頼度に基づいて前記比率を算出することを特徴とする請求項２に記載のデータ転送方法。
【請求項８】
前記通信制御装置は、前記物理パスの障害を検出した場合には、障害の発生していない物理パスの数に基づいて、前記比率を再計算することを特徴とする請求項１に記載のデータ転送方法。
【請求項９】
前記第１の計算機は、前記第１の論理パスを介して受信したパケットを一時的に格納する第１の受信バッファと、前記第２の論理パスを介して受信したパケットを一時的に格納する第２の受信バッファと、を備え、
前記第２の計算機は、前記第１の論理パスを介して受信したパケットを一時的に格納する第３の受信バッファと、前記第２の論理パスを介して受信したパケットを一時的に格納する第４の受信バッファと、を備え、
前記方法は、前記算出された比率に基づいて、前記第１の受信バッファの容量と前記第２の受信バッファの容量の比率、及び前記第３の受信バッファの容量と前記第４の受信バッファの容量の比率のうち、少なくとも一方を変更することを特徴とする請求項１に記載のデータ転送方法。
【請求項１０】
複数の物理パスによって接続された第１の計算機及び第２の計算機を含む計算機システムにおいて、前記複数の物理パスの構成を管理するパス構成管理装置であって、
前記第１の計算機及び第２の計算機に接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続される記憶部と、を備え、
前記第１の計算機及び前記第２の計算機は、前記物理パスが割り当てられた複数の論理パスを介してデータを転送し、
前記複数の論理パスには、第１の論理パス及び第２の論理パスが含まれ、
前記プロセッサは、
前記第１の計算機及び前記第２の計算機の少なくとも一方の状態の変更を検出し、
前記検出された状態に基づいて、前記第１の論理パスに割り当てられる物理パスの数と、前記第２の論理パスに割り当てられる物理パスの数との比率を算出し、
前記算出された比率を前記第１の計算機及び前記第２の計算機に通知することを特徴とするパス構成管理装置。
【請求項１１】
複数の物理パスによって接続された第１の計算機及び第２の計算機を含む計算機システムにおいて、前記複数の物理パスの構成を管理する計算機に実行させるパス構成管理プログラムであって、
前記第１の計算機及び前記第２の計算機は、前記物理パスが割り当てられた複数の論理パスを介してデータを転送し、
前記複数の論理パスには、第１の論理パス及び第２の論理パスが含まれ、
前記プログラムは、
前記第１の計算機及び前記第２の計算機の少なくとも一方の状態の変更を検出する手順と、
前記検出された状態に基づいて、前記第１の論理パスに割り当てられる物理パスの数と、前記第２の論理パスに割り当てられる物理パスの数との比率を算出する手順と、
前記算出された比率を前記第１の計算機及び前記第２の計算機に通知する手順と、を含むことを特徴とするパス構成管理プログラム。
【請求項１２】
複数の計算機を含み、前記複数の計算機は互いに通信可能であり、前記複数の計算機間の通信を制御する通信制御装置を含む計算機システムにおいて、前記計算機の記憶部に格納されたデータを転送するデータ転送方法であって、
前記複数の計算機には、複数の物理パスによって通信する第１の計算機及び第２の計算機が含まれ、
前記第１の計算機は、前記第２の計算機に備えられた第１のインタフェースと、前記第１のインタフェースから通信可能な第１のプロセッサと、前記第１のプロセッサからアクセス可能な第１の記憶部と、を備え、
前記第２の計算機は、前記第１の計算機に備えられた第２のインタフェースと、前記第２のインタフェースから通信可能な第２のプロセッサと、前記第２のプロセッサからアクセス可能な第２の記憶部と、を備え、
前記第１の記憶部には、第１のデータベースが記憶され、
前記第２の記憶部には、第２のデータベースが記憶され、
前記第１の計算機及び前記第２の計算機は、前記物理パスが割り当てられた複数の論理パスを介してデータを転送し、
前記複数の論理パスには、第１の論理パス及び第２の論理パスが含まれ、
前記第１の論理パスには、前記第１の計算機から前記第２の計算機に送信されるデータを含む送信パケットが送信され、
前記第２の論理パスには、前記送信パケットを復元させるための冗長パケットが送信され、
前記計算機間の通信における信頼度が前記計算機の状態ごとに定義され、
前記計算機の状態には、前記計算機に障害の発生していない正常状態と、前記計算機に障害が発生した障害発生状態とが含まれ、
前記前記通信制御装置は、
前記第１の計算機及び前記第２の計算機の状態が前記正常状態であって、かつ、前記第１のデータベースに格納されたデータが更新された場合には、前記第１の計算機は、前記更新されたデータを前記送信パケットに格納し、
前記第２の計算機は、前記送信パケットに格納されたデータを前記第２のデータベースを反映させることによって、前記第１のデータベースと前記第２のデータベースとを同期させ、
前記通信制御装置は、
前記第２の計算機の状態が前記障害発生状態に変更された場合には、前記障害発生状態に対応する前記信頼度に基づいて、前記第１の論理パスに割り当てられる物理パスの数と、前記第２の論理パスに割り当てられる物理パスの数との比率を算出し、
前記算出された比率に基づいて、前記第１の論理パスに割り当てられる物理パスの数と、前記第２の論理パスに割り当てられる物理パスの数とを変更し、
前記第１の計算機は、
前記第１のデータベースに格納されたデータを前記送信パケットに格納し、
前記第１の論理パスに割り当てられた物理パスの数が、前記第２の論理パスに割り当てられた物理パスの数よりも大きい場合には、前記冗長パケットに格納されたデータを圧縮して送信し、
前記第２の計算機は、
前記送信パケットが損失された場合には、前記冗長パケットに基づいて、前記送信パケットを復元し、
前記送信パケットに格納されたデータによって前記第２のデータベースを復元することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機間を接続するパスの構成を管理する技術に関する。
【背景技術】
【０００２】
インメモリデータベースでは、計算機の主記憶上に処理対象のデータを保持するため、外部記憶装置への入出力処理を必要としないため、入出力処理のオーバーヘッドを軽減することができる。したがって、インメモリデータベースを使用することによって、外部記憶装置にデータが記憶されている場合と比較して、高速にデータにアクセスすることができる。
【０００３】
また、基幹業務などを扱うトランザクション処理システムは、３６５日２４時間稼動し、サービスを提供する信頼性が要件となる。トランザクション処理システムでは、システムを構成する計算機及び物理パスなどの障害発生によってシステムの一部が停止した場合であっても、できる限り短時間で障害箇所を復旧させる必要がある。
【０００４】
インメモリデータベースを基幹業務に適用する場合、前述した信頼性を確保するために、計算機の障害による主記憶上のデータの消失を削減するため、データを複数計算機、又は複数の主記憶に分散して保持する。例えば、二台の計算機でそれぞれ独立してインメモリデータベースを稼働させ、さらに、各データベースを同期させる。このように構成することによって、一方の主記憶に記憶されたデータが消失した場合であっても、他方の主記憶に記憶されたデータによってサービスを継続することができる。
【０００５】
複数のインメモリデータベースが稼働するインメモリデータベースシステムには、構成される計算機がすべて正常に稼働している「通常時」と、一つ以上の計算機に障害が発生している「計算機障害発生時」の二種類の状態が含まれる。
【０００６】
具体的には、「通常時」にはデータベース永続化処理が実行される。データベース永続化処理とは、複数台の計算機で稼働するデータベースの内容を同一に維持し、計算機１台に障害が発生した場合においてもデータの損失を削減する。データベース永続化処理は、データベースの更新ごと、又は定期的に実施される。
【０００７】
永続化処理は、データベースを更新した計算機が最新のデータベースから抽出される差分データ又はデータベースの一部を送信し、受信した計算機がそれをデータベースに反映することによって実現される。永続化処理は、データの更新のたびに実行されるため、実行頻度は高くなるが、送信されるデータのサイズは元のデータベースに対して比較的小さく、数キロバイトから数メガバイトである。
【０００８】
また、「計算機障害発生時」には、計算機障害復旧処理が実行される。計算機障害復旧処理とは、計算機障害発生によって同じデータベースを主記憶に有する計算機数が減少する場合に、新規の計算機を追加し、追加された計算機の主記憶にデータベースをすべて複製し、同一の状態に復旧させる処理である。
【０００９】
計算機障害復旧処理は、最新状態のデータベースを保持した計算機が、データの一部又は全部を新規の計算機に送信し、受信したデータをデータベースに反映することによって実現される。計算機障害復旧処理は計算機の障害発生時実行されるため、実行頻度は低いが、送信されるデータのサイズは元のデータベースと同等であり、数百メガバイトから数百ギガバイトとなる。
【００１０】
データベース永続化処理及び計算機障害復旧処理は、計算機間でデータベースを一致させる通信を行う点で同じであるが、計算機間通信の満たすべきサービスレベルが異なる。データベース永続化処理では、比較的小さいデータの送受信時間を保証する必要があり、システム上の障害などでデータの損失及び再送が発生すると致命的な遅延につながるため、データが損失することが許されない。したがって、データベース永続化処理の満たすべきサービスレベルとして、無遅延でのデータ損失補償が必要とされる。
【００１１】
一方、計算機障害復旧処理では、大きいデータの送受信時間を保証することである。したがって、計算機障害復旧処理の満たすべきサービスレベルとして、スループット向上と、タイムアウト及び再送発生量削減が必要とされる。
【００１２】
以上のような計算機間通信の二種類のサービスレベルを満たすためには、以下の従来技術が有効である。
【００１３】
まず、無遅延でのデータ損失補償を満たすためには、多重送受信が有効である。多重送受信は、同じ通信性能を有する複数のパス（正系パス及び副系パス）に同じデータを送受信することで、無遅延でデータ損失を補償し、再送を防ぐ技術である（特許文献１参照）。
【００１４】
次に、スループット向上を満たすため、リンクアグリゲーションが有効である。リンクアグリゲーション（以下「ＬＡ」）は、通信性能の低い複数のパスをまとめて一つの論理パスとして使用することによって、通信のスループットを向上させる技術である（非特許文献１参照）。
【特許文献１】特開２００２−３１４５８６号公報
【非特許文献１】IEEE Standard Association 802.3ad,"Link Aggregation Control Protocol (LACP)", 2000
【発明の開示】
【発明が解決しようとする課題】
【００１５】
特許文献１に開示された技術では、送信元計算機が送信パケットごとに多重送受信を有効化するか無効化するかを切り替えることによって、多重送受信を制御する。しかし、膨大な数のパケットが送信されると、送信元計算機における有効化又は無効化の選択処理の負荷が増大し、スループットが悪化してしまう。専用ハードウェアを用いて選択処理を実行することによってスループットを向上させる場合には、コストの増大が問題となる。
【００１６】
さらに、特許文献１に開示された技術では、正系パスと副系パスの比率が１：１に固定されている。多重送受信が有効化されている場合には、正系パスのスループットを向上させることができず、逆に無効化されている場合には、スループットは向上するが、パスの障害発生時にデータを補償することができず、タイムアウト処理と再送処理の遅延が頻発するおそれがある。
【００１７】
本発明は、このような課題を鑑みてなされたものであり、低コストで計算機障害復旧時のタイムアウト及び再送発生量を削減し、かつ、スループットを向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の代表的な一形態によれば、複数の計算機を含み、前記複数の計算機は互いに通信可能であり、前記複数の計算機間の通信を制御する通信制御装置を含む計算機システムにおいて、前記計算機に格納されたデータを転送するデータ転送方法であって、前記複数の計算機には、複数の物理パスによって通信する第１の計算機及び第２の計算機が含まれ、前記第１の計算機は、前記第２の計算機に備えられた第１のインタフェースと、前記第１のインタフェースから通信する第１のプロセッサと、前記第１のプロセッサからアクセス可能な第１の記憶部と、を備え、前記第２の計算機は、前記第１の計算機に備えられた第２のインタフェースと、前記第２のインタフェースから通信可能な第２のプロセッサと、前記第２のプロセッサからアクセス可能な第２の記憶部と、を備え、前記第１の計算機及び前記第２の計算機は、前記物理パスが割り当てられた複数の論理パスを介してデータを転送し、前記複数の論理パスには、第１の論理パス及び第２の論理パスが含まれ、前記方前記通信制御装置は、前記第１の計算機及び前記第２の計算機の少なくとも一方の状態の変更を検出し、前記検出された状態に基づいて、前記第１の論理パスに割り当てられる物理パスの数と、前記第２の論理パスに割り当てられる物理パスの数との比率を算出し、前記算出された比率を前記第１の計算機及び前記第２の計算機に通知する。
【発明の効果】
【００１９】
本発明の一形態によれば、パスの構成比率を計算機の状態に応じて変更することによって、通常時には無遅延でデータ損失を補償し、計算機障害発生時にはスループットを向上させることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面に基づいて説明する。
【００２１】
（第１の実施の形態）
図１は、本発明の第１の実施の形態の計算機システムの構成の一例を示すブロック図である。
【００２２】
本発明の第１の実施の形態の計算機システムは、図１に示すように、計算機１０１Ａ、計算機１０１Ｂ、計算機間の通信を制御する通信制御装置である正副比率管理部１２４及び管理端末１５０を含む。
【００２３】
計算機１０１Ａ及び計算機１０１Ｂには、インメモリデータベースが稼働し、図示しないホスト計算機からの要求に応じてデータが入出力される。本発明の第１の実施の形態の計算機システムでは、図１に示すように、２台の計算機が含まれているが、３台以上の計算機が含まれるように構成してもよい。また、計算機１０１Ａ及び計算機１０１Ｂはクラスタ構成となっている。
【００２４】
計算機１０１Ａ及び計算機１０１Ｂは、複数の（物理）パスによって接続される。本発明の第１の実施の形態では、４本のパスで接続されている。また、計算機１０１Ａと計算機１０１Ｂとは、ホットスタンバイの関係にある。具体的には、両方の計算機に同じデータが保持され、一方の計算機に障害が発生した場合には、他方の計算機によって業務が継続される。通常時及び計算機障害発生時の処理については、詳細を後述する。なお、計算機システムに３台以上の計算機が含まれる場合においても、各計算機は同様に接続され、ホットスタンバイの関係にある。
【００２５】
正副比率管理部１２４は、ネットワークを介して計算機１０１Ａ及び計算機１０１Ｂに接続される。なお、計算機システムに３台以上の計算機が含まれている場合には、各計算機に接続される。
【００２６】
正副比率管理部１２４は、計算機１０１Ａと計算機１０１Ｂとを接続するパスの構成を決定する。具体的には、正系に割り当てられたパスの本数と副系に割り当てられたパスの本数の比率（正副比率）を計算機の状態に基づいて算出する。なお、正副比率を本数の比率ではなく、スループットの比率としてもよい。算出された正副比率は、計算機１０１Ａ及び計算機１０１Ｂに通知される。正副比率の算出方法の詳細については後述する。
【００２７】
正副比率管理部１２４は、図１に示すように、計算機１０１Ａ及び計算機１０１Ｂの外部に配置されたハードウェアとして構成されているが、計算機１０１Ａ及び計算機１０１Ｂのいずれかの内部に含まれる構成としてもよい。また、正副比率管理部１２４をハードウェアとしてではなく、当該機能を提供するプログラムとして実現し、いずれかの計算機の内部で実行されるようにしてもよい。
【００２８】
また、本発明の第１の実施の形態の計算機システムでは、図１に示すように、正副比率管理部１２４が１つ含まれているが、複数の正副比率管理部１２４が含まれるように構成してもよい。この場合には、正副比率管理部１２４のいずれか又は全部が計算機からのイベント通知に基づいて処理を実行する。
【００２９】
管理端末１５０は、正副比率管理部１２４に接続され、正副比率管理部１２４を管理する。具体的には、管理者１５１によるパラメータの入力を受け付け、入力パラメータ１５２として正副比率管理部１２４に送信する。
【００３０】
次に、本発明の第１の実施の形態の計算機システムを構成する各部の詳細について説明する。
【００３１】
計算機１０１Ａは、主記憶１０２Ａ、プロセッサ１０３Ａ、ネットワークインターフェースカード（以下、「ＮＩＣ」）１０４Ａ〜１０４Ｄ、正副比率管理部１２４に接続されるＮＩＣ１０５Ａ、ディスク記憶媒体１２１Ａ及び磁気記憶媒体１２２Ａを備える。
【００３２】
主記憶１０２Ａは、プロセッサ１０３Ａによって実行されるプログラム及びデータを記憶する。具体的には、データベース１０２１Ａ、計算機制御部１０２２Ａ、送信パケット生成部１０２３Ａ、ＬＡ制御部１０２４Ａ、送信部１０２５Ａ及び受信部１０２６Ａが記憶される。
【００３３】
主記憶１０２Ａに記憶されたプログラム及びデータは、ディスク記憶媒体１２１Ａ又は磁気記憶媒体１２２Ａに格納されており、必要に応じてロードされる。また、常時主記憶１０２Ａに記憶されている必要がないプログラム及びデータについては、所定のタイミングでロードされ、実行されるようにしてもよい。
【００３４】
データベース１０２１Ａには、図示しないホスト計算機によって読み書きされるデータ及び当該データを管理するデータベース管理システムが含まれる。
【００３５】
計算機制御部１０２２Ａは、計算機１０１Ａ全体を制御する。計算機制御部１０２２Ａは、主記憶１０２Ａ上にロードされるプログラムであるが、同様の機能を提供する専用のハードウェアを用いてもよい。送信パケット生成部１０２３Ａ、ＬＡ制御部１０２４Ａ、送信部１０２５Ａ及び受信部１０２６Ａについても同様である。
【００３６】
送信パケット生成部１０２３Ａは、計算機１０１Ｂに送信するパケットを生成する。ＬＡ制御部１０２４Ａは、計算機１０１Ｂとの間の接続に適用されるリングアグリゲーションを制御する。送信部１０２５Ａは、計算機１０１Ｂにパケットを送信する。受信部１０２６Ａは、計算機１０１Ｂから送信されたパケットを受信する。なお、各構成の詳細な説明については後述する。
【００３７】
プロセッサ１０３Ａは、主記憶１０２Ａに記憶されたプログラムを実行することによって各種処理を実行する。
【００３８】
ＮＩＣ１０４Ａ〜１０４Ｄは、計算機間を接続し、それぞれ固有のアドレスが割り当てられている。本発明の第１の実施の形態では、計算機１０１ＢのＮＩＣ１０４Ｅ〜１０４Ｈにそれぞれ接続される。
【００３９】
ディスク記憶媒体１２１Ｂ及び磁気記憶媒体１２２Ｂは、主記憶１０２Ａに記憶されるプログラム及びデータを格納する。
【００４０】
計算機１０１Ｂは、計算機１０１Ａと同様に、主記憶１０２Ｂ、プロセッサ１０３Ｂ、ＮＩＣ１０４Ｅ〜１０４Ｈ、ＮＩＣ１０５Ｂ、ディスク記憶媒体１２１Ｂ及び磁気記憶媒体１２２Ｂを備える。
【００４１】
各構成の機能については、計算機１０１Ａの対応する各構成と同様である。また、主記憶１０２Ｂには、計算機１０１Ａと同様に、データベース１０２１Ｂ、計算機制御部１０２２Ｂ、送信パケット生成部１０２３Ｂ、ＬＡ制御部１０２４Ｂ、送信部１０２５Ｂ及び受信部１０２６Ｂが記憶される。主記憶１０２Ｂに記憶されたプログラム及びデータは、計算機１０１Ａと同様である。
【００４２】
なお、計算機１０１Ａを実行系、計算機１０１Ｂを待機系とすると、計算機１０１Ａがホスト計算機からのアクセスを受け付ける。データベース１０２１Ａのデータが更新された場合には、更新データを含む送信パケットが生成され、計算機１０１Ｂに送信される。計算機１０１Ｂは、更新データを含む送信パケットを受信すると、データベース１０２１Ｂに更新データを反映させることによって、データベース１０２１Ａとデータベース１０２１Ｂとを同期させる。このとき、計算機システムに待機系の計算機が複数含まれている場合には、送信パケットをマルチキャストするようにしてもよい。
【００４３】
ここで、計算機１０１Ａと計算機１０１Ｂとの接続について詳細を説明する。計算機１０１Ａと計算機１０１Ｂとは、前述したように、ホットスタンバイの関係にある。
【００４４】
計算機システムに含まれる計算機に障害が発生すると、障害が発生した計算機に障害が発生していない計算機からデータベースを復旧させるためにデータが送信される。このとき、障害が発生した計算機を送信先計算機とする。また、送信先計算機とホットスタンバイの関係にある１台以上の計算機を送信元計算機とする。
【００４５】
例えば、計算機１０１Ｂに障害が発生した場合には、計算機１０１Ｂが送信先計算機、計算機１０１Ａが送信元計算機となる。逆に、計算機１０１Ａに障害が発生した場合には、計算機１０１Ｂが送信元計算機、計算機１０１Ａが送信先計算機となる。計算機１０１Ａ又は計算機１０１Ｂのいずれに障害が発生した場合でも、本発明による処理は同じとなるが、以降、計算機１０１Ｂに障害が発生した場合について説明する。
【００４６】
なお、本発明の第１の実施の形態における計算機で発生した障害は、プログラムの異常終了などの原因で発生した障害であって、プログラムの再実行又は計算機の再起動などによって、再び正常に稼働することが可能なものである。
【００４７】
正副比率管理部１２４は、管理者１５１によって管理端末１５０から入力された入力パラメータ１５２を受信し、格納する。正副比率管理部１２４は、主記憶１４２、プロセッサ１４３、ＮＩＣ１４４及びＮＩＣ１４５を備える。
【００４８】
主記憶１４２は、プロセッサ１４３によって実行されるプログラム及びデータを記憶する。具体的には、正副比率算出部１２５、正副比率送信部１２６、イベント受信部１２７及びクラスタ構成情報１４０を記憶する。
【００４９】
正副比率算出部１２５は、後述するイベント受信部１２７によって受信した、計算機１０１Ａ又は計算機１０１Ｂによって通知されたイベント情報に基づいて、正副比率を算出する。正副比率送信部１２６は、正副比率算出部１２５によって算出された正副比率を計算機１０１Ａ及び計算機１０１Ｂに送信する。
【００５０】
イベント受信部１２７は、計算機１０１Ａ又は計算機１０１Ｂによって通知されたイベント情報を受信する。なお、受信するイベント情報の詳細については、図５にて後述する。
【００５１】
クラスタ構成情報１４０は、管理者１５１によって入力された入力パラメータ１５２を格納するクラスタ構成情報１４０は、計算機ステータス情報１２８、クラスタステータス情報１２９、パスステータス情報１３０、信頼度設定情報１３１、及び最新イベント情報１３２を含む。
【００５２】
計算機ステータス情報１２８は、計算機システムに含まれる各計算機のステータスを格納する。計算機ステータス情報１２８の詳細については、図６にて後述する。
【００５３】
クラスタステータス情報１２９は、クラスタごとのステータスを含む情報を格納する。クラスタステータス情報１２９の詳細については、図７にて後述する。
【００５４】
パスステータス情報１３０は、各計算機を接続するパスの情報を格納する。具体的には、パスごとの接続ステータス、及び当該パスに接続される計算機の情報などが格納されている。パスステータス情報１３０の詳細については、図８にて後述する。
【００５５】
信頼度設定情報１３１は、クラスタのステータスごとに適用される信頼度が定義される。信頼度は、計算機間の正系パス及び副系パスの接続形態を決定するためのパラメータである。信頼度設定情報１３１の詳細については、図９にて後述する。
【００５６】
最新イベント情報１３２は、計算機１０１Ａ又は計算機１０１Ｂで発生した最新のイベントを格納する。最新イベント情報１３２の詳細については、図１０にて後述する。
【００５７】
ＮＩＣ１４４は、計算機１０１Ａ及びに計算機１０１Ｂに接続される。ＮＩＣ１４５は、管理端末１５０に接続される。なお、ＮＩＣ１４４及びＮＩＣ１４５は、共通であってもよい。
【００５８】
ここで、図１を参照しながら、本発明の第１の実施の形態における計算機間の接続について説明する。本発明の第１の実施の形態では、前述したように、計算機１０１Ａと計算機１０１Ｂとは、４本の物理パスによって接続され、正系パスに割り当てられる物理パス数を１本から４本の間で変更することができる。
【００５９】
具体的に接続されたパスを示すと、図１に示すように、計算機１０１ＡのＮＩＣ１０４Ａは、物理パスによって計算機１０１ＢのＮＩＣ１０４Ｅに接続されている。同様に、ＮＩＣ１０４ＢとＮＩＣ１０４Ｆ、ＮＩＣ１０４ＣとＮＩＣ１０４Ｇ、ＮＩＣ１０４ＤとＮＩＣ１０４Ｈが、それぞれ物理パスによって接続されている。なお、本発明の第１の実施の形態を適用するためには、計算機間を接続する物理パスが２本以上であればよい。
【００６０】
さらに、複数の物理パスを利用した多重送受信及びリンクアグリゲーションについて説明する。
【００６１】
多重送受信では、前述したように、複数の物理パスが含まれている場合に、１本のパスを正系パス、残りのパスを副系パスとする。例えば、正系パスと副系パスを１本ずつ使用する二重送受信が最も簡単な構成となる。
【００６２】
二重送受信では、送信元計算機は正系パスと副系パスに全く同じデータを送信する。したがって、いずれかの系でパス障害又は輻輳を原因としてデータ損失が発生しても、送信先計算機では残りの系を経由して送信されたデータを正常に受信し、損失を補償することができる。なお、いずれの系についても同じ送信元計算機及び送信先計算機に接続されていることが前提である。
【００６３】
二重送受信では、送信先計算機において正系パス及び副系パスの両方でデータが受信されるため、使用するデータを選択する必要がある。選択方法としては、プロテクション方法と先着優先方法の２つが挙げられる。プロテクション方法では、正系パスから受信したデータを受信し、データとして使用し、副系パスから受信したデータを破棄する。先着優先方法では、正系パス又は副系パスのいずれか先に受信したデータを使用し、残りのデータを破棄する。
【００６４】
次に、リンクアグリゲーションとは、前述のように、複数の物理パスをまとめて一つの論理パスとして使用することによって、通信のスループットを向上させる技術である。具体的には、同じ通信性能を有する２本のパスをまとめた論理パスのスループットは、１本のパスからなる論理パスに対して２倍になる。さらに、まとめる本数を多くすることによって、論理パスのスループットを向上させることができる。
【００６５】
リンクアグリゲーションにおけるデータ送受信処理は、データ送信時の分割（デアセンブリ）、送信スケジューリング、及びデータ受信時の結合（アセンブリ）の３つの処理によって構成され、送信スケジューリングによって通信スループットが決定される。送信スケジューリングは、どのパスを経由して分割したデータを送信するかを決定する処理である。送信スケジューリングの一般的な決定方法としては、ラウンドロビンと宛先別の２つが挙げられる。
【００６６】
ここで、物理パスの本数が４本の場合に、多重送受信とリンクアグリケーションを同時に適用する構成について説明する。具体的には、２本の物理パスがリンクアグリゲーションによってまとめられた論理パスを、それぞれ正系パス及び副系パスとする。さらに、多重送受信を適用し、正系のパス及び副系のパスに同じデータを送信する。
【００６７】
しかし、計算機間の接続をこのように構成すると、無遅延でデータ損失を補償する通常時のサービスレベルを満たすことができるが、スループットを向上させる計算機障害発生時のサービスレベルを実現することは困難である。具体的には、データベースのデータサイズが増加すると、通信量も増加するが、多重送受信の制約のため正系パスのスループットを向上させることが困難なためである。まず、総スループットは、計算機構成の物理的制約のため上限がある。さらに、従来の多重送受信では、同じスループットを正系パスと各副系パスに割り当てる。二重送受信の場合は、正系パスと副系パスの物理パス数の比率は１：１であり、各スループットは総スループットの半分となる。
【００６８】
以上の問題を解消するために、本発明の第１の実施の形態では、多重送受信の制約を緩和する。具体的には、計算機間通信の２つのサービスレベルを達成するため、サービスレベルの変更点である計算機状態の変更時に、計算機障害発生のタイミングで正系パスと副系パスを制御し、正系パスのスループットを向上するよう正副比率を変更する。
【００６９】
続いて、図１における計算機システムを構成する各部の関連について、図２から図４を参照して説明する。
【００７０】
図２は、本発明の第１の実施の形態の計算機１０１Ｂが障害復旧中の場合に送信元計算機１０１Ａの各構成と正副比率管理部１２４の各構成との関連を説明する図である。
【００７１】
まず、処理の概要について説明すると、計算機１０１Ｂの障害を復旧させるためには、前述のように、送信元計算機１０１Ａのデータベース１０２１Ａに格納されたデータを計算機１０１Ｂに送信し、計算機１０１Ｂのデータベース１０２１Ｂを復旧させる。
【００７２】
計算機制御部１０２２Ａには、正副比率情報２２１Ａ、冗長パケット生成部２２２Ａ、計算機状態監視部２２３Ａ、イベント送信部２２４Ａ、正副比率受信部２２５Ａ及び正副比率変更部２２６Ａが含まれる。
【００７３】
正副比率情報２２１Ａは、正副比率受信部２２５Ａが正副比率管理部１２４から受信した最新の正副比率を保持する。計算機状態監視部２２３Ａは、イベント送信部２２４Ａにイベント送信を指示する。イベント送信部２２４Ａは、正副比率管理部１２４にイベント通知２０３を送信する。
【００７４】
正副比率受信部２２５Ａは、正副比率管理部１２４の正副比率送信部１２６から送信された正副比率２０４を受信し、正副比率変更部２２６Ａに正副比率変更を指示する。
【００７５】
正副比率変更部２２６Ａは、正副比率情報２２１Ａに変更された正副比率変更を格納する。さらに、送信パケット生成部１０２３Ａ、ＬＡ制御部１０２４Ａ及び冗長パケット生成部２２２Ａに正副比率の変更にともなう処理の実行を指示する。
【００７６】
続いて、送信パケット生成部１０２３Ａについて説明する。送信パケット生成部１０２３Ａは、正副比率変更部２２６Ａから通知された正副比率に基づいて、データベース１０２１Ａに格納されたデータによって送信パケット２０１を生成する。そして、生成された送信パケット２０１を、正系パス２１１Ａを介して計算機１０１Ｂに送信するように送信部１０２５Ａに指示する。
【００７７】
送信パケット２０１の生成及び送信についてもう少し詳しく説明すると、正副比率の値が「Ａ：Ｂ」の場合には、送信パケット２０１の生成において、Ａ個の送信パケット２０１ごとに同一パケットグループＩＤが割り当てられ、送信パケット２０１のヘッダ情報として当該パケットグループＩＤが付加される。送信パケット２０１は、データベース１０２１Ａをコピーするために送信されるデータをデアセンブリしたものに、ヘッダ情報を加えることによって生成されたパケットである。送信パケット２０１に格納されるデータは、データベース１０２１Ａに含まれるテーブルなどのデータ及び差分データである。当該データは、送信元計算機１０１Ａのデータベース１０２１Ａから抽出され、計算機１０１Ｂに送信された後にデータベース１０２１Ｂに適用される。
【００７８】
冗長パケット生成部２２２Ａは、送信パケット生成部１０２３Ａによって生成された送信パケット２０１に基づいて冗長パケット２０２を生成し、送信部１０２５Ａに副系パス２１１Ｂを介して冗長パケット２０２を送信するように指示する。冗長パケット２０２は、１つ以上の送信パケット２０１を使用して、正副比率に基づいたパケット数又はサイズになるように、一般的な誤り訂正等の技術を適用することによって生成されたパケットである。
【００７９】
また、正副比率の値が「Ａ：Ｂ」の場合では、Ａ個の送信パケット２０１が含まれるパケットグループに対し、冗長パケット２０２がＢ個となるように、パケットグループに含まれるＡ個の送信パケット２０１を用いて、同じパケットグループＩＤを付加したＢ個の冗長パケット２０２を生成する。または、送信パケット２０１のサイズの合計がＡのパケットグループに対し、冗長パケット２０２のサイズの合計がＢとなるように冗長パケット２０２を生成する。
【００８０】
ＬＡ制御部１０２４Ａは、送信部１０２５Ａからの送信要求に基づいて、論理パスに対応するＮＩＣを介してデータを分散送信する。図２の構成を参照しながら説明すると、３つのＮＩＣ１０４Ａ〜１０４Ｃが正系パス２１１Ａに対応し、１つのＮＩＣ１０４Ｄが副系パス２１１Ｂに対応する。したがって、送信要求が論理パスとして正系パス２１１Ａを指定する場合には、送信されるデータは３つのＮＩＣ１０４Ａ〜１０４Ｃに分散送信される。このとき、ＬＡ制御部１０２４Ａは、一定周期時間の経過若しくは一定量の送信パケット処理などの契機に応じて、論理パスとＮＩＣの対応関係を変更するようにしてもよい。さらに、ＬＡ制御部１０２４Ａは、正副比率変更部２２６Ａの指示によって、正系パス２１１Ａ及び副系パス２１１ＢのＮＩＣの割り当てを変更する。
【００８１】
送信部１０２５Ａは、送信パケット生成部１０２３Ａ及び冗長パケット生成部２２２Ａによって指示される論理パスとデータの組み合わせに基づいて、ＬＡ制御部１０２４Ａに生成されたデータを指定された論理パスで送信するように要求する。
【００８２】
なお、計算機制御部１０２２Ａは、前述したように、プログラムなどのソフトウェアで実装されてもよいし、ハードウェアで実装されていてもよい。したがって、計算機制御部１０２２Ａに含まれる、冗長パケット生成部２２２Ａ、計算機状態監視部２２３Ａ、イベント送信部２２４Ａ、正副比率受信部２２５Ａ及び正副比率変更部２２６Ａもソフトウェア又はハードウェアのいずれでも実装可能である。
【００８３】
次に、正副比率管理部１２４に含まれる各構成の関連について説明する。正副比率管理部１２４には、前述したように、イベント受信部１２７、正副比率算出部１２５及び正副比率送信部１２６が含まれる。
【００８４】
イベント受信部１２７は、計算機１０１Ａのイベント送信部２２４Ａから送信されたイベント通知２０３を受信し、クラスタ構成情報１４０に物理パス数、イベント種別及びパケットグループＩＤを格納する。
【００８５】
正副比率算出部１２５は、クラスタ構成情報１４０に格納された情報に基づいて正副比率を算出し、正副比率送信部１２６に正副比率の送信を指示する。
【００８６】
正副比率送信部１２６は、正副比率算出部１２５から取得された正副比率２０４を、通知元の計算機１０１Ａと同一クラスタに含まれる計算機すべてに送信する。
【００８７】
図２に示す構成は、計算機１０１Ａと計算機１０１Ｂとが同一クラスタに含まれる場合を示している。正副比率算出部１２５は、計算機１０１Ａから受信したイベント通知２０３に基づいて正副比率２０４を算出し、正副比率送信部１２６は算出された正副比率２０４を計算機１０１Ｂにも送信する。
【００８８】
前述のように、送信元計算機１０１Ａは、送信先計算機１０１Ｂにデータベースをコピーする処理を実行する。送信元計算機１０１Ａは、データベース１０２１Ａに格納されたデータから生成される送信パケット２０１を分割し、送信先計算機１０１Ｂに送信する。送信元計算機１０１Ａは、正系パス２１１Ａと副系パス２１１Ｂを構成し、正系パス２１１Ａを介して送信パケット２０１を送信し、送信パケット２０１及び正副比率情報２２１Ａに基づいて生成される冗長パケット２０２を、副系パス２１１Ｂを介して送信する。
【００８９】
図３は、本発明の第１の実施の形態の計算機１０１Ｂが障害復旧中の場合に送信先計算機１０１Ｂの各構成と正副比率管理部１２４の各構成との関連を説明する図である。
【００９０】
送信先計算機１０１Ｂの主記憶１０２Ｂは、図１に示したように、データベース１０２１Ｂ、計算機制御部１０２２Ｂ、ＬＡ制御部１０２４Ｂ、送信部１０２５Ｂ及び受信部１０２６Ｂを備える。また、計算機１０１Ｂが実行系として動作可能とするために、図３に示すように、主記憶１０２Ｂに送信パケット生成部１０２３Ｂが含まれるように構成される。ここで説明する例では、計算機１０１Ｂに障害が発生し、計算機１０１Ａからデータを受信することになっているが、計算機１０１Ａに障害が発生した場合には、計算機１０１Ｂのデータベース１０２１Ｂに格納されたデータが計算機１０１Ｂに送信されるため、原則的に同一クラスタ内の計算機はすべて同じ構成が含まれている。
【００９１】
計算機制御部１０２２Ｂは、計算機状態監視部２２３Ｂ及びイベント送信部２２４Ｂを含む。また、計算機制御部１０２２Ｂは、障害復旧中には使用されないが、図３に示すように、正副比率情報２２１Ｂ、冗長パケット生成部２２２Ｂ、正副比率受信部２２５Ｂ及び正副比率変更部２２６Ｂを含む。
【００９２】
計算機状態監視部２２３Ｂ及びイベント送信部２２４Ｂは、計算機１０１Ａの計算機状態監視部２２３Ａ及びイベント送信部２２４Ａと同様の処理を行う。
【００９３】
ＬＡ制御部１０２４Ｂは、論理パス３１１Ａを構成する。論理パス３１１Ａは、ＮＩＣ１０４Ｅ〜１０４Ｈに対応し、ＮＩＣ１０４Ｅ〜１０４Ｇによって受信された送信パケット３０１Ａ〜３０１Ｃを受信部１０２６Ｂに送信する。また同様に、ＮＩＣ１０４Ｈによって受信された冗長パケット３０２を受信部１０２６Ｂに送信する。
【００９４】
受信部１０２６Ｂは、ＬＡ制御部１０２４Ｂの管理する論理パスから受信したデータを格納し、送信パケット３０１Ａ〜３０１Ｃであればデータベース１０２１Ｂに格納し、冗長パケット３０２であれば一定時間格納する。図３では、受信部１０２６Ｂは送信パケット３０１Ａ〜３０１Ｃ及び冗長パケット３０２を格納し、送信パケット３０１Ａ〜３０１Ｃをデータベース１０２１Ｂに送信する。
【００９５】
データベース１０２１Ｂは、受信部１０２６Ｂが受信した送信パケット３０１Ａ〜３０１Ｃをデータベース１０２１Ｂに反映させる。
【００９６】
さらに、図３における受信部１０２６Ｂの内部構成について、図４を参照しながら詳しく説明する。
【００９７】
図４は、本発明の第１の実施の形態の障害復旧中の計算機１０１Ｂの受信部１０２６Ｂの内部の構成を説明する図である。
【００９８】
受信部１０２６Ｂは、受信データ検査部４０１、受信レジスタ４０２及びデータ格納部４０３を含む。
【００９９】
受信部１０２６Ｂは、ＬＡ制御部１０２４Ｂから送信されたすべてのデータを受信データ検査部４０１によって処理する。
【０１００】
受信データ検査部４０１は、受信したデータを参照し、送信パケットであるか冗長パケットであるかをパケットに含まれる情報に基づいて判定し、後述するフィルタリング処理を行う。
【０１０１】
受信データ検査部４０１は、受信したデータが送信パケットである場合には、受信レジスタ４０２に受信済みであることを記録し、受信した送信パケットをデータ格納部４０３に格納し、データベース１０２１Ｂに反映させる。
【０１０２】
受信データ検査部４０１は、受信したデータが冗長パケットである場合には、受信レジスタ４０２を参照し、冗長パケットをデータ格納部４０３に格納する。送信パケットが何らかの理由で受信できなかった場合には、冗長化パケットを利用して送信パケットを復元し、送信パケットの再送を発生させない。
【０１０３】
ここで、図１から図４に示したイベント通知２０３、クラスタ構成情報１４０、送信パケット２０１、冗長パケット２０２、受信レジスタ４０２及び入力パラメータ１５２の各情報の詳細について、図５から図１３を参照しながら説明する。
【０１０４】
図５は、本発明の第１の実施の形態の計算機１０１Ａ及び計算機１０１Ｂから正副比率管理部１２４に送信されるイベント通知２０３の内容を示す図である。
【０１０５】
イベント通知２０３は、イベント種別５０１、計算機ＩＤ５０２、物理パス数５０３及び送信時のタイムスタンプ５０４を含む。
【０１０６】
イベント種別５０１は、イベント通知２０３の送信元である送信元計算機１０１Ａ又は送信先計算機１０１Ｂによって検出されたイベントの種別である。イベント種別５０１に設定される値には、少なくとも「計算機復旧処理開始」及び「計算機復旧処理終了」が含まれる。また、他にも、物理パスに障害があり、かつ計算機がその箇所を特定したときに使用する「障害パス特定」、計算機のプロセッサ使用率、メモリ使用率、Ｉ／Ｏ使用率、または送信データ蓄積量が閾値を超えた場合に発生する「リソース使用量閾値超過」、計算機システムの管理者の業務上の都合により送信データを早く送信する場合に使用する「管理者によるサービスレベル変更」などを含んでもよい。
【０１０７】
計算機ＩＤ５０２は、イベント通知２０３を送信した計算機に一意に識別する識別子である。例えば、計算機の識別子として、当該計算機に備えられたＮＩＣのアドレスを使用してもよい。
【０１０８】
物理パス数５０３は、計算機ＩＤ５０２によって識別される計算機が含まれるクラスタで使用可能な正常な物理パスの数である。送信時のタイムスタンプ５０４は、計算機ＩＤ５０２によって識別される計算機がイベント通知２０３を送信した時刻である。
【０１０９】
次に、本発明の第１の実施の形態の正副比率管理部１２４のクラスタ構成情報１４０に含まれる各データの構成を、図６から図１０を参照しながら説明する。
【０１１０】
図６は、本発明の第１の実施の形態の正副比率管理部１２４に格納される計算機ステータス情報１２８の一例を示す図である。
【０１１１】
計算機ステータス情報１２８は、各計算機の計算機のステータスが格納される。計算機ステータス情報１２８は、管理者１５１によって管理端末１５０から入力された入力パラメータ１５２によって設定される。
【０１１２】
計算機ステータス情報１２８は、クラスタＩＤ６０１、計算機ＩＤ６０２及びステータス６０３を含む。
【０１１３】
クラスタＩＤ６０１は、管理対象のクラスタの識別子である。計算機ＩＤ６０２は、クラスタＩＤ６０１によって識別されるクラスタに含まれる計算機の識別子である。
【０１１４】
ステータス６０３は、計算機ＩＤ６０２によって識別される計算機のステータスである。設定されるステータスには、例えば、正常に計算機が稼働していることを示す「正常」、障害から復旧中であることを示す「復旧中」などの値が設定される。
【０１１５】
図７は、本発明の第１の実施の形態の正副比率管理部１２４に格納されるクラスタステータス情報１２９の一例を示す図である。
【０１１６】
クラスタステータス情報１２９には、各クラスタのステータスを含む情報が含まれる。クラスタステータス情報１２９は、管理者１５１によって管理端末１５０から入力された入力パラメータ１５２によって初期値が設定され、正副比率管理部１２４における正副比率制御処理によって更新される。
【０１１７】
クラスタステータス情報１２９は、クラスタＩＤ７０１、ステータス７０２、タイムスタンプ７０３、正副比率７０４及び物理パス数７０５を含む。
【０１１８】
クラスタＩＤ７０１は、管理対象の各クラスタを一意に識別する識別子である。ステータス７０２は、クラスタＩＤ７０１によって識別されるクラスタのステータスである。具体的には、クラスタに含まれる計算機が障害から復旧中であることを示す「計算機障害復旧中」、クラスタに含まれる計算機がすべて正常に稼働していることを示す「正常」などの値が設定される。
【０１１９】
タイムスタンプ７０３は、クラスタＩＤ７０１によって識別されるクラスタのステータスが変更されたイベント通知２０３に含まれるタイムスタンプである。すなわち、当該イベントの発生時刻が設定される。
【０１２０】
正副比率７０４は、クラスタＩＤ７０１によって識別されるクラスタに適用されている最新の正副比率である。物理パス数７０５は、クラスタＩＤ７０１によって識別されるクラスタに含まれる計算機間で通信に使用可能な物理パス数である。
【０１２１】
図８は、本発明の第１の実施の形態の正副比率管理部１２４に格納されるパスステータス情報１３０の一例を示す図である。
【０１２２】
パスステータス情報１３０には、各パスのステータス及び当該パスに接続される計算機を示す情報が含まれる。パスステータス情報１３０は、管理者１５１によって管理端末１５０を介して計算機とパスとの関連が定義され、パス障害特定イベントを表すイベント通知２０３を受信した場合に正副比率管理部１２４によって更新される。
【０１２３】
パスステータス情報１３０は、パスＩＤ８０１、ステータス８０２、計算機ＩＤ８０３及び計算機のアドレス８０４を含む。
【０１２４】
パスＩＤ８０１は、計算期間を接続するパスを一意に識別する識別子である。ステータス８０２は、パスＩＤ８０１によって識別されるパスのステータスである。
【０１２５】
計算機ＩＤ８０３は、パスＩＤ８０１によって識別されるパスに接続される計算機の識別子である。計算機のアドレス８０４は、計算機ＩＤ８０３によって識別される計算機のＩＰアドレスである。
【０１２６】
図９は、本発明の第１の実施の形態の正副比率管理部１２４に格納される信頼度設定情報１３１の一例を示す図である。
【０１２７】
信頼度設定情報１３１は、クラスタのステータスと、正副比率を算出するためのパラメータである信頼度との関連を格納する。信頼度設定情報１３１は、クラスタステータス９０１及び適用する信頼度９０２を含む。信頼度設定情報１３１は、管理者１５１によって入力された入力パラメータ１５２に基づいて、適用する信頼度９０２の値が設定される。
【０１２８】
クラスタステータス９０１は、クラスタステータス情報１２９のステータス７０２に設定される値を格納する。適用する信頼度９０２は、クラスタステータス９０１に対する信頼度である。前述のように、適用する信頼度９０２に基づいて、正副比率制御処理において正副比率が設定される。
【０１２９】
図１０は、本発明の第１の実施の形態の正副比率管理部１２４に格納される最新イベント情報１３２の一例を示す図である。
【０１３０】
最新イベント情報１３２には、正副比率管理部１２４によって受信された最新のイベント通知２０３に関する情報が格納される。最新イベント情報１３２には、計算機ＩＤ１００１、クラスタＩＤ１００２、物理パス数１００３、イベント種別１００４、タイムスタンプ１００５、正副比率１００６及び変更フラグ１００７を含む。最新イベント情報１３２は、正副比率管理部１２４における正副比率制御処理によって更新される。
【０１３１】
計算機ＩＤ１００１は、最新イベント情報１３２に対応するイベント通知２０３を送信した計算機の識別子である。クラスタＩＤ１００２は、計算機ＩＤ１００１によって識別される計算機が含まれるクラスタを識別する識別子である。
【０１３２】
物理パス数１００３は、クラスタＩＤ１００２によって識別されるクラスタで使用可能な物理パスの数である。図５に示したイベント通知２０３の物理パス数５０３に対応する。
【０１３３】
イベント種別１００４は、イベント通知２０３の送信元計算機によって検出されたイベントの種別である。図５に示したイベント通知２０３のイベント種別５０１に対応する。タイムスタンプ１００５は、イベント通知２０３の送信元計算機がイベント通知２０３を送信した時刻である。図５に示したイベント通知２０３のタイムスタンプ５０４に対応する。
【０１３４】
正副比率１００６は、クラスタＩＤ１００２によって識別されるクラスタに適用されている最新の正副比率である。変更フラグ１００７は、最新イベント情報１３２に対応するイベント通知２０３によって正副比率が変更されたか否かを示すフラグである。変更された場合には「真」、変更されなかった場合には「偽」が設定される。
【０１３５】
次に、図２において、送信元計算機１０１Ａから送信先計算機１０１Ｂに送信される送信パケット２０１又は冗長パケット２０２の構成を、図１１を参照しながら説明する。
【０１３６】
図１１は、本発明の第１の実施の形態の送信元計算機１０１Ａから送信先計算機１０１Ｂに送信されるパケットの構成の一例を示す図である。
【０１３７】
パケット１１０１は、送信パケット２０１又は冗長パケット２０２のいずれかに対応し、いずれの場合であっても図１１に示す構成となる。
【０１３８】
パケット１１０１は、通信ヘッダ１１０２、パケットＩＤ１１０３、最低パケット数１１０４、パケットタイプ１１０５、パケットグループＩＤ１１０６及びペイロード１１０７を含む。
【０１３９】
通信ヘッダ１１０２は、ＴＣＰ、ＵＤＰ、ＩＰなどの通信プロトコルに対応するヘッダである。複数のプロトコルを用いて通信する場合には、通信ヘッダ１１０２に複数のヘッダが含まれてもよい。
【０１４０】
パケットＩＤ１１０３は、パケット１１０１を一意に識別する識別子である。最低パケット数１１０４は、同一パケットグループに含まれる送信パケット２０１の数である。
【０１４１】
パケットタイプ１１０５は、送信パケット２０１であるか冗長パケット２０２であるかを示す情報である。例えば、送信パケットの場合には「０」、冗長パケットの場合には「１」を設定するようにしてもよい。パケットグループＩＤ１１０６は、パケットＩＤ１１０３によって識別されるパケットが属するパケットグループの識別子である。
【０１４２】
ペイロード１１０７は、送信されるデータ本体である。ペイロード１１０７の内容は、送信パケット２０１か冗長パケット２０２かによって相違する。送信パケット２０１の場合には、データベースに格納されたデータの一部又はデータベースから抽出された差分データが格納される。冗長パケット２０２の場合には、同一パケットグループに属する送信データを復元するために、誤り訂正技術などに基づいて生成されたデータが格納される。
【０１４３】
図１２は、本発明の第１の実施の形態の受信レジスタ４０２の構成の一例を示す図である。
【０１４４】
受信レジスタ４０２は、パケットグループＩＤ１２０１、総パケットカウント１２０２及び送信パケットカウント１２０３を含む。
【０１４５】
パケットグループＩＤ１２０１は、受信部１０２６Ｂによって受信された送信パケット２０１が属するパケットグループＩＤである。総パケットカウント１２０２は、同じパケットグループＩＤ１２０１を有する送信パケット又は冗長パケットを受信した回数である。送信パケットカウント１２０３は、同じパケットグループＩＤ１２０１を有する送信パケットを受信した回数である。
【０１４６】
受信レジスタ４０２は、初期化時にはレコードが含まれていないが、受信データ検査部４０１のフィルタリング処理においてレコードが追加又は更新される。また、同じパケットグループＩＤ１２０１を有するパケットをすべて受信した場合には、対応するレコードは削除するようにしてもよい。
【０１４７】
図１３は、本発明の第１の実施の形態の管理者１５１による入力パラメータ１５２の一例を示す図である。
【０１４８】
入力パラメータ１５２は、計算機ステータス情報１２８、クラスタステータス情報１２９、パスステータス情報１３０、信頼度設定情報１３１又は最新イベント情報１３２のうち、１つ以上のテーブルに格納された値を変更するために、管理者１５１によって管理端末１５０から送信される。図１３に示す例は、信頼度設定情報１３１を設定するために入力された入力パラメータ１５２である。
【０１４９】
入力パラメータ１５２には、テーブル名１３０１、キー名１３０２及び入力値１３０３が含まれる。
【０１５０】
テーブル名１３０１は、入力パラメータ１５２によって変更される値が格納されるテーブルの名称である。キー名１３０２は、入力パラメータ１５２によって変更される値を格納する項目名（キー）の名称である。入力値１３０３は、テーブル名１３０１及びキー名１３０２によって特定されるフィールドに設定される値を格納する。
【０１５１】
最後に、本発明の第１の実施の形態を実現するために実行される処理について、図１から図４に記載された各構成に対応させながら説明する。以下、正副比率を設定又は変更する正副比率制御処理、及びデータ受信時のフィルタリング処理について説明する。
【０１５２】
正副比率制御処理は、計算機の状態が変更されたタイミングで実行される。具体的には、図１４に示すフローチャートに基づいて、送信元計算機１０１Ａ又は送信先計算機１０１Ｂの状態変更が発生した場合に実行される。このとき、送信元計算機１０１Ａ又は送信先計算機１０１Ｂは、正副比率管理部１２４にイベント通知２０３を送信する。
【０１５３】
正副比率管理部１２４は、イベント通知２０３を受信すると、正副比率制御処理を実行する。正副比率制御処理では、通知されたイベントに基づいて正副比率を算出し、クラスタを構成する各計算機に算出された正副比率を送信する。算出された正副比率を受信した計算機は、受信した正副比率を適用し、パスの構成を変更する。
【０１５４】
フィルタリング処理は、図１９に示すフローチャートに基づいて実行され、送信先計算機１０１Ｂにおいて計算機の状態に依存せずに、パケットを受信するたびに実行される。フィルタリング処理では、送信パケットに格納されたデータをデータベースに格納したり、冗長パケットに格納されたデータに基づいて送信パケットを復元したりする。
【０１５５】
正副比率制御処理及びフィルタリング処理によって、スループット向上とタイムアウト及び再送発生量削減とを両立することが可能となる。
【０１５６】
以下、図１４から図１９に示すフローチャートを参照しながら正副比率制御処理及びフィルタリング処理について説明する。
【０１５７】
まず、計算機の状態の変更に対する正副比率制御処理について、図１４から図１８を参照しながら説明する。
【０１５８】
図１４は、本発明の第１の実施の形態の計算機システムにおける計算機状態変更時の正副比率制御処理の手順を示すフローチャートである。
【０１５９】
以下、計算機状態変更が発生した計算機１０１及び計算機１０１に接続された正副比率管理部１２４で実行される処理について説明する。なお、計算機１０１は、図１に示した送信元計算機１０１Ａ又は送信先計算機１０１Ｂのいずれかである。また、計算機システムに３台以上の計算機が含まれる場合であっても、状態変更が発生した計算機において、計算機１０１と同じ処理が実行される。
【０１６０】
まず、計算機１０１では、「計算機障害発生」、「障害復旧処理の終了」又は「パス障害特定」の３つの状態変更のいずれかが検知される（ステップ１４００）。計算機障害とは、例えば、計算機１０１で処理中のプロセスに発生した障害、ファイル障害、計算機を構成するハードウェアの障害などである。なお、計算機を構成するハードウェアの障害の場合は、障害箇所の交換、計算機の再起動又はプログラムの再実行などによって復旧後に検知される。また、パス障害とは、計算機１０１に接続されるパスのハードウェア又はソフトウェアの障害である。
【０１６１】
次に、計算機１０１のプロセッサは、計算機状態監視部２２３Ａによって、計算機１０１に記録されたログを監視し、前述した３つのイベントのいずれかを検出する（ステップ１４０１）。計算機のログとしては、具体的には、プロセスのジョブ実行時間、パスの送受信結果及びシステムコールの結果を利用する。さらに、検出されたイベントの種別を判定し、当該イベントの発生時刻（タイムスタンプ）とともにイベント送信部２２４Ａに通知する。
【０１６２】
計算機１０１のプロセッサは、イベント送信部２２４Ａによって、イベント種別及びタイムスタンプを含むイベント通知２０３を生成し、正副比率管理部１２４に送信する（ステップ１４０２）。
【０１６３】
正副比率管理部１２４のプロセッサ１４３は、計算機１０１から送信されたイベント通知２０３を受信すると、イベント受信部１２７によって、イベント受信処理を実行する（ステップ１４０３）。なお、イベント受信処理の詳細については、図１５にて後述する。
【０１６４】
正副比率管理部１２４のプロセッサ１４３は、受信したイベント通知２０３に基づいて、正副比率算出部１２５によって正副比率算出処理を実行する（ステップ１４０４）。なお、正副比率算出処理の詳細については、図１６にて説明する。
【０１６５】
さらに、正副比率管理部１２４のプロセッサ１４３は、正副比率送信部１２６によって、算出された正副比率を送信する正副比率送信処理を実行する（ステップ１４０５）。正副比率送信処理によって、算出された正副比率が計算機１０１に送信される。なお、正副比率送信処理の詳細については、図１７にて説明する。
【０１６６】
計算機１０１のプロセッサは、正副比率管理部１２４から算出された正副比率を受信する（ステップ１４０６）。さらに、受信した正副比率に基づいて、パスの構成を変更する正副比率変更処理を実行する（ステップ１４０７）。
【０１６７】
正副比率変更処理が完了すると、本処理は終了し、計算機１０１の変更された状態に基づいて算出された正副比率にしたがって、計算機１０１が含まれるクラスタのパス構成が更新される。
【０１６８】
図１５は、本発明の第１の実施の形態のイベント受信部１２７におけるイベント受信処理の手順を示すフローチャートである。
【０１６９】
イベント受信処理は、正副比率管理部１２４のプロセッサ１４３がイベント受信部１２７を常駐又は周期的に処理することによって実行される。
【０１７０】
正副比率管理部１２４のプロセッサ１４３は、イベント通知２０３を受信するまで待機する（ステップ１５０１）。
【０１７１】
正副比率管理部１２４のプロセッサ１４３は、イベント通知２０３を受信すると、クラスタステータス情報１２９を取得し、受信したイベント通知２０３のタイムススタンプが直前に受信したイベント通知２０３のタイムスタンプよりも新しいか否かを判定する（ステップ１５０２）。受信したイベント通知２０３のタイムススタンプが直前に受信したイベント通知２０３のタイムスタンプよりも新しくない場合には（ステップ１５０２の結果が「ｎｏ」）、本処理を終了し、再びステップ１５０１の処理が実行される。
【０１７２】
正副比率管理部１２４のプロセッサ１４３は、受信したイベント通知２０３のタイムススタンプが直前に受信したイベント通知２０３のタイムスタンプよりも新しい場合には（ステップ１５０２の結果が「ｙｅｓ」）、最新イベント情報１３２に値を設定する（ステップ１５０３）。具体的には、受信したイベント通知２０３の送信元の計算機ＩＤ５０２、イベント種別５０１、物理パス数５０３及びタイムスタンプ５０４を最新イベント情報１３２に格納する。
【０１７３】
図１６は、本発明の第１の実施の形態の正副比率算出部１２５における正副比率算出処理の手順を示すフローチャートである。
【０１７４】
正副比率算出処理は、イベント受信部１２７からの通知を受け付けた場合に、正副比率管理部１２４のプロセッサ１４３が正副比率算出部１２５を処理することによって実行される。
【０１７５】
正副比率管理部１２４のプロセッサ１４３は、最新イベント情報１３２からイベント種別１００４及び物理パス数１００３（＝Ｍ）を取得する（ステップ１６０１）。
【０１７６】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧終了」であるか否かを判定する（ステップ１６０２）。
【０１７７】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧終了」でない場合には（ステップ１６０２の結果が「ｎｏ」）、取得されたイベント種別が「計算機障害復旧開始」であるか否かを判定する（ステップ１６０３）。取得されたイベント種別が「計算機障害復旧開始」でない場合には（ステップ１６０３の結果が「ｎｏ」）、正副比率を更新する必要はないため、本処理を終了する。
【０１７８】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧開始」である場合には（ステップ１６０３の結果が「ｙｅｓ」）、該当するクラスタに対応するクラスタステータス情報１２９のステータス７０２の値を「計算機障害復旧中」に更新する。さらに、信頼度設定情報１３１からステータスが「計算機障害復旧中」のクラスタステータス９０１に対応する、適用する信頼度９０２の値を信頼度Ｒとして取得する（ステップ１６０４）。
【０１７９】
正副比率管理部１２４のプロセッサ１４３は、取得された物理パス数Ｍ及び信頼度Ｒに基づいて、正副比率を決定し、最新イベント情報１３２の変更フラグ１００７を「真」に更新する（ステップ１６０５）。具体的には、正副比率を「Ｍ−Ｒ：Ｒ」とし、クラスタステータス情報１２９の対応するレコードの正副比率７０４を更新し、正副比率算出処理を終了する。なお、論理パスが３本以上ある場合には、論理パス数をＮとし、正副比率７０４を「｛Ｍ−（Ｎ−１）×Ｒ｝：Ｒ」に更新する。
【０１８０】
正副比率「Ｍ−Ｒ：Ｒ」は、前述のように、正系パスに物理パスＭ−Ｒ本、副系パスに物理パスＲ本を割り当てるようにリンクアグリゲーションを適用することを意味している。具体的に説明すると、物理パス数が４本（Ｍ＝４）、信頼度が１（Ｒ＝１）である場合、正副比率は「３：１」となる。信頼度Ｒ＝１は、１本のパス障害発生までのタイムアウト及び再送発生量削減を達成することが可能な信頼度である。正副比率「３：１」は、物理パス数４本の条件のもとで、１本のパス障害に対するタイムアウト及び再送発生量削減を補償し、かつ、正系パスのスループットを副系パスより多く割り当てる正副比率となる。
【０１８１】
一方、正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧終了」である場合には（ステップ１６０２の結果が「ｙｅｓ」）、クラスタステータス情報１２９の対応するレコードのステータス７０２の値を「正常」に更新する（ステップ１６０６）。
【０１８２】
さらに、正副比率管理部１２４のプロセッサ１４３は、正副比率７０４を「Ｍ／２：Ｍ／２」に更新し、最新イベント情報１３２の変更フラグ１００７を「真」に更新する（ステップ１６０７）。論理パスが３本以上ある場合には、論理パス数をＮとすると、正副比率７０４を「Ｍ／Ｎ：Ｍ／Ｎ」に更新する。
【０１８３】
具体的に説明すると、物理パス数が４本（Ｍ＝４）で、論理パス数が２の場合には、正副比率は「２：２」に更新される。正副比率を「２：２」に設定することは、前述したように、複数の物理パスで計算機間が接続されているシステムにおいて、二重送受信及びリングアグリゲーションを適用した場合に相当する。
【０１８４】
図１６に示した正副比率算出処理によって、クラスタのステータスが「正常」であれば多重送受信に相当する正副比率が算出される。また、クラスタのステータスが「正常」以外の場合には、管理者１５１が入力パラメータ１５２によって設定された信頼度設定情報１３１に基づいて、計算機障害発生、障害パス特定、リソース使用量閾値超過、管理者によるサービス変更等の計算機状態に合わせて、信頼度Ｒと物理パス数Ｍに依存する正副比率が算出される。
【０１８５】
図１７は、本発明の第１の実施の形態の正副比率送信部１２６における正副比率送信処理の手順を示すフローチャートである。
【０１８６】
正副比率送信処理は、正副比率算出部１２５による正副比率の算出が完了した後、正副比率管理部１２４のプロセッサ１４３が正副比率送信部１２６を処理することによって実行される。
【０１８７】
正副比率管理部１２４のプロセッサ１４３は、最新イベント情報１３２から計算機１０１が属するクラスタに対応するレコードの変更フラグ１００７の値を取得し、取得された値が「真」であるか否かを判定する（ステップ１７０１）。変更フラグ１００７の値が「真」でない場合、すなわち、「偽」である場合には（ステップ１７０１の結果が「ｎｏ」）、正副比率を変更する必要がないため、正副比率送信処理を終了する。
【０１８８】
正副比率管理部１２４のプロセッサ１４３は、計算機ステータス情報１２８から、計算機１０１が属するクラスタに含まれ、かつ、正副比率が変更されていない計算機を検索する（ステップ１７０２）。ここで検索された計算機は、正副比率算出部１２５によって算出された正副比率を送信する宛先となる。
【０１８９】
正副比率管理部１２４のプロセッサ１４３は、ステップ１７０２の処理で検索された計算機が存在するか否かを判定する（ステップ１７０３）。存在しない場合には(ステップ１７０３の結果が「ｎｏ」）、正副比率送信処理を終了する。
【０１９０】
正副比率管理部１２４のプロセッサ１４３は、ステップ１７０２の処理で検索された計算機が存在する場合には（ステップ１７０３の結果が「ｙｅｓ」）、最新イベント情報１３２から取得したタイムスタンプ１００５及び正副比率１００６を、ステップ１７０２の処理で検索された宛先となる計算機に送信する（ステップ１７０４）。そして、正副比率の変更が必要なすべての計算機に正副比率の変更を通知するために、ステップ１７０２の処理をさらに実行する。なお、ステップ１７０４の処理において、正副比率の変更の通知がすべての変更対象の計算機に同時に送信されるように、マルチキャストを用いてもよい。
【０１９１】
図１８は、本発明の第１の実施の形態の計算機１０１における正副比率変更処理の手順を示すフローチャートである。
【０１９２】
なお、図１８に示す正副比率変更処理について、説明を容易にするため、計算機１０１を送信元計算機１０１Ａとした場合について説明する。正副比率変更処理は、正副比率送信部１２６から正副比率を送信元計算機１０１Ａが受信した後、送信元計算機１０１Ａのプロセッサ１０３Ａが計算機制御部１０２２Ａを処理することによって実行される。
【０１９３】
正副比率変更処理では、送信パケットと冗長パケットを同時に送信し、パス障害などによる送信パケット損失発生時に冗長パケットから送信パケットを復元できるように正副比率を適用する。こうすることによって、損失した送信パケットを待機する送信先計算機におけるタイムアウト処理と、損失した送信パケットを再送するための再送処理の実行を回避することができる。また、同時に生成されるデータ量が論理パスのスループットに対して過大となることによって送信が失敗することを防止する。
【０１９４】
送信元計算機１０１Ａのプロセッサ１０３Ａは、まず、正副比率管理部１２４の正副比率送信部１２６によって送信された正副比率を正副比率受信部２２５Ａによって受信する（ステップ１８０１）。さらに、受信した正副比率を正副比率変更部２２６Ａに送信し、受信した正副比率が正副比率情報２２１Ａに格納された値より増加しているか否かを判定する（ステップ１８０２）。
【０１９５】
送信元計算機１０１Ａのプロセッサ１０３Ａは、受信した正副比率が正副比率情報２２１Ａに格納された値より増加している場合には（ステップ１８０２の結果が「ｙｅｓ」）、正副比率変更部２２６Ａによって、送信パケット生成部１０２３Ａ及び冗長パケット生成部２２２Ａに正副比率の変更を通知する（ステップ１８０３）。
【０１９６】
ここで、受信した正副比率について、直前の正副比率よりも正系の比重が増加しているため、冗長パケットを少なくする。具体的に説明すると、計算機間の物理パスが４本であり、かつ、正副比率が２：２から３：１に変更された場合、送信パケット生成部１０２３Ａによって３つのデータごとに１つのパケットグループＩＤを割り当てるようにする。一方、冗長パケット生成部２２２Ａでは、送信パケット生成部１０２３Ａで生成された３つのデータに対し、同じパケットグループＩＤを付与した１つの冗長パケットを生成する。ただし、この段階では、正系パスの帯域は変更されていないため、一時的に冗長パケットの生成量が減少し、副系パスの帯域の使用率が小さくなる。また、正系パスにおける送信パケット２０１のスループットは変化しない。
【０１９７】
送信元計算機１０１Ａのプロセッサ１０３Ａは、正副比率変更部２２６Ａによって、受信した正副比率に基づいて、ＬＡ制御部１０２４Ａの副系パスの帯域を縮小する（ステップ１８０４）。例えば、計算機間の物理パスが６本であり、正副比率情報２２１Ａに設定された値が３：３、かつ、受信した正副比率が４：２である場合には、副系パスの帯域を物理パス３本から２本に変更する。
【０１９８】
送信元計算機１０１Ａのプロセッサ１０３Ａは、正副比率変更部２２６Ａによって、受信した正副比率に基づいてＬＡ制御部１０２４Ａの正系パスの帯域を拡大する（ステップ１８０５）。例えば、計算機間の物理パスが６本であり、正副比率情報２２１Ａに設定された値が３：３、かつ、受信した正副比率が４：２である場合には、正系パスの帯域を物理パス３本から４本に変更する。このとき、事前にステップ１８０４の処理で副系パスの帯域が縮小されているため、未割当の物理パスを割り当てればよい。
【０１９９】
送信元計算機１０１Ａのプロセッサ１０３Ａは、受信した正副比率を正副比率情報２２１Ａに記録する（ステップ１８０６）。
【０２００】
送信元計算機１０１Ａのプロセッサ１０３Ａは、受信した正副比率が正副比率情報２２１Ａに格納された値より増加していない場合には（ステップ１８０２の結果が「ｎｏ」）、ＬＡ制御部１０２４Ａの正系パスの帯域を縮小する（ステップ１８０７）。帯域を縮小する方法については、ステップ１８０４の処理と同様である。
【０２０１】
送信元計算機１０１Ａのプロセッサ１０３Ａは、ＬＡ制御部１０２４Ａの副系パスの帯域を拡大する（ステップ１８０８）。帯域を拡大する方法については、ステップ１８０５の処理と同様である。
【０２０２】
送信元計算機１０１Ａのプロセッサ１０３Ａは、送信パケット生成部１０２３Ａ及び冗長パケット生成部２２２Ａに正副比率の変更を通知する（ステップ１８０９）。生成比率を変更する手順については、ステップ１８０３の処理と同様である。
【０２０３】
続いて、データ受信に関するフィルタリング処理について、図１９を参照しながら説明する。
【０２０４】
図１９は、本発明の第１の実施の形態の受信データ検査部４０１によるフィルタリング処理の手順を示すフローチャートである。
【０２０５】
フィルタリング処理は、パケットの受信時に毎回実行される。また、フィルタリング処理は、送信先計算機１０１Ｂのプロセッサ１０３Ｂが受信部１０２６Ｂの受信データ検査部４０１を処理することによって実行される。
【０２０６】
フィルタリング処理の概要は、受信データを送信パケットか冗長パケットか判定し、送信パケットであればデータベースに渡し、冗長パケットであれば格納又は削除する。また、冗長パケットと送信パケットの組み合わせによって、受信していない送信パケットを復元する。したがって、送信パケットが一部損失しても、冗長パケットによって送信パケットを復元することができる。フィルタリング処理を実行することによって送信パケットの再送が不要になるため、損失した送信パケットを待機する送信先計算機におけるタイムアウト処理及び送信元計算機における再送処理の実行を防ぐことが可能となる。
【０２０７】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、受信したパケットに含まれるパケットグループＩＤ１１０６、パケットタイプ１１０５及び最低パケット数１１０４を取得する（ステップ１９０１）。受信したパケットの構成は、図１１に示したとおりである。
【０２０８】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、受信レジスタ４０２を参照し、受信したパケットのパケットグループＩＤに対応する総パケットカウント１２０２が、ステップ１９０１の処理で取得された最低パケット数１１０４と等しいか否かを判定する（ステップ１９０２）。受信レジスタ４０２の構成は、図１２に示したとおりである。
【０２０９】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、総パケットカウント１２０２が最低パケット数１１０４と等しい場合には（ステップ１９０２の結果が「ｙｅｓ」）、受信データをすべてデータベース１０２１Ｂに格納したため、本処理を終了する。
【０２１０】
最低パケット数は、前述したように、パケットグループに属する送信パケットの総数であるが、送信元計算機１０１Ａからは送信パケット及び冗長パケットが送信されるため、冗長パケットの数の分だけ多いパケットが送信される。また、送信パケットが欠落した場合であっても、欠落した数の冗長パケットを受信することによって、欠落した送信パケットを復元することができる。
【０２１１】
本発明の第１の実施の形態では、送信パケットか冗長パケットかを問わず受信した総パケット数（総パケットカウント）が最低パケット数に到達した時点でデータベースへのデータの格納を完了させる。すなわち、送信パケットの代わりに冗長パケットを受信した場合には、受信した冗長パケットを利用して受信していない送信パケットを復元し、データベースにデータを格納する。したがって、受信したパケットが属するパケットグループの最低パケット数に総パケットカウントが到達した場合には、その後に受信したパケットは破棄される。
【０２１２】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、総パケットカウント１２０２が最低パケット数１１０４に達していない場合には（ステップ１９０２の結果が「ｎｏ」）、総パケットカウント１２０２をインクリメントする（ステップ１９０３）。
【０２１３】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、受信したパケットのパケットタイプ１１０５が送信パケットであるか否かを判定する（ステップ１９０４）。
【０２１４】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、パケットタイプ１１０５が送信パケットの場合には（ステップ１９０４の結果が「ｙｅｓ」）、受信レジスタ４０２の対応する送信パケットカウント１２０３をインクリメントする（ステップ１９０５）。さらに、受信したパケットをデータベース１０２１Ｂに送信する（ステップ１９０６）。
【０２１５】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、パケットタイプ１１０５が送信パケットでない場合（ステップ１９０４の結果が「ｎｏ」）、又はステップ１９０６の処理が終了すると、総パケットカウント１２０２が最低パケット数１１０４と等しいか否かを判定する（ステップ１９０７）。
【０２１６】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、総パケットカウント１２０２が最低パケット数１１０４に達していない場合には（ステップ１９０７の結果が「ｎｏ」）、データ格納部４０３に受信したパケットを格納し（ステップ１９１０）、フィルタリング処理を終了する。
【０２１７】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、送信パケットカウント１２０３が最低パケット数１１０４と等しい場合には（ステップ１９０８の結果が「ｙｅｓ」）、すべての送信パケットが受信されたため、データ格納部４０３に格納された当該パケットグループに属するパケットを削除し（ステップ１９０９）、フィルタリング処理を終了する。
【０２１８】
送信先計算機１０１Ｂのプロセッサ１０３Ｂは、送信パケットカウント１２０３が最低パケット数１１０４と等しくない場合には（ステップ１９０８の結果が「ｎｏ」）、送信パケットをすべて受信しておらず、代わりに冗長パケットを受信しているため、送信パケットを復元する。
【０２１９】
具体的には、送信先計算機１０１Ｂのプロセッサ１０３Ｂは、まず、データ格納部４０３に格納された当該パケットグループに属するすべてのパケットを読み出す（ステップ１９１１）。次に、読み出されたパケットの冗長パケットと同数の送信パケットを復元する（ステップ１９１２）。なお、パケットの復元方法については、冗長パケットの生成方法に依存し、冗長パケットの生成方法は誤り訂正手法などの一般的な技術であるため説明を割愛する。
【０２２０】
さらに、送信先計算機１０１Ｂのプロセッサ１０３Ｂは、復元された送信パケットをデータベース１０２１Ｂに送信する（ステップ１９１３）。最後に、データ格納部４０３に格納された当該パケットグループに属するパケットを削除し（ステップ１９０９）、フィルタリング処理を終了する。
【０２２１】
以上説明した本発明の第１の実施の形態では、正副比率管理部１２４は計算機１０１Ａ又は計算機１０１Ｂから受信したイベント通知２０３に基づいて正副比率を算出し、計算機１０１Ａ及び計算機１０１Ｂは正副比率を受信する。
【０２２２】
送信元計算機１０１Ａは、受信した正副比率に基づいて正副比率変更処理を実行し、送信パケット生成部１０２３Ａ、冗長パケット生成部２２２Ａ及びＬＡ制御部１０２４Ａのデータ送信に関する振る舞いを変更する。これによって、タイムアウト及び再送発生量を削減し、かつ、スループットを向上させる正副比率を適用し、データを送信することが可能となる。
【０２２３】
具体的には、４本の物理パスを用いて二重送受信を行う場合には、従来技術では正副比率を２：２とし、正系パスに２本の物理パス、副系パスに２本の物理パスを割り当て、二重送受信を行っていた。一方、本発明の第１の実施の形態を適用することによって、サービスレベルの変更点である、計算機の障害発生時に、正副比率を３：１に変更し、従来の二重送受信時よりもスループットを５０％向上させることができる。さらに、副系パスで冗長パケットを送受信することによって、正系パスに含まれるパス障害が発生して送信パケットが損失する場合であっても、冗長パケットに基づいて送信パケットを復元し、タイムアウト及び再送発生量を削減することができる。
【０２２４】
また、送信先計算機１０１Ｂでは、フィルタリング処理を実行し、正副比率変更処理後に送信された送信パケットをデータベースに送信する。さらに、送信パケットが損失した場合であっても、冗長パケット及び受信済みの送信パケットに基づいて、損失した送信パケットを復元し、データベースに送信することができる。これらの一連の処理によって、送信元計算機１０１Ａから送信先計算機１０１Ｂへのデータコピーは、タイムアウト及びパケットの再送の発生を削減し、さらに、正系パスに割り当てる物理パス数を多く割り当てる正副比率を適用することによってスループットを向上させることができる。
【０２２５】
本発明の第１の実施の形態によれば、計算機システムにリングアグリゲーション及び多重送受信を適用し、さらに、計算機の状態変更のイベントを契機にして正副比率を変更することによって、計算機の状態に応じたサービスレベルを提供することができる。具体的には、通常時には無遅延でデータ損失を補償し、計算機障害発生時にはタイムアウト及び再送発生量削減かつスループット向上を両立させることができる。また、通常時でも、計算機に送信データが蓄積した場合、「リソース使用量閾値超過」のイベントに基づき、一時的にスループットを向上して送信データの蓄積を解消し、インメモリデータベースのデータベース永続化処理の遅延を削減することができる。また、インメモリデータベースの更新頻度の増大等により、将来送信データが蓄積することが予見される場合、「管理者によるサービスレベル変更」のイベントに基づき、発生前にスループットを向上して、インメモリデータベースのデータベース永続化処理の遅延発生を削減することができる。
【０２２６】
また、本発明の第１の実施の形態では、多重送受信の有効化又は無効化を切り替える必要がないため、送信パケットが膨大な場合であっても、送信元計算機における多重送受信の有効化又は無効化の選択によって負荷が増大することがないため、専用ハードウェアなどを使用せずに計算機の状態に応じたサービスレベルを提供することができる。
【０２２７】
（第２の実施の形態）
本発明の第１の実施の形態では、計算機障害復旧開始及び計算機障害復旧終了の各イベントを契機として正副比率を変更していたが、本発明の第２の実施の形態では、さらに、物理パスに障害が発生した場合に正副比率を変更する。具体的には、障害パス特定のイベント検出時に正副比率を変更する。
【０２２８】
なお、第２の実施の形態において、第１の実施の形態と共通する内容については適宜説明を省略する。
【０２２９】
図２０は、本発明の第２の実施の形態の正副比率算出部１２５における正副比率算出処理の手順を示すフローチャートである。
【０２３０】
正副比率管理部１２４のプロセッサ１４３は、クラスタステータス情報１２９からステータス７０２、最新イベント情報１３２からイベント種別１００４及び物理パス数１００３（＝Ｍ）を取得する（ステップ２００１）。
【０２３１】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧終了」であるか否かを判定する（ステップ２００２）。
【０２３２】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧終了」でない場合には（ステップ２００２の結果が「ｎｏ」）、取得されたイベント種別が「計算機障害復旧開始」であるか否かを判定する（ステップ２００３）。
【０２３３】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧開始」でない場合には（ステップ２００３の結果が「ｎｏ」）、取得されたイベント種別が「障害パス特定」、かつ、ステップ２００１の処理で取得された物理パス数Ｍの値とクラスタステータス情報１２９の物理パス数７０５の値とが異なるか否かを判定する（ステップ２００４Ａ）。
【０２３４】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「障害パス特定」、又は、ステップ２００１の処理で取得された物理パス数Ｍの値とクラスタステータス情報１２９の物理パス数７０５の値とが一致する場合には（ステップ２００４Ａの結果が「ｎｏ」）、正副比率を変更する必要がないため、正副比率算出処理を終了する。
【０２３５】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「障害パス特定」、かつ、ステップ２００１の処理で取得された物理パス数Ｍの値とクラスタステータス情報１２９の物理パス数７０５の値とが異なる場合には（ステップ２００４Ａの結果が「ｙｅｓ」）、クラスタステータス情報１２９の物理パス数７０５に物理パス数Ｍの値を設定する（ステップ２００４Ｂ）。
【０２３６】
さらに、正副比率管理部１２４のプロセッサ１４３は、クラスタステータス情報１２９のステータス７０２の値が「計算機障害復旧中」であるか否かを判定する（ステップ２００５Ａ）。クラスタステータス情報１２９のステータス７０２の値が「計算機障害復旧中」である場合には（ステップ２００５Ａの結果が「ｙｅｓ」）、信頼度設定情報１３１から適用する信頼度９０２（＝Ｒ）を取得し（ステップ２００５Ｂ）、正副比率を「Ｍ−Ｒ：Ｒ」に設定する（ステップ２００７）。その後、正副比率算出処理を終了する。
【０２３７】
一方、クラスタステータス情報１２９のステータス７０２の値が「計算機障害復旧中」でない場合には（ステップ２００５Ａの結果が「ｎｏ」）、正副比率を「Ｍ／２：Ｍ／２」に設定し（ステップ２００９）、正副比率算出処理を終了する
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧開始」の場合には（ステップ２００３の結果が「ｙｅｓ」）、ステップ２００６及びステップ２００７の処理を実行する。なお、ステップ２００６及びステップ２００７の処理は、図１６に示したステップ１６０４及びステップ１６０５の処理と同じである。
【０２３８】
正副比率管理部１２４のプロセッサ１４３は、取得されたイベント種別が「計算機障害復旧終了」の場合には（ステップ２００２の結果が「ｙｅｓ」）、ステップ２００８及びステップ２００９の処理を実行する。なお、ステップ２００８及びステップ２００９の処理は、図１６に示したステップ１６０６及びステップ１６０７の処理と同じである。
【０２３９】
本発明の第２の実施の形態によれば、障害パスを特定するイベントを取得したタイミングで、障害の発生によって減少した物理パスに正副比率を適用して再割り当てを行うことによって、パス障害発生後も計算機の状態に応じたサービスレベルを提供することができる。具体的には、４本の物理パスを、正副比率３：１として送受信している間に、障害パス特定イベントを取得すると、さらなるパス障害への耐性を確保するために、障害パス１本を除いた３本において、２本を正系パス、１本を副系パスに割り当てるよう正副比率を変更する。
【０２４０】
（第３の実施の形態）
本発明の第１の実施の形態では、受信したパケットが送信パケットであるか冗長パケットであるかにかかわらず、受信部において、受信データ検査部が共通に処理していたが、本発明の第３の実施の形態では、論理パスごとに受信データ検査部を設ける。
【０２４１】
このように構成することによって、フィルタリング処理に割り当てられるリソースを分割することによって負荷を分散させ、排他処理による負荷を軽減させることができる。さらに、データ格納領域を分割することによって、バッファオーバーフローが発生する可能性を低減させることができる。
【０２４２】
なお、第３の実施の形態において、第１の実施の形態と共通する内容については適宜説明を省略する。
【０２４３】
本発明の第３の実施の形態における送信先計算機１０１Ｂの受信部１０２６Ｂの構成について、図２１を参照しながら説明する。
【０２４４】
図２１は、本発明の第３の実施の形態の受信部１０２６Ｂの構成を示すブロック図である。
【０２４５】
本発明の第３の実施の形態の受信部１０２６Ｂは、受信データ検査部２１０１Ａ、受信データ検査部２１０１Ｂ、受信レジスタ２１０２、送信パケット格納部２１０３及び冗長パケット格納部２１０４を含む。
【０２４６】
また、ＬＡ制御部１０２４Ｂは、第１の実施の形態では、正系又は副系を問わず、パケットを受信していたが、第３の実施の形態では、正系パス２１１１Ａ又は副系パス２１１１Ｂに分けてパケットを受信する。
【０２４７】
受信データ検査部２１０１Ａは、正系パス２１１１Ａから受信した送信パケットに対し、図１９に示したフィルタリング処理を実行する。このとき、受信した送信パケットは、送信パケット格納部２１０３に格納される。
【０２４８】
同様に、受信データ検査部２１０１Ｂは、副系パス２１１１Ｂから受信した冗長パケットに対して図１９に示したフィルタリング処理を実行する。このとき、受信した冗長パケットは、冗長パケット格納部２１０４に格納される。
【０２４９】
ここで、受信データ検査部２１０１Ａ及び受信データ検査部２１０１Ｂは、正副比率管理部１２４から送信される正副比率２０４を受信し、必要に応じて送信パケット格納部２１０３と冗長パケット格納部２１０４の領域サイズを変更することができる。
【０２５０】
領域サイズを変更する第１の方法として、正副比率に一致するサイズを割り当てる方法がある。具体的には、正副比率が「３：１」である場合、送信パケット格納部２１０３と冗長パケット格納部２１０４との領域サイズの比率が３：１になるようにサイズを変更する。このようにサイズを変更することによって、冗長パケットの格納に必要なサイズだけ冗長パケット格納部２１０４に割り当てることが可能となり、領域サイズの総量を効率よく利用することができる。
【０２５１】
領域サイズを変更する第２の方法として、正副比率の正系パスの比率よりも大きくなるように送信パケット格納部２１０３のサイズに割り当てる方法がある。具体的には、正副比率が「３：１」である場合、例えば、送信パケット格納部２１０３と冗長パケット格納部２１０４との領域サイズの比率が「５：１」となるように変更する。このように構成することによって、冗長パケットが損失しても、送信パケットと冗長パケットが同時にバッファオーバーフローによって損失しないように、送信パケットに優先的にデータ格納領域を割り当てることができる。
【０２５２】
本発明の第３の実施の形態によれば、送信先計算機におけるフィルタリング処理を負荷分散させることができる。また、送信パケット及び冗長パケットを格納するデータ格納部の比率を正副比率に連動させることによって、バッファオーバーフローの可能性を低減させることができる。
【図面の簡単な説明】
【０２５３】
【図１】本発明の第１の実施の形態の計算機システムの構成の一例を示すブロック図である。
【図２】本発明の第１の実施の形態の送信先計算機が障害復旧中の場合に送信元計算機の各構成と正副比率管理部の各構成との関連を説明する図である。
【図３】本発明の第１の実施の形態の送信先計算機が障害復旧中の場合に送信先計算機の各構成と正副比率管理部の各構成との関連を説明する図である。
【図４】本発明の第１の実施の形態の障害復旧中の計算機の受信部の内部の構成を説明する図である。
【図５】本発明の第１の実施の形態の送信元計算機及び送信先計算機から正副比率管理部に送信されるイベント通知の内容を示す図である。
【図６】本発明の第１の実施の形態の正副比率管理部に格納される計算機ステータス情報の一例を示す図ある。
【図７】本発明の第１の実施の形態の正副比率管理部に格納されるクラスタステータス情報の一例を示す図である。
【図８】本発明の第１の実施の形態の正副比率管理部に格納されるパスステータス情報の一例を示す図である。
【図９】本発明の第１の実施の形態の正副比率管理部に格納される信頼度設定情報の一例を示す図である。
【図１０】本発明の第１の実施の形態の正副比率管理部に格納される最新イベント情報の一例を示す図である。
【図１１】本発明の第１の実施の形態の送信元計算機から送信先計算機に送信されるパケットの構成の一例を示す図である。
【図１２】本発明の第１の実施の形態の受信レジスタの構成の一例を示す図である。
【図１３】本発明の第１の実施の形態の管理者による入力パラメータの一例を示す図である。
【図１４】本発明の第１の実施の形態の計算機システムにおける計算機状態変更時の正副比率制御処理の手順を示すフローチャートである。
【図１５】本発明の第１の実施の形態のイベント受信部におけるイベント受信処理の手順を示すフローチャートである。
【図１６】本発明の第１の実施の形態の正副比率算出部における正副比率算出処理の手順を示すフローチャートである。
【図１７】本発明の第１の実施の形態の正副比率送信部における正副比率送信処理の手順を示すフローチャートである。
【図１８】本発明の第１の実施の形態の正副比率変更処理の手順を示すフローチャートである。
【図１９】本発明の第１の実施の形態の受信データ検査部によるフィルタリング処理の手順を示すフローチャートである。
【図２０】本発明の第２の実施の形態の正副比率算出部における正副比率算出処理の手順を示すフローチャートである。
【図２１】本発明の第３の実施の形態の受信部の構成を示すブロック図である。
【符号の説明】
【０２５４】
１０１Ａ、１０１Ｂ    計算機
１０２Ａ、１０２Ｂ    主記憶
１０３Ａ、１０３Ｂ    プロセッサ
１０４Ａ〜１０４Ｈ    ＮＩＣ
１２４    正副比率管理部
１２５    正副比率算出部
１２６    正副比率送信部
１２７    イベント受信部
１２８    計算機ステータス情報
１２９    クラスタステータス情報
１３０    パスステータス情報
１３１    信頼度設定情報
１３２    最新イベント情報
１４０    クラスタ構成情報
１５０    管理端末
２１１Ａ    正系パス
２１１Ｂ    副系パス
２２１Ａ、２２１Ｂ    正副比率情報
２２２Ａ、２２２Ｂ    冗長パケット生成部
２２３Ａ、２２３Ｂ    計算機状態監視部
２２４Ａ、２２４Ｂ    イベント送信部
２２５Ａ、２２５Ｂ    正副比率受信部
２２６Ａ、２２６Ｂ    正副比率変更部
４０１、２１０１Ａ、２１０１Ｂ    受信データ検査部
４０２、２１０２    受信レジスタ
４０３    データ格納部
１０２１Ａ、１０２１Ｂ    データベース
１０２２Ａ、１０２２Ｂ    計算機制御部
１０２３Ａ、１０２３Ｂ    送信パケット生成部
１０２４Ａ、１０２４Ｂ    ＬＡ制御部
１０２５Ａ、１０２５Ｂ    送信部
１０２６Ａ、１０２６Ｂ    受信部
２１０３    送信パケット格納部
２１０４    冗長パケット格納部
【図１】
2010134515.tif 000003
【図２】
2010134515.tif 000004
【図３】
2010134515.tif 000005
【図４】
2010134515.tif 000006
【図５】
2010134515.tif 000007
【図６】
2010134515.tif 000008
【図７】
2010134515.tif 000009
【図８】
2010134515.tif 000010
【図９】
2010134515.tif 000011
【図１０】
2010134515.tif 000012
【図１１】
2010134515.tif 000013
【図１２】
2010134515.tif 000014
【図１３】
2010134515.tif 000015
【図１４】
2010134515.tif 000016
【図１５】
2010134515.tif 000017
【図１６】
2010134515.tif 000018
【図１７】
2010134515.tif 000019
【図１８】
2010134515.tif 000020
【図１９】
2010134515.tif 000021
【図２０】
2010134515.tif 000022
【図２１】
2010134515.tif 000023