説明

冗長化装置及び冗長化プログラム

【課題】クラスタシステムを構成するサーバ間でデータ通信する通信手段の冗長化において、通信手段自体が故障した場合でも使用可能な通信手段に切り替えることができる冗長化装置及びプログラムを提供する。
【解決手段】本発明の冗長化装置は、クラスタシステムを構成する他のサーバとの間でデータ通信を行う複数の通信手段の冗長化を行う冗長化装置において、複数の通信手段のうち、データ通信に使用する通信手段を設定する冗長化設定手段と、複数の通信手段のそれぞれの通信機能を監視する通信監視手段と、通信監視手段によりデータ通信に使用する通信手段の障害が検出されると、冗長化設定手段に対して、他の通信手段への切り替え指示を行う切替指示手段とを備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、冗長化装置及び冗長化プログラムに関し、例えばクラスタ構成をとるサーバ間でネットワークを直結した場合に、サーバのネットワークデバイスの冗長化を実現する冗長化装置及びプログラムに適用し得るものである。
【背景技術】
【0002】
一般的に、システムの信頼性を向上させるために、通信機器を使用するサーバは、現用系サーバと待機系サーバとを組み合わせたHA(High Availability)クラスタシステムを採用することが多い。
【0003】
HAクラスタシステムでは、各サーバが、相手サーバの死活監視及びデータ同期を行うために、プライベートLANにてサーバ間を接続するのが一般的である。このサーバ間のLAN接続をインターコネクトLANと呼んでいる。
【0004】
インターコネクトLANは、サーバ間で多量なデータをやり取りするため、他のサーバのデータ通信の影響を受けないようにする必要があり、サーバ間に専用のネットワーク装置(例えば、NWスイッチなど)を配置させたり、若しくは、サーバ間を直結して接続したりするケースが多く採用されている。
【0005】
例えば、図2は、NWスイッチを用いたインターコネクトLANの接続構成例を示す構成図であり、図3は、サーバ間を直結したインターコネクトLANの接続構成例を示す構成図である。
【0006】
図2において、インターコネクトLANは、HAクラスタ構成をとるサーバAとサーバBとの間に、NWスイッチSWが置かれる。サーバA及びサーバBは、NWスイッチSWを介して、相手サーバとの間でデータ授受を行うことで、相手サーバの死活監視やデータ同期を実現する。
【0007】
図3に例示するインターコネクトLANは、NWスイッチを介在させることなく、サーバAとサーバBとに直結してデータ授受を行う。つまり、各サーバのネットワークデバイスは、NWスイッチを介さず、直接相手サーバのNWデバイスとデータ授受を行う。
【0008】
また、特許文献1には、ネットワークの障害耐性を高めるために、運用リンクと予備リンクとを設けて、ネットワークに対する冗長性を付与する技術が記載されている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−349764号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
上述したように、図2に例示したNWスイッチを用いたインターコネクトLANを構成する場合、サーバ間にNWスイッチSWを置くことが必要なので、その分コストが増加するという問題が生じ得る。また、NWスイッチSWの障害発生も生じ得るので、NWスイッチSWの障害によるシステムの信頼性の低下という問題も生じ得る。
【0011】
また、図3に例示したサーバ間を直結したインターコネクタLANを構成する場合、NWスイッチを置く必要がないので、その分コストを抑えることはできる。しかし、サーバが複数のネットワークデバイス(例えばNIC等)を備えて、ネットワークデバイスの冗長化を実現する際に、次のような問題が生じ得る。
【0012】
例えば、Linux(登録商標)の場合、ネットワークデバイスの冗長化は、カーネルのモジュールであるbondingモジュールというソフトウェアを使用して行う。bondingは、複数のネットワークデバイスを監視し、正常に動作するネットワークデバイスを選択し、ネットワークデバイスの障害時には他のネットワークデバイスに切り替える機能である。
【0013】
bondingによるネットワークデバイスの監視方式には、ARP監視方式とMIIリンク監視方式とがある。ARP監視方式は、指定したIPアドレスに対して定期的にARPパケット(ARP信号)を送信し、その応答の受信に基づいて障害の有無を監視する方法である。一方、MIIリンク監視方式は、ネットワークデバイスのポートリンクのリンク状態に基づいて障害の有無を監視する方法である。
【0014】
図4は、bondingにおけるARP監視方式を説明する説明図である。図4に示すように、bondingにおけるARP監視は、ARPカウンタを用いて、ARPパケットの送達確認を行う。
【0015】
例えば、図4において、サーバA及びサーバBは、それぞれ2つのネットワークデバイス(NWデバイス)10A−1〜10A−2及び10B−1〜10B−2を有する。サーバAのNWデバイス10A−1は、サーバBのNWデバイス10B−1とLAN接続している。bondingにおけるARP監視の場合、NWデバイス10A−1とNWデバイス10B−1との間で、定期的にARPパケットが送受信される。
【0016】
このとき、NWデバイス10A−1及び10B−1のNWデバイスドライバは、ARPパケットが送受信されるたびに、ARPカウンタ20A−1及び20B−1のカウンタ値を更新する。
【0017】
一方、NWデバイス10A−2及び10B−2のNWデバイスドライバは、ARPカウンタ20A−2及び20B−2のカウンタ値に変動させない。
【0018】
各サーバにおいて、bondingは、ARPカウンタを監視しており、カウンタ値の更新がなされている場合には、正常にARPパケットが送受信されており、NWデバイスが正常に動作していることを判断する。従って、図4の例の場合、サーバA及びサーバBにおけるbondingは、カウンタ値が更新されているNWデバイス10A−1及びNWデバイス10B−1を選択して通信を行う。
【0019】
しかし、例えばLinuxシステムでのARP監視は、NWデバイスドライバに依存する。つまり、NWデバイスドライバがARPカウンタの更新機能を有している場合には対応できるが、そうでない場合にはARP監視機能を対応することができない。
【0020】
従来、サーバ間を直結したインターコネクトLANを構成する場合には、ARP監視方式を使用する場合が多い。しかし、上記の理由もあり、bondingを使用する場合には、MIIリンク監視方式を採用することが一般的である。そこで、サーバ間を直結したインターコネクトLANを構成する場合でも、MIIリンク監視方式を採用することが望まれている。
【0021】
ところが、bondingにおけるMIIリンク監視方式を採用する場合、以下のような課題が生じ得る。
【0022】
例えば、図5において、サーバAのNWデバイス10A−1とサーバBのNWデバイス10B−1のLANポートがリンクアップしているのに対して、サーバAのNWデバイス10A−2とサーバBのNWデバイス10B−2のLANポートがリンクダウンしている。
【0023】
この場合、サーバA及びサーバBにおいて、LANポートがリンクアップしているNWデバイス10A及びNWデバイス10B−1が選択されるが、LANポートがリンクアップしている状態であっても、ネットワークデバイス自体が故障している場合には、NWデバイスの切り替えができず、使用可能なNWデバイスの選択ができないという問題もある。
【0024】
また、MIIリンク監視方式は、LANポートのリンク状態を監視するものであるから、ポートの先の状態(例えば回線の障害など)を見ることができないという問題もある。
【0025】
そのため、LANポートがリンクアップしているネットワークデバイスが故障した場合でも、使用可能なネットワークデバイスへの切り替え及び選択ができる冗長化システム及び冗長化プログラムが求められている。
【課題を解決するための手段】
【0026】
かかる課題を解決するために、第1の本発明の冗長化装置は、クラスタシステムを構成する他のサーバとの間でデータ通信を行う複数の通信手段の冗長化を行う冗長化装置において、(1)複数の通信手段のうち、データ通信に使用する通信手段を設定する冗長化設定手段と、(2)複数の通信手段のそれぞれの通信機能を監視する通信監視手段と、(3)通信監視手段によりデータ通信に使用する通信手段の障害が検出されると、冗長化設定手段に対して、他の通信手段への切り替え指示を行う切替指示手段とを備えることを特徴とする。
【0027】
第2の本発明の冗長化プログラムは、クラスタシステムを構成する他のサーバとの間でデータ通信を行う複数の通信手段の冗長化を行う冗長化プログラムにおいて、コンピュータを、(1)複数の通信手段のうち、データ通信に使用する通信手段を設定する冗長化設定手段、(2)複数の通信手段のそれぞれの通信機能を監視する通信監視手段、(3)通信監視手段によりデータ通信に使用する通信手段の障害が検出されると、冗長化設定手段に対して、他の上記通信手段への切り替え指示を行う切替指示手段として機能させることを特徴とする。
【発明の効果】
【0028】
本発明によれば、リンクアップしている状態でネットワークデバイス(通信手段)が故障した場合でも、使用可能なネットワークデバイスへの切り替え及び選択ができる。
【図面の簡単な説明】
【0029】
【図1】実施形態のHAクラスタシステムの全体構成及びサーバの内部構成を示す構成図である。
【図2】従来のNWスイッチを用いたインターコネクトLANの接続構成例を示す構成図である。
【図3】従来のサーバ間を直結したインターコネクトLANの接続構成例を示す構成図である。
【図4】従来のbondingにおけるARP監視方式を説明する説明図である。
【図5】従来のbondingにおけるMIIリンク監視方式を採用する場合
【図6】実施形態のネットワークデバイスの冗長化処理の動作を説明する説明図である。
【発明を実施するための形態】
【0030】
(A)実施形態
以下では、本発明の冗長化装置及び冗長化プログラムの実施形態について図面を参照しながら説明する。
【0031】
この実施形態は、例えば、2台のサーバ間で直結したインターコネクトLANを構成するHAクラスタシステムにおいて、各サーバのネットワークデバイスの冗長化を実現する技術に本発明を適用する場合を例示する。
【0032】
(A−1)実施形態の構成
図1は、実施形態のHAクラスタシステムの全体構成及びサーバの内部構成を示す構成図である。
【0033】
図1において、実施形態のHAクラスタシステム1は、サーバAとサーバBの2台のサーバ間で構成される。
【0034】
サーバA及びサーバBは、所定のサービスを提供するものである。サーバA及びサーバBは、一般的なサーバを適用することができ、そのハードウェア構成は、例えば、制御部、記憶部、通信部などを有して構成されるものである。また、サーバA及びサーバBにおけるオペレーティングシステム(OS)は、特に限定されるものではなく広く適用することができる。この実施形態では、例えばLinux(登録商標)を適用する場合を例示する。
【0035】
サーバA及びサーバBは、HAクラスタを構成しており、NWスイッチを介さず、LANケーブルを直結してインタークラスタLANを構成するものである。サーバA及びサーバBは、インタークラスタLANにて、それぞれ相手サーバの死活監視やデータ同期を行うものである。
【0036】
図1において、サーバA及びサーバBは、内部構成として、制御部30A及び30B、NWデバイス10A−1〜10A−2及び10B−1〜10B−2、記憶部40A及び40Bを少なくとも有する。サーバAとサーバBの内部構成は同じであるので、以下では、説明便宜上、サーバAの内部構成を説明する。
【0037】
NWデバイス10A−1及び10A−2は、相手サーバであるサーバBとの間でデータ通信を行う通信手段である。NWデバイス10A−1及び10A−2は、サーバBが備えるNWデバイス10B−1及び10B−2と直接LANケーブルと接続してデータ通信を行うものである。
【0038】
なお、NWデバイス10A−1及び10A−2は、データ通信を行うことができれば種々のデバイスを適用することができ、例えば、ネットワークインターフェースカード(NIC)等を適用することができる。また、図1では、サーバAが2個のNWデバイスを有する場合を例示するが、3個以上有するようにしてもよい。
【0039】
制御部30Aは、サーバAの機能を司る処理部又は装置である。この実施形態において、制御部30Aは、ネットワークデバイスの冗長化を実現する冗長化機能を有する。ネットワークデバイスの冗長化機能は、複数のNWデバイス10A−1及び10A−2を監視し、いずれかのNWデバイスを用いてデータ通信させ、障害発生時に、データ通信を実行させるNWデバイスとして、他のNWデバイスに切り替える機能である。
【0040】
図1に示すように、制御部30Aの冗長化機能は、bonding機能部31、NWデバイス監視・障害検出機能部32、NWデバイス切り替え機能部33を少なくとも有する。
【0041】
bonding機能部31は、データ通信に用いるNWデバイス10A−1及び10A−2のいずれかを選択して切り替えるものである。NWデバイス10A−1及び10A−2のLANポートのリンク状態に基づいてデータ通信に用いるNWデバイスを設定するMIIリンク監視方式を採用するものである。
【0042】
また、bonding機能部31は、NWデバイス切り替え機能部33から切り替え指示を受けると、データ通信に用いるNWデバイス10A−1及び10A−2の切り替えを行うものである。
【0043】
bonding機能部31は、例えば、Linux(登録商標)のbondingモジュールを適用することができる。bonding機能部31のbonding設定の方法は、既存のbondingモジュールの設定方法を用いることができ、例えば、実装するNWデバイス10A−1及び10A−2の設定(NWデバイス名やアドレス情報の設定等)や、パラメータの設定(例えば、動作モードの設定、MII監視のインターバル設定、優先的に動作させるNWデバイスの指定等)などを行う。各NWデバイスの設定や各パラメータの設定は予め行っておき、MIIリンク監視方式による監視結果やNWデバイス切り替え機能部33からの指示に応じて、運用するNWデバイスの切り替えを行う。
【0044】
NWデバイス監視・障害検出機能部32は、NWデバイス10A−1及び10A−2の通信機能を監視し、NWデバイス10A−1及び10A−2の障害を検出すると、NWデバイス切り替え機能部33に対して障害検出通知を行うものである。
【0045】
NWデバイス監視・障害検出機能部32によるNWデバイス10A−1及び10A−2の障害検出は、例えば、NWデバイス10A−1及び10A−2が行うICMP(Internet Control Message Protocol)による接続確認に基づいて検出する方法を適用することができる。
【0046】
例えば、NWデバイス10A−1及び10A−2が、サーバBのNWデバイス10B−1及び10B−2に対してICMP要求信号を送信する。これに対して、接続や通信機能が正常なNWデバイス10B−1及び10B−2は、ICMP応答信号をNWデバイス10A−1及び10A−2に対して返信する。NWデバイス監視・障害検出機能部32は、そのICMP応答信号がNWデバイス10A−1及び10A−2に返信されたか否かを監視している。ICMP応答信号の返信がある場合、当該NWデバイス間は正常に接続されており、両サーバのNWデバイスは正常に通信機能を動作していると判断することができる。一方、ICMP応答信号の返信がない場合には、当該NWデバイス間で何かしらの障害が生じていることを判断することができる。
【0047】
MIIリンク監視方式を採用するbonding機能部31は、LANポートのリンク状態を監視するものであり、NWデバイス自体の故障を認識することができない。しかし、この実施形態のように、NWデバイス監視・障害検出機能部32を備えることにより、NWデバイス自体の故障も検出することができる。また、正常に動作しているNWデバイスも認識することができる。
【0048】
なお、NWデバイス監視・障害検出機能部32は、正常に動作しているNWデバイスも認識することができるので、3個以上のNWデバイスを実装する場合、障害発生時に、正常に動作しているNWデバイスを、NWデバイス切り替え機能部33に通知するようにしてもよい。この通知は、例えば、NWデバイス名やアドレス情報などの識別情報を障害検出通知に付与することで実現できる。
【0049】
NWデバイス切り替え機能部33は、NWデバイス監視・障害検出機能部32から障害検出通知を受けると、bonding機能部13に対して、データ通信を実行するNWデバイス10A−1及び10A−2の切り替え指示を行うものである。
【0050】
ここで、NWデバイス切り替え機能部33は、NWデバイス監視・障害検出機能部32の監視結果に基づいて、切り替え先のNWデバイス10A−1及び10A−2の正常動作を確認するようにしてもよい。
【0051】
また、例えば、3個以上のNWデバイスを実装する場合に、正常動作しているNWデバイスが複数あるとき、NWデバイス切り替え機能部33は、複数のNWデバイスのうちいずれか1個のNWデバイスを選択決定するようにしてもよい。このとき、NWデバイスの選択方法は、種々の方法を適用することができるが、例えば、予め設定した順位(例えば優先順位)に従って選択する方法や、ICMP要求信号に対する応答時間が早いものを選択する方法や、ランダムに選択する方法などを適用するようにしてもよい。
【0052】
記憶部40Aは、サーバ処理に必要なデータを記憶する記憶領域である。記憶部40Aは、相手サーバとの間で同期したデータを記憶するものである。
【0053】
(A−2)実施形態の動作
次に、この実施形態のHAクラスタシステム1を構成するサーバのネットワークデバイスの冗長化処理の動作について図面を参照しながら説明する。
【0054】
図6は、この実施形態のネットワークデバイスの冗長化処理の動作を説明する説明図である。
【0055】
図6において、各サーバA及びサーバBでは、MIIリンク監視方式を採用するbonding機能部31により、実装された各NWデバイスの設定及び各パラメータの設定が予め行われている。
【0056】
障害発生前、サーバA及びサーバBは、NWデバイス10A−2及び10B−2を運用デバイスとしてデータ通信しており、その後にサーバBのNWデバイス10B−2自体が故障した場合を仮定して説明する。
【0057】
各サーバA及びサーバBにおいて、bonding機能部31は、MIIリンク監視方式を採用しているので、LANポートのリンク状態を監視している。NWデバイス10B−2自体が故障しても、NWデバイス10A−2及び10B−2のLANポートがリンクアップしている場合、bonding機能部31は障害を検出することができない。
【0058】
サーバAにおいて、NWデバイス監視・障害検出機能部32は、NWデバイス10A−1とNWデバイス10B−1との間の通信機能が正常に行われているか否かを監視する(S1)。
【0059】
例えば、NWデバイス監視・障害検出機能部32は、NWデバイス10A−1が、NWデバイス10B−1に対してICMP要求信号(例えばPingコマンドの要求パケット等)を送信し、NWデバイス10B−1からICMP応答信号(例えば、Pingに対する応答パケット等)の返信があるか否かを判断する。
【0060】
ここで、ICMP要求信号の送信について、NWデバイス監視・障害検出機能部32は、リンクアップした状態でNWデバイスが故障して動作が停止したことをトリガとすることができる。すなわち、LANポートはリンクアップしているが、NWデバイスがハングアップしている状態をトリガとすることができる。そして、NWデバイス監視・障害検出機能部32は、タイムアウト時間内に、ICMP要求信号に対するICMP応答信号が返信されるかどうかを判断する。
【0061】
また、サーバAにおいて、NWデバイス監視・障害検出機能部32は、上記と同様にして、NWデバイス10A−2とNWデバイス10B−2との間の通信の正常性についても監視する(S2)。
【0062】
S1の監視により、NWデバイス監視・障害検出機能部32は、NWデバイス10B−1からICMP応答信号を受信することで、NWデバイス10A−1とNWデバイス10B−1との間の通信は正常に行われていると判断する。
【0063】
また、S2において、NWデバイス10B−2は故障している。NWデバイス10B−2はICMP応答信号の返信ができない。NWデバイス監視・障害検出機能部32は、所定のタイムアウト期間内に、NWデバイス10B−2からのICMP応答信号の受信を検出できない。従って、NWデバイス監視・障害検出機能部32は、NWデバイス10A−2とNWデバイス10B−2との間の通信は正常に行われていないと認識することができる。つまり、NWデバイス監視・障害検出機能部32は、相手サーバBのNWデバイス10B−2が故障していることを検出する(S3)。
【0064】
サーバBのNWデバイス10B−2の故障を検出すると、NWデバイス監視・障害検出機能部32は、NWデバイス切り替え機能部33に対して障害検出通知を与える(S4)。
【0065】
NWデバイス切り替え機能部33は、NWデバイス監視・障害検出機能部32から障害検出通知を受けると、bonding機能部31に対してNWデバイスの切り替え指示を行う(S5)。
【0066】
例えば、NWデバイス切り替え機能部33は、故障したNWデバイス10B−2と接続するNWデバイス10A−2側に障害が生じているので、もう一方のNWデバイス10A−1への切り替えを指示する。
【0067】
このとき、NWデバイス切り替え機能部33は、NWデバイス監視・障害検出機能部32の監視結果を受け取り、その監視結果に基づいて切り替え先であるNWデバイス10A−1が正常に機能しているか否かを判断し、正常に機能している場合に、NWデバイス10A−1への切り替えを指示するようにしてもよい。これにより、確実に正常動作しているNWデバイスへの切り替えを行うことができるので、システムの信頼性をより高めることができる。
【0068】
bonding機能部31は、NWデバイス切り替え機能部33から切り替え指示を受けると、運用デバイスをNWデバイス10A−2からNWデバイス10A−1に切り替える(S6)。これにより、LANポートがリンクアップした状態でNWデバイスが故障した場合でも、データ通信を行うNWデバイスを切り替えることができる。
【0069】
(A−3)実施形態の効果
以上のように、この実施形態によれば、NWスイッチを介さず、サーバ間を直結してインターコネクトLANを構成する場合に、MIIリンク監視方式を採用したbondingにより、安価にネットワークデバイスの冗長化を実現することができる。
【0070】
また、この実施形態によれば、MIIリンク監視方式のbondingにより、リンクアップしている状態でネットワークデバイスが故障した場合でも、ネットワークデバイスの切り替えができる。
【0071】
さらに、この実施形態によれば、MIIリンク監視方式のbondingによっても、LANポートの先の接続や通信の正常を監視することができる。
【0072】
(B)他の実施形態
上述した実施形態で例示したHAクラスタシステムは、2台のサーバ間でクラスタシステムを構成する場合を例示したが、3台以上のサーバ間であってもよい。
【0073】
上述した実施形態では、サーバのOSがLinux(登録商標)である場合を例示したが、これに限定されるものではない。他のOSであっても、ネットワークデバイスのリンク状態に応じてネットワークデバイスの切り替えを行う冗長機能を有するものであれば本発明を適用することができる。
【符号の説明】
【0074】
1…HAクラスタシステム、
10A−1及び10A−2、10B−1及び10B−2…NWデバイス、
30A及び30B…制御部、31…bonding機能部、
32…NWデバイス監視・障害検出機能部、33…NWデバイス切り替え機能部。

【特許請求の範囲】
【請求項1】
クラスタシステムを構成する他のサーバとの間でデータ通信を行う複数の通信手段の冗長化を行う冗長化装置において、
上記複数の通信手段のうち、データ通信に使用する通信手段を設定する冗長化設定手段と、
上記複数の通信手段のそれぞれの通信機能を監視する通信監視手段と、
上記通信監視手段により上記データ通信に使用する通信手段の障害が検出されると、上記冗長化設定手段に対して、他の上記通信手段への切り替え指示を行う切替指示手段と
を備えることを特徴とする冗長化装置。
【請求項2】
上記冗長化設定手段が、上記他のサーバと接続するポートのリンク状態に応じて、上記各通信手段の冗長化設定を行うものであり、
上記通信監視手段が、上記複数の通信手段と上記他のサーバの通信手段との間の接続確認に基づいて監視を行うものである
ことを特徴とする請求項1に記載の冗長化装置。
【請求項3】
上記切替指示手段が、上記通信監視手段による監視結果に基づいて、データ通信を正常に行う上記通信手段を選択して上記切り替え指示を行うものであることを特徴とする請求項1又は2に記載の冗長化装置。
【請求項4】
クラスタシステムを構成する他のサーバとの間でデータ通信を行う複数の通信手段の冗長化を行う冗長化プログラムにおいて、
コンピュータを、
上記複数の通信手段のうち、データ通信に使用する通信手段を設定する冗長化設定手段、
上記複数の通信手段のそれぞれの通信機能を監視する通信監視手段、
上記通信監視手段により上記データ通信に使用する通信手段の障害が検出されると、上記冗長化設定手段に対して、他の上記通信手段への切り替え指示を行う切替指示手段
として機能させることを特徴とする冗長化プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−75009(P2012−75009A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2010−219349(P2010−219349)
【出願日】平成22年9月29日(2010.9.29)
【出願人】(308033722)株式会社OKIネットワークス (165)
【出願人】(591051645)株式会社OKIソフトウェア (173)
【Fターム(参考)】