JP3910967B2 - 2重化システム及び多重化制御方法 - Google Patents

2重化システム及び多重化制御方法 Download PDF

Info

Publication number
JP3910967B2
JP3910967B2 JP2004071495A JP2004071495A JP3910967B2 JP 3910967 B2 JP3910967 B2 JP 3910967B2 JP 2004071495 A JP2004071495 A JP 2004071495A JP 2004071495 A JP2004071495 A JP 2004071495A JP 3910967 B2 JP3910967 B2 JP 3910967B2
Authority
JP
Japan
Prior art keywords
server
client
computers
computer
connection
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
Application number
JP2004071495A
Other languages
English (en)
Other versions
JP2005258947A (ja
Inventor
浩太郎 遠藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2004071495A priority Critical patent/JP3910967B2/ja
Publication of JP2005258947A publication Critical patent/JP2005258947A/ja
Application granted granted Critical
Publication of JP3910967B2 publication Critical patent/JP3910967B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、相互に通信可能な2台のサーバコンピュータから構成され、当該2台のサーバコンピュータのいずれか一方が稼動系として動作し、他方が待機系として動作する2重化システム及び多重化制御方法に関する。
近年、コンピュータ技術やネットワーク技術の向上は目覚ましく、これに伴って、業務のコンピュータ処理化が広く行われている。しかし、業務の内容によっては、故障などによる中断が許されないものも多い。そこで最近では、複数のコンピュータをネットワークで結合した分散システムを構築することが一般的になりつつある。
分散システムの運用手法の1つとして、コンピュータの処理の多重化が知られている。分散システムでは、各コンピュータが独立に故障する可能性がある。仮に、1つのコンピュータが故障しただけでシステム全体が機能しないシステムでは、システムの稼働率は、1台のコンピュータの稼働率よりも低くなってしまう。かかる事態を防止するために、システム全体に係わる処理は多重化することが必要である。逆に、多重化することによって、分散システムの稼働率を1台のコンピュータの稼働率よりも高くすることが可能である。例えば、稼働率99パーセントのコンピュータ2台で構成する分散システムが、全く多重化(2重化)されていないとすると、その分散システムの稼働率は98%程度である。もし、これが2重化されているとすると、稼働率は、99.99%程度となる。このような2重化システムは、例えば特許文献1に記載されている。この特許文献1に記載された2重化システムは、2台のサーバユニニットから構成される2重化サーバシステムである。また、特許文献1には、2重化システムを利用する複数のクライアント端末の全てから当該システム内の従系サーバユニット(待機系サーバコンピュータ)に対し、主系サーバユニット(稼動系サーバコンピュータ)からサービスの提供を受けられない旨の通知があった場合だけ、従系サーバユニットが主系サーバユニットに切り替わることが記載されている。このような2重化システムでは、たとえ2つのサーバユニット間で通信ができなくても、当該2つのサーバユニットが同時に主系となるのを防止することが可能となる。
<フェイルオーバ方式>
分散システムにおいて、コンピュータの処理を多重化する方式として、コンピュータの故障を検出したら、別のコンピュータでその処理を引き継ぐ方式が従来から知られている。この方式をフェイルオーバ方式と呼ぶ。
フェイルオーバ方式では、コンピュータの故障を検出するのに、コンピュータ間で定期的に通信し合い、お互いの動作状況を確認し合う方法が一般的に行われている。この通信のことを「ハートビート」と呼ぶ。コンピュータの故障停止は、ハートビートのタイムアウトによって検出される。つまり一定時間ハートビートが送出されていないコンピュータは故障停止したものとみなされる。
フェイルオーバ方式を適用する分散システムにおいては、スプリットブレインの発生が問題となる。スプリットブレインとは、実行のコンテキスト(状態)が2つ以上に分かれてしまうことを指す。スプリットブレインは、故障検出が誤って行われたときに発生する。例えば、分散システムを構成するコンピュータが、2つのコンピュータグループの間で互いに通信できない状態となった場合(network partitioning: ネットワーク分割)、両コンピュータグループは、互いに相手の故障を検出する。この場合、両コンピュータグループは独立して動作を始めることから、スプリットブレインに陥る。或いは、異常な高負荷のために、あるコンピュータのハートビートの送信が一時的に中断して故障が検出され、その後、そのコンピュータが動作を再開した後も、スプリットブレインに陥る可能性がある。
多重化された処理は、一般に分散システムの中で重要な処理である。そのため、スプリットブレインが起きると、その処理に一貫性がなくなり、システム全体に致命的な影響を及ぼす。
<多数決方式>
フェイルオーバ方式でのスプリットブレインの問題を根源的に解決するための方式として、多数決を用いた方式(多数決方式)が知られている。この多数決方式は、多重化した全てのコンピュータで同一の処理を実行し、全体の過半数(majority)を占めるコンピュータの動作を一致させることができるならば、他のコンピュータの動作に関係なく、処理を継続するものである。多数決方式は、定足数方式の1つである。定足数方式とは、多重化した全てのコンピュータで同一の処理を実行し、定足数(quorum:クォーラム)を占めるコンピュータの動作を一致させることができるならば、他のコンピュータの動作に関係なく、処理を継続するものである。この定足数を全体の過半数とした方式が多数決方式であり、例えば特許文献2に記載されている。
多数決方式では、スプリットブレインを原理的に回避できる。例えば、3台のコンピュータX,Y,Zで処理を多重化(3重化)している場合で、2台のコンピュータX,YのグループAと、1台のコンピュータZのグループBにネットワーク分割となったものとする。この場合でも、グループAでの処理は動き続ける。これに対し、グループBでの処理は中断する。ここでの中断とは、自身を含めて動作を一致させることができるコンピュータの数が過半数となるまで、処理を先に進めない状態をいう。
また、コンピュータZが異常な高負荷でハングアップしたものとすると、残りの過半数を占めるコンピュータグループ(ここではグループA)での処理は、当該コンピュータZに関係なく動作を続ける。コンピュータZが回復したとき、当該コンピュータZでの処理は、過半数を構成できないため勝手に動き出すことはない。つまりコンピュータZは、他の過半数を占めるコンピュータグループの処理に再同期化した後に、動作を再開する。
特開2000−330814(段落0013、図1) 特開2001−117895(段落0007、段落0018乃至0022、図1乃至図5)
前述した多数決方式のシステムでは、最低でもコンピュータの数が3台以上必要である。したがって2台のコンピュータで構成される最も単純な多重化システム、つまり2重化されたコンピュータで構成される2重化システムでは、多数決方式は使用できない。
一方、特許文献1に記載された2重化システムでは、当該システムを利用する複数のクライアント端末の全てから従系サーバユニットに対し、主系サーバユニットからサービスの提供を受けられない旨の通知があった場合に、当該システム内の2重化されたサーバユニット(サーバコンピュータ)間での主系、従系の切り替えが行われる。この2重化システムでは、2つのサーバユニット間で通信ができなくても、当該2つのサーバユニットが同時に主系となる、一種のスプリットブレインに陥るのを防止できる。
しかし、この2重化システムでは、たとえ全てのクライアント端末が主系サーバユニットからサービスの提供を受けられなくなったとしても、1台でもクライアント端末が故障すると、その故障クライアント端末から従系サーバユニットに対し、主系サーバユニットからサービスの提供を受けられない旨が通知されないことから、主系、従系の切り替えが行われない。この場合、各クライアント端末は、主系、従系いずれからもサービスの提供を受けられなくなる。
本発明は上記事情を考慮してなされたものでその目的は、2重化されたサーバコンピュータ間でスプリットブレインが発生するのを防止しながら、クライアントコンピュータに対してサービスが提供されなくなる事態が発生するのを極力防止できる2重化システム及び多重化制御方法を提供することにある。
本発明の1つの観点によれば、N台(Nは1以上の整数)のクライアントコンピュータにサービスを提供するための、相互に通信可能な2台のサーバコンピュータから構成され、当該2台のサーバコンピュータのいずれか一方が稼動系として動作し、他方が待機系として動作する2重化システムが提供される。この2重化システムの上記2台のサーバコンピュータの各々は、上記サービスを提供するためのサーバ処理を実行するサーバ処理手段と、上記N台のクライアントコンピュータとの接続状態を管理するためのクライアント接続状態管理手段と、このクライアント接続状態管理手段によって管理されている上記N台のクライアントコンピュータとの接続状態に基づく多数決により、上記サーバ処理手段によるサーバ処理を実行させるか否かを制御する多重化制御手段とを備える。
上記の構成において、クライアントコンピュータが2重化システムからのサービスの提供を受けるには、当該システム内の2台のサーバコンピュータのうち、その時点においてサービスの提供が可能なサーバコンピュータに接続する必要がある。通常、クライアントコンピュータは2台のサーバコンピュータのうち稼動系のサーバコンピュータに接続する。また、稼動系のサーバコンピュータが故障して、当該稼動系のサーバコンピュータと通信できなくなった場合、つまり稼動系のサーバコンピュータを認識できなくなった場合には、クライアントコンピュータは、接続先を稼動系のサーバコンピュータから待機系のサーバコンピュータに切り替える。したがって、クライアントコンピュータが、2台のサーバコンピュータのいずれか一方に接続したということは、その接続先のサーバコンピュータを当該クライアントコンピュータが認識できたことを意味する。ここで、サーバコンピュータに接続されたクライアントコンピュータの数をnとすると、当該サーバコンピュータとn台のクライアントコンピュータとにより1つのグループが形成されているといえる。そこで、上記2台のサーバコンピュータの各々が、上記N台のクライアントコンピュータとの接続状態を管理するならば、その接続状態から、自身が、クライアントコンピュータを含めたコンピュータの総数に対して多数を占めるグループに属しているか否かが判定可能である。
よって上記の構成においては、2重化システムを構成する2台のサーバコンピュータの各々は、上記接続状態から、当該サーバコンピュータを利用するクライアントコンピュータをも含めた一種の多数決により、サーバ処理を実行するか否かを正しく決定できる。これにより、たとえ2台のサーバコンピュータ間で相互に相手を認識できなくなって、互いに相手が故障したと判定しても、つまりネットワーク分割が発生しても、当該2台のサーバコンピュータの各々は、上記の接続状態からサーバ処理を実行するか否かを正しく決定できる。
本発明によれば、2重化システムを構成する2台のサーバコンピュータ(稼動系のサーバコンピュータと待機系のサーバコンピュータ)の間でたとえネットワーク分割が起きても、当該2台のサーバコンピュータの各々は、N台のクライアントコンピュータとの接続状態から、クライアントコンピュータをも含めた多数決により、自身がサーバ処理を実行するかを決定できる。これにより、スプリットブレインの発生を防止できると共に、クライアントコンピュータに対してサービスが提供されなくなる事態が発生するのを極力防止できる。
以下、本発明の実施形態につき図面を参照して説明する。
[第1の実施形態]
図1は本発明の第1の実施形態に係る2重化システムの構成を示すブロック図である。図1の2重化システムは、2台のサーバコンピュータ10-1,10-2から構成される。サーバコンピュータ10-1,10-2はネットワーク20を介して相互に通信が可能なように構成されている。このサーバコンピュータ10-1,10-2(から構成される2重化システム)は、ネットワーク20を介してクライアントコンピュータ30から利用可能である。本実施形態では、サーバコンピュータ10-1,10-2は、データベースサーバが動作するデータベースサーバコンピュータであり、クライアントコンピュータ30は、データベースサーバコンピュータを利用するアプリケーションサーバコンピュータである。このアプリケーションサーバコンピュータ上では、当該アプリケーションサーバコンピュータを利用するクライアント端末に対してサービスを提供するアプリケーションサーバが動作する。
サーバコンピュータ10-1,10-2は、それぞれサーバ処理部11-1,11-2と、ハートビート機構12-1,12-2と、多重化制御部13-1,13-2とを備えている。サーバ処理部11-1,11-2は、サーバ処理(サーバプログラム)を実行するサーバとして機能する。本実施形態において、サーバコンピュータ10-1,10-2はデータベースサーバコンピュータであり、サーバ処理部11-1,11-2はデータベースサーバとして機能する。ハートビート機構12-1,12-2は、互いにハートビートを授受することにより、互いが正常であることを確認する。
多重化制御部13-1,13-2は、対応するサーバコンピュータ10-1,10-2が稼動系となってサーバ処理部11-1,11-2を動作させるか、待機系となってサーバ処理部11-1,11-2の処理を待たせるかを制御する。この制御のために、多重化制御部13-1,13-2は、対応するサーバコンピュータ10-1,10-2とクライアントコンピュータ30との接続状態を管理するクライアント接続状態管理手段としてのクライアント接続フラグ130-1,130-2を保持する。フラグ130-1,130-2は、サーバコンピュータ10-1,10-2にクライアントコンピュータ30が接続しているか否かを表す。ここで、「サーバコンピュータ10-1,10-2にクライアントコンピュータ30が接続している」とは、サーバコンピュータ10-1,10-2とクライアントコンピュータ30との間にセッションが設定されていることを表す。
多重化制御部13-1,13-2は、対応するサーバコンピュータ10-1,10-2のハートビート機構12-1,12-2によって互いが正常であることが認識されている場合は、自身が稼動系であるならばサーバ処理部11-1,11-2による処理の実行を継続させ、待機系であるならばサーバ処理部11-1,11-2の停止状態を継続させる。また多重化制御部13-1,13-2は、ハートビート機構12-1,12-2が相手を認識しない場合、クライアント接続フラグ130-1,130-2がONであるならば、サーバ処理部11-1,11-2による処理を実行させ、OFFであるならば、サーバ処理部11-1,11-2による処理を停止させる。
一方、クライアントコンピュータ30は、クライアント処理部31と、サーバ接続部32とを備えている。クライアント処理部31は、クライアント処理(クライアントプログラム)を実行するクライアントとして機能する。サーバ接続部32は、サーバコンピュータ10-1,10-2との接続を管理する。サーバ接続部32は、クライアントコンピュータ30の接続先のサーバコンピュータ10-i(iは1または2)が有するクライアント接続フラグ130-iをONにする。またサーバ接続部32は、クライアントコンピュータ30の接続先をサーバコンピュータ10-j(jは1または2、但しj≠i)からサーバコンピュータ10-iに切り替えたときには、元の接続先のサーバコンピュータ10-jのクライアント接続フラグ130-jをOFFにする。
次に、図1のシステムにおける動作について説明する。
<通常時の動作>
まず、サーバコンピュータ10-1,10-2が共に正常である通常時の動作について、図2のシステム状態図を参照して説明する。今、サーバコンピュータ10-1が稼動系として動作し、サーバコンピュータ10-2が待機系として動作しているものとする。サーバコンピュータ10-1,10-2のハートビート機構12-1,12-2は、ネットワーク20を介して相互に「ハートビート」と呼ばれる定期的な通信をし合うことにより、相手のサーバコンピュータの動作状況、即ち相手が正常に稼動しているかを確認する。
ここでは、ハートビート機構12-1,12-2が、ハートビートの授受により互いに相手のサーバコンピュータを認識することができ、したがって図2に示すように相手のサーバコンピュータが正常に稼動していると確認できているものとする。この場合、サーバコンピュータ10-1は稼動系として動作を継続し、サーバコンピュータ10-2は待機系として動作を継続する。
このような状況では、クライアントコンピュータ30のサーバ接続部3は、サーバコンピュータ10-1,10-2のうちの待機系のサーバコンピュータ10-2に対して接続要求を送出したとしても、当該要求は拒絶される。したがってクライアントコンピュータ30はサーバコンピュータ10-2に接続できない。一方、クライアントコンピュータ30のサーバ接続部3から稼動系のサーバコンピュータ10-1に対する接続要求は受け付けられる。したがって、クライアントコンピュータ30は、図2において矢印201に示すように稼動系のサーバコンピュータ10-1に接続される。この状態で、クライアントコンピュータ30のサーバ接続部3は、サーバコンピュータ10-1のクライアント接続フラグ130-1をONにする。
サーバコンピュータ10-1の多重化制御部13-1は、クライアント接続フラグ130-1がONの場合、当該サーバコンピュータ10-1のサーバ処理部11-1による処理を実行させる。つまり、サーバコンピュータ10-1,10-2のうち、稼動系のサーバコンピュータ10-1がサーバ処理を実行して、クライアントコンピュータ30に対してサービスを提供する。一方、待機系のサーバコンピュータ10-2では、サーバ処理部11-2は停止状態にある。
<稼動系の停止時の動作>
次に、稼動系のサーバコンピュータ10-1が停止した場合の動作について、図3のシステム状態図を参照して説明する。稼動系のサーバコンピュータ10-1が故障等で停止すると、当該サーバコンピュータ10-1のハートビート機構12-1からのハートビートが一定時間を超えて途絶える。この場合、待機系のサーバコンピュータ10-2のハートビート機構12-1は稼動系のサーバコンピュータ10-1を認識できないため、取り敢えず当該サーバコンピュータ10-1の故障を判定する。この状況では、クライアントコンピュータ30は稼動系のサーバコンピュータ10-1と通信できず、当該サーバコンピュータ10-1からサービスの提供を受けられない。そこでクライアントコンピュータ30のサーバ接続部32は、接続先を、稼動系のサーバコンピュータ10-1から、図3において矢印301で示すように待機系のサーバコンピュータ10-2に切り替えて、当該サーバコンピュータ10-2のクライアント接続フラグ130-2をONにする。このことは、クライアントコンピュータ30が稼動系のサーバコンピュータ10-1の故障を認識したことを表す。
したがって、クライアントコンピュータ30のサーバ接続部32がサーバコンピュータ10-2のクライアント接続フラグ130-2をONしたことは、2台のサーバコンピュータ10-1,10-2と1台のクライアントコンピュータ30との合計3台のコンピュータから構成されるシステムにおいて、サーバコンピュータ10-2とクライアントコンピュータ30の双方が、残りのサーバコンピュータ10-1の故障を認識していることを表す。つまり、図3のシステムの状態は、クライアントコンピュータ30を含めたコンピュータの総数に対して、待機系のサーバコンピュータ10-2とクライアントコンピュータ30との2台で多数を占めるグループを形成していることを表す。
そこで待機系のサーバコンピュータ10-2の多重化制御部13-2は、クライアント接続フラグ130-2がONになると、当該サーバコンピュータ10-2が、システム内のコンピュータの総数に対して多数(過半数)を占めているグループに属していると判断する。この場合、サーバコンピュータ10-2の多重化制御部13-2は、当該サーバコンピュータ10-2が待機系であることから、当該サーバコンピュータ10-2のサーバ処理部11-2により、稼動系のサーバコンピュータ10-1のサーバ処理部11-1で行われていた処理を引き継がせる(フェイルオーバさせる)。これにより、サーバコンピュータ10-2は待機系から稼動系に切り替わる。
<ネットワーク分割時の動作>
次に、図2の状態にあった稼動系のサーバコンピュータ10-1と待機系のサーバコンピュータ10-2との間でネットワーク分割となったときの動作について、図4のシステム状態図を参照して説明する。
今、稼動系のサーバコンピュータ10-1と待機系のサーバコンピュータ10-2が例えば正常に動作しているにも拘わらずに、通信障害等の要因により、図4に示すように、サーバコンピュータ10-1のハートビート機構12-1とサーバコンピュータ10-2のハートビート機構12-2との間で互いにハートビートを授受できない状態、つまりネットワーク分割が発生したものとする。この状態では、サーバコンピュータ10-1,10-2のハートビート機構12-1,12-2は、互いに相手を認識できず、互いに相手のサーバコンピュータの故障を判定する。このとき、クライアントコンピュータ30のサーバ接続部32は、稼動系のサーバコンピュータ10-1または待機系のサーバコンピュータ10-2のどちらにも接続することが可能である。
ここでは、クライアントコンピュータ30のサーバ接続部32は、図4に示すように稼動系のサーバコンピュータ10-1に接続して、当該サーバコンピュータ10-1のクライアント接続フラグ130-1をONにしたものとする。この動作は、クライアントコンピュータ30が既に稼動系のサーバコンピュータ10-1に接続している場合には行われない。、 サーバコンピュータ10-1の多重化制御部13-1は、相手(サーバコンピュータ10-2)の故障を判定し、且つクライアント接続フラグ130-1がONの場合、当該サーバコンピュータ10-1が、システム内のコンピュータの総数に対して多数(過半数)を占めているグループに属していると判断する。この場合、サーバコンピュータ10-1の多重化制御部13-1は、当該サーバコンピュータ10-1が稼動系であることから、当該サーバコンピュータ10-1のサーバ処理部11-1による処理の実行を継続させる。
一方、サーバコンピュータ10-2の多重化制御部13-2は、相手(サーバコンピュータ10-1)の故障を判定しても、この例のようにクライアント接続フラグ130-2がOFFの場合、当該サーバコンピュータ10-2が、システム内のコンピュータの総数に対して多数を占めているグループに属していないと判断する。この場合、サーバコンピュータ10-2の多重化制御部13-2は、当該サーバコンピュータ10-2が待機系であることから、当該サーバコンピュータ10-2のサーバ処理部11-2の停止状態を継続させる。
このように本実施形態においては、サーバコンピュータ10-1及び10-2の間でネットワーク分割が発生しても、当該サーバコンピュータ10-1及び10-2の各々は、クライアント接続フラグ130-1及び130-2の状態、つまりクライアントコンピュータ30との接続状態から、サーバ処理を実行するか否かを正しく決定できる。これにより、スプリットブレインの発生を防止できる。
<稼動系が高負荷となりハートビート送信が渋滞したときの動作)
次に、サーバコンピュータ10-1のハートビート機構12-1からサーバコンピュータ10-2へのハートビート送信が渋滞したときの動作について、図5のシステム状態図を参照して説明する。
今、図2の状態にあった稼動系のサーバコンピュータ10-1が高負荷となって、当該サーバコンピュータ10-1のハートビート機構12-1からサーバコンピュータ10-2へのハートビート送信が渋滞したものとする。待機系のサーバコンピュータ10-2のハートビート機構12-2は、図5に示すように稼動系のサーバコンピュータ10-1を認識できない。この状態では、クライアントコンピュータ30がサーバコンピュータ10-1に接続していたとしても、当該サーバコンピュータ10-1からクライアントコンピュータ30に対するサービスの提供も渋滞する。
そこで、クライアントコンピュータ30のサーバ接続部32は、接続先を、稼動系のサーバコンピュータ10-1から、図5において矢印501で示すように待機系のサーバコンピュータ10-2に切り替えて、当該サーバコンピュータ10-2のクライアント接続フラグ130-2をONにする。このときサーバ接続部32は、稼動系のサーバコンピュータ10-1のクライアント接続フラグ130-1をOFFにする。
待機系のサーバコンピュータ10-2の多重化制御部13-2は、クライアント接続フラグ130-2がONになると、当該サーバコンピュータ10-2が、システム内のコンピュータの総数に対して多数を占めているグループに属していると判断する。この場合、サーバコンピュータ10-2の多重化制御部13-2は、当該サーバコンピュータ10-2が待機系であることから、当該サーバコンピュータ10-2のサーバ処理部11-2により、稼動系のサーバコンピュータ10-1のサーバ処理部11-1で行われていた処理を引き継がせる。これにより、サーバコンピュータ10-2は待機系から稼動系に切り替わる。
一方、稼動系のサーバコンピュータ10-1の多重化制御部13-1は、クライアント接続フラグ130-1がOFFになると、当該サーバコンピュータ10-1が、システム内のコンピュータの総数に対して多数を占めているグループに属していないと判断する。この場合、サーバコンピュータ10-1の多重化制御部13-1は、当該サーバコンピュータ10-1が稼動系であることから、当該サーバコンピュータ10-1のサーバ処理部11-12の動作を停止させる。これにより、サーバコンピュータ10-1は稼動系から待機系に切り替わる。
上記第1の実施形態では、クライアントコンピュータ30のサーバ接続部32は、サーバコンピュータに接続する場合だけ接続先のサーバコンピュータのクライアント接続フラグをONしている。また、サーバ接続部32は、接続先を切り替えたときは、元の接続先のサーバコンピュータのクライアント接続フラグをOFFにしている。しかし、サーバ接続部32が、接続先のサーバコンピュータのクライアント接続フラグをONにする更新操作(ON操作)を定期的に行うようにしても良い。この場合、サーバコンピュータの多重化制御部にクライアント接続フラグをOFFにするOFF操作手段を持たせ、当該OFF操作手段がクライアント接続フラグを定期的に監視して、一定時間ON操作が行われなかった場合に当該フラグをOFFすると良い。ここで、一定時間ON操作が行われなかったことを検出可能とするには、例えばON操作毎に時刻情報が更新されるタイムスタンプをクライアント接続フラグに付加して、当該タイムスタンプを現在時刻と比較すれば良い。
[第2の実施形態]
図6は本発明の第2の実施形態に係る2重化システムの構成を示すブロック図である。図6において、図1中の構成要素と同様の要素には、便宜的に同一符号を付してある。
図6の2重化システムは、図1の2重化システムと同様に、ネットワーク20を介して相互に通信可能な2台のサーバコンピュータ10-1,10-2から構成される。図6の2重化システムが、図1の2重化システムと異なる点は、当該2重化システム(を構成するサーバコンピュータ10-1,10-2)がN台(Nは2以上の整数)のクライアントコンピュータ30-1〜30-Nによって利用される点である。図6の2重化システムの特徴は、サーバコンピュータ10-i(i=1,2)に接続されるクライアントコンピュータの数がクライアントコンピュータの総数の過半数を占めている(つまりN/2を超えている)場合には、当該サーバコンピュータ10-iでサーバ処理を実行し、過半数に満たない(つまりN/2以下の)場合には、当該サーバコンピュータ10-iでサーバ処理を実行しない点にある。
そこで、サーバコンピュータ10-1,10-2の多重化制御部13-1,13-2は、図1中のクライアント接続フラグ130-1,130-2に代えて、クライアント接続カウンタ131-1,131-2を有する。クライアント接続カウンタ131-1,131-2は、サーバコンピュータ10-1,10-2とクライアントコンピュータとの接続状態を管理するためのクライアント接続状態管理手段であり、サーバコンピュータ10-1,10-2に接続されているクライアントコンピュータの数(接続数)C1,C2を保持する。
各クライアントコンピュータ30-1〜30-Nは、図1中のクライアント処理部31及びサーバ接続部32に相当する、クライアント処理部31-1〜31-N及びサーバ接続部32-1〜32-Nを有する。クライアントコンピュータ30-k(k=1〜N)のサーバ接続部32-kは、クライアント処理部31-kがサーバコンピュータ10-iからサービスの提供を受けようとする場合、当該サーバコンピュータ10-iに接続要求を送出することにより、当該サーバコンピュータ10-iに接続する。このときサーバ接続部32-kは、サーバコンピュータ10-iのクライアント接続カウンタ131-iの値を1インクリメントする。またサーバ接続部32-kは、クライアントコンピュータ30-kの接続先をサーバコンピュータ10-j(jは1または2、但しj≠i)からサーバコンピュータ10-iに切り替えたときには、元の接続先のサーバコンピュータ10-jのクライアント接続カウンタ131-iの値を1デクリメントする。これにより、サーバコンピュータ10-1,10-2のクライアント接続カウンタ131-1,131-2は、それぞれ当該サーバコンピュータ10-1,10-2に接続されているクライアントコンピュータの数C1,C2を保持する
サーバコンピュータ10-1,10-2の多重化制御部13-1,13-2は、当該サーバコンピュータ10-1,10-2のハートビート機構12-1,12-2によって互いが正常であることが認識されている場合は、自身が稼動系であるならばサーバ処理部11-1,11-2による処理の実行を継続させ、待機系であるならばサーバ処理部11-1,11-2の停止状態を継続させる。また多重化制御部13-1,13-2は、ハートビート機構12-1,12-2が相手を認識しない場合、クライアント接続カウンタ131-1,131-2の値、即ちサーバコンピュータ10-1,10-2に接続されているクライアントコンピュータの数(接続数)C1,C2がN/2を超えているか否かを判定する。多重化制御部13-1,13-2は、接続数C1,C2がN/2を超えているならば、サーバ処理部11-1,11-2による処理を実行させ、N/2以下であるならば、サーバ処理部11-1,11-2による処理を停止させる。これにより、2重化されたサーバコンピュータ10-1及び10-2の間でネットワーク分割が発生しても、またN台のクライアントコンピュータ30-1〜30-Nの一部が故障しても、サーバコンピュータ10-1及び10-2の間でスプリットブレインが発生するのを防止しながら、クライアントコンピュータに対してサービスが提供されなくなる事態が発生するのを極力防止できる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
本発明の第1の実施形態に係る2重化システムの構成を示すブロック図。 同実施形態における通常時のシステム状態図。 同実施形態において稼動系のサーバコンピュータ10-1が停止した場合のシステム状態図。 同実施形態において稼動系のサーバコンピュータ10-1と待機系のサーバコンピュータ10-2との間でネットワーク分割となったときのシステム状態図。 同実施形態において稼動系のサーバコンピュータ10-1が高負荷となってハートビート送信が渋滞したときのシステム状態図。 本発明の第2の実施形態に係る2重化システムの構成を示すブロック図。
符号の説明
10-1,10-2…サーバコンピュータ、11-1,11-2…サーバ処理部、12-1,12-2…ハートビート機構、13-1,13-2…多重化制御部、20…ネットワーク、30,30-1〜30-N…クライアントコンピュータ、31,31-1〜31-N…クライアント処理部、32,32-1〜32-N…サーバ接続部、130-1,130-2…クライアント接続フラグ(クライアント接続状態管理手段)、131-1,131-2…クライアント接続カウンタ(クライアント接続状態管理手段)。

Claims (7)

  1. N台(Nは1以上の整数)のクライアントコンピュータにサービスを提供するための、相互に通信可能な2台のサーバコンピュータから構成され、当該2台のサーバコンピュータのいずれか一方が稼動系として動作し、他方が待機系として動作する2重化システムにおいて、
    前記2台のサーバコンピュータの各々は、
    前記サービスを提供するためのサーバ処理を実行するサーバ処理手段と、
    前記N台のクライアントコンピュータのうちのいずれかのクライアントコンピュータから当該サーバコンピュータに接続要求が送出された場合に、当該接続要求の受け付けを制御する接続要求受け付け制御手段と、
    前記N台のクライアントコンピュータとの接続状態を管理するためのクライアント接続状態管理手段と、
    前記接続要求が受け付けられた結果、当該接続要求を送出したクライアントコンピュータと接続された際に、前記クライアント接続状態管理手段によって管理されている前記N台のクライアントコンピュータとの接続状態に基づく多数決により、前記サーバ処理手段によるサーバ処理を実行させるか否かを制御する多重化制御手段と
    を具備することを特徴とする2重化システム。
  2. 前記2台のサーバコンピュータの各々は、相互に通信を行うことで相互に相手を認識するハートビート機構を備え、
    前記多重化制御手段は前記ハートビート機構が相手を認識できなかった場合に、前記クライアント接続状態管理手段によって管理されている前記N台のクライアントコンピュータとの接続状態に基づく多数決により、前記サーバ処理手段によるサーバ処理を実行させるか否かを制御する
    ことを特徴とする請求項1記載の2重化システム。
  3. 前記クライアント接続状態管理手段は、前記N台のクライアントコンピュータとの接続状態を、前記N台のクライアントコンピュータのうち対応する前記サーバコンピュータに接続されているクライアントコンピュータの数を示す接続数によって管理しており、
    前記多重化制御手段は、前記クライアント接続状態管理手段によって管理されている前記接続数がN/2を超えるか否かにより、前記サーバ処理手段によるサーバ処理を実行させるか否かを制御する
    ことを特徴とする請求項1記載の2重化システム。
  4. 前記クライアント接続状態管理手段によって管理されている前記接続数は、前記N台のクライアントコンピュータのいずれかが接続先を切り替える際に更新され、対応する前記サーバコンピュータが切り替え後の新たな接続先となる際には1インクリメントされ、対応する前記サーバコンピュータが切り替え前の元の接続先となる際には1デクリメントされることを特徴とする請求項3記載の2重化システム。
  5. 前記Nは1であり、
    前記クライアント接続状態管理手段は、前記クライアントコンピュータとの接続状態を、当該クライアントコンピュータが対応する前記サーバコンピュータに接続されているか否かを示すフラグ情報であって、前記クライアントコンピュータが前記対応するサーバコンピュータに接続されている期間、前記クライアントコンピュータが前記対応するサーバコンピュータに接続されていことを示す第1の状態に、前記クライアントコンピュータによって定期的に更新されるフラグ情報により管理すると共に、当該フラグ情報が一定期間前記第1の状態に更新されなかった場合、当該フラグ情報を前記クライアントコンピュータが前記対応するサーバコンピュータに接続されていないことを示す第2の状態に設定し、
    前記多重化制御手段は、前記クライアント接続状態管理手段によって管理されている前記フラグ情報が前記第1の状態または前記第2の状態のいずれであるかにより、前記サーバ処理手段によるサーバ処理を実行させるか否かを制御する
    ことを特徴とする請求項1記載の2重化システム。
  6. N台(Nは1以上の整数)のクライアントコンピュータにサービスを提供するための、相互に通信可能な2台のサーバコンピュータから構成され、当該2台のサーバコンピュータのいずれか一方が稼動系として動作し、他方が待機系として動作する2重化システムにおいて、前記2台のサーバコンピュータ間で2重化されたサーバ処理を制御する多重化制御方法であって、
    前記2台のサーバコンピュータの各々は、前記N台のクライアントコンピュータのうちのいずれかのクライアントコンピュータから当該サーバコンピュータに接続要求が送出された場合に当該接続要求の受け付けを制御し、
    前記2台のサーバコンピュータの各々は、前記N台のクライアントコンピュータとの接続状態を管理し、
    前記2台のサーバコンピュータの各々は、前記接続要求が受け付けられた結果、当該接続要求を送出したクライアントコンピュータと接続された際に、前記N台のクライアントコンピュータとの前記接続状態に基づく多数決により、自身がサーバ処理を実行するか否かを決定する
    ことを特徴とする多重化制御方法。
  7. 前記2台のサーバコンピュータの各々は、相互に通信を行うことで相互に相手を認識し、
    前記2台のサーバコンピュータの各々は、相手を認識できなかった場合には、前記N台のクライアントコンピュータとの前記接続状態に基づく多数決により、自身がサーバ処理を実行するか否かを決定する
    ことを特徴とする請求項6記載の多重化制御方法。
JP2004071495A 2004-03-12 2004-03-12 2重化システム及び多重化制御方法 Expired - Fee Related JP3910967B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004071495A JP3910967B2 (ja) 2004-03-12 2004-03-12 2重化システム及び多重化制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004071495A JP3910967B2 (ja) 2004-03-12 2004-03-12 2重化システム及び多重化制御方法

Publications (2)

Publication Number Publication Date
JP2005258947A JP2005258947A (ja) 2005-09-22
JP3910967B2 true JP3910967B2 (ja) 2007-04-25

Family

ID=35084575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004071495A Expired - Fee Related JP3910967B2 (ja) 2004-03-12 2004-03-12 2重化システム及び多重化制御方法

Country Status (1)

Country Link
JP (1) JP3910967B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4505763B2 (ja) * 2007-01-31 2010-07-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. ノードクラスタの管理
JP5005425B2 (ja) * 2007-05-21 2012-08-22 パナソニック株式会社 制御装置復帰システム
JP4796086B2 (ja) * 2008-03-14 2011-10-19 株式会社東芝 クラスタシステム及び同システムにおいてマスタノードを選択する方法
JP4599435B2 (ja) * 2008-07-17 2010-12-15 株式会社東芝 クラスタシステムを構成する計算機及びプログラム
JP5699658B2 (ja) 2011-02-10 2015-04-15 日本電気株式会社 待機系計算機、クラスタシステム、サービス提供方法およびプログラム
JP2016170521A (ja) 2015-03-11 2016-09-23 富士通株式会社 正常なプロセッサの抽出方法及びプログラム、情報処理装置
EP3506099A4 (en) 2016-08-25 2019-09-04 Fujitsu Limited MAINTENANCE MANAGEMENT PROGRAM, MAINTENANCE MANAGEMENT METHOD, AND MAINTENANCE MANAGEMENT DEVICE

Also Published As

Publication number Publication date
JP2005258947A (ja) 2005-09-22

Similar Documents

Publication Publication Date Title
CN108900415B (zh) Mlag接口故障下的主从设备切换方法及系统
US7975016B2 (en) Method to manage high availability equipments
US20040049573A1 (en) System and method for managing clusters containing multiple nodes
US20130212205A1 (en) True geo-redundant hot-standby server architecture
CN113014634A (zh) 集群选举处理方法、装置、设备及存储介质
US20080301489A1 (en) Multi-agent hot-standby system and failover method for the same
JP2001306349A (ja) バックアップ装置及びバックアップ方法
CN105337780B (zh) 一种服务器节点配置方法及物理节点
CN102916825A (zh) 一种双机热备系统的管理设备、管理方法及双机热备系统
US20070177589A1 (en) Network system and node redundancy method of network system
EP2224341B1 (en) Node system, server switching method, server device, and data transfer method
CN112181660A (zh) 一种基于服务器集群的高可用方法
CN112583708B (zh) 一种连接关系控制方法、装置和电子设备
CN110971662A (zh) 一种基于Ceph的两节点高可用实现方法及装置
JP3910967B2 (ja) 2重化システム及び多重化制御方法
WO2006020390A2 (en) Computing system redundancy and fault tolerance
CN110674192A (zh) 一种Redis高可用VIP漂移方法、终端及存储介质
CN113254205A (zh) 负载均衡系统、方法、装置、电子设备及存储介质
EP2456163B1 (en) Registering an internet protocol phone in a dual-link architecture
JP4879823B2 (ja) 監視制御システム
US11544162B2 (en) Computer cluster using expiring recovery rules
GB2499822A (en) Failover processing using different physical paths
CN111309515A (zh) 一种容灾控制方法、装置及系统
CN113794595A (zh) 一种基于工业互联网的IoT设备高可用方法
KR100832543B1 (ko) 계층적 다중 백업 구조를 갖는 고가용성 클러스터 시스템및 이를 이용한 고가용성 구현 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060807

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: 20070123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070125

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees