以下、本発明の実施の形態を図面に基づいて説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態の計算機システムの構成の一例を示すブロック図である。
本発明の第1の実施の形態の計算機システムは、図1に示すように、計算機101A、計算機101B、計算機間の通信を制御する通信制御装置である正副比率管理部124及び管理端末150を含む。
計算機101A及び計算機101Bには、インメモリデータベースが稼働し、図示しないホスト計算機からの要求に応じてデータが入出力される。本発明の第1の実施の形態の計算機システムでは、図1に示すように、2台の計算機が含まれているが、3台以上の計算機が含まれるように構成してもよい。また、計算機101A及び計算機101Bはクラスタ構成となっている。
計算機101A及び計算機101Bは、複数の(物理)パスによって接続される。本発明の第1の実施の形態では、4本のパスで接続されている。また、計算機101Aと計算機101Bとは、ホットスタンバイの関係にある。具体的には、両方の計算機に同じデータが保持され、一方の計算機に障害が発生した場合には、他方の計算機によって業務が継続される。通常時及び計算機障害発生時の処理については、詳細を後述する。なお、計算機システムに3台以上の計算機が含まれる場合においても、各計算機は同様に接続され、ホットスタンバイの関係にある。
正副比率管理部124は、ネットワークを介して計算機101A及び計算機101Bに接続される。なお、計算機システムに3台以上の計算機が含まれている場合には、各計算機に接続される。
正副比率管理部124は、計算機101Aと計算機101Bとを接続するパスの構成を決定する。具体的には、正系に割り当てられたパスの本数と副系に割り当てられたパスの本数の比率(正副比率)を計算機の状態に基づいて算出する。なお、正副比率を本数の比率ではなく、スループットの比率としてもよい。算出された正副比率は、計算機101A及び計算機101Bに通知される。正副比率の算出方法の詳細については後述する。
正副比率管理部124は、図1に示すように、計算機101A及び計算機101Bの外部に配置されたハードウェアとして構成されているが、計算機101A及び計算機101Bのいずれかの内部に含まれる構成としてもよい。また、正副比率管理部124をハードウェアとしてではなく、当該機能を提供するプログラムとして実現し、いずれかの計算機の内部で実行されるようにしてもよい。
また、本発明の第1の実施の形態の計算機システムでは、図1に示すように、正副比率管理部124が1つ含まれているが、複数の正副比率管理部124が含まれるように構成してもよい。この場合には、正副比率管理部124のいずれか又は全部が計算機からのイベント通知に基づいて処理を実行する。
管理端末150は、正副比率管理部124に接続され、正副比率管理部124を管理する。具体的には、管理者151によるパラメータの入力を受け付け、入力パラメータ152として正副比率管理部124に送信する。
次に、本発明の第1の実施の形態の計算機システムを構成する各部の詳細について説明する。
計算機101Aは、主記憶102A、プロセッサ103A、ネットワークインターフェースカード(以下、「NIC」)104A〜104D、正副比率管理部124に接続されるNIC105A、ディスク記憶媒体121A及び磁気記憶媒体122Aを備える。
主記憶102Aは、プロセッサ103Aによって実行されるプログラム及びデータを記憶する。具体的には、データベース1021A、計算機制御部1022A、送信パケット生成部1023A、LA制御部1024A、送信部1025A及び受信部1026Aが記憶される。
主記憶102Aに記憶されたプログラム及びデータは、ディスク記憶媒体121A又は磁気記憶媒体122Aに格納されており、必要に応じてロードされる。また、常時主記憶102Aに記憶されている必要がないプログラム及びデータについては、所定のタイミングでロードされ、実行されるようにしてもよい。
データベース1021Aには、図示しないホスト計算機によって読み書きされるデータ及び当該データを管理するデータベース管理システムが含まれる。
計算機制御部1022Aは、計算機101A全体を制御する。計算機制御部1022Aは、主記憶102A上にロードされるプログラムであるが、同様の機能を提供する専用のハードウェアを用いてもよい。送信パケット生成部1023A、LA制御部1024A、送信部1025A及び受信部1026Aについても同様である。
送信パケット生成部1023Aは、計算機101Bに送信するパケットを生成する。LA制御部1024Aは、計算機101Bとの間の接続に適用されるリングアグリゲーションを制御する。送信部1025Aは、計算機101Bにパケットを送信する。受信部1026Aは、計算機101Bから送信されたパケットを受信する。なお、各構成の詳細な説明については後述する。
プロセッサ103Aは、主記憶102Aに記憶されたプログラムを実行することによって各種処理を実行する。
NIC104A〜104Dは、計算機間を接続し、それぞれ固有のアドレスが割り当てられている。本発明の第1の実施の形態では、計算機101BのNIC104E〜104Hにそれぞれ接続される。
ディスク記憶媒体121B及び磁気記憶媒体122Bは、主記憶102Aに記憶されるプログラム及びデータを格納する。
計算機101Bは、計算機101Aと同様に、主記憶102B、プロセッサ103B、NIC104E〜104H、NIC105B、ディスク記憶媒体121B及び磁気記憶媒体122Bを備える。
各構成の機能については、計算機101Aの対応する各構成と同様である。また、主記憶102Bには、計算機101Aと同様に、データベース1021B、計算機制御部1022B、送信パケット生成部1023B、LA制御部1024B、送信部1025B及び受信部1026Bが記憶される。主記憶102Bに記憶されたプログラム及びデータは、計算機101Aと同様である。
なお、計算機101Aを実行系、計算機101Bを待機系とすると、計算機101Aがホスト計算機からのアクセスを受け付ける。データベース1021Aのデータが更新された場合には、更新データを含む送信パケットが生成され、計算機101Bに送信される。計算機101Bは、更新データを含む送信パケットを受信すると、データベース1021Bに更新データを反映させることによって、データベース1021Aとデータベース1021Bとを同期させる。このとき、計算機システムに待機系の計算機が複数含まれている場合には、送信パケットをマルチキャストするようにしてもよい。
ここで、計算機101Aと計算機101Bとの接続について詳細を説明する。計算機101Aと計算機101Bとは、前述したように、ホットスタンバイの関係にある。
計算機システムに含まれる計算機に障害が発生すると、障害が発生した計算機に障害が発生していない計算機からデータベースを復旧させるためにデータが送信される。このとき、障害が発生した計算機を送信先計算機とする。また、送信先計算機とホットスタンバイの関係にある1台以上の計算機を送信元計算機とする。
例えば、計算機101Bに障害が発生した場合には、計算機101Bが送信先計算機、計算機101Aが送信元計算機となる。逆に、計算機101Aに障害が発生した場合には、計算機101Bが送信元計算機、計算機101Aが送信先計算機となる。計算機101A又は計算機101Bのいずれに障害が発生した場合でも、本発明による処理は同じとなるが、以降、計算機101Bに障害が発生した場合について説明する。
なお、本発明の第1の実施の形態における計算機で発生した障害は、プログラムの異常終了などの原因で発生した障害であって、プログラムの再実行又は計算機の再起動などによって、再び正常に稼働することが可能なものである。
正副比率管理部124は、管理者151によって管理端末150から入力された入力パラメータ152を受信し、格納する。正副比率管理部124は、主記憶142、プロセッサ143、NIC144及びNIC145を備える。
主記憶142は、プロセッサ143によって実行されるプログラム及びデータを記憶する。具体的には、正副比率算出部125、正副比率送信部126、イベント受信部127及びクラスタ構成情報140を記憶する。
正副比率算出部125は、後述するイベント受信部127によって受信した、計算機101A又は計算機101Bによって通知されたイベント情報に基づいて、正副比率を算出する。正副比率送信部126は、正副比率算出部125によって算出された正副比率を計算機101A及び計算機101Bに送信する。
イベント受信部127は、計算機101A又は計算機101Bによって通知されたイベント情報を受信する。なお、受信するイベント情報の詳細については、図5にて後述する。
クラスタ構成情報140は、管理者151によって入力された入力パラメータ152を格納するクラスタ構成情報140は、計算機ステータス情報128、クラスタステータス情報129、パスステータス情報130、信頼度設定情報131、及び最新イベント情報132を含む。
計算機ステータス情報128は、計算機システムに含まれる各計算機のステータスを格納する。計算機ステータス情報128の詳細については、図6にて後述する。
クラスタステータス情報129は、クラスタごとのステータスを含む情報を格納する。クラスタステータス情報129の詳細については、図7にて後述する。
パスステータス情報130は、各計算機を接続するパスの情報を格納する。具体的には、パスごとの接続ステータス、及び当該パスに接続される計算機の情報などが格納されている。パスステータス情報130の詳細については、図8にて後述する。
信頼度設定情報131は、クラスタのステータスごとに適用される信頼度が定義される。信頼度は、計算機間の正系パス及び副系パスの接続形態を決定するためのパラメータである。信頼度設定情報131の詳細については、図9にて後述する。
最新イベント情報132は、計算機101A又は計算機101Bで発生した最新のイベントを格納する。最新イベント情報132の詳細については、図10にて後述する。
NIC144は、計算機101A及びに計算機101Bに接続される。NIC145は、管理端末150に接続される。なお、NIC144及びNIC145は、共通であってもよい。
ここで、図1を参照しながら、本発明の第1の実施の形態における計算機間の接続について説明する。本発明の第1の実施の形態では、前述したように、計算機101Aと計算機101Bとは、4本の物理パスによって接続され、正系パスに割り当てられる物理パス数を1本から4本の間で変更することができる。
具体的に接続されたパスを示すと、図1に示すように、計算機101AのNIC104Aは、物理パスによって計算機101BのNIC104Eに接続されている。同様に、NIC104BとNIC104F、NIC104CとNIC104G、NIC104DとNIC104Hが、それぞれ物理パスによって接続されている。なお、本発明の第1の実施の形態を適用するためには、計算機間を接続する物理パスが2本以上であればよい。
さらに、複数の物理パスを利用した多重送受信及びリンクアグリゲーションについて説明する。
多重送受信では、前述したように、複数の物理パスが含まれている場合に、1本のパスを正系パス、残りのパスを副系パスとする。例えば、正系パスと副系パスを1本ずつ使用する二重送受信が最も簡単な構成となる。
二重送受信では、送信元計算機は正系パスと副系パスに全く同じデータを送信する。したがって、いずれかの系でパス障害又は輻輳を原因としてデータ損失が発生しても、送信先計算機では残りの系を経由して送信されたデータを正常に受信し、損失を補償することができる。なお、いずれの系についても同じ送信元計算機及び送信先計算機に接続されていることが前提である。
二重送受信では、送信先計算機において正系パス及び副系パスの両方でデータが受信されるため、使用するデータを選択する必要がある。選択方法としては、プロテクション方法と先着優先方法の2つが挙げられる。プロテクション方法では、正系パスから受信したデータを受信し、データとして使用し、副系パスから受信したデータを破棄する。先着優先方法では、正系パス又は副系パスのいずれか先に受信したデータを使用し、残りのデータを破棄する。
次に、リンクアグリゲーションとは、前述のように、複数の物理パスをまとめて一つの論理パスとして使用することによって、通信のスループットを向上させる技術である。具体的には、同じ通信性能を有する2本のパスをまとめた論理パスのスループットは、1本のパスからなる論理パスに対して2倍になる。さらに、まとめる本数を多くすることによって、論理パスのスループットを向上させることができる。
リンクアグリゲーションにおけるデータ送受信処理は、データ送信時の分割(デアセンブリ)、送信スケジューリング、及びデータ受信時の結合(アセンブリ)の3つの処理によって構成され、送信スケジューリングによって通信スループットが決定される。送信スケジューリングは、どのパスを経由して分割したデータを送信するかを決定する処理である。送信スケジューリングの一般的な決定方法としては、ラウンドロビンと宛先別の2つが挙げられる。
ここで、物理パスの本数が4本の場合に、多重送受信とリンクアグリケーションを同時に適用する構成について説明する。具体的には、2本の物理パスがリンクアグリゲーションによってまとめられた論理パスを、それぞれ正系パス及び副系パスとする。さらに、多重送受信を適用し、正系のパス及び副系のパスに同じデータを送信する。
しかし、計算機間の接続をこのように構成すると、無遅延でデータ損失を補償する通常時のサービスレベルを満たすことができるが、スループットを向上させる計算機障害発生時のサービスレベルを実現することは困難である。具体的には、データベースのデータサイズが増加すると、通信量も増加するが、多重送受信の制約のため正系パスのスループットを向上させることが困難なためである。まず、総スループットは、計算機構成の物理的制約のため上限がある。さらに、従来の多重送受信では、同じスループットを正系パスと各副系パスに割り当てる。二重送受信の場合は、正系パスと副系パスの物理パス数の比率は1:1であり、各スループットは総スループットの半分となる。
以上の問題を解消するために、本発明の第1の実施の形態では、多重送受信の制約を緩和する。具体的には、計算機間通信の2つのサービスレベルを達成するため、サービスレベルの変更点である計算機状態の変更時に、計算機障害発生のタイミングで正系パスと副系パスを制御し、正系パスのスループットを向上するよう正副比率を変更する。
続いて、図1における計算機システムを構成する各部の関連について、図2から図4を参照して説明する。
図2は、本発明の第1の実施の形態の計算機101Bが障害復旧中の場合に送信元計算機101Aの各構成と正副比率管理部124の各構成との関連を説明する図である。
まず、処理の概要について説明すると、計算機101Bの障害を復旧させるためには、前述のように、送信元計算機101Aのデータベース1021Aに格納されたデータを計算機101Bに送信し、計算機101Bのデータベース1021Bを復旧させる。
計算機制御部1022Aには、正副比率情報221A、冗長パケット生成部222A、計算機状態監視部223A、イベント送信部224A、正副比率受信部225A及び正副比率変更部226Aが含まれる。
正副比率情報221Aは、正副比率受信部225Aが正副比率管理部124から受信した最新の正副比率を保持する。計算機状態監視部223Aは、イベント送信部224Aにイベント送信を指示する。イベント送信部224Aは、正副比率管理部124にイベント通知203を送信する。
正副比率受信部225Aは、正副比率管理部124の正副比率送信部126から送信された正副比率204を受信し、正副比率変更部226Aに正副比率変更を指示する。
正副比率変更部226Aは、正副比率情報221Aに変更された正副比率変更を格納する。さらに、送信パケット生成部1023A、LA制御部1024A及び冗長パケット生成部222Aに正副比率の変更にともなう処理の実行を指示する。
続いて、送信パケット生成部1023Aについて説明する。送信パケット生成部1023Aは、正副比率変更部226Aから通知された正副比率に基づいて、データベース1021Aに格納されたデータによって送信パケット201を生成する。そして、生成された送信パケット201を、正系パス211Aを介して計算機101Bに送信するように送信部1025Aに指示する。
送信パケット201の生成及び送信についてもう少し詳しく説明すると、正副比率の値が「A:B」の場合には、送信パケット201の生成において、A個の送信パケット201ごとに同一パケットグループIDが割り当てられ、送信パケット201のヘッダ情報として当該パケットグループIDが付加される。送信パケット201は、データベース1021Aをコピーするために送信されるデータをデアセンブリしたものに、ヘッダ情報を加えることによって生成されたパケットである。送信パケット201に格納されるデータは、データベース1021Aに含まれるテーブルなどのデータ及び差分データである。当該データは、送信元計算機101Aのデータベース1021Aから抽出され、計算機101Bに送信された後にデータベース1021Bに適用される。
冗長パケット生成部222Aは、送信パケット生成部1023Aによって生成された送信パケット201に基づいて冗長パケット202を生成し、送信部1025Aに副系パス211Bを介して冗長パケット202を送信するように指示する。冗長パケット202は、1つ以上の送信パケット201を使用して、正副比率に基づいたパケット数又はサイズになるように、一般的な誤り訂正等の技術を適用することによって生成されたパケットである。
また、正副比率の値が「A:B」の場合では、A個の送信パケット201が含まれるパケットグループに対し、冗長パケット202がB個となるように、パケットグループに含まれるA個の送信パケット201を用いて、同じパケットグループIDを付加したB個の冗長パケット202を生成する。または、送信パケット201のサイズの合計がAのパケットグループに対し、冗長パケット202のサイズの合計がBとなるように冗長パケット202を生成する。
LA制御部1024Aは、送信部1025Aからの送信要求に基づいて、論理パスに対応するNICを介してデータを分散送信する。図2の構成を参照しながら説明すると、3つのNIC104A〜104Cが正系パス211Aに対応し、1つのNIC104Dが副系パス211Bに対応する。したがって、送信要求が論理パスとして正系パス211Aを指定する場合には、送信されるデータは3つのNIC104A〜104Cに分散送信される。このとき、LA制御部1024Aは、一定周期時間の経過若しくは一定量の送信パケット処理などの契機に応じて、論理パスとNICの対応関係を変更するようにしてもよい。さらに、LA制御部1024Aは、正副比率変更部226Aの指示によって、正系パス211A及び副系パス211BのNICの割り当てを変更する。
送信部1025Aは、送信パケット生成部1023A及び冗長パケット生成部222Aによって指示される論理パスとデータの組み合わせに基づいて、LA制御部1024Aに生成されたデータを指定された論理パスで送信するように要求する。
なお、計算機制御部1022Aは、前述したように、プログラムなどのソフトウェアで実装されてもよいし、ハードウェアで実装されていてもよい。したがって、計算機制御部1022Aに含まれる、冗長パケット生成部222A、計算機状態監視部223A、イベント送信部224A、正副比率受信部225A及び正副比率変更部226Aもソフトウェア又はハードウェアのいずれでも実装可能である。
次に、正副比率管理部124に含まれる各構成の関連について説明する。正副比率管理部124には、前述したように、イベント受信部127、正副比率算出部125及び正副比率送信部126が含まれる。
イベント受信部127は、計算機101Aのイベント送信部224Aから送信されたイベント通知203を受信し、クラスタ構成情報140に物理パス数、イベント種別及びパケットグループIDを格納する。
正副比率算出部125は、クラスタ構成情報140に格納された情報に基づいて正副比率を算出し、正副比率送信部126に正副比率の送信を指示する。
正副比率送信部126は、正副比率算出部125から取得された正副比率204を、通知元の計算機101Aと同一クラスタに含まれる計算機すべてに送信する。
図2に示す構成は、計算機101Aと計算機101Bとが同一クラスタに含まれる場合を示している。正副比率算出部125は、計算機101Aから受信したイベント通知203に基づいて正副比率204を算出し、正副比率送信部126は算出された正副比率204を計算機101Bにも送信する。
前述のように、送信元計算機101Aは、送信先計算機101Bにデータベースをコピーする処理を実行する。送信元計算機101Aは、データベース1021Aに格納されたデータから生成される送信パケット201を分割し、送信先計算機101Bに送信する。送信元計算機101Aは、正系パス211Aと副系パス211Bを構成し、正系パス211Aを介して送信パケット201を送信し、送信パケット201及び正副比率情報221Aに基づいて生成される冗長パケット202を、副系パス211Bを介して送信する。
図3は、本発明の第1の実施の形態の計算機101Bが障害復旧中の場合に送信先計算機101Bの各構成と正副比率管理部124の各構成との関連を説明する図である。
送信先計算機101Bの主記憶102Bは、図1に示したように、データベース1021B、計算機制御部1022B、LA制御部1024B、送信部1025B及び受信部1026Bを備える。また、計算機101Bが実行系として動作可能とするために、図3に示すように、主記憶102Bに送信パケット生成部1023Bが含まれるように構成される。ここで説明する例では、計算機101Bに障害が発生し、計算機101Aからデータを受信することになっているが、計算機101Aに障害が発生した場合には、計算機101Bのデータベース1021Bに格納されたデータが計算機101Bに送信されるため、原則的に同一クラスタ内の計算機はすべて同じ構成が含まれている。
計算機制御部1022Bは、計算機状態監視部223B及びイベント送信部224Bを含む。また、計算機制御部1022Bは、障害復旧中には使用されないが、図3に示すように、正副比率情報221B、冗長パケット生成部222B、正副比率受信部225B及び正副比率変更部226Bを含む。
計算機状態監視部223B及びイベント送信部224Bは、計算機101Aの計算機状態監視部223A及びイベント送信部224Aと同様の処理を行う。
LA制御部1024Bは、論理パス311Aを構成する。論理パス311Aは、NIC104E〜104Hに対応し、NIC104E〜104Gによって受信された送信パケット301A〜301Cを受信部1026Bに送信する。また同様に、NIC104Hによって受信された冗長パケット302を受信部1026Bに送信する。
受信部1026Bは、LA制御部1024Bの管理する論理パスから受信したデータを格納し、送信パケット301A〜301Cであればデータベース1021Bに格納し、冗長パケット302であれば一定時間格納する。図3では、受信部1026Bは送信パケット301A〜301C及び冗長パケット302を格納し、送信パケット301A〜301Cをデータベース1021Bに送信する。
データベース1021Bは、受信部1026Bが受信した送信パケット301A〜301Cをデータベース1021Bに反映させる。
さらに、図3における受信部1026Bの内部構成について、図4を参照しながら詳しく説明する。
図4は、本発明の第1の実施の形態の障害復旧中の計算機101Bの受信部1026Bの内部の構成を説明する図である。
受信部1026Bは、受信データ検査部401、受信レジスタ402及びデータ格納部403を含む。
受信部1026Bは、LA制御部1024Bから送信されたすべてのデータを受信データ検査部401によって処理する。
受信データ検査部401は、受信したデータを参照し、送信パケットであるか冗長パケットであるかをパケットに含まれる情報に基づいて判定し、後述するフィルタリング処理を行う。
受信データ検査部401は、受信したデータが送信パケットである場合には、受信レジスタ402に受信済みであることを記録し、受信した送信パケットをデータ格納部403に格納し、データベース1021Bに反映させる。
受信データ検査部401は、受信したデータが冗長パケットである場合には、受信レジスタ402を参照し、冗長パケットをデータ格納部403に格納する。送信パケットが何らかの理由で受信できなかった場合には、冗長化パケットを利用して送信パケットを復元し、送信パケットの再送を発生させない。
ここで、図1から図4に示したイベント通知203、クラスタ構成情報140、送信パケット201、冗長パケット202、受信レジスタ402及び入力パラメータ152の各情報の詳細について、図5から図13を参照しながら説明する。
図5は、本発明の第1の実施の形態の計算機101A及び計算機101Bから正副比率管理部124に送信されるイベント通知203の内容を示す図である。
イベント通知203は、イベント種別501、計算機ID502、物理パス数503及び送信時のタイムスタンプ504を含む。
イベント種別501は、イベント通知203の送信元である送信元計算機101A又は送信先計算機101Bによって検出されたイベントの種別である。イベント種別501に設定される値には、少なくとも「計算機復旧処理開始」及び「計算機復旧処理終了」が含まれる。また、他にも、物理パスに障害があり、かつ計算機がその箇所を特定したときに使用する「障害パス特定」、計算機のプロセッサ使用率、メモリ使用率、I/O使用率、または送信データ蓄積量が閾値を超えた場合に発生する「リソース使用量閾値超過」、計算機システムの管理者の業務上の都合により送信データを早く送信する場合に使用する「管理者によるサービスレベル変更」などを含んでもよい。
計算機ID502は、イベント通知203を送信した計算機に一意に識別する識別子である。例えば、計算機の識別子として、当該計算機に備えられたNICのアドレスを使用してもよい。
物理パス数503は、計算機ID502によって識別される計算機が含まれるクラスタで使用可能な正常な物理パスの数である。送信時のタイムスタンプ504は、計算機ID502によって識別される計算機がイベント通知203を送信した時刻である。
次に、本発明の第1の実施の形態の正副比率管理部124のクラスタ構成情報140に含まれる各データの構成を、図6から図10を参照しながら説明する。
図6は、本発明の第1の実施の形態の正副比率管理部124に格納される計算機ステータス情報128の一例を示す図である。
計算機ステータス情報128は、各計算機の計算機のステータスが格納される。計算機ステータス情報128は、管理者151によって管理端末150から入力された入力パラメータ152によって設定される。
計算機ステータス情報128は、クラスタID601、計算機ID602及びステータス603を含む。
クラスタID601は、管理対象のクラスタの識別子である。計算機ID602は、クラスタID601によって識別されるクラスタに含まれる計算機の識別子である。
ステータス603は、計算機ID602によって識別される計算機のステータスである。設定されるステータスには、例えば、正常に計算機が稼働していることを示す「正常」、障害から復旧中であることを示す「復旧中」などの値が設定される。
図7は、本発明の第1の実施の形態の正副比率管理部124に格納されるクラスタステータス情報129の一例を示す図である。
クラスタステータス情報129には、各クラスタのステータスを含む情報が含まれる。クラスタステータス情報129は、管理者151によって管理端末150から入力された入力パラメータ152によって初期値が設定され、正副比率管理部124における正副比率制御処理によって更新される。
クラスタステータス情報129は、クラスタID701、ステータス702、タイムスタンプ703、正副比率704及び物理パス数705を含む。
クラスタID701は、管理対象の各クラスタを一意に識別する識別子である。ステータス702は、クラスタID701によって識別されるクラスタのステータスである。具体的には、クラスタに含まれる計算機が障害から復旧中であることを示す「計算機障害復旧中」、クラスタに含まれる計算機がすべて正常に稼働していることを示す「正常」などの値が設定される。
タイムスタンプ703は、クラスタID701によって識別されるクラスタのステータスが変更されたイベント通知203に含まれるタイムスタンプである。すなわち、当該イベントの発生時刻が設定される。
正副比率704は、クラスタID701によって識別されるクラスタに適用されている最新の正副比率である。物理パス数705は、クラスタID701によって識別されるクラスタに含まれる計算機間で通信に使用可能な物理パス数である。
図8は、本発明の第1の実施の形態の正副比率管理部124に格納されるパスステータス情報130の一例を示す図である。
パスステータス情報130には、各パスのステータス及び当該パスに接続される計算機を示す情報が含まれる。パスステータス情報130は、管理者151によって管理端末150を介して計算機とパスとの関連が定義され、パス障害特定イベントを表すイベント通知203を受信した場合に正副比率管理部124によって更新される。
パスステータス情報130は、パスID801、ステータス802、計算機ID803及び計算機のアドレス804を含む。
パスID801は、計算期間を接続するパスを一意に識別する識別子である。ステータス802は、パスID801によって識別されるパスのステータスである。
計算機ID803は、パスID801によって識別されるパスに接続される計算機の識別子である。計算機のアドレス804は、計算機ID803によって識別される計算機のIPアドレスである。
図9は、本発明の第1の実施の形態の正副比率管理部124に格納される信頼度設定情報131の一例を示す図である。
信頼度設定情報131は、クラスタのステータスと、正副比率を算出するためのパラメータである信頼度との関連を格納する。信頼度設定情報131は、クラスタステータス901及び適用する信頼度902を含む。信頼度設定情報131は、管理者151によって入力された入力パラメータ152に基づいて、適用する信頼度902の値が設定される。
クラスタステータス901は、クラスタステータス情報129のステータス702に設定される値を格納する。適用する信頼度902は、クラスタステータス901に対する信頼度である。前述のように、適用する信頼度902に基づいて、正副比率制御処理において正副比率が設定される。
図10は、本発明の第1の実施の形態の正副比率管理部124に格納される最新イベント情報132の一例を示す図である。
最新イベント情報132には、正副比率管理部124によって受信された最新のイベント通知203に関する情報が格納される。最新イベント情報132には、計算機ID1001、クラスタID1002、物理パス数1003、イベント種別1004、タイムスタンプ1005、正副比率1006及び変更フラグ1007を含む。最新イベント情報132は、正副比率管理部124における正副比率制御処理によって更新される。
計算機ID1001は、最新イベント情報132に対応するイベント通知203を送信した計算機の識別子である。クラスタID1002は、計算機ID1001によって識別される計算機が含まれるクラスタを識別する識別子である。
物理パス数1003は、クラスタID1002によって識別されるクラスタで使用可能な物理パスの数である。図5に示したイベント通知203の物理パス数503に対応する。
イベント種別1004は、イベント通知203の送信元計算機によって検出されたイベントの種別である。図5に示したイベント通知203のイベント種別501に対応する。タイムスタンプ1005は、イベント通知203の送信元計算機がイベント通知203を送信した時刻である。図5に示したイベント通知203のタイムスタンプ504に対応する。
正副比率1006は、クラスタID1002によって識別されるクラスタに適用されている最新の正副比率である。変更フラグ1007は、最新イベント情報132に対応するイベント通知203によって正副比率が変更されたか否かを示すフラグである。変更された場合には「真」、変更されなかった場合には「偽」が設定される。
次に、図2において、送信元計算機101Aから送信先計算機101Bに送信される送信パケット201又は冗長パケット202の構成を、図11を参照しながら説明する。
図11は、本発明の第1の実施の形態の送信元計算機101Aから送信先計算機101Bに送信されるパケットの構成の一例を示す図である。
パケット1101は、送信パケット201又は冗長パケット202のいずれかに対応し、いずれの場合であっても図11に示す構成となる。
パケット1101は、通信ヘッダ1102、パケットID1103、最低パケット数1104、パケットタイプ1105、パケットグループID1106及びペイロード1107を含む。
通信ヘッダ1102は、TCP、UDP、IPなどの通信プロトコルに対応するヘッダである。複数のプロトコルを用いて通信する場合には、通信ヘッダ1102に複数のヘッダが含まれてもよい。
パケットID1103は、パケット1101を一意に識別する識別子である。最低パケット数1104は、同一パケットグループに含まれる送信パケット201の数である。
パケットタイプ1105は、送信パケット201であるか冗長パケット202であるかを示す情報である。例えば、送信パケットの場合には「0」、冗長パケットの場合には「1」を設定するようにしてもよい。パケットグループID1106は、パケットID1103によって識別されるパケットが属するパケットグループの識別子である。
ペイロード1107は、送信されるデータ本体である。ペイロード1107の内容は、送信パケット201か冗長パケット202かによって相違する。送信パケット201の場合には、データベースに格納されたデータの一部又はデータベースから抽出された差分データが格納される。冗長パケット202の場合には、同一パケットグループに属する送信データを復元するために、誤り訂正技術などに基づいて生成されたデータが格納される。
図12は、本発明の第1の実施の形態の受信レジスタ402の構成の一例を示す図である。
受信レジスタ402は、パケットグループID1201、総パケットカウント1202及び送信パケットカウント1203を含む。
パケットグループID1201は、受信部1026Bによって受信された送信パケット201が属するパケットグループIDである。総パケットカウント1202は、同じパケットグループID1201を有する送信パケット又は冗長パケットを受信した回数である。送信パケットカウント1203は、同じパケットグループID1201を有する送信パケットを受信した回数である。
受信レジスタ402は、初期化時にはレコードが含まれていないが、受信データ検査部401のフィルタリング処理においてレコードが追加又は更新される。また、同じパケットグループID1201を有するパケットをすべて受信した場合には、対応するレコードは削除するようにしてもよい。
図13は、本発明の第1の実施の形態の管理者151による入力パラメータ152の一例を示す図である。
入力パラメータ152は、計算機ステータス情報128、クラスタステータス情報129、パスステータス情報130、信頼度設定情報131又は最新イベント情報132のうち、1つ以上のテーブルに格納された値を変更するために、管理者151によって管理端末150から送信される。図13に示す例は、信頼度設定情報131を設定するために入力された入力パラメータ152である。
入力パラメータ152には、テーブル名1301、キー名1302及び入力値1303が含まれる。
テーブル名1301は、入力パラメータ152によって変更される値が格納されるテーブルの名称である。キー名1302は、入力パラメータ152によって変更される値を格納する項目名(キー)の名称である。入力値1303は、テーブル名1301及びキー名1302によって特定されるフィールドに設定される値を格納する。
最後に、本発明の第1の実施の形態を実現するために実行される処理について、図1から図4に記載された各構成に対応させながら説明する。以下、正副比率を設定又は変更する正副比率制御処理、及びデータ受信時のフィルタリング処理について説明する。
正副比率制御処理は、計算機の状態が変更されたタイミングで実行される。具体的には、図14に示すフローチャートに基づいて、送信元計算機101A又は送信先計算機101Bの状態変更が発生した場合に実行される。このとき、送信元計算機101A又は送信先計算機101Bは、正副比率管理部124にイベント通知203を送信する。
正副比率管理部124は、イベント通知203を受信すると、正副比率制御処理を実行する。正副比率制御処理では、通知されたイベントに基づいて正副比率を算出し、クラスタを構成する各計算機に算出された正副比率を送信する。算出された正副比率を受信した計算機は、受信した正副比率を適用し、パスの構成を変更する。
フィルタリング処理は、図19に示すフローチャートに基づいて実行され、送信先計算機101Bにおいて計算機の状態に依存せずに、パケットを受信するたびに実行される。フィルタリング処理では、送信パケットに格納されたデータをデータベースに格納したり、冗長パケットに格納されたデータに基づいて送信パケットを復元したりする。
正副比率制御処理及びフィルタリング処理によって、スループット向上とタイムアウト及び再送発生量削減とを両立することが可能となる。
以下、図14から図19に示すフローチャートを参照しながら正副比率制御処理及びフィルタリング処理について説明する。
まず、計算機の状態の変更に対する正副比率制御処理について、図14から図18を参照しながら説明する。
図14は、本発明の第1の実施の形態の計算機システムにおける計算機状態変更時の正副比率制御処理の手順を示すフローチャートである。
以下、計算機状態変更が発生した計算機101及び計算機101に接続された正副比率管理部124で実行される処理について説明する。なお、計算機101は、図1に示した送信元計算機101A又は送信先計算機101Bのいずれかである。また、計算機システムに3台以上の計算機が含まれる場合であっても、状態変更が発生した計算機において、計算機101と同じ処理が実行される。
まず、計算機101では、「計算機障害発生」、「障害復旧処理の終了」又は「パス障害特定」の3つの状態変更のいずれかが検知される(ステップ1400)。計算機障害とは、例えば、計算機101で処理中のプロセスに発生した障害、ファイル障害、計算機を構成するハードウェアの障害などである。なお、計算機を構成するハードウェアの障害の場合は、障害箇所の交換、計算機の再起動又はプログラムの再実行などによって復旧後に検知される。また、パス障害とは、計算機101に接続されるパスのハードウェア又はソフトウェアの障害である。
次に、計算機101のプロセッサは、計算機状態監視部223Aによって、計算機101に記録されたログを監視し、前述した3つのイベントのいずれかを検出する(ステップ1401)。計算機のログとしては、具体的には、プロセスのジョブ実行時間、パスの送受信結果及びシステムコールの結果を利用する。さらに、検出されたイベントの種別を判定し、当該イベントの発生時刻(タイムスタンプ)とともにイベント送信部224Aに通知する。
計算機101のプロセッサは、イベント送信部224Aによって、イベント種別及びタイムスタンプを含むイベント通知203を生成し、正副比率管理部124に送信する(ステップ1402)。
正副比率管理部124のプロセッサ143は、計算機101から送信されたイベント通知203を受信すると、イベント受信部127によって、イベント受信処理を実行する(ステップ1403)。なお、イベント受信処理の詳細については、図15にて後述する。
正副比率管理部124のプロセッサ143は、受信したイベント通知203に基づいて、正副比率算出部125によって正副比率算出処理を実行する(ステップ1404)。なお、正副比率算出処理の詳細については、図16にて説明する。
さらに、正副比率管理部124のプロセッサ143は、正副比率送信部126によって、算出された正副比率を送信する正副比率送信処理を実行する(ステップ1405)。正副比率送信処理によって、算出された正副比率が計算機101に送信される。なお、正副比率送信処理の詳細については、図17にて説明する。
計算機101のプロセッサは、正副比率管理部124から算出された正副比率を受信する(ステップ1406)。さらに、受信した正副比率に基づいて、パスの構成を変更する正副比率変更処理を実行する(ステップ1407)。
正副比率変更処理が完了すると、本処理は終了し、計算機101の変更された状態に基づいて算出された正副比率にしたがって、計算機101が含まれるクラスタのパス構成が更新される。
図15は、本発明の第1の実施の形態のイベント受信部127におけるイベント受信処理の手順を示すフローチャートである。
イベント受信処理は、正副比率管理部124のプロセッサ143がイベント受信部127を常駐又は周期的に処理することによって実行される。
正副比率管理部124のプロセッサ143は、イベント通知203を受信するまで待機する(ステップ1501)。
正副比率管理部124のプロセッサ143は、イベント通知203を受信すると、クラスタステータス情報129を取得し、受信したイベント通知203のタイムススタンプが直前に受信したイベント通知203のタイムスタンプよりも新しいか否かを判定する(ステップ1502)。受信したイベント通知203のタイムススタンプが直前に受信したイベント通知203のタイムスタンプよりも新しくない場合には(ステップ1502の結果が「no」)、本処理を終了し、再びステップ1501の処理が実行される。
正副比率管理部124のプロセッサ143は、受信したイベント通知203のタイムススタンプが直前に受信したイベント通知203のタイムスタンプよりも新しい場合には(ステップ1502の結果が「yes」)、最新イベント情報132に値を設定する(ステップ1503)。具体的には、受信したイベント通知203の送信元の計算機ID502、イベント種別501、物理パス数503及びタイムスタンプ504を最新イベント情報132に格納する。
図16は、本発明の第1の実施の形態の正副比率算出部125における正副比率算出処理の手順を示すフローチャートである。
正副比率算出処理は、イベント受信部127からの通知を受け付けた場合に、正副比率管理部124のプロセッサ143が正副比率算出部125を処理することによって実行される。
正副比率管理部124のプロセッサ143は、最新イベント情報132からイベント種別1004及び物理パス数1003(=M)を取得する(ステップ1601)。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧終了」であるか否かを判定する(ステップ1602)。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧終了」でない場合には(ステップ1602の結果が「no」)、取得されたイベント種別が「計算機障害復旧開始」であるか否かを判定する(ステップ1603)。取得されたイベント種別が「計算機障害復旧開始」でない場合には(ステップ1603の結果が「no」)、正副比率を更新する必要はないため、本処理を終了する。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧開始」である場合には(ステップ1603の結果が「yes」)、該当するクラスタに対応するクラスタステータス情報129のステータス702の値を「計算機障害復旧中」に更新する。さらに、信頼度設定情報131からステータスが「計算機障害復旧中」のクラスタステータス901に対応する、適用する信頼度902の値を信頼度Rとして取得する(ステップ1604)。
正副比率管理部124のプロセッサ143は、取得された物理パス数M及び信頼度Rに基づいて、正副比率を決定し、最新イベント情報132の変更フラグ1007を「真」に更新する(ステップ1605)。具体的には、正副比率を「M−R:R」とし、クラスタステータス情報129の対応するレコードの正副比率704を更新し、正副比率算出処理を終了する。なお、論理パスが3本以上ある場合には、論理パス数をNとし、正副比率704を「{M−(N−1)×R}:R」に更新する。
正副比率「M−R:R」は、前述のように、正系パスに物理パスM−R本、副系パスに物理パスR本を割り当てるようにリンクアグリゲーションを適用することを意味している。具体的に説明すると、物理パス数が4本(M=4)、信頼度が1(R=1)である場合、正副比率は「3:1」となる。信頼度R=1は、1本のパス障害発生までのタイムアウト及び再送発生量削減を達成することが可能な信頼度である。正副比率「3:1」は、物理パス数4本の条件のもとで、1本のパス障害に対するタイムアウト及び再送発生量削減を補償し、かつ、正系パスのスループットを副系パスより多く割り当てる正副比率となる。
一方、正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧終了」である場合には(ステップ1602の結果が「yes」)、クラスタステータス情報129の対応するレコードのステータス702の値を「正常」に更新する(ステップ1606)。
さらに、正副比率管理部124のプロセッサ143は、正副比率704を「M/2:M/2」に更新し、最新イベント情報132の変更フラグ1007を「真」に更新する(ステップ1607)。論理パスが3本以上ある場合には、論理パス数をNとすると、正副比率704を「M/N:M/N」に更新する。
具体的に説明すると、物理パス数が4本(M=4)で、論理パス数が2の場合には、正副比率は「2:2」に更新される。正副比率を「2:2」に設定することは、前述したように、複数の物理パスで計算機間が接続されているシステムにおいて、二重送受信及びリングアグリゲーションを適用した場合に相当する。
図16に示した正副比率算出処理によって、クラスタのステータスが「正常」であれば多重送受信に相当する正副比率が算出される。また、クラスタのステータスが「正常」以外の場合には、管理者151が入力パラメータ152によって設定された信頼度設定情報131に基づいて、計算機障害発生、障害パス特定、リソース使用量閾値超過、管理者によるサービス変更等の計算機状態に合わせて、信頼度Rと物理パス数Mに依存する正副比率が算出される。
図17は、本発明の第1の実施の形態の正副比率送信部126における正副比率送信処理の手順を示すフローチャートである。
正副比率送信処理は、正副比率算出部125による正副比率の算出が完了した後、正副比率管理部124のプロセッサ143が正副比率送信部126を処理することによって実行される。
正副比率管理部124のプロセッサ143は、最新イベント情報132から計算機101が属するクラスタに対応するレコードの変更フラグ1007の値を取得し、取得された値が「真」であるか否かを判定する(ステップ1701)。変更フラグ1007の値が「真」でない場合、すなわち、「偽」である場合には(ステップ1701の結果が「no」)、正副比率を変更する必要がないため、正副比率送信処理を終了する。
正副比率管理部124のプロセッサ143は、計算機ステータス情報128から、計算機101が属するクラスタに含まれ、かつ、正副比率が変更されていない計算機を検索する(ステップ1702)。ここで検索された計算機は、正副比率算出部125によって算出された正副比率を送信する宛先となる。
正副比率管理部124のプロセッサ143は、ステップ1702の処理で検索された計算機が存在するか否かを判定する(ステップ1703)。存在しない場合には(ステップ1703の結果が「no」)、正副比率送信処理を終了する。
正副比率管理部124のプロセッサ143は、ステップ1702の処理で検索された計算機が存在する場合には(ステップ1703の結果が「yes」)、最新イベント情報132から取得したタイムスタンプ1005及び正副比率1006を、ステップ1702の処理で検索された宛先となる計算機に送信する(ステップ1704)。そして、正副比率の変更が必要なすべての計算機に正副比率の変更を通知するために、ステップ1702の処理をさらに実行する。なお、ステップ1704の処理において、正副比率の変更の通知がすべての変更対象の計算機に同時に送信されるように、マルチキャストを用いてもよい。
図18は、本発明の第1の実施の形態の計算機101における正副比率変更処理の手順を示すフローチャートである。
なお、図18に示す正副比率変更処理について、説明を容易にするため、計算機101を送信元計算機101Aとした場合について説明する。正副比率変更処理は、正副比率送信部126から正副比率を送信元計算機101Aが受信した後、送信元計算機101Aのプロセッサ103Aが計算機制御部1022Aを処理することによって実行される。
正副比率変更処理では、送信パケットと冗長パケットを同時に送信し、パス障害などによる送信パケット損失発生時に冗長パケットから送信パケットを復元できるように正副比率を適用する。こうすることによって、損失した送信パケットを待機する送信先計算機におけるタイムアウト処理と、損失した送信パケットを再送するための再送処理の実行を回避することができる。また、同時に生成されるデータ量が論理パスのスループットに対して過大となることによって送信が失敗することを防止する。
送信元計算機101Aのプロセッサ103Aは、まず、正副比率管理部124の正副比率送信部126によって送信された正副比率を正副比率受信部225Aによって受信する(ステップ1801)。さらに、受信した正副比率を正副比率変更部226Aに送信し、受信した正副比率が正副比率情報221Aに格納された値より増加しているか否かを判定する(ステップ1802)。
送信元計算機101Aのプロセッサ103Aは、受信した正副比率が正副比率情報221Aに格納された値より増加している場合には(ステップ1802の結果が「yes」)、正副比率変更部226Aによって、送信パケット生成部1023A及び冗長パケット生成部222Aに正副比率の変更を通知する(ステップ1803)。
ここで、受信した正副比率について、直前の正副比率よりも正系の比重が増加しているため、冗長パケットを少なくする。具体的に説明すると、計算機間の物理パスが4本であり、かつ、正副比率が2:2から3:1に変更された場合、送信パケット生成部1023Aによって3つのデータごとに1つのパケットグループIDを割り当てるようにする。一方、冗長パケット生成部222Aでは、送信パケット生成部1023Aで生成された3つのデータに対し、同じパケットグループIDを付与した1つの冗長パケットを生成する。ただし、この段階では、正系パスの帯域は変更されていないため、一時的に冗長パケットの生成量が減少し、副系パスの帯域の使用率が小さくなる。また、正系パスにおける送信パケット201のスループットは変化しない。
送信元計算機101Aのプロセッサ103Aは、正副比率変更部226Aによって、受信した正副比率に基づいて、LA制御部1024Aの副系パスの帯域を縮小する(ステップ1804)。例えば、計算機間の物理パスが6本であり、正副比率情報221Aに設定された値が3:3、かつ、受信した正副比率が4:2である場合には、副系パスの帯域を物理パス3本から2本に変更する。
送信元計算機101Aのプロセッサ103Aは、正副比率変更部226Aによって、受信した正副比率に基づいてLA制御部1024Aの正系パスの帯域を拡大する(ステップ1805)。例えば、計算機間の物理パスが6本であり、正副比率情報221Aに設定された値が3:3、かつ、受信した正副比率が4:2である場合には、正系パスの帯域を物理パス3本から4本に変更する。このとき、事前にステップ1804の処理で副系パスの帯域が縮小されているため、未割当の物理パスを割り当てればよい。
送信元計算機101Aのプロセッサ103Aは、受信した正副比率を正副比率情報221Aに記録する(ステップ1806)。
送信元計算機101Aのプロセッサ103Aは、受信した正副比率が正副比率情報221Aに格納された値より増加していない場合には(ステップ1802の結果が「no」)、LA制御部1024Aの正系パスの帯域を縮小する(ステップ1807)。帯域を縮小する方法については、ステップ1804の処理と同様である。
送信元計算機101Aのプロセッサ103Aは、LA制御部1024Aの副系パスの帯域を拡大する(ステップ1808)。帯域を拡大する方法については、ステップ1805の処理と同様である。
送信元計算機101Aのプロセッサ103Aは、送信パケット生成部1023A及び冗長パケット生成部222Aに正副比率の変更を通知する(ステップ1809)。生成比率を変更する手順については、ステップ1803の処理と同様である。
続いて、データ受信に関するフィルタリング処理について、図19を参照しながら説明する。
図19は、本発明の第1の実施の形態の受信データ検査部401によるフィルタリング処理の手順を示すフローチャートである。
フィルタリング処理は、パケットの受信時に毎回実行される。また、フィルタリング処理は、送信先計算機101Bのプロセッサ103Bが受信部1026Bの受信データ検査部401を処理することによって実行される。
フィルタリング処理の概要は、受信データを送信パケットか冗長パケットか判定し、送信パケットであればデータベースに渡し、冗長パケットであれば格納又は削除する。また、冗長パケットと送信パケットの組み合わせによって、受信していない送信パケットを復元する。したがって、送信パケットが一部損失しても、冗長パケットによって送信パケットを復元することができる。フィルタリング処理を実行することによって送信パケットの再送が不要になるため、損失した送信パケットを待機する送信先計算機におけるタイムアウト処理及び送信元計算機における再送処理の実行を防ぐことが可能となる。
送信先計算機101Bのプロセッサ103Bは、受信したパケットに含まれるパケットグループID1106、パケットタイプ1105及び最低パケット数1104を取得する(ステップ1901)。受信したパケットの構成は、図11に示したとおりである。
送信先計算機101Bのプロセッサ103Bは、受信レジスタ402を参照し、受信したパケットのパケットグループIDに対応する総パケットカウント1202が、ステップ1901の処理で取得された最低パケット数1104と等しいか否かを判定する(ステップ1902)。受信レジスタ402の構成は、図12に示したとおりである。
送信先計算機101Bのプロセッサ103Bは、総パケットカウント1202が最低パケット数1104と等しい場合には(ステップ1902の結果が「yes」)、受信データをすべてデータベース1021Bに格納したため、本処理を終了する。
最低パケット数は、前述したように、パケットグループに属する送信パケットの総数であるが、送信元計算機101Aからは送信パケット及び冗長パケットが送信されるため、冗長パケットの数の分だけ多いパケットが送信される。また、送信パケットが欠落した場合であっても、欠落した数の冗長パケットを受信することによって、欠落した送信パケットを復元することができる。
本発明の第1の実施の形態では、送信パケットか冗長パケットかを問わず受信した総パケット数(総パケットカウント)が最低パケット数に到達した時点でデータベースへのデータの格納を完了させる。すなわち、送信パケットの代わりに冗長パケットを受信した場合には、受信した冗長パケットを利用して受信していない送信パケットを復元し、データベースにデータを格納する。したがって、受信したパケットが属するパケットグループの最低パケット数に総パケットカウントが到達した場合には、その後に受信したパケットは破棄される。
送信先計算機101Bのプロセッサ103Bは、総パケットカウント1202が最低パケット数1104に達していない場合には(ステップ1902の結果が「no」)、総パケットカウント1202をインクリメントする(ステップ1903)。
送信先計算機101Bのプロセッサ103Bは、受信したパケットのパケットタイプ1105が送信パケットであるか否かを判定する(ステップ1904)。
送信先計算機101Bのプロセッサ103Bは、パケットタイプ1105が送信パケットの場合には(ステップ1904の結果が「yes」)、受信レジスタ402の対応する送信パケットカウント1203をインクリメントする(ステップ1905)。さらに、受信したパケットをデータベース1021Bに送信する(ステップ1906)。
送信先計算機101Bのプロセッサ103Bは、パケットタイプ1105が送信パケットでない場合(ステップ1904の結果が「no」)、又はステップ1906の処理が終了すると、総パケットカウント1202が最低パケット数1104と等しいか否かを判定する(ステップ1907)。
送信先計算機101Bのプロセッサ103Bは、総パケットカウント1202が最低パケット数1104に達していない場合には(ステップ1907の結果が「no」)、データ格納部403に受信したパケットを格納し(ステップ1910)、フィルタリング処理を終了する。
送信先計算機101Bのプロセッサ103Bは、送信パケットカウント1203が最低パケット数1104と等しい場合には(ステップ1908の結果が「yes」)、すべての送信パケットが受信されたため、データ格納部403に格納された当該パケットグループに属するパケットを削除し(ステップ1909)、フィルタリング処理を終了する。
送信先計算機101Bのプロセッサ103Bは、送信パケットカウント1203が最低パケット数1104と等しくない場合には(ステップ1908の結果が「no」)、送信パケットをすべて受信しておらず、代わりに冗長パケットを受信しているため、送信パケットを復元する。
具体的には、送信先計算機101Bのプロセッサ103Bは、まず、データ格納部403に格納された当該パケットグループに属するすべてのパケットを読み出す(ステップ1911)。次に、読み出されたパケットの冗長パケットと同数の送信パケットを復元する(ステップ1912)。なお、パケットの復元方法については、冗長パケットの生成方法に依存し、冗長パケットの生成方法は誤り訂正手法などの一般的な技術であるため説明を割愛する。
さらに、送信先計算機101Bのプロセッサ103Bは、復元された送信パケットをデータベース1021Bに送信する(ステップ1913)。最後に、データ格納部403に格納された当該パケットグループに属するパケットを削除し(ステップ1909)、フィルタリング処理を終了する。
以上説明した本発明の第1の実施の形態では、正副比率管理部124は計算機101A又は計算機101Bから受信したイベント通知203に基づいて正副比率を算出し、計算機101A及び計算機101Bは正副比率を受信する。
送信元計算機101Aは、受信した正副比率に基づいて正副比率変更処理を実行し、送信パケット生成部1023A、冗長パケット生成部222A及びLA制御部1024Aのデータ送信に関する振る舞いを変更する。これによって、タイムアウト及び再送発生量を削減し、かつ、スループットを向上させる正副比率を適用し、データを送信することが可能となる。
具体的には、4本の物理パスを用いて二重送受信を行う場合には、従来技術では正副比率を2:2とし、正系パスに2本の物理パス、副系パスに2本の物理パスを割り当て、二重送受信を行っていた。一方、本発明の第1の実施の形態を適用することによって、サービスレベルの変更点である、計算機の障害発生時に、正副比率を3:1に変更し、従来の二重送受信時よりもスループットを50%向上させることができる。さらに、副系パスで冗長パケットを送受信することによって、正系パスに含まれるパス障害が発生して送信パケットが損失する場合であっても、冗長パケットに基づいて送信パケットを復元し、タイムアウト及び再送発生量を削減することができる。
また、送信先計算機101Bでは、フィルタリング処理を実行し、正副比率変更処理後に送信された送信パケットをデータベースに送信する。さらに、送信パケットが損失した場合であっても、冗長パケット及び受信済みの送信パケットに基づいて、損失した送信パケットを復元し、データベースに送信することができる。これらの一連の処理によって、送信元計算機101Aから送信先計算機101Bへのデータコピーは、タイムアウト及びパケットの再送の発生を削減し、さらに、正系パスに割り当てる物理パス数を多く割り当てる正副比率を適用することによってスループットを向上させることができる。
本発明の第1の実施の形態によれば、計算機システムにリングアグリゲーション及び多重送受信を適用し、さらに、計算機の状態変更のイベントを契機にして正副比率を変更することによって、計算機の状態に応じたサービスレベルを提供することができる。具体的には、通常時には無遅延でデータ損失を補償し、計算機障害発生時にはタイムアウト及び再送発生量削減かつスループット向上を両立させることができる。また、通常時でも、計算機に送信データが蓄積した場合、「リソース使用量閾値超過」のイベントに基づき、一時的にスループットを向上して送信データの蓄積を解消し、インメモリデータベースのデータベース永続化処理の遅延を削減することができる。また、インメモリデータベースの更新頻度の増大等により、将来送信データが蓄積することが予見される場合、「管理者によるサービスレベル変更」のイベントに基づき、発生前にスループットを向上して、インメモリデータベースのデータベース永続化処理の遅延発生を削減することができる。
また、本発明の第1の実施の形態では、多重送受信の有効化又は無効化を切り替える必要がないため、送信パケットが膨大な場合であっても、送信元計算機における多重送受信の有効化又は無効化の選択によって負荷が増大することがないため、専用ハードウェアなどを使用せずに計算機の状態に応じたサービスレベルを提供することができる。
(第2の実施の形態)
本発明の第1の実施の形態では、計算機障害復旧開始及び計算機障害復旧終了の各イベントを契機として正副比率を変更していたが、本発明の第2の実施の形態では、さらに、物理パスに障害が発生した場合に正副比率を変更する。具体的には、障害パス特定のイベント検出時に正副比率を変更する。
なお、第2の実施の形態において、第1の実施の形態と共通する内容については適宜説明を省略する。
図20は、本発明の第2の実施の形態の正副比率算出部125における正副比率算出処理の手順を示すフローチャートである。
正副比率管理部124のプロセッサ143は、クラスタステータス情報129からステータス702、最新イベント情報132からイベント種別1004及び物理パス数1003(=M)を取得する(ステップ2001)。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧終了」であるか否かを判定する(ステップ2002)。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧終了」でない場合には(ステップ2002の結果が「no」)、取得されたイベント種別が「計算機障害復旧開始」であるか否かを判定する(ステップ2003)。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧開始」でない場合には(ステップ2003の結果が「no」)、取得されたイベント種別が「障害パス特定」、かつ、ステップ2001の処理で取得された物理パス数Mの値とクラスタステータス情報129の物理パス数705の値とが異なるか否かを判定する(ステップ2004A)。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「障害パス特定」、又は、ステップ2001の処理で取得された物理パス数Mの値とクラスタステータス情報129の物理パス数705の値とが一致する場合には(ステップ2004Aの結果が「no」)、正副比率を変更する必要がないため、正副比率算出処理を終了する。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「障害パス特定」、かつ、ステップ2001の処理で取得された物理パス数Mの値とクラスタステータス情報129の物理パス数705の値とが異なる場合には(ステップ2004Aの結果が「yes」)、クラスタステータス情報129の物理パス数705に物理パス数Mの値を設定する(ステップ2004B)。
さらに、正副比率管理部124のプロセッサ143は、クラスタステータス情報129のステータス702の値が「計算機障害復旧中」であるか否かを判定する(ステップ2005A)。クラスタステータス情報129のステータス702の値が「計算機障害復旧中」である場合には(ステップ2005Aの結果が「yes」)、信頼度設定情報131から適用する信頼度902(=R)を取得し(ステップ2005B)、正副比率を「M−R:R」に設定する(ステップ2007)。その後、正副比率算出処理を終了する。
一方、クラスタステータス情報129のステータス702の値が「計算機障害復旧中」でない場合には(ステップ2005Aの結果が「no」)、正副比率を「M/2:M/2」に設定し(ステップ2009)、正副比率算出処理を終了する
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧開始」の場合には(ステップ2003の結果が「yes」)、ステップ2006及びステップ2007の処理を実行する。なお、ステップ2006及びステップ2007の処理は、図16に示したステップ1604及びステップ1605の処理と同じである。
正副比率管理部124のプロセッサ143は、取得されたイベント種別が「計算機障害復旧終了」の場合には(ステップ2002の結果が「yes」)、ステップ2008及びステップ2009の処理を実行する。なお、ステップ2008及びステップ2009の処理は、図16に示したステップ1606及びステップ1607の処理と同じである。
本発明の第2の実施の形態によれば、障害パスを特定するイベントを取得したタイミングで、障害の発生によって減少した物理パスに正副比率を適用して再割り当てを行うことによって、パス障害発生後も計算機の状態に応じたサービスレベルを提供することができる。具体的には、4本の物理パスを、正副比率3:1として送受信している間に、障害パス特定イベントを取得すると、さらなるパス障害への耐性を確保するために、障害パス1本を除いた3本において、2本を正系パス、1本を副系パスに割り当てるよう正副比率を変更する。
(第3の実施の形態)
本発明の第1の実施の形態では、受信したパケットが送信パケットであるか冗長パケットであるかにかかわらず、受信部において、受信データ検査部が共通に処理していたが、本発明の第3の実施の形態では、論理パスごとに受信データ検査部を設ける。
このように構成することによって、フィルタリング処理に割り当てられるリソースを分割することによって負荷を分散させ、排他処理による負荷を軽減させることができる。さらに、データ格納領域を分割することによって、バッファオーバーフローが発生する可能性を低減させることができる。
なお、第3の実施の形態において、第1の実施の形態と共通する内容については適宜説明を省略する。
本発明の第3の実施の形態における送信先計算機101Bの受信部1026Bの構成について、図21を参照しながら説明する。
図21は、本発明の第3の実施の形態の受信部1026Bの構成を示すブロック図である。
本発明の第3の実施の形態の受信部1026Bは、受信データ検査部2101A、受信データ検査部2101B、受信レジスタ2102、送信パケット格納部2103及び冗長パケット格納部2104を含む。
また、LA制御部1024Bは、第1の実施の形態では、正系又は副系を問わず、パケットを受信していたが、第3の実施の形態では、正系パス2111A又は副系パス2111Bに分けてパケットを受信する。
受信データ検査部2101Aは、正系パス2111Aから受信した送信パケットに対し、図19に示したフィルタリング処理を実行する。このとき、受信した送信パケットは、送信パケット格納部2103に格納される。
同様に、受信データ検査部2101Bは、副系パス2111Bから受信した冗長パケットに対して図19に示したフィルタリング処理を実行する。このとき、受信した冗長パケットは、冗長パケット格納部2104に格納される。
ここで、受信データ検査部2101A及び受信データ検査部2101Bは、正副比率管理部124から送信される正副比率204を受信し、必要に応じて送信パケット格納部2103と冗長パケット格納部2104の領域サイズを変更することができる。
領域サイズを変更する第1の方法として、正副比率に一致するサイズを割り当てる方法がある。具体的には、正副比率が「3:1」である場合、送信パケット格納部2103と冗長パケット格納部2104との領域サイズの比率が3:1になるようにサイズを変更する。このようにサイズを変更することによって、冗長パケットの格納に必要なサイズだけ冗長パケット格納部2104に割り当てることが可能となり、領域サイズの総量を効率よく利用することができる。
領域サイズを変更する第2の方法として、正副比率の正系パスの比率よりも大きくなるように送信パケット格納部2103のサイズに割り当てる方法がある。具体的には、正副比率が「3:1」である場合、例えば、送信パケット格納部2103と冗長パケット格納部2104との領域サイズの比率が「5:1」となるように変更する。このように構成することによって、冗長パケットが損失しても、送信パケットと冗長パケットが同時にバッファオーバーフローによって損失しないように、送信パケットに優先的にデータ格納領域を割り当てることができる。
本発明の第3の実施の形態によれば、送信先計算機におけるフィルタリング処理を負荷分散させることができる。また、送信パケット及び冗長パケットを格納するデータ格納部の比率を正副比率に連動させることによって、バッファオーバーフローの可能性を低減させることができる。