JP4015770B2 - クラスタシステム、サーバ計算機及び負荷分散方法 - Google Patents
クラスタシステム、サーバ計算機及び負荷分散方法 Download PDFInfo
- Publication number
- JP4015770B2 JP4015770B2 JP36370898A JP36370898A JP4015770B2 JP 4015770 B2 JP4015770 B2 JP 4015770B2 JP 36370898 A JP36370898 A JP 36370898A JP 36370898 A JP36370898 A JP 36370898A JP 4015770 B2 JP4015770 B2 JP 4015770B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- packet
- logical
- network address
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、サーバ計算機相互のサービスの引き継ぎが行われるクラスタシステムに係り、特に、パケットのフィルタリングを行うドライバ(フィルタドライバ)を持つ複数のサーバ計算機を備えたクラスタシステム、同クラスタシステムに適用されるサーバ計算機及び負荷分散方法に関する。
【0002】
【従来の技術】
従来から、複数のサーバ計算機(ノード)をネットワークで結合し、あるサーバ計算機で障害が発生しても、障害で停止したサービスを他のサーバ計算機が引き継ぐことにより、システム全体として可用性を維持できるようにしたクラスタシステムが種々開発されている。
【0003】
この種のクラスタシステムにおいて、サーバ計算機相互のサービスの引き継ぎを行うには、ネットワークアドレスとしてのIP(インターネットプロトコル)アドレスのテイクオーバが必要となる。
【0004】
【発明が解決しようとする課題】
しかし従来のクラスタシステムでは、サーバ計算機間のIPアドレスのテイクオーバのために、各サーバ計算機で動的にIPアドレスを設定したり、設定を解除したりすることができなかった。また、論理的なIPアドレスを動的に活性化させたり、非活性化させることもできず、サーバ計算機のOS(オペレーティングシステム)において、IPアドレスのテイクオーバができないという問題があった。
【0005】
そこで従来は、IPアドレスのテイクオーバを実現するために、クライアント計算機で動作するアプリケーション(クライアントアプリケーション)を改造し、クライアント計算機側にて通信相手を切り替える特別の仕組みを導入したり、ネームサービス(ホスト名とIPアドレスとを対応させるサービス)を司るサーバ(ネームサービスサーバ)を設定し、ネームサービスでホスト名とIPアドレスとの対応を切り替える必要があった。
【0006】
また、従来のクラスタシステムにおいて負荷分散を行ってシステム全体のロードバランスをとるために、クライアントアプリケーションにてサービスを提供してもらうサーバ計算機を切り替えることにより実現するか、レイヤー(Layer)4スイッチと称される特別のハードウェア機構を使用して実現していた。つまり、従来のクラスシステムにおいて負荷分散を行うには、専用のアプリケーション(アプリケーションプログラム)または専用のハードウェア機構が必要であった。
【0008】
本発明は上記事情を考慮してなされたものでその目的は、サーバ計算機にフィルタドライバを実装することにより、専用のアプリケーション、或いは専用のハードウェア機構を用いることなく負荷分散が実現でき、しかもクラスタ全体を表すネットワークアドレス(論理ネットワークアドレス)を動的に変更設定できるクラスタシステム、サーバ計算機及び負荷分散方法を提供することにある。
【0009】
【課題を解決するための手段】
本発明は、各サーバ計算機に固有の実ネットワークアドレスとは別の、クラスタ全体を表す論理ネットワークアドレスを含む通信パケットを用いた通信によりサーバ計算機間でサービスの引き継ぎが行われるクラスタシステムにおいて、上記各サーバ計算機に、2つの状態のうちのいずれか一方に任意に切り替え設定可能なフラグ情報を保持するフラグ情報保持手段と、受信パケットのフィルタリングを行うフィルタドライバとを設け、上記フィルタドライバを、パケットの受信時には、当該パケット中の送信先ネットワークアドレスが上記論理ネットワークアドレスに一致しているならば、自計算機の上記フラグ情報の状態に応じて当該パケットを破棄し、破棄しないときは、当該パケット中の上記送信先ネットワークアドレスを自計算機に固有の上記実ネットワークアドレスに書き換え、パケットの送信時には、当該パケット中の送信元ネットワークアドレスを上記論理ネットワークアドレスに書き換えるように構成したことを特徴とする。
【0010】
このような構成において、(テイクオーバされる)論理ネットワークアドレスが設定されている各サーバ計算機に保持されるフラグ情報は、当該論理ネットワークアドレスの当該計算機での有効/無効を示す。したがって、上記各計算機において、ユーザの操作、或いは計算機間の通信等により、所定のコマンド(フラグ操作コマンド)を用いて動的にフラグ情報の状態を切り替え設定し、そのフラグ情報の状態と受信パケット中の送信先ネットワークアドレスをもとに、フィルタドライバにおいて当該パケットのフィルタリングを行うことにより、クラスタシステムにおいて重要なネットワークアドレス(例えばIPアドレス)のテイクオーバが実現可能となる。
【0011】
しかも上記の構成においては、下位の階層から渡された受信パケット(具体的にはインタフェース層の処理を司る第1のドライバ、例えばネットワークアダプタドライバから渡されたパケット)を破棄しない場合(即ち受信パケット中の送信先ネットワークアドレスが論理ネットワークアドレスに一致し、且つフラグ情報が論理ネットワークアドレスの当該計算機での有効を示す状態、つまり自計算機がサービスを提供するサーバ計算機であることを示す状態の場合)、当該パケットは、当該パケット中の送信先ネットワークアドレスを上記論理ネットワークアドレスから自計算機の実ネットワークアドレスに書き換えた状態で上位階層(具体的には、ネットワーク層及びトランスポート層の処理を司る第2のドライバ、例えばTCP/IPプロトコルドライバ)に渡され、また、上位階層(第2のドライバ)から渡されるパケットの送信時には、フラグ情報が論理ネットワークアドレスの当該計算機での有効を示す状態にあるならば、当該パケット中の送信元ネットワークアドレス(自計算機の実ネットワークアドレス)が上記論理ネットワークアドレスに書き換えられた状態で下位階層(第1のドライバ)に渡されることから、OSレベルでは論理ネットワークアドレスを意識していなくても、論理ネットワークアドレスが有効なサーバ計算機とクライアント計算機との間で論理ネットワークアドレスを用いた通信が可能であり、また論理ネットワークアドレスが有効なサーバ計算機と他の(論理ネットワークアドレスが有効でない)サーバ計算機との間でも論理ネットワークアドレスを用いた通信が可能である。また、論理ネットワークアドレスのOSレベルでの管理が不要なため、当該論理ネットワークアドレスをフィルタドライバ側で動的に変更設定可能となる。
【0012】
また本発明のクライアントシステムは、各サーバ計算機に、上記のフラグ情報保持手段に代えて、論理ネットワークアドレスを送信先ネットワークアドレスとするパケットの受信時に起動されて、当該パケット中の送信元ネットワークアドレスに基づいて該当する送信元に自計算機がサービスを提供すべきであるか否かを判断する判断手段を設けると共に、下位の階層(インタフェース層)の処理を司る第1のドライバ(ネットワークアダプタドライバ)に、受信パケット中の送信先ハードウェアアドレスが自計算機に固有のハードウェアアドレス、またはブロードキャストアドレスである場合の他に、上記論理ネットワークアドレスに対応して設定される論理ハードウェアアドレスの場合にも、そのパケットを破棄せずにフィルタドライバに渡す機能を設け、上記フィルタドライバでは、パケットの受信時には、当該パケット中の送信先ネットワークアドレスが上記論理ネットワークアドレスに一致しているならば、上記判断手段の判断結果に応じて当該パケットを破棄し、破棄しないときは、パケット種別に応じて当該パケット中の送信先ネットワークアドレスを自計算機に固有の実ネットワークアドレスに書き換え、パケットの送信時には、当該パケット中の送信元ネットワークアドレスを上記論理ネットワークアドレスに、送信元ハードウェアアドレスを上記論理ハードウェアアドレスにそれぞれ書き換えるようにしたことをも特徴とする。
【0013】
このような構成においては、論理ネットワークアドレスが設定されているサーバ計算機、即ちサービスを提供する計算機としてのサーバ計算機が同時に複数存在する場合に、各クライアント計算機は、これら複数のサーバ計算機の存在を意識することなく、クラスタ全体で共通の論理ネットワークアドレスを送信先ネットワークアドレスとして指定すると共に、同じく論理ハードウェアアドレスを送信先ハードウェアアドレスとして指定してサーバ計算機との通信(接続)を行おうとしても、そのクライアント計算機のネットワークアドレス(送信元ネットワーク)に応じて、複数の計算機うちの1つだけが、実際にサービスを提供するサーバ計算機として送信元(要求元)のクライアント計算機と通信(接続)するために、つまり通信(接続)するサーバ計算機をサーバ計算機側で振り分けるために、負荷分散を図ることが可能となる。
【0014】
ここで、論理ネットワークアドレスが設定されている各サーバ計算機の判断手段が、相互に通信を行うことでサービスを提供する唯一のサーバ計算機を通信毎に決定する構成とするとよい。この場合、サービスを提供するサーバ計算機を通信毎に動的に決定できるため、一層効果的な負荷分散が実現できる。
【0015】
また、上記の構成においても、論理ネットワークアドレスのOSレベルでの管理が不要なため、当該論理ネットワークアドレスをフィルタドライバ側で動的に変更設定可能となる。
【0016】
また本発明は、上記判断手段の判断結果により上記フィルタドライバでの破棄の対象とならなかったパケットが上記論理ネットワークアドレスへのARP(アドレス解決プロトコル)要求の場合、つまりパケット種別がARP要求パケットの場合に起動され、上記論理ネットワークアドレスに対応した論理ハードウェアアドレスをセットしたARP応答パケットを組み立てて上記ネットワークアダプタドライバを介して要求元に送信させるARP要求処理手段を更に備えたことをも特徴とする。
【0017】
このARP要求処理手段を設けたことにより、クライアント計算機からの論理ネットワークアドレスに対応した論理ハードウェアアドレスを要求するARP要求パケットに対して、その要求元のクライアント計算機のネットワークアドレスで決まるサーバ計算機から、要求された論理ハードウェアアドレスがセットされたARP応答パケットが返されるため、当該クライアント計算機ではその論理ハードウェアアドレスを送信先ハードウェアアドレス、上記論理ネットワークを送信先ネットワークとする送信パケットを用いて、サーバ計算機と通信できる。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【0019】
[第1の実施形態]
図1は本発明の第1の実施形態に係るクラスタシステムの構成を示すブロック図である。
【0020】
図1において、クラスタを構成する複数のサーバ計算機、例えばサーバ計算機10a,10b、及びクライアント計算機11は、ネットワーク12により結合されている。サーバ計算機10a,10bは、TCP/IP(transmission control protocol/internet protocol)のサーバプログラム101a,101bを実行し、クライアント計算機11は、TCP/IPのクライアントプログラム111を実行する。サーバ計算機10a,10bのOS(オペレーティングシステム)は、IPアドレスの設定が動的に変更できないものとする。
【0021】
サーバ計算機10a,10bには、ネットワーク12とのインタフェースをなす、LANカード等により実現されるネットワークアダプタ(ネットワークインタフェース)102a,102bと、ネットワーク12を介しての計算機間の通信で適用されるインタフェース層の処理を司るネットワークアダプタドライバ103a,103bと、ネットワーク層及びトランスポート層の処理を司るTCP/IPプロトコルドライバ104a,104bの他に、本発明に直接関係するフィルタドライバ105a,105bが実装されている。
【0022】
サーバ計算機10a,10bには、それぞれ当該サーバ計算機10a,10bに固有の実ネットワークアドレスとしての実IPアドレスIPa,IPb(1種類とは限らない)が設定されている。また、サーバ計算機10a,10bのネットワークアダプタ102a,102bには、それぞれ当該サーバ計算機10a,10b(のネットワークアダプタ102a,102b)に固有のハードウェアアドレス(物理アドレス)としてのMAC(Media Access Control)アドレスMACa,MACbが設定されている。また、サーバ計算機10a,10bのフィルタドライバ105a,105bには、当該サーバ計算機10a,10bに共通の、クラスタ全体を表す、テイクオーバする論理ネットワークアドレスとしての論理IPアドレスIPSが動的に設定される。
【0023】
フィルタドライバ105a,105bは、ネットワークアダプタドライバ103a,103bとTCP/IPプロトコルドライバ104a,104bとの間に設けられ、ネットワークアダプタドライバ103a,103bから渡されるパケット(IPパケット)の送信先(宛先)IPアドレスによるフィルタリングを行う。フィルタドライバ105a,105bは、自計算機が上記論理IPアドレスIPSによるテイクオーバ先となるか否か、つまり論理IPアドレスIPSが有効であるか否かを、オン(on)/オフ(off)の状態により指定するためのフラグFa,Fbを有している。フラグFa,Fbは、サーバ計算機10a,10bで所定のフラグ操作コマンドを実行することで動的にオン/オフされる。この操作は、サーバ計算機10a,10b間で互いに通信を行って実行するとよい。
【0024】
フィルタドライバ105a,105bは、パケットの受信時には、当該パケット中の送信先IPアドレスとフラグFa,Fbの状態をもとに、当該パケットの破棄、当該パケット中の送信先IPアドレスを自計算機の実IPアドレスへ書き換えた状態でのTCP/IPプロトコルドライバ104a,104bへの送出、当該パケットのそのままの状態でのTCP/IPプロトコルドライバ104a,104bへの送出のいずれか1つを実行するように構成されている。またフィルタドライバ105a,105bは、パケットの送信時には、フラグFa,Fbの状態をもとに、当該パケットを、そのまま、或いは送信元IPアドレスを自計算機の論理IPアドレスに書き換えてネットワークアダプタドライバ103a,103bに送出するように構成されている。
【0025】
一方、クライアント計算機11には、ネットワーク12とのインタフェースをなすネットワークアダプタ(ネットワークインタフェース)112が実装されている。
【0026】
図2はネットワーク12を転送される通信パケット(通信データ)20の概略フォーマットを示す。
【0027】
同図に示すように、通信パケット20は、送信先MACアドレス21、送信元MACアドレス22を含むヘッダ部(イーサネットヘッダ)23、及びIPパケット24を有している。このIPパケット24は、送信先IPアドレス25及び送信元IPアドレス26を含むヘッダ部(IPヘッダ)27を有している。
【0028】
次に、図1のシステムの動作を、サーバ計算機10bからサーバ計算機10aにサービスを引き継ぐ場合のIPアドレスのテイクオーバを例に、図3のフローチャートを参照して説明する。
【0029】
まず、サーバ計算機10bからサーバ計算機10aにサービスを引き継ぐ場合、サーバ計算機10bのフィルタドライバ105bではオフ指定のフラグ操作コマンドによりフラグFbがオフされ、サーバ計算機10aのフィルタドライバ105aではオン指定のフラグ操作コマンドによりフラグFaがオンされる。またサーバ計算機10aでは、ブロードキャストアドレスを用いたアドレス解決プロトコル(Address Resolusion Protocol)通知パケット、いわゆるARP通知パケットにより、各サーバ計算機に共通の論理IPアドレスIPSと自計算機に固有の(ハードウェアアドレスとしての)MACアドレスMACaとの対を、ネットワーク12に接続されている各計算機(ノード)に通知する。これにより、クライアント計算機11はMACアドレスがMACaのサーバ計算機がテイクオーバ先であることを認識する。この場合、クライアント計算機11は、サーバ計算機からサービスを受けるには、送信先MACアドレス21がMACa、送信先IPアドレス25がIPSである通信パケット20をネットワーク12に送出すればよい。
【0030】
クライアント計算機11からネットワーク12上に送出された通信パケット20は、当該ネットワーク12に接続されている各計算機に導かれて、その計算機のネットワークアダプタで受信され、ネットワークアダプタドライバに渡される。例えばサーバ計算機10aでは、クライアント計算機11からの通信パケット20は当該サーバ計算機10a内のネットワークアダプタ102aで受信され、ネットワークアダプタドライバ103aに渡される。
【0031】
サーバ計算機10aのネットワークアダプタドライバ103aは、ネットワークアダプタ102aから渡された通信パケット20のイーサネットヘッダ23中の送信先MACアドレス21をチェックする。この例のように、送信先MACアドレス21が自サーバ計算機10a(のネットワークアダプタ102a)に固有のMACアドレスMACa、または所定のブロードキャストアドレスに一致している場合には、ネットワークアダプタドライバ103aは当該通信パケット20が自分宛のものであると判断し、当該通信パケット20からIPパケット24(イーサネットヘッダ23を取り除いた部分のパケット)を取り出して、フィルタドライバ105aに渡す。なお、送信先MACアドレス21がMACaに一致していないときは、ネットワークアダプタドライバ103aは当該通信パケット20が自分宛のものではないものとして、当該通信パケット20を破棄する。
【0032】
フィルタドライバ105aは、ネットワークアダプタドライバ103aからIPパケット24を渡されると、当該IPパケット24のIPヘッダ27中の送信先IPアドレス25をチェックし、その送信先IPアドレス25が論理IPアドレスIPSに一致するか否かを判断する(ステップS1)。
【0033】
もし、この例とは異なって、送信先IPアドレス25が論理IPアドレスIPSに一致しないならば、フィルタドライバ105aは該当するIPパケット24をそのままTCP/IPプロトコルドライバ104aに渡す(ステップS2)。
【0034】
これに対し、この例のように送信先IPアドレス25が論理IPアドレスIPSに一致するならば、フィルタドライバ105aはフラグFaの状態をチェックする(ステップS3)。もし、フラグFaがこの例のようにオンであるならば、フィルタドライバ105aは、IPパケット24中の送信先IPアドレス25(=IPS)を自計算機の実IPアドレス(ここではIPa)に書き換えて(ステップS4)、そのIPアドレス書き換え後のIPパケット24をTCP/IPプロトコルドライバ104aに渡す(ステップS2)。
【0035】
一方、この例とは異なって、フラグFaがオフであるならば、つまり自計算機において論理IPアドレスが無効であるならば、フィルタドライバ105aは送信先IPアドレス25が論理IPアドレスIPSのIPパケット24を破棄する(ステップS5)。
【0036】
以上に述べたように、フラグFaがオンのサーバ計算機10aでは、クライアント計算機11からの送信先IPアドレス25が論理IPアドレスIPSである通信パケット20を受信した場合、その通信パケット20から取り出されるIPパケット24が、送信先IPアドレス25を自計算機の実IPアドレスIPaに書き換えられた状態でTCP/IPプロトコルドライバ104aに渡される。したがってTCP/IPプロトコルドライバ104aでは、論理IPアドレスIPSを意識することなく、IPパケット24を処理して、例えばサーバプログラム101aに渡すことができる。つまり本実施形態では、OSレベルで論理IPアドレスIPSが設定されていなくても、論理IPアドレスIPSを用いたクライアント計算機11からサーバ計算機10aへの通信が実現できる。
【0037】
次にサーバ計算機10aからの送信処理について、クライアント計算機11へのパケット送信を例に、図4のフローチャートを参照して説明する。
【0038】
まず、サーバ計算機10a内のTCP/IPプロトコルドライバ104からフィルタドライバ105に、送信元IPアドレス26として自計算機の実IPアドレスIPaが設定され、送信先IPアドレス25としてクライアント計算機11の実IPアドレスが設定されたIPパケット24を含む、クライアント計算機11宛ての通信パケット20が渡されたものとする。
【0039】
すると、フィルタドライバ105aはフラグFaの状態をチェックする(ステップS11)。もし、この例のようにオンであるならば、フィルタドライバ105aはIPパケット24中の送信元IPアドレス26を論理IPアドレスIPSに書き換える(ステップS12)。そしてフィルタドライバ105aは、IPアドレス書き換え後のIPパケット24を含む通信パケット20をネットワークアダプタドライバ103aに渡して、ネットワークアダプタ102aによりネットワーク12上に送出させる(ステップS13)。
【0040】
クライアント計算機11は、このサーバ計算機10aからの自計算機宛ての通信パケット20をネットワーク12から受信して処理する。
【0041】
一方、この例とは異なってフラグFaがオフであるならば、フィルタドライバ105aはTCP/IPプロトコルドライバ104aからの通信パケット20をそのままネットワークアダプタドライバ103aに渡して、ネットワークアダプタ102aによりネットワーク12上に送出させる(ステップS13)。
【0042】
以上により、クライアント計算機11は論理IPアドレスIPSを指定してサーバ計算機10aと接続することができる。ところで、フィルタドライバ105aにて送信先IPアドレス25としての実IPアドレスIPaを論理IPアドレスIPSに書き換える処理を行わないで、論理IPアドレスIPSを用いた通信を行うためには、サーバ計算機10aのOSのレベルで論理IPアドレスIPSを設定する必要がある。これに対して本実施形態では、フィルタドライバ105aにて論理IPアドレスIPSを設定すればよく、OSに依存しない。なお本実施形態において、(フラグFaがオン状態にある)サーバ計算機10a内のフィルタドライバ105aで上記ステップS4,S12の書き換えの対象となるIPパケット(の種別)は、ARPパケットを含む。
【0043】
さて本実施形態では、サーバ計算機10aとサーバ計算機10bの間も、以下に述べるように論理IPアドレスIPSを指定して接続することが可能である。
【0044】
まず、(フラグFaがオン状態にある)サーバ計算機10aから(フラグFがオフ状態にある)サーバ計算機10bへのパケット送信時の動作は、上記したサーバ計算機10aからクライアント計算機11へのパケット送信時の動作と同様である。
【0045】
即ち、サーバ計算機10aからサーバ計算機10bにパケットを送信する場合、サーバ計算機10aでは、TCP/IPプロトコルドライバ104aからフィルタドライバ105aに対して、送信先IPアドレス25がサーバ計算機10bの実IPアドレスIPbで、送信元IPアドレス26がサーバ計算機10aの実IPアドレスIPaであるIPパケット24を含む通信パケット20が渡される。
【0046】
フィルタドライバ105aは、IPパケット24中の送信元IPアドレス26(=IPa)を論理IPアドレスIPSに書き換え、その書き換え後のIPパケット24を含む通信パケット20をネットワークアダプタドライバ103aに渡してネットワークアダプタ102aからネットワーク12上に送出させる(ステップS11〜S13)。これにより、サーバ計算機10aのネットワークアダプタ102aからネットワーク12には、送信先IPアドレス25が実IPアドレスで、送信元IPアドレス26が論理IPアドレスIPSであるサーバ計算機10b宛ての通信パケット20が送出される。
【0047】
サーバ計算機10bでは、サーバ計算機10aからの当該サーバ計算機10b宛ての通信パケット20が受信される。サーバ計算機10bで受信された通信パケット20中のIPパケット24はネットワークアダプタドライバ103bからフィルタドライバ105bに渡される。フィルタドライバ105bは、IPパケット24中の送信先IPアドレス25がこの例のように論理IPアドレスIPSでない場合、当該IPパケット24をそのままTCP/IPプロトコルドライバ104bに渡す(ステップS1,S2)。これにより、送信先IPアドレス25が自計算機10bの実IPアドレスIPbであるIPパケット24がTCP/IPプロトコルドライバ104bで処理され、例えばサーバプログラム101bに渡される。
【0048】
一方、(フラグFがオフ状態にある)サーバ計算機10bから(フラグFがオン状態にある)サーバ計算機10aへのパケット送信時の動作は、次の通りとなる。
【0049】
サーバ計算機10bからサーバ計算機10aにパケットを送信する場合、サーバ計算機10bでは、TCP/IPプロトコルドライバ104bからフィルタドライバ105bに対して、送信先IPアドレス25が論理IPアドレスIPSで、送信元IPアドレス26がサーバ計算機11bの実IPアドレスIPbであるIPパケット24を含む通信パケット20が渡される。
【0050】
フィルタドライバ105bは、この通信パケット20をそのままネットワークアダプタドライバ103bに渡して、ネットワークアダプタ102bによりネットワーク12上に送出させる(ステップS11,S13)。これにより、サーバ計算機10bのネットワークアダプタ102bからネットワーク12には、送信先IPアドレス25が論理IPアドレスIPSで、送信元IPアドレス26が実IPアドレスIPbである通信パケット20が送出される。
【0051】
サーバ計算機10aでは、サーバ計算機10bからの論理IPアドレスIPSによる宛先指定の通信パケット20が受信される。サーバ計算機10aで受信された通信パケット20中のIPパケット24はネットワークアダプタドライバ103aからフィルタドライバ105aに渡される。フィルタドライバ105aは、IPパケット24中の送信先IPアドレス25がこの例のように論理IPアドレスIPSであり、且つフラグFがオン状態にある場合(ステップS1,S3)、当該送信先IPアドレス25(=IPS)を自計算機10aの実IPアドレスIPaに書き換えてTCP/IPプロトコルドライバ104aに渡す(ステップS4,S2)。これにより、送信先IPアドレス25が自計算機10aの実IPアドレスIPaであるIPパケット24がTCP/IPプロトコルドライバ104aで処理され、例えばサーバプログラム101aに渡される。
【0052】
以上により、サーバ計算機10a,10b間、つまり論理IPアドレス(IPS)が有効なサーバ計算機10aと無効なサーバ計算機10bとの間でも論理IPアドレスを用いた通信が可能となる。
【0053】
さて、上記したサーバ計算機10a内のフィルタドライバ105aで行っているIPパケット24の書き換え(受信時の送信先IPアドレス25の書き換えと、送信時の送信元IPアドレス26の書き換え)を、サーバ計算機10b内のフィルタドライバ105bで行うようにするならば、例えばクライアント計算機11から同じ論理IPアドレスを指定した際に接続される計算機が、サーバ計算機10aからサーバ計算機10bに切り替わることになる。そのためには、例えばサーバ計算機10a,10b間で互いに通信を行って、サーバ計算機10a内のフィルタドライバ105aの持つフラグFをオフに、サーバ計算機10b内のフィルタドライバ105bの持つフラグFをオンに、それぞれ切り替えればよい。
【0054】
さて、図1のシステムにおいて、論理IPアドレスIPSを変更したい場合がある。このような場合、本実施形態では、論理IPアドレスIPSがOSレベルではなくフィルタドライバ105a,105bのレベルで管理されていることから、フィルタドライバ105a,105bで任意の論理IPアドレスIPSに変更設定すればよく、当該論理IPアドレスIPSは動的に変更設定可能である。
【0055】
なお、本実施形態ではサーバ計算機が2台の場合について説明したが、サーバ計算機が3台以上のシステムにおいても、本実施形態で適用したのと同様の手法で論理IPアドレスの実装が可能である。
【0056】
[第2の実施形態]
図5は本発明の第2の実施形態に係るクラスタシステムの構成を示すブロック図である。
【0057】
図5において、クラスタを構成する複数のサーバ計算機、例えばサーバ計算機50a,50b、及びクライアント計算機51は、ネットワーク52により結合されている。サーバ計算機50a,50bは、TCP/IPのサーバプログラム501a,501bを実行し、クライアント計算機51はTCP/IPのクライアントプログラム511を実行する。サーバ計算機50a,50bのOSは、IPアドレスの設定が動的に変更できないものとする。
【0058】
サーバ計算機50a,50bには、図1中のネットワークアダプタ102a,102b、ネットワークアダプタドライバ103a,103b、TCP/IPプロトコルドライバ104a,104b、及びフィルタドライバ105a,105bに相当する、ネットワークアダプタ502a,502b、ネットワークアダプタドライバ503a,503b、TCP/IPプロトコルドライバ504a,504b、及びフィルタドライバ505a,505bに加えて、判断部506a,506b及びARP要求処理部507a,507bが実装されている。
【0059】
サーバ計算機50a,50bには、それぞれ当該サーバ計算機50a,50bに固有の実ネットワークアドレスとしての実IPアドレスIPa,IPb(1種類とは限らない)が設定されている。また、サーバ計算機50a,50bのフィルタドライバ505a,505bには、当該サーバ計算機50a,50bに共通の、クラスタ全体を表す、テイクオーバする論理ネットワークアドレスとしての論理IPアドレスIPSが動的に設定される。また、サーバ計算機50a,50bのネットワークアダプタ502a,502bには、それぞれ当該サーバ計算機50a,50b(のネットワークアダプタ502a,502b)に固有のハードウェアアドレス(物理アドレス)としてのMAC(Media Access Control)アドレスMACa,MACbに加えて、上記論理IPアドレスIPSに対応する論理が設定されている。更に、サーバ計算機50a,50bのフィルタドライバ505a,505bには、当該サーバ計算機50a,50bに共通の、クラスタ全体を表す、テイクオーバする論理ハードウェアアドレスとしての論理MACアドレスMACSが設定される。
【0060】
ネットワークアダプタドライバ503a,503bは、ネットワークアダプタ502a,502bから通信パケット20を渡された場合、送信先MACアドレス21をチェックし、MACアドレスMACa,MACb、またはブロードキャストアドレス、または論理MACアドレスMACSのいずれかの場合に、そのIPパケット24をフィルタドライバ505a,505bに渡すように構成されている。
【0061】
フィルタドライバ505a,505bは、ネットワークアダプタドライバ503a,503bからIPパケット24を渡された場合、当該IPパケット24中の送信先IPアドレス25をチェックして、論理IPアドレスIPSに一致し、且つ判断部506a,506bから「オフ」のフラグ情報が返されたならば、当該IPトレーラ24を破棄し、論理IPアドレスIPSに一致し、且つ判断部506a,506bから「オン」が返されたならば、当該IPパケット24のパケット種別に応じた、具体的には(IPアドレスに対応するMACアドレスを問い合わせる)ARP要求であるか否かに応じた処理を行うように構成されている。ここでは、ARP要求の場合にはIPパケット24(つまりARP要求パケット)をARP要求処理部507a,507bに渡し、そうでない場合にはIPパケット24の送信先IPアドレス25を実IPアドレスIPa,IPbに置き換えてTCP/IPプロトコルドライバ504a,504bに渡す。
【0062】
またフィルタドライバ505a,505bは、送信先IPアドレス25が論理IPアドレスIPSに一致しないときは、IPパケット24をそのままTCP/IPプロトコルドライバ504a,504bに渡すように構成されている。更にフィルタドライバ505a,505bは、パケット送信時には、送信元IPアドレス26の実IPアドレスIPa,IPbから論理IPアドレスIPSへの書き換えと、送信元MACアドレス22のMACアドレスMACa,MACbから論理MACアドレスMACSへの書き換えとを行うように構成されている。
【0063】
判断部506a,506bは、フィルタドライバ505a,505bから渡されたIPパケット24中の送信先IPアドレス25が論理IPアドレスIPSの場合に当該フィルタドライバ505a,505bにより起動され、IPパケット24中の送信元IPアドレス26に基づいて、自サーバ計算機50a,50bがサービスを提供すべきか否かを示す「オン」または「オフ」のフラグ情報を当該フィルタドライバ505a,505bに返すように構成されている。
【0064】
ARP要求処理部507a,507bは、フィルタドライバ505a,505bから渡されたIPパケット24をもとに、論理IPアドレスIPSに対応した論理MACアドレスMACSをセットしたARP応答パケットを組み立て、当該フィルタドライバ505a,505bに渡すように構成されている。
【0065】
次に、図5のシステムの動作を、クライアント計算機51(のネットワークアダプタ512)からIPS宛ての通信パケット20がネットワーク52上に送出された場合を例に、図6乃至図8のフローチャートを参照して説明する。
【0066】
まず、クライアント計算機51からネットワーク52上に、IPパケット24の送信先IPアドレス25が論理IPアドレスIPSである通信パケット20、つまりIPS宛てのIPパケット24を含む通信パケット20が送出されたものとする。このクライアント計算機51からネットワーク52上に送出された通信パケット20は、当該ネットワーク52に接続されている各計算機に導かれ、その計算機のネットワークアダプタで受信される。例えば、サーバ計算機50a,50bでは、ネットワークアダプタ502a,502bにてクライアント計算機51からの通信パケット20が受信される。
【0067】
サーバ計算機50a,50bのネットワークアダプタ502a,502bで受信されたクライアント計算機51からの通信パケット20は、そのままネットワークアダプタドライバ503a,503bに渡される。
【0068】
サーバ計算機50a,50bのネットワークアダプタドライバ503a,503bは、ネットワークアダプタ502a,502bから渡された通信パケット20のイーサネットヘッダ23中の送信先MACアドレス21をチェックし(ステップS21)、当該送信先MACアドレス21がネットワークアダプタ502a,502bに固有のMACアドレスMACa,MACb、または論理MACアドレスMACS、または所定のブロードキャストアドレスのいずれかである場合に、当該通信パケット20からIPパケット24(イーサネットヘッダ23を取り除いた部分のパケット)を取り出してフィルタドライバ505a,505bに渡す(ステップS22)。これに対し、送信先MACアドレス21がMACアドレスMACa,MACb、または論理MACアドレスMACS、または所定のブロードキャストアドレスのいずれでもない場合には、ネットワークアダプタドライバ503a,505bは、通信パケット20を破棄する(ステップS23)。
【0069】
サーバ計算機50a,50bのフィルタドライバ505a,505bは、ネットワークアダプタドライバ503a,503bからIPパケット24を渡されると、当該IPパケット24中の送信先IPアドレス25をチェックし、その送信先IPアドレス25が論理IPアドレスIPSに一致するか否かを判断する(ステップS31)。
【0070】
もし、この例とは異なって、送信先IPアドレス25が論理IPアドレスIPSに一致しないならば、フィルタドライバ505a,505bは該当するIPパケット24をそのままTCP/IPプロトコルドライバ504a,504bに渡す(ステップS32)。
【0071】
これに対し、この例のように送信先IPアドレス25が論理IPアドレスIPSに一致するならば、フィルタドライバ505a,505bは、該当するIPパケット24を判断部506a,506bに渡して、その判断部506a,506bから判断結果が返されるのを待つ(ステップS33)。
【0072】
サーバ計算機50a,50bの判断部506a,506bは、フィルタドライバ505a,505bから渡されたIPパケット24中の送信元IPアドレス26をチェックし(ステップS41a,S41b)、当該送信元IPアドレス26により、自サーバ計算機10a,10bで処理を続けるか否かを判断する(ステップS42a,S42b)。本実施形態では、送信元IPアドレス26が奇数アドレス(odd)、或いは偶数アドレス(even)のいずれであるかを(例えば送信元IPアドレス26の最下位ビットが“1”、或いは“0”のいずれであるかにより)調べ、そのチェック結果により処理を続けるか否かが判断される。ここでは、上記のチェック結果と判断結果とは判断部506aと506bとで逆になるように設定されている。つまり送信元IPアドレス26が奇数アドレスの場合には、判断部506aは例えば処理を続けると判断し、判断部506bは処理を続けないと判断する。これに対し、送信元IPアドレス26が偶数アドレスの場合には、上記とは逆に、判断部506aは処理を続けないと判断し、判断部506bは処理を続けると判断する。
【0073】
判断部506a,506bは、上記ステップS42a,S42bでの判断結果を表すフラグ情報をフィルタドライバ505a,505bに返す。ここでは、例えば判断部506aでは、送信元IPアドレス26が奇数アドレスのために処理を続けると判断した場合には、「オン」のフラグ情報を返し(ステップS43a)、偶数アドレスのために処理を続けないと判断した場合には「オフ」のフラグ情報を返す(ステップS44a)。一方、判断部506bでは、送信元IPアドレス26が偶数アドレスのために処理を続けると判断した場合には、「オン」のフラグ情報を返し(ステップS43b)、奇数アドレスのために処理を続けないと判断した場合には「オフ」のフラグ情報を返す(ステップS44b)。
【0074】
サーバ計算機50a,50bのフィルタドライバ505a,505bは、判断部506a,506bから判断結果としてのフラグ情報が返されると、そのフラグ情報の状態(オン/オフ)をチェックする(ステップS34)。
【0075】
もし、フラグ情報(判断結果)が「オン」であるならば、フィルタドライバ505a,505bは処理を続けるものと判断し、ネットワークアダプタドライバ503a,503bから渡されたIPパケット24が当該IPパケット24中の論理IPアドレスIPSに対応する論理MACアドレスMACSを要求するARP要求パケットであるか否かをチェックする(ステップS35)。そして、ARP要求パケットであるならば、フィルタドライバ505a,505bは当該ARP要求パケットをARP要求処理部507a,507bに渡す(ステップS36)。これに対し、ARP要求パケットでないならば、フィルタドライバ505a,505bは、IPパケット24中の送信先IPアドレス25、即ち論理IPアドレスIPSを自サーバ計算機50a,50bに固有の実IPアドレスIPa,IPbに書き換えて(ステップS37)、その書き換え後のIPパケット24をTCP/IPプロトコルドライバ504a,504bに渡す(ステップS32)。
【0076】
ARP要求処理部507a,507bは、フィルタドライバ505a,505bからARP要求パケットを渡された場合、そのパケットをもとに、論理IPアドレスIPSに対応する論理MACアドレスMACSをセットしたARP応答パケットを組み立て、そのARP応答パケットをフィルタドライバ505a,505bを介してネットワークアダプタドライバ503a,503bに渡し、ネットワークアダプタ502a,502bによりネットワーク52を介してARP要求元のクライアント計算機11へ送信させる。
【0077】
同様にTCP/IPプロトコルドライバ504a,504bは、フィルタドライバ505a,505bから(送信先IPアドレス25がサーバ計算機50a,50bの実IPアドレスIPa,IPbである)IPパケット24を渡された場合、当該IPパケット24の処理を行い、例えばサーバプログラム501a,501bに渡す。
【0078】
一方、判断部506a,506bから返されるフラグ情報(判断結果)が「オフ」であるならば、フィルタドライバ505a,505bは処理を続けないものと判断し、ネットワークアダプタドライバ503a,503bから渡されたIPパケット24を破棄して、以降の処理を行わない(ステップS38)。
【0079】
明らかなように本実施形態では、サーバ計算機50aの判断部506aからフィルタドライバ505aに「オン」のフラグ情報が返される場合には、サーバ計算機50bの判断部506bからフィルタドライバ505bには「オフ」のフラグ情報が返され、判断部506aからフィルタドライバ505aに「オフ」のフラグ情報が返される場合には、判断部506bからフィルタドライバ505bには「オン」のフラグ情報が返される。つまり本実施形態では、クライアント計算機11からの、論理IPアドレスIPS及び論理MACアドレスMACSを送信先として指定したサーバ計算機を宛先とするパケットの送信に対して、サーバ計算機50aまたは50bのうち送信元のクライアント計算機11のIPアドレスで決まるいずれか一方のサーバ計算機だけが当該パケットの処理を行い、他方のサーバ計算機は当該パケットを破棄することになるため、負荷分散が図れる。
【0080】
次にサーバ計算機50a,50bからのパケット送信処理について、図9のフローチャートを参照して説明する。
【0081】
まず、サーバ計算機50a,50bにおいて、TCP/IPプロトコルドライバ504a,504bからフィルタドライバ505a,505bに、送信元IPアドレス26として自計算機の実IPアドレスIPaが設定され、送信元MACアドレス22として自計算機(のネットワークアダプタ502a,502b)に固有のMACアドレスMACa,MACbが設定された通信パケット20が渡されたものとする。
【0082】
この場合、フィルタドライバ505a,505bは、TCP/IPプロトコルドライバ504a,504bから渡された通信パケット20中の、送信元IPアドレス26、即ち実IPアドレスIPa,IPbを、サーバ計算機50a,50bに共通の論理IPアドレスIPSに書き換えると共に、送信元MACアドレス22、即ちMACアドレスMACa,MACbを、論理IPアドレスIPSに対応した論理MACアドレスMACSに書き換える(ステップS51)。そしてフィルタドライバ505a,505bは、上記書き換え後の通信パケット20をネットワークアダプタドライバ503a,503bに渡してネットワークアダプタ502a,502bからネットワーク52上に送出させる。これにより当該通信パケット20の宛先の計算機では、送信元がサーバ計算機50aまたはサーバ計算機50bのいずれの場合でも、送信元のサーバ計算機のIPアドレスが論理IPアドレスIPSで、MACアドレスが論理MACアドレスMACSであると認識する。
【0083】
以上により、クライアント計算機51から論理IPアドレスIPSを指定してサーバ計算機へ接続すれば、クライアント計算機51のIPアドレスによって接続先のサーバ計算機を振り分けられ、負荷分散が実現する。図5では作図の都合上、クライアント計算機51が1台だけ示されているが、複数台存在する場合、IPアドレスが奇数のクライアント計算機51からの接続要求に対しては、サーバ計算機50aで処理され、IPアドレスが偶数のクライアント計算機51からの接続要求に対しては、サーバ計算機50bで処理される。
【0084】
さて、サーバ計算機50a,50bで、論理IPアドレスIPSの設定を変更したい場合には、前記第1の実施形態におけるフィルタドライバ105a,105bと同様に、フィルタドライバ505a,505bにて任意の論理IPアドレスIPSに変更設定すればよく、当該論理IPアドレスIPSは動的に変更設定可能である。
【0085】
なお、本実施形態ではサーバ計算機が2台の場合について説明したが、サーバ計算機が3台以上のシステムにおいても同様に適用可能である。但し、サーバ計算機の数が3台以上の場合には、その数をNとすると、i番目(i=1〜N)のサーバ計算機では、クライアント計算機51からのIPS宛ての通信パケット20の送信元IPアドレス26がN・n+(i−1)(但し、n=0,1,2…)の場合に、(図6中の判断部506a,506bに相当する)当該サーバ計算機内の判断部から(図6中のフィルタドライバ505a,505bに相当する)フィルタドライバに「オン」を返す構成とすることで、対処できる。
【0086】
【発明の効果】
以上詳述したように本発明によれば、ネットワーク層の前段にフィルタドライバを実装することにより、クライアントアプリケーションの改造、更にはネームサービスサーバの設定を要することなく、クラスタ全体を表すネットワークアドレス(論理ネットワークアドレス)のテイクオーバが実現できる。
【0087】
また本発明によれば、論理ネットワークアドレスによる送信先指定の受信パケットに対して、送信先ネットワークアドレスを自計算機の実ネットワークアドレスに書き換えると共に、自計算機の実ネットワークアドレスによる送信元指定の送信パケットに対しては、送信元ネットワークアドレスを論理ネットワークアドレスに書き換えることにより、ネットワークアドレスの設定変更が動的に行えないOSが搭載されているサーバ計算機においても、論理ネットワークアドレスのOSレベルでの管理が不要となるため、当該論理ネットワークアドレスをフィルタドライバ側で動的に変更設定できる。
【0088】
また本発明によれば、ネットワーク層の前段にフィルタドライバを実装し、クラスタ全体を表す論理ネットワークアドレス及び当該ネットワークアドレスに対応した論理ハードウェアアドレスによる送信先指定の受信パケットを各サーバ計算機で受信しても、フィルタドライバで、送信元ネットワークアドレスに基づいて当該パケットのフィルタリングを行い、その送信元ネットワークアドレスで決まる唯一のサーバ計算機においてのみ当該パケットを破棄せずに処理するようにしたので、各クライアント計算機が同じ論理ネットワークアドレスを送信先ネットワークとして指定して接続要求を行っても、そのクライアント計算機のネットワークアドレスによってサーバ計算機側で接続するサーバ計算機を振り分けることができ、負荷分散が実現できる。
【0089】
しかも、受信パケットを破棄せずに処理する際には、送信先ネットワークアドレスとして設定された論理ネットワークを自計算機の実ネットワークアドレスに書き換え、パケットの送信時には、当該パケット中の送信元ネットワークアドレスを上記論理ネットワークアドレスに、送信元ハードウェアアドレスを上記論理ハードウェアアドレスにそれぞれ書き換えるようにしたので、各クライアント計算機からの論理ネットワークアドレス及び論理ハードウェアアドレスを用いた指定による接続が可能となると共に、ネットワークアドレスの設定変更が動的に行えないOSが搭載されているサーバ計算機においても、論理ネットワークアドレスのOSレベルでの管理が不要となるため、当該論理ネットワークアドレスをフィルタドライバ側で動的に変更設定できる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るクラスタシステムの構成を示すブロック図。
【図2】通信パケットの概略フォーマット。
【図3】同実施形態におけるフィルタドライバでのパケット受信時の動作を説明するためのフローチャート。
【図4】同実施形態におけるフィルタドライバでのパケット送信時の動作を説明するためのフローチャート。
【図5】本発明の第2の実施形態に係るクラスタシステムの構成を示すブロック図。
【図6】同実施形態におけるネットワークアダプタドライバでのパケット受信時の動作を説明するためのフローチャート。
【図7】同実施形態におけるフィルタドライバでのパケット受信時の動作を説明するためのフローチャート。
【図8】同実施形態における判断部の動作を説明するためのフローチャート。
【図9】同実施形態におけるフィルタドライバでのパケット送信時の動作を説明するためのフローチャート。
【符号の説明】
10a,10b,50a,50b…サーバ計算機
11,51…クライアント計算機
12,52…ネットワーク
102a,102b,502a,502b…ネットワークアダプタ
103a,103b,503a,503b…ネットワークアダプタドライバ(第1のドライバ)
104a,104b,504a,504b…TCP/IPプロトコルドライバ(第2のドライバ)
105a,105b,505a,505b…フィルタドライバ
506a,506b…判断部
507a,507b…ARP(アドレス解決プロトコル)要求処理部
IPa,IPb…実IPアドレス(実ネットワークアドレス)
IPS…論理IPアドレス(論理ネットワークアドレス)
MACa,MACb…MACアドレス(ハードウェアアドレス)
MACS…論理MACアドレス(論理ハードウェアアドレス)
Fa,Fb…フラグ
Claims (4)
- 各サーバ計算機に固有の実ネットワークアドレスとは別の、クラスタ全体を表す論理ネットワークアドレスが送信先ネットワークアドレスとして設定されると共に、前記サーバ計算機に固有のハードウェアアドレスとは別の、前記論理ネットワークアドレスに対応した論理ハードウェアアドレスが送信先ハードウェアアドレスとして設定されたクライアント計算機からの通信パケットを受けて、前記各サーバ計算機のいずれか1つが前記クライアント計算機と通信を行うクラスタシステムであって、
前記各サーバ計算機は、
前記論理ネットワークアドレスを送信先ネットワークアドレスとする通信パケットの受信時に起動されて、当該パケット中の送信元ネットワークアドレスに基づいて自計算機が該当する送信元にサービスを提供すべきであるか否かを判断する判断手段と、
受信パケットのフィルタリングを行うフィルタドライバと、
インタフェース層の処理を司り、受信パケット中の送信先ハードウェアアドレスが自計算機に固有のハードウェアアドレス、前記論理ハードウェアアドレス、またはブロードキャストアドレスのいずれかの場合に前記フィルタドライバにパケットを渡すネットワークアダプタドライバとを具備し、
前記フィルタドライバは、
パケットの受信時には、当該パケット中の送信先ネットワークアドレスが前記論理ネットワークアドレスに一致しているならば、前記判断手段の判断結果に応じて当該パケットを破棄し、破棄しないときは、パケット種別に応じて当該パケット中の前記送信先ネットワークアドレスを自計算機に固有の前記実ネットワークアドレスに書き換え、パケットの送信時には、当該パケット中の送信元ネットワークアドレスを前記論理ネットワークアドレスに、送信元ハードウェアアドレスを前記論理ハードウェアアドレスにそれぞれ書き換えるように構成されていることを特徴とするクラスタシステム。 - 前記判断手段の判断結果により前記フィルタドライバでの破棄の対象とならなかったパケットが前記論理ネットワークアドレスへのアドレス解決プロトコル要求の場合に起動され、前記論理ネットワークアドレスに対応した前記論理ハードウェアアドレスをセットしたアドレス解決プロトコル応答パケットを組み立てて前記ネットワークアダプタドライバを介して要求元に送信させるアドレス解決プロトコル要求処理手段を更に具備することを特徴とする請求項1記載のクラスタシステム。
- 各サーバ計算機に固有の実ネットワークアドレスとは別の、クラスタ全体を表す論理ネットワークアドレスが送信先ネットワークアドレスとして設定されると共に、前記サーバ計算機に固有のハードウェアアドレスとは別の、前記論理ネットワークアドレスに対応した論理ハードウェアアドレスが送信先ハードウェアアドレスとして設定されたクライアント計算機からの通信パケットを受けて、前記各サーバ計算機のいずれか1つが前記クライアント計算機と通信を行うクラスタシステムに適用されるサーバ計算機であって、
前記論理ネットワークアドレスを送信先ネットワークアドレスとする通信パケットの受信時に起動されて、当該パケット中の送信元ネットワークアドレスに基づいて自計算機が該当する送信元にサービスを提供すべきであるか否かを判断する判断手段と、
受信パケットのフィルタリングを行うフィルタドライバと、
インタフェース層の処理を司り、受信パケット中の送信先ハードウェアアドレスが自計算機に固有のハードウェアアドレス、前記論理ハードウェアアドレス、またはブロードキャストアドレスのいずれかの場合に前記フィルタドライバにパケットを渡すネットワークアダプタドライバとを具備し、
前記フィルタドライバは、
パケットの受信時には、当該パケット中の送信先ネットワークアドレスが前記論理ネットワークアドレスに一致しているならば、前記判断手段の判断結果に応じて当該パケットを破棄し、破棄しないときは、パケット種別に応じて当該パケット中の前記送信先ネットワークアドレスを自計算機に固有の前記実ネットワークアドレスに書き換え、パケットの送信時には、当該パケット中の送信元ネットワークアドレスを前記論理ネットワークアドレスに、送信元ハードウェアアドレスを前記論理ハードウェアアドレスにそれぞれ書き換えるように構成されていることを特徴とするサーバ計算機。 - 各サーバ計算機に固有の実ネットワークアドレスとは別の、クラスタ全体を表す論理ネットワークアドレスが送信先ネットワークアドレスとして設定されると共に、前記サーバ計算機に固有のハードウェアアドレスとは別の、前記論理ネットワークアドレスに対応した論理ハードウェアアドレスが送信先ハードウェアアドレスとして設定されたクライアント計算機からの通信パケットを受けて、前記各サーバ計算機のいずれか1つが前記クライアント計算機と通信を行うクラスタシステムに適用される負荷分散方法であって、
インタフェース層の処理を司る第1のドライバで受信したパケットの送信先ハードウェアアドレスが自計算機に固有のハードウェアアドレス、前記論理ハードウェアアドレス、またはブロードキャストアドレスのいずれかの場合に、そのパケットを前記第1のドライバとネットワーク層及びトランスポート層の処理を司る第2のドライバとの間に配置したフィルタドライバに渡し、
前記フィルタドライバにて、前記第1のドライバから受け取ったパケット中の送信先ネットワークアドレスを調べ、前記論理ネットワークアドレスに一致しているならば、当該パケット中の送信元ネットワークアドレスに基づいて、該当する送信元に自計算機がサービスを提供すべき計算機であるか否かを調べ、その結果に応じて当該パケットを破棄し、破棄しないときは、パケット種別に応じて当該パケット中の前記送信先ネットワークアドレスを自計算機に固有の前記実ネットワークアドレスに書き換えて前記第2のドライバに渡し、
前記第2のドライバから渡されたパケットの送信時には、当該パケット中の送信元ネットワークアドレスを前記論理ネットワークアドレスに、送信元ハードウェアアドレスを前記論理ハードウェアアドレスにそれぞれ書き換えて前記第1のドライバに渡すことを特徴とする負荷分散方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36370898A JP4015770B2 (ja) | 1998-12-22 | 1998-12-22 | クラスタシステム、サーバ計算機及び負荷分散方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36370898A JP4015770B2 (ja) | 1998-12-22 | 1998-12-22 | クラスタシステム、サーバ計算機及び負荷分散方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000187632A JP2000187632A (ja) | 2000-07-04 |
JP4015770B2 true JP4015770B2 (ja) | 2007-11-28 |
Family
ID=18479993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36370898A Expired - Fee Related JP4015770B2 (ja) | 1998-12-22 | 1998-12-22 | クラスタシステム、サーバ計算機及び負荷分散方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4015770B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4021780B2 (ja) * | 2003-02-20 | 2007-12-12 | 富士通株式会社 | 計算機ノード、クラスタシステム、クラスタ管理方法、クラスタ管理プログラム |
US7499451B2 (en) | 2003-02-20 | 2009-03-03 | Fujitsu Limited | Computer node, cluster system, cluster managing method, and cluster managing program |
US7313619B2 (en) | 2003-03-21 | 2007-12-25 | Intel Corporation | System and method for managing distributed objects as a single representation |
JP4579623B2 (ja) * | 2004-08-27 | 2010-11-10 | キヤノン株式会社 | 情報処理装置及び受信パケットのフィルタリング処理方法 |
US8134928B1 (en) | 2005-12-15 | 2012-03-13 | Nvidia Corporation | Technique for identifying a failed network interface card within a team of network interface cards |
US7995465B2 (en) * | 2007-05-18 | 2011-08-09 | Nvidia Corporation | Intelligent load balancing and failover of network traffic |
US8300647B2 (en) | 2007-05-18 | 2012-10-30 | Nvidia Corporation | Intelligent load balancing and failover of network traffic |
US7792018B2 (en) | 2007-05-18 | 2010-09-07 | Nvidia Corporation | Intelligent load balancing and failover of network traffic |
US8432788B2 (en) | 2007-05-18 | 2013-04-30 | Nvidia Corporation | Intelligent failback in a load-balanced networking environment |
-
1998
- 1998-12-22 JP JP36370898A patent/JP4015770B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000187632A (ja) | 2000-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3372455B2 (ja) | パケット中継制御方法,パケット中継装置およびプログラム記憶媒体 | |
US7363347B2 (en) | Method and system for reestablishing connection information on a switch connected to plural servers in a computer network | |
US6999998B2 (en) | Shared memory coupling of network infrastructure devices | |
US6397260B1 (en) | Automatic load sharing for network routers | |
US7991914B2 (en) | Technique for addressing a cluster of network servers | |
US7339895B2 (en) | Gateway device and control method for communication with IP and IPV6 protocols | |
US6687222B1 (en) | Backup service managers for providing reliable network services in a distributed environment | |
US20060206611A1 (en) | Method and system for managing programs with network address | |
US6370583B1 (en) | Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image | |
US20030101275A1 (en) | Information processing system accessed through network and control method of packet transfer load | |
JP2002533998A (ja) | プロセッサクラスタを有する電気通信プラットホーム用のインターネットプロトコルハンドラ | |
JPH06205014A (ja) | 経路指定方法及び装置 | |
JPH0621944A (ja) | ネットワーク資源を遠隔のネットワークに拡張するシステム | |
US20050271049A1 (en) | DHCP cache method and apparatus | |
JP4015770B2 (ja) | クラスタシステム、サーバ計算機及び負荷分散方法 | |
US20050125511A1 (en) | Intelligent local proxy for transparent network access from multiple physical locations | |
US8209371B2 (en) | Method and system for managing communication in a computer network using aliases of computer network addresses | |
US20090285206A1 (en) | Network system and data transfer method | |
JP5018969B2 (ja) | 通信制御プログラム、通信制御装置、通信制御システムおよび通信制御方法 | |
US20020156898A1 (en) | Methods, systems and computer program products for communicating with unconfigured network devices on remote networks | |
JP3609948B2 (ja) | マルチプロトコルネットワーク管理方法、マルチプロトコルネットワーク管理プロキシサーバシステム、マルチプロトコルアドレス管理サーバシステム、および、マルチプロトコルネットワーク管理システム | |
JPH10320327A (ja) | 二重化された通信アダプタの切替方法、切替方式、および切替用プログラムを格納した記録媒体 | |
JP2003234752A (ja) | タグ変換を用いた負荷分散方法及びタグ変換装置、負荷分散制御装置 | |
JP3645852B2 (ja) | 負荷分散方法、コンテンツ配信システム及び負荷分散装置 | |
JP3974925B2 (ja) | サーバ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040924 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070619 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070808 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070911 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070914 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100921 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100921 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100921 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110921 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120921 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120921 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130921 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |