特許第6183931号(P6183931)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECソリューションイノベータ株式会社の特許一覧

特許6183931クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。
<>
  • 特許6183931-クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。 図000002
  • 特許6183931-クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。 図000003
  • 特許6183931-クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。 図000004
  • 特許6183931-クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。 図000005
  • 特許6183931-クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6183931
(24)【登録日】2017年8月4日
(45)【発行日】2017年8月23日
(54)【発明の名称】クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。
(51)【国際特許分類】
   G06F 11/16 20060101AFI20170814BHJP
   G06F 11/30 20060101ALI20170814BHJP
   G06F 11/07 20060101ALI20170814BHJP
【FI】
   G06F11/16 625
   G06F11/30 140A
   G06F11/30 140W
   G06F11/07 140A
   G06F11/07 157
【請求項の数】16
【全頁数】19
(21)【出願番号】特願2015-554749(P2015-554749)
(86)(22)【出願日】2014年12月15日
(86)【国際出願番号】JP2014083085
(87)【国際公開番号】WO2015098589
(87)【国際公開日】20150702
【審査請求日】2016年6月10日
(31)【優先権主張番号】特願2013-267038(P2013-267038)
(32)【優先日】2013年12月25日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】特許業務法人ブライタス
(72)【発明者】
【氏名】下問 勝司
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 特開平08−171507(JP,A)
【文献】 特開2012−168623(JP,A)
【文献】 特開2013−250918(JP,A)
【文献】 特開2005−073277(JP,A)
【文献】 米国特許第06785840(US,B1)
【文献】 ヴイエムウェア株式会社,VMware徹底入門 初版,日本,株式会社翔泳社,2008年11月12日,280頁〜283頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/16
G06F 11/07
G06F 11/30
(57)【特許請求の範囲】
【請求項1】
2つ以上の通信経路によって接続された複数のサーバ装置を備え、
前記複数のサーバ装置それぞれは、
他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、
信号送信部と、
前記通信経路が信頼性を有しているかどうかを判定する、信頼性判定部と、
前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の2つ以上の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、いずれかの前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させ、いずれかの前記通信経路が信頼性を有していると判定されている場合は、前記他のサーバ装置に異常が発生していると判断して、当該サーバ装置に、実行中にある処理を継続して実行させ、又は、前記他のサーバ装置が実行している処理を代わりに実行させる、処理管理部と、
を備えている、ことを特徴とするクラスタシステム。
【請求項2】
前記複数のサーバ装置が、サーバ装置間を直接結ぶ通信経路、ネットワークを経由する通信経路、及び記憶装置を経由した通信経路によって、互いに接続されている、
請求項に記載のクラスタシステム。
【請求項3】
前記信頼性判定部は、
前記サーバ装置間を直接結ぶ通信経路については、通信インターフェイスが通電状態にある場合に、信頼性を有していると判定し、
前記ネットワークを経由する通信経路については、前記ネットワーク上に存在する機器にリクエストを送信し、前記機器から前記リクエストに対するレスポンスが返信されてきた場合に、信頼性を有していると判定し、
前記記憶装置を経由した通信経路については、前記記憶装置にコマンドを送信し、前記記憶装置から前記たコマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する、
請求項に記載のクラスタシステム。
【請求項4】
前記複数のサーバ装置それぞれは、更に、前記信号送信部からの前記信号の送信が途絶えた場合に、当該サーバ装置を停止させる、自動停止部を備えている、
請求項1〜のいずれかに記載のクラスタシステム。
【請求項5】
2つ以上の通信経路によって他のサーバ装置と接続されるサーバ装置であって、
前記他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、信号送信部と、
前記通信経路が信頼性を有しているかどうかを判定する、信頼性判定部と、
前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の2つ以上の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、いずれかの前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させ、いずれかの前記通信経路が信頼性を有していると判定されている場合は、前記他のサーバ装置に異常が発生していると判断して、当該サーバ装置に、実行中にある処理を継続して実行させ、又は、前記他のサーバ装置が実行している処理を代わりに実行させる、処理管理部と、
を備えている、ことを特徴とするサーバ装置。
【請求項6】
サーバ装置間を直接結ぶ通信経路、ネットワークを経由する通信経路、及び記憶装置を経由した通信経路によって、前記他のサーバ装置に接続されている、
請求項に記載のサーバ装置。
【請求項7】
前記信頼性判定部は、
前記サーバ装置間を直接結ぶ通信経路については、通信インターフェイスが通電状態にある場合に、信頼性を有していると判定し、
前記ネットワークを経由する通信経路については、前記ネットワーク上に存在する機器にリクエストを送信し、前記機器から前記リクエストに対するレスポンスが返信されてきた場合に、信頼性を有していると判定し、
前記記憶装置を経由した通信経路については、前記記憶装置にコマンドを送信し、前記記憶装置から前記たコマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する、
請求項に記載のサーバ装置。
【請求項8】
前記信号送信部からの前記信号の送信が途絶えた場合に、当該サーバ装置を停止させる、自動停止部を更に備えている、
請求項のいずれかに記載のサーバ装置。
【請求項9】
2つ以上の通信経路によって接続された複数のサーバ装置を用い、
前記複数のサーバ装置それぞれによって実行される、
(a)他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、ステップと、
(b)前記通信経路が信頼性を有しているかどうかを判定する、ステップと、
(c)前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の2つ以上の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、いずれかの前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させ、いずれかの前記通信経路が信頼性を有していると判定されている場合は、前記他のサーバ装置に異常が発生していると判断して、当該サーバ装置に、実行中にある処理を継続して実行させ、又は、前記他のサーバ装置が実行している処理を代わりに実行させる、ステップと、
を有する、ことを特徴とするクラスタシステムの管理方法。
【請求項10】
前記複数のサーバ装置が、サーバ装置間を直接結ぶ通信経路、ネットワークを経由する通信経路、及び記憶装置を経由した通信経路によって、互いに接続されている、
請求項に記載のクラスタシステムの管理方法。
【請求項11】
前記(b)のステップにおいて、
前記サーバ装置間を直接結ぶ通信経路については、通信インターフェイスが通電状態にある場合に、信頼性を有していると判定し、
前記ネットワークを経由する通信経路については、前記ネットワーク上に存在する機器にリクエストを送信し、前記機器から前記リクエストに対するレスポンスが返信されてきた場合に、信頼性を有していると判定し、
前記記憶装置を経由した通信経路については、前記記憶装置にコマンドを送信し、前記記憶装置から前記たコマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する、
請求項10に記載のクラスタシステムの管理方法。
【請求項12】
前記複数のサーバ装置それぞれによって実行される、
(d)前記(a)のステップによる前記信号の送信が途絶えた場合に、当該サーバ装置を停止させる、ステップを更に有している、
請求項〜1のいずれかに記載のクラスタシステムの管理方法。
【請求項13】
2つ以上の通信経路によって他のコンピュータと接続されるコンピュータに、
(a)前記他のコンピュータに対して、前記通信経路を介して、自身の存在を示す信号を送信する、ステップと、
(b)前記通信経路が信頼性を有しているかどうかを判定する、ステップと、
(c)前記他のコンピュータから前記信号を受信できない状況となると、前記他のコンピュータとの間の2つ以上の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、いずれかの前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させ、いずれかの前記通信経路が信頼性を有していると判定されている場合は、前記他のサーバ装置に異常が発生していると判断して、当該サーバ装置に、実行中にある処理を継続して実行させ、又は、前記他のサーバ装置が実行している処理を代わりに実行させる、ステップと、
を実行させる、プログラム。
【請求項14】
前記コンピュータは、コンピュータ間を直接結ぶ通信経路、ネットワークを経由する通信経路、及び記憶装置を経由した通信経路によって、前記他のコンピュータに接続されている、
請求項13に記載のプログラム。
【請求項15】
前記(b)のステップにおいて、
前記コンピュータ間を直接結ぶ通信経路については、通信インターフェイスが通電状態にある場合に、信頼性を有していると判定し、
前記ネットワークを経由する通信経路については、前記ネットワーク上に存在する機器にリクエストを送信し、前記機器から前記リクエストに対するレスポンスが返信されてきた場合に、信頼性を有していると判定し、
前記記憶装置を経由した通信経路については、前記記憶装置にコマンドを送信し、前記記憶装置から前記たコマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する、
請求項14に記載のプログラム。
【請求項16】
前記コンピュータに、
(d)前記(a)のステップによる前記信号の送信が途絶えた場合に、当該コンピュータを停止させる、ステップを更に実行させる、
請求項115のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のサーバ装置を備えるクラスタシステム、これに用いられるサーバ装置、クラスタシステムの管理方法、及びこれらを実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【0002】
企業等においては、システムに障害が発生しても、業務を継続して行なえるようにするため、クラスタシステムが採用されている。クラスタシステムでは、複数のサーバ装置が連結されており、これらのサーバ装置は、ユーザに対しては全体で一台のサーバ装置であるかのように振る舞うことになる。
【0003】
また、クラスタシステムにおいては、業務の停止を回避するため、サーバ装置間においてハートビート通信を行うことによって、障害の検出が行われている(例えば、特許文献1及び2参照。)。ハートビート通信とは、サーバ装置間で互いに、自身の存在を示す信号(以下、「ハートビート信号」と表記する。)を設定間隔で送信することをいう。
【0004】
具体的には、特許文献1及び2に開示されたシステムでは、各サーバ装置は、まず、ハートビート通信において、通信経路毎にタイムアウトが発生していないかどうかを判定する。そして、タイムアウトが発生している場合は、何らかの障害が発生していると判断する。そして、障害が発生していると判断した場合は、各サーバは、ネットワークを経由して、設定したタイムアウト時間内に受信パケットが到着したかどうかを判定し、到着していない場合(タイムアウト)は通信障害と判断し、到着している場合は相手方のサーバに異常が発生したと判断する。
【0005】
そして、特許文献1及び2に開示されたシステムでは、障害の発生が検出されると、障害の発生していないサーバ装置が、障害が発生したサーバ装置の業務を引き継ぎ、業務の停止が回避される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−173299号公報
【特許文献2】特開2008−172592号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1及び2に開示されたシステムでは、ハートビート信号の受信の有無と、ネットワークから受信されるパケットの受信状況とに基づいて、障害の発生を検出しているため、いわゆるスプリットブレインシンドロームが発生する可能がある。
【0008】
例えば、特許文献1及び2に開示されたシステムにおいて、一方のサーバ装置の通信インターフェース(ネットワークカード)が故障したとする。この場合、一方のサーバ装置は、ハートビート信号と、ネットワークからのパケットとの両方を受信できないので、通信障害が発生していると判断する。しかし、他方のサーバ装置は、ハートビート信号については受信できないが、ネットワークからのパケットについては受信できるので、一方のサーバ装置が障害発生によってダウンしたと判断する。よって、一方のサーバ装置が業務処理を行っていた場合は、他方のサーバ装置も業務処理を開始してしまうため、双方において、同じ業務処理が行われる事態が発生する。
【0009】
そして、このような事態が発生した場合において、業務処理が、情報提示のみを行う静的なWebサイトの提供等であれば問題ないが、業務処理がデータベースの更新であると、処理内容が衝突してしまう事態が発生する。これがスプリットブレインシンドロームである。
【0010】
本発明の目的の一例は、上記問題を解消し、クラスタシステムにおいて処理内容が衝突してしまう事態の発生を回避し得る、クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明の一側面におけるクラスタシステムは、通信経路によって接続された複数のサーバ装置を備え、
前記複数のサーバ装置それぞれは、
他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、信号送信部と、
前記通信経路が信頼性を有しているかどうかを判定する、信頼性判定部と、
前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させる、処理管理部と、
を備えている、ことを特徴とする。
【0012】
上記目的を達成するため、本発明の一側面におけるサーバ装置は、通信経路によって他のサーバ装置と接続されるサーバ装置であって、
前記他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、信号送信部と、
前記通信経路が信頼性を有しているかどうかを判定する、信頼性判定部と、
前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させる、処理管理部と、
を備えている、ことを特徴とする。
【0013】
また、上記目的を達成するため、本発明の一側面におけるクラスタシステムの管理方法は、通信経路によって接続された複数のサーバ装置を用い、
前記複数のサーバ装置それぞれによって実行される、
(a)他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、ステップと、
(b)前記通信経路が信頼性を有しているかどうかを判定する、ステップと、
(c)前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させる、ステップと、
を有する、ことを特徴とする。
【0014】
更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、通信経路によって他のコンピュータと接続されるコンピュータに、
(a)前記他のコンピュータに対して、前記通信経路を介して、自身の存在を示す信号を送信する、ステップと、
(b)前記通信経路が信頼性を有しているかどうかを判定する、ステップと、
(c)前記他のコンピュータから前記信号を受信できない状況となると、前記他のコンピュータとの間の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させる、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とする。
【発明の効果】
【0015】
以上のように、本発明によれば、クラスタシステムにおいて処理内容が衝突してしまう事態の発生を回避することができる。
【図面の簡単な説明】
【0016】
図1図1は、本発明の実施の形態におけるクラスタシステムの概略構成を示す図である。
図2図2は、本発明の実施の形態におけるクラスタシステム及びサーバ装置の構成を具体的に示すブロック図である。
図3図3は、本発明の実施の形態におけるクラスタシステムを構成するサーバ装置の動作を示すフロー図である。
図4図4は、本発明の実施の形態におけるクラスタシステムを構成する各サーバ装置での信頼性判定の結果を示す図である。
図5図5は、本発明の実施の形態におけるサーバ装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0017】
(実施の形態)
以下、本発明の実施の形態における、クラスタシステム、サーバ装置、サーバ装置の管理方法、及びプログラムについて、図1図5を参照しながら説明する。
【0018】
[システム構成]
最初に、図1を用いて、本発明の実施の形態におけるクラスタシステム及びサーバ装置の構成について説明する。図1は、本発明の実施の形態におけるクラスタシステムの概略構成を示す図である。
【0019】
図1に示すように、本実施の形態におけるクラスタシステム100は、通信経路30〜50によって接続されたサーバ装置10及び20を備えている。クラスタシステム100では、一方のサーバ装置に障害が発生すると、他方のサーバ装置が、障害が発生したサーバ装置で行われている処理を引き継ぎ、業務が停止してしまう事態の発生が回避される。
【0020】
また、サーバ装置10及び20それぞれは、他方のサーバ装置に対して、通信経路30〜50を介して、自身の存在を示す信号、即ち、ハートビート信号を送信するが、それに加えて、通信経路30〜50が信頼性を有しているかどうかを判定することもできる。
【0021】
そして、サーバ装置10及び20それぞれは、他方のサーバ装置からハートビート信号を受信できない状況となると、このサーバ装置との間の通信経路30〜50について信頼性を有していると判定しているかどうかを確認する。続いて、各サーバ装置は、確認の結果、通信経路30〜50が信頼性を有していると判定していない場合は、実行中にある処理を停止することができる。
【0022】
このように、本実施の形態では、サーバ装置10及び20は、ハートビート通信のための通信経路30〜50について信頼性を判定し、その結果によっては、実際にはダウンしていなくても、処理を停止することができる。このため、処理内容が衝突してしまう事態、いわゆるスプリットブレインシンドロームの発生が回避される。
【0023】
ここで、図2を用いて、本実施の形態におけるクラスタシステム及びサーバ装置の構成について更に具体的に説明する。図2は、本発明の実施の形態におけるクラスタシステム及びサーバ装置の構成を具体的に示すブロック図である。
【0024】
図2に示すように、本実施の形態では、通信経路30は、ネットワーク31を経由する通信経路であり、パブリックLAN(Local Area Network)である。通信経路40は、サーバ装置間を直接結ぶ通信経路であり、インターコネクトLANである。通信経路50は、記憶装置51を介した通信経路である。
【0025】
また、通信経路50では、サーバ装置10及び20と記憶装置51とは、SCSI(Small computer System Interface)又はFC(Fiber Channel)といった接続方式によって接続されている。更に、通信経路50は、専用のケーブルではなく、インターネット等のネットワークを利用して構築されていても良い。
【0026】
また、本実施の形態では、図2に示すように、サーバ装置10は、信号送信部11と、信頼性判定部12と、処理管理部13と、信号受信部14と、自動停止部15と、各通信経路に対応した通信インターフェイス16〜18と、業務処理実行部19とを備えている。このうち、通信インターフェイス16〜18は、例えば、NIC(Network Interface Card)によって構成されている。
【0027】
信号送信部11は、他のサーバ装置に対して、通信経路30〜50を介して、ハートビート信号を送信する。また、信号送信部11は、ハートビート信号を、通信経路30〜50に加え、自動停止部15にも、各通信経路から送信する場合と同じタイミングで送信している。なお、ハートビート信号の送信は、定期的に行われても良いし、設定された条件に応じて行われても良い。
【0028】
信号受信部14は、通信インターフェイス16〜18を介して、他のサーバ装置からのハートビート信号を受信する。また、信号受信部14は、他のサーバ装置からのハートビート信号を受信できない状況にあるかどうか、具体的には、ハートビート信号がタイムアウトしていないかどうかを判断する。
【0029】
信頼性判定部12は、通信経路30〜50が信頼性を有しているかどうかを判定する。具体的には、信頼性判定部12は、通信経路0については、ネットワーク31上に存在する機器(ルータ)32にリクエスト(ICMP echo request)を送信し、機器32からリクエストに対するレスポンス(ICMP echo reply)が返信されてきた場合に、信頼性を有していると判定する。
【0030】
また、信頼性判定部12は、通信経路40については、通信インターフェイス17として機能するNICが通電状態にある場合に、信頼性を有していると判定する。更に、信頼性判定部12は、通信経路50については、記憶装置51に、SCSI又はFCで規定されているコマンドを送信し、記憶装置51からコマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する。
【0031】
業務処理実行部19は、クラスタシステム100が行う業務のための処理(業務処理)を実行する。具体的には、業務処理実行部19は、業務処理のためのアプリケーションプログラムによって構築されており、業務毎に構築される。
【0032】
処理管理部13は、信号受信部14が他のサーバ装置からのハートビート信号を受信できない状況にあると判断したときに、通信経路30〜50について、信頼性判定部12によって信頼性を有していると判定されているかどうかを確認する。
【0033】
そして、処理管理部13は、確認の結果、通信経路30〜50が信頼性を有していると判定されていない場合は、業務処理実行部19に、実行中にある処理を停止させる。一方、処理管理部13は、確認の結果、いずれかの通信経路が信頼性を有していると判定されている場合は、他のサーバ装置に異常が発生していると判断する。そして、処理管理部13は、業務処理実行部19が業務処理を既に実行中である場合は、実行中にある処理を継続して実行させる。また、処理管理部13は、業務処理実行部19が業務処理を実行中でない場合は、業務処理実行部19に、他のサーバ装置で実行されている業務処理を代わりに実行させる。
【0034】
自動停止部15は、信号送信部11からのハートビート信号の送信が途絶えた場合に、サーバ装置10を停止させる。具体的には、自動停止部15は、サーバ装置10に予め実装されているウォッチドッグタイマによって実現されている。また、このような自動停止部15が備えられているため、例えば、単にサーバ装置10がハングした場合であっても、サーバ装置10は停止されることになる。これは、サーバ装置10がハングした後に、サーバ装置20が、サーバ装置10に障害が発生したと判断して、サーバ装置10の処理を引き継いだにも係わらず、サーバ装置10がハング状態から復旧してしまうと、スプリットブレインシンドロームが発生してしまうからである。
【0035】
更に、サーバ装置20も、信号送信部21と、信頼性判定部22と、処理管理部23と、信号受信部24と、自動停止部25と、各通信経路に対応した通信インターフェイス16〜18と、業務処理実行部29とを備えている。なお、サーバ装置10とサーバ装置20とは、同一の構成及び機能を備えているため、サーバ装置20の各部における説明は省略する。また、図1及び図2の例では、クラスタシステム100を構成するサーバ装置は2台のみであるが、本実施の形態において、サーバ装置の台数は特に限定されるものではない。
【0036】
[システム動作]
次に、本発明の実施の形態におけるクラスタシステム100の動作について図3を用いて説明する。図3は、本発明の実施の形態におけるクラスタシステムを構成するサーバ装置の動作を示すフロー図である。
【0037】
また、以下の説明においては、適宜図2を参酌しながら、サーバ装置10を中心に説明する。更に、本実施の形態では、クラスタシステム100を動作させることによって、クラスタシステムの管理方法が実施される。よって、本実施の形態におけるクラスタシステムの管理方法の説明は、以下のクラスタシステムの動作説明に代える。
【0038】
まず、前提として、サーバ装置10において、信号送信部11は、設定された間隔で、通信インターフェイス16〜18から、サーバ装置20に向けてハートビート信号を送信する。更に、サーバ装置10において、信頼性判定部12は、ハートビート信号の送信又は受信のタイミングと同期して、通信経路30〜50が信頼性を有しているかどうかを判定する。
【0039】
また、同様に、サーバ装置20においても、信号送信部21は、設定された間隔で、通信インターフェイス26〜28から、サーバ装置10に向けてハートビート信号を送信する。更に、サーバ装置20においても、信頼性判定部22は、ハートビート信号の送信又は受信のタイミングと同期して、通信経路30〜50が信頼性を有しているかどうかを判定する。
【0040】
図3に示すように、サーバ装置10において、信号受信部14は、サーバ装置20からのハートビート信号の受信が、タイムアウトしていないかどうかを判定する(ステップA1)。
【0041】
ステップA1の判定の結果、タイムアウトしていない場合は、信号受信部14は、設定時間の経過後に、再度、ステップA1を実行する。一方、ステップA1の判定の結果、タイムアウトしている場合は、信号受信部14は、そのことを処理管理部13に通知する。
【0042】
次に、処理管理部13は、通知を受けると、通信経路30〜50の中に、信頼性を有している通信経路が存在しているかどうかを判定する(ステップA2)。ステップA2の判定の結果、信頼性を有している通信経路が存在している場合は、処理管理部13は、業務処理実行部19が業務処理を実行中であるかどうかを判定する(ステップA3)。
【0043】
そして、処理管理部13は、ステップA3の判定の結果、業務処理が実行中である場合は、業務処理実行部19に、業務処理をそのまま継続させる(ステップA4)。反対に、ステップA3の判定の結果、業務処理が実行中でない場合は、処理管理部13は、業務処理実行部19にサーバ装置20で実行されている処理を引き継がせる(ステップA5)。
【0044】
また、ステップA2の判定の結果、信頼性を有している通信経路が存在していない場合も、処理管理部13は、業務処理実行部19が業務処理を実行中であるかどうかを判定する(ステップA6)。
【0045】
そして、ステップA6の判定の結果、業務処理が実行中でない場合は、サーバ装置10における処理は終了する。一方、ステップA6の判定の結果、業務処理が実行中である場合は、処理管理部13は、業務処理実行部19に、業務処理を停止させる(ステップA7)。
【0046】
以上のステップA1〜A7は、サーバ装置10において、繰り返し実行される。また、サーバ装置20においても、ステップA1〜A7と同様のステップが、繰り返し実行される。
【0047】
[具体例]
ここで、図4を用いて具体例について説明する。図4は、本発明の実施の形態におけるクラスタシステムを構成する各サーバ装置での信頼性判定の結果を示す図である。
【0048】
例えば、図2に示すサーバ装置10及びサーバ装置20において、いずれの通信経路からもハートビート信号を受信できない事態が発生したとする。この場合、サーバ装置10では、信頼性判定部12は、通信経路30〜50それぞれにおける現在の信頼性の有無を判定する。
【0049】
そして、判定の結果、図4に示すように、サーバ装置10では、通信経路30及び40において信頼性有りと判定されているとすると、サーバ装置10は、サーバ装置20に障害が発生していると判断する。これは、サーバ装置10側の視点では、信頼性を有する通信経路があるのに、サーバ装置20がハートビート信号を送信できないのは、サーバ装置20に問題があると考えられるからである。
【0050】
一方、サーバ装置20には、実際には、障害が発生しておらず、通信経路30〜50のサーバ装置20側の部分に問題があって、ハートビート信号の送受信ができなかったとする。この場合、図4に示すように、サーバ装置20は、全ての通信経路30〜50において、信頼性無しと判定するので、業務処理を実行している場合は、障害が発生していなくても、業務処理を停止する。この結果、スプリットブレインシンドロームの発生が回避される。
【0051】
また、サーバ装置20に障害が発生し、これにより、ハートビート信号が送信できなかった場合、サーバ装置20では、上述のステップA1〜A7の処理は実行されないが、既に業務処理は停止されているので、スプリットブレインシンドロームが発生することはない。
【0052】
ところで、サーバ装置20が単にハングしたために、サーバ装置10にハートビート信号を送れない場合も、サーバ装置10は、サーバ装置20に障害が発生していると判断する。しかし、単なるハングであるため、暫くの後、サーバ装置20がハング状態から復旧して、スプリットブレインシンドロームが発生してしまう可能がある。このため、本実施の形態では、上述したように、サーバ装置10及び20には、自動停止部15及び25が設けられており、このような事態の発生が回避される。
【0053】
[プログラム]
本形態におけるプログラムは、コンピュータに、図3に示すステップA1〜A7を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における、クラスタシステム、サーバ装置、クラスタシステムの管理方法を実現することができる。この場合、サーバ装置10となるコンピュータのCPU(Central Processing Unit)は、信号送信部11、信頼性判定部12、処理管理部13、信号受信部14、及び自動停止部15として機能し、処理を行なう。また、サーバ装置20となるコンピュータのCPU(Central Processing Unit)は、信号送信部21、信頼性判定部22、処理管理部23、信号受信部24、及び自動停止部25として機能し、処理を行なう。
【0054】
[変形例]
上述した例では、各サーバ装置において、信頼性判定部は、全ての通信経路について信頼性を判定しているが、本実施の形態は、この態様に限定される趣旨ではない。本実施の形態は、信頼性判定部が、一部の通信経路についてのみ、信頼性を有しているかどうかを判定する態様であっても良い。
【0055】
また、上述の例では、通信経路として、パブリックLAN、インターコネクトLAN、SCSI/FCによる通信経路が例示されているが、本実施の形態では、サーバ装置間を接続する通信経路の数及び種類は特に限定されるものではない。他の通信経路としては、BMC(Baseboard Management Controller)制御用のLAN、RS232Cポートを利用した通信経路、無線LANを利用した通信経路、USB端子を利用した通信経路等が挙げられる。
【0056】
[物理構成]
ここで、本実施の形態におけるプログラムを実行することによって、サーバ装置を実現するコンピュータについて図5を用いて説明する。図5は、本発明の実施の形態におけるサーバ装置を実現するコンピュータの一例を示すブロック図である。
【0057】
図5に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
【0058】
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0059】
また、記憶装置113の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0060】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0061】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記憶媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体が挙げられる。
【0062】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記24)によって表現することができるが、以下の記載に限定されるものではない。
【0063】
(付記1)
通信経路によって接続された複数のサーバ装置を備え、
前記複数のサーバ装置それぞれは、
他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、信号送信部と、
前記通信経路が信頼性を有しているかどうかを判定する、信頼性判定部と、
前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させる、処理管理部と、
を備えている、ことを特徴とするクラスタシステム。
【0064】
(付記2)
前記処理管理部は、確認の結果、前記通信経路が信頼性を有していると判定されている場合は、前記他のサーバ装置に異常が発生していると判断して、当該サーバ装置に、実行中にある処理を継続して実行させ、又は、前記他のサーバ装置が実行している処理を代わりに実行させる、
付記1に記載のクラスタシステム。
【0065】
(付記3)
前記複数のサーバ装置が、互いに2つ以上の通信経路によって接続されており、
各サーバ装置の処理管理部は、いずれかの前記通信経路が信頼性を有していると判定されている場合に、前記他のサーバ装置に異常が発生していると判断する、付記2に記載のクラスタシステム。
【0066】
(付記4)
前記複数のサーバ装置が、サーバ装置間を直接結ぶ通信経路、ネットワークを経由する通信経路、及び記憶装置を経由した通信経路によって、互いに接続されている、
付記3に記載のクラスタシステム。
【0067】
(付記5)
前記信頼性判定部は、
前記サーバ装置間を直接結ぶ通信経路については、通信インターフェイスが通電状態にある場合に、信頼性を有していると判定し、
前記ネットワークを経由する通信経路については、前記ネットワーク上に存在する機器にリクエストを送信し、前記機器から前記リクエストに対するレスポンスが返信されてきた場合に、信頼性を有していると判定し、
前記記憶装置を経由した通信経路については、前記記憶装置にコマンドを送信し、前記記憶装置から前記コマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する、
付記4に記載のクラスタシステム。
【0068】
(付記6)
前記複数のサーバ装置それぞれは、更に、前記信号送信部からの前記信号の送信が途絶えた場合に、当該サーバ装置を停止させる、自動停止部を備えている、
付記1に記載のクラスタシステム。
【0069】
(付記7)
通信経路によって他のサーバ装置と接続されるサーバ装置であって、
前記他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、信号送信部と、
前記通信経路が信頼性を有しているかどうかを判定する、信頼性判定部と、
前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させる、処理管理部と、
を備えている、ことを特徴とするサーバ装置。
【0070】
(付記8)
前記処理管理部は、確認の結果、前記通信経路が信頼性を有していると判定されている場合は、前記他のサーバ装置に異常が発生していると判断して、当該サーバ装置に、実行中にある処理を継続して実行させ、又は、前記他のサーバ装置が実行している処理を代わりに実行させる、
付記7に記載のサーバ装置。
【0071】
(付記9)
2つ以上の通信経路によって前記他のサーバ装置と接続されており、
前記処理管理部は、いずれかの前記通信経路が信頼性を有していると判定されている場合に、前記他のサーバ装置に異常が発生していると判断する、付記8に記載のサーバ装置。
【0072】
(付記10)
サーバ装置間を直接結ぶ通信経路、ネットワークを経由する通信経路、及び記憶装置を経由した通信経路によって、前記他のサーバ装置に接続されている、
付記9に記載のサーバ装置。
【0073】
(付記11)
前記信頼性判定部は、
前記サーバ装置間を直接結ぶ通信経路については、通信インターフェイスが通電状態にある場合に、信頼性を有していると判定し、
前記ネットワークを経由する通信経路については、前記ネットワーク上に存在する機器にリクエストを送信し、前記機器から前記リクエストに対するレスポンスが返信されてきた場合に、信頼性を有していると判定し、
前記記憶装置を経由した通信経路については、前記記憶装置にコマンドを送信し、前記記憶装置から前記コマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する、
付記10に記載のサーバ装置。
【0074】
(付記12)
前記信号送信部からの前記信号の送信が途絶えた場合に、当該サーバ装置を停止させる、自動停止部を更に備えている、
付記7に記載のサーバ装置。
【0075】
(付記13)
通信経路によって接続された複数のサーバ装置を用い、
前記複数のサーバ装置それぞれによって実行される、
(a)他のサーバ装置に対して、前記通信経路を介して、自身の存在を示す信号を送信する、ステップと、
(b)前記通信経路が信頼性を有しているかどうかを判定する、ステップと、
(c)前記他のサーバ装置から前記信号を受信できない状況となると、前記他のサーバ装置との間の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させる、ステップと、
を有する、ことを特徴とするクラスタシステムの管理方法。
【0076】
(付記14)
前記(c)のステップにおいて、確認の結果、前記通信経路が信頼性を有していると判定されている場合は、前記他のサーバ装置に異常が発生していると判断して、当該サーバ装置に、実行中にある処理を継続して実行させ、又は、前記他のサーバ装置が実行している処理を代わりに実行させる、
付記13に記載のクラスタシステムの管理方法。
【0077】
(付記15)
前記複数のサーバ装置が、互いに2つ以上の通信経路によって接続されており、
前記(c)のステップにおいて、いずれかの前記通信経路が信頼性を有していると判定されている場合に、前記他のサーバ装置に異常が発生していると判断する、付記14に記載のクラスタシステムの管理方法。
【0078】
(付記16)
前記複数のサーバ装置が、サーバ装置間を直接結ぶ通信経路、ネットワークを経由する通信経路、及び記憶装置を経由した通信経路によって、互いに接続されている、
付記15に記載のクラスタシステムの管理方法。
【0079】
(付記17)
前記(b)のステップにおいて、
前記サーバ装置間を直接結ぶ通信経路については、通信インターフェイスが通電状態にある場合に、信頼性を有していると判定し、
前記ネットワークを経由する通信経路については、前記ネットワーク上に存在する機器にリクエストを送信し、前記機器から前記リクエストに対するレスポンスが返信されてきた場合に、信頼性を有していると判定し、
前記記憶装置を経由した通信経路については、前記記憶装置にコマンドを送信し、前記記憶装置から前記コマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する、
付記16に記載のクラスタシステムの管理方法。
【0080】
(付記18)
前記複数のサーバ装置それぞれによって実行される、
(d)前記(a)のステップによる前記信号の送信が途絶えた場合に、当該サーバ装置を停止させる、ステップを更に有している、
付記13に記載のクラスタシステムの管理方法。
【0081】
(付記19)
通信経路によって他のコンピュータと接続されるコンピュータに、
(a)前記他のコンピュータに対して、前記通信経路を介して、自身の存在を示す信号を送信する、ステップと、
(b)前記通信経路が信頼性を有しているかどうかを判定する、ステップと、
(c)前記他のコンピュータから前記信号を受信できない状況となると、前記他のコンピュータとの間の前記通信経路について信頼性を有していると判定されているかどうかを確認し、確認の結果、前記通信経路が信頼性を有していると判定されていない場合は、実行中にある処理を停止させる、ステップと、
を実行させる、プログラム。
【0082】
(付記20)
前記(c)のステップにおいて、確認の結果、前記通信経路が信頼性を有していると判定されている場合は、前記他のコンピュータに異常が発生していると判断して、当該コンピュータで実行中にある処理を継続して実行し、又は、前記他のコンピュータが実行している処理を代わりに実行する、
付記19に記載のプログラム。
【0083】
(付記21)
前記コンピュータが、2つ以上の通信経路によって前記他のコンピュータと接続されており、
前記(c)のステップにおいて、いずれかの前記通信経路が信頼性を有していると判定されている場合に、前記他のコンピュータに異常が発生していると判断する、付記20に記載のプログラム。
【0084】
(付記22)
前記コンピュータは、コンピュータ間を直接結ぶ通信経路、ネットワークを経由する通信経路、及び記憶装置を経由した通信経路によって、前記他のコンピュータに接続されている、
付記21に記載のプログラム。
【0085】
(付記23)
前記(b)のステップにおいて、
前記コンピュータ間を直接結ぶ通信経路については、通信インターフェイスが通電状態にある場合に、信頼性を有していると判定し、
前記ネットワークを経由する通信経路については、前記ネットワーク上に存在する機器にリクエストを送信し、前記機器から前記リクエストに対するレスポンスが返信されてきた場合に、信頼性を有していると判定し、
前記記憶装置を経由した通信経路については、前記記憶装置にコマンドを送信し、前記記憶装置から前記コマンドに対するレスポンスが返信されてきた場合に、信頼性を有していると判定する、
付記22に記載のプログラム。
【0086】
(付記24)
記コンピュータに、
(d)前記(a)のステップによる前記信号の送信が途絶えた場合に、当該コンピュータを停止させる、ステップを更に実行させる
記19に記載のプログラム。
【0087】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0088】
この出願は、2013年12月25日に出願された日本出願特願2013−267038を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0089】
以上のように、本発明によれば、クラスタシステムにおいて処理内容が衝突してしまう事態の発生を回避することができる。本発明は、クラスタシステムの管理に有用である。
【符号の説明】
【0090】
10 サーバ装置
11 信号送信部
12 信頼性判定部
13 処理管理部
14 信号受信部
15 自動停止部
16、17、18 通信インターフェイス
19 業務処理実行部
20 サーバ装置
21 信号送信部
22 信頼性判定部
23 処理管理部
24 信号受信部
25 自動停止部
26、27、28 通信インターフェイス
29 業務処理実行部
30 通信経路
31 ネットワーク
32 ルーター
40 通信経路
50 通信経路
51 記憶装置
100 クラスタシステム
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
図1
図2
図3
図4
図5