(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-08
(45)【発行日】2022-08-17
(54)【発明の名称】情報処理システム及び制御方法
(51)【国際特許分類】
G06F 13/42 20060101AFI20220809BHJP
G06F 13/38 20060101ALI20220809BHJP
G06F 11/16 20060101ALI20220809BHJP
G06F 1/10 20060101ALI20220809BHJP
G06F 1/04 20060101ALI20220809BHJP
【FI】
G06F13/42 350B
G06F13/38 340E
G06F11/16 679
G06F11/16 633
G06F1/10
G06F1/04 560
(21)【出願番号】P 2018043575
(22)【出願日】2018-03-09
【審査請求日】2021-02-10
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】丹波 浩志
【審査官】局 成矢
(56)【参考文献】
【文献】米国特許出願公開第2007/0294561(US,A1)
【文献】特開2013-206278(JP,A)
【文献】国際公開第2012/081115(WO,A1)
【文献】米国特許出願公開第2003/0061535(US,A1)
【文献】特開2006-209490(JP,A)
【文献】特開2008-046942(JP,A)
【文献】特開2015-194847(JP,A)
【文献】米国特許出願公開第2013/0326259(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/42
G06F 13/38
G06F 11/16
G06F 1/10
G06F 1/04
(57)【特許請求の範囲】
【請求項1】
基盤装置と複数の情報処理装置とを備え、
前記基盤装置は、
複数の情報処理装置のうち、同期が必要な情報処理装置の組み合わせを指定した同期グループ情報を取得する同期グループ情報取得部と、
前記同期グループ情報に基づいて、同期が必要な一組みの前記情報処理装置に対して、同位相のクロック信号を配信するクロック配信部と、
一組みの前記情報処理装置の間におけるクロック周期での前記情報処理装置による演算結果の授受を制御するスイッチ部と、
複数の前記情報処理装置を収納し、複数の前記情報処理装置の各々と、前記同期グループ情報取得部および前記クロック配信部および前記スイッチ部とを通信可能に接続するバックプレーンと、
を備
え、
前記情報処理装置は、
前記スイッチ部を介して授受される前記演算結果を比較して一組みの前記情報処理装置の同期がとれているかどうかを判定するロックステップ制御部と、
複数の前記情報処理装置のうち同期が必要な前記情報処理装置を設定した設定情報を取得し、前記設定情報に基づく前記同期グループ情報を前記クロック配信部へ送信するサーバ管理部と、
を備える情報処理システム。
【請求項2】
前記同期グループ情報には、1台の前記情報処理装置に対して2台以上の同期相手を含めることが可能である、
請求項1に記載の
情報処理システム。
【請求項3】
複数の前記情報処理装置が備える前記サーバ管理部を互いに接続する通信路、
をさらに備え、
前記設定情報を取得した前記サーバ管理部は、前記通信路を介して、他の前記情報処理装置が備える前記サーバ管理部へ前記設定情報を送信する、
請求項1または請求項2に記載の情報処理システム。
【請求項4】
複数の前記情報処理装置のうち、一組みの前記情報処理装置は同期して動作し、他の情報処理装置は非同期で動作する、
請求項
1から請求項
3の何れか1項に記載の情報処理システム。
【請求項5】
基盤装置と複数の情報処理装置とを備え、前記基盤装置が複数の前記情報処理装置の各々と通信可能に接続される情報システムにおいて、
複数の前記情報処理装置のうちの一つが、複数の前記情報処理装置のうち同期が必要な前記情報処理装置を設定した設定情報を取得し、前記設定情報に基づく同期が必要な前記情報処理装置の組み合わせを指定した同期グループ情報を前記基盤装置へ送信するステップと、
前記基盤装置が、前記同期グループ情報を取得するステップと、
前記基盤装置が、前記同期グループ情報に基づいて、同期が必要な一組みの前記情報処理装置に対して、同位相のクロック信号を配信するステップと、
前記基盤装置が、一組みの前記情報処理装置の間におけるクロック周期での前記情報処理装置による演算結果の授受を制御するステップと、
一組みの前記情報処理装置の各々が、授受される前記演算結果を比較して一組みの前記情報処理装置の同期がとれているかどうかを判定するステップと、
を有する制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム及び制御方法に関する。
【背景技術】
【0002】
プロセッサ、メモリ等を多重化した高可用性サーバが提供されている。例えば、特許文献1には、複数のCPU(central processing unit)モジュールの間で同期をとって、同じタイミングで同一の処理を実行させるロックステップ方式が採用された高可用性サーバにおいて、誤りが検出された場合でもロックステップを外すことなく安定した動作を実現する制御方法が記載されている。特許文献1に記載の制御方法では、1つのCPUモジュールで誤りが検出された場合、その情報を他のCPUモジュールへ送信する。次に全てのCPUモジュールで同期してエラー訂正処理を行う。特許文献1に記載の方法によれば、誤りが検出されたCPUモジュールを切り離すことがなく、エラー訂正処理を行う間も可用性を維持することができる。
【0003】
特許文献2には、例えば、第1のサーバのデータを、第2のサーバの同期データ領域に保持するようにして複数のサーバ間でデータを同期するデータ同期システムが記載されている。このデータ同期システムでは、第1のサーバに障害が発生すると、第2のサーバを第1のサーバの代替として機能させる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2012-73828号公報
【文献】特開2009-265973号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般に高可用性が求められるシステムを構築する場合、システムの用途および重要度に応じてサーバ(高可用性サーバや一般的なサーバ)を選定し、これらを組み合わせてシステムを構築する。システムの構築時には、サーバの選定、構築、動作確認等で膨大な作業が発生する。特許文献1~特許文献2には、高可用性システムの構築に必要な作業を軽減し、高可用性システムの構築を容易にする技術が開示されていない。
【0006】
そこでこの発明は、上述の課題を解決する情報処理システム及び制御方法を提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明の一態様によれば、情報処理システムは、基盤装置と複数の情報処理装置とを備え、前記基盤装置は、複数の情報処理装置のうち、同期が必要な情報処理装置の組み合わせを指定した同期グループ情報を取得する同期グループ情報取得部と、前記同期グループ情報に基づいて、同期が必要な一組みの前記情報処理装置に対して、同位相のクロック信号を配信するクロック配信部と、一組みの前記情報処理装置の間におけるクロック周期での前記情報処理装置による演算結果の授受を制御するスイッチ部と、複数の前記情報処理装置を収納し、複数の前記情報処理装置の各々と、前記同期グループ情報取得部および前記クロック配信部および前記スイッチ部とを通信可能に接続するバックプレーンと、を備え、前記情報処理装置は、前記スイッチ部を介して授受される前記演算結果を比較して一組みの前記情報処理装置の同期がとれているかどうかを判定するロックステップ制御部と、複数の前記情報処理装置のうち同期が必要な前記情報処理装置を設定した設定情報を取得し、前記設定情報に基づく前記同期グループ情報を前記クロック配信部へ送信するサーバ管理部と、を備える。
【0008】
本発明の一態様によれば、基盤装置と複数の情報処理装置とを備え、前記基盤装置が複数の前記情報処理装置の各々と通信可能に接続される情報システムにおいて、複数の前記情報処理装置のうちの一つが、複数の前記情報処理装置のうち同期が必要な前記情報処理装置を設定した設定情報を取得し、前記設定情報に基づく同期が必要な前記情報処理装置の組み合わせを指定した同期グループ情報を前記基盤装置へ送信するステップと、前記基盤装置が、前記同期グループ情報を取得するステップと、前記基盤装置が、前記同期グループ情報に基づいて、同期が必要な一組みの前記情報処理装置に対して、同位相のクロック信号を配信するステップと、前記基盤装置が、一組みの前記情報処理装置の間におけるクロック周期での前記情報処理装置による演算結果の授受を制御するステップと、一組みの前記情報処理装置の各々が、授受される前記演算結果を比較して一組みの前記情報処理装置の同期がとれているかどうかを判定するステップと、を有する制御方法である。
【発明の効果】
【0011】
本発明の基盤装置によれば、多重化された高可用性サーバを含む情報処理システムの構築を容易に行うことができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態による基盤装置の最小構成を示す図である。
【
図2】本発明の一実施形態による情報処理システムの構成を示すブロック図である。
【
図3】本発明の一実施形態による情報処理装置の構成を示すブロック図である。
【
図4】本発明の一実施形態による同期が必要なサーバの設定情報の一例を示す図である。
【
図5】本発明の一実施形態による同期が必要なサーバの設定処理の一例を示す図である。
【
図6】本発明の一実施形態による同期処理の一例を示す図である。
【
図7】本発明の一実施形態による情報処理システムの一例を示す図である。
【発明を実施するための形態】
【0013】
<一実施形態>
以下、本発明の一実施形態による情報処理システムについて
図1~
図7を参照して説明する。
図1は、本発明の一実施形態による基盤装置の最小構成を示す図である。
基盤装置100は、少なくとも1台の高可用性サーバを含む情報処理システムを容易に構築可能とする装置である。1台の高可用性サーバは、複数の情報処理装置を多重化して構成される。基盤装置100を用いると、処理の多重化が要求される高可用性サーバを構築することが可能である。処理の多重化は、例えば、複数の情報処理装置が備えるそれぞれのCPU(central processing unit)の間でロックステップ方式の同期を実行することにより実現する。基盤装置100は、このような要求にこたえる高可用性サーバの構築に必要な機能を提供する。また、基盤装置100によって構成される情報処理システムは、非多重化サーバを含むことができる。基盤装置100を用いると、高可用性サーバと非多重化サーバとが混在する情報処理システムを容易に構築することができる。
【0014】
図示するように基盤装置100は、同期グループ情報取得部110と、クロック配信部101と、を備える。
同期グループ情報取得部110は、情報処理システムに含まれる複数の情報処理装置のうち、同期が必要な情報処理装置の組み合わせを示す同期グループ情報を取得する。同期グループ情報には、1台の前記情報処理装置に対して2台以上の同期相手となる情報処理装置を設定することが可能である。
クロック配信部101は、同期グループ情報に基づいて、同期が必要な一組みの情報処理装置に対して同位相のクロック信号を送信する。
【0015】
図2は、本発明の一実施形態による情報処理システムの構成を示すブロック図である。情報処理システム1は、基盤装置100と、基盤装置100に接続される複数の情報処理装置(サーバ201~20N)と、を含む。
図2に例示する情報処理システム1は、例えば、ブレードサーバである。
基盤装置100は、クロック配信部101と、スイッチ部102と、バックプレーン103と、を備えている。
クロック配信部101は、CPUを備えたコンピュータである。クロック配信部101は、同期グループ情報取得部110を備える。同期グループ情報取得部110については
図1で説明したとおりである。クロック配信部101は、例えば、水晶振動子などの源振を備える。源振は、所定の周期でクロック信号を出力する。クロック配信部101は、このクロック信号を、サーバ201~20Nのうち、同期グループ情報に指定された一組みのサーバ群へ配信する。例えば、同期グループ情報に同期すべきサーバの組み合わせとして、サーバ201とサーバ202の組み合わせが指定されている場合、クロック配信部101は、同期グループ情報に基づいて、サーバ201とサーバ202に対して同位相のクロック信号を配信する。
【0016】
スイッチ部102は、サーバ201~20Nの間の通信を制御する。例えば、スイッチ部102は、同期が必要な一組みのサーバ201等の間の演算結果の授受を仲介する。例えば、サーバ201とサーバ202を同期させる場合、スイッチ部102は、クロック配信部101が配信するクロック信号の周期(クロック周期)で、サーバ201が出力したサーバ201が備えるCPU241による演算結果を取得し、これをサーバ202へ出力する。また、スイッチ部102は、クロック周期で、サーバ202が出力したサーバ202が備えるCPU242による演算結果を取得し、これをサーバ201へ出力する。
【0017】
バックプレーン103は、クロック配信部101と、スイッチ部102とを備える。バックプレーン103は、サーバ201~20Nを筐体104に収納するためのスロットを備えている。各スロットには、クロック配信部101およびスイッチ部102と、サーバ201~20Nとを通信可能に接続するインタフェースが設けられている。バックプレーン103には、各インタフェースとクロック配信部101やスイッチ部102とを接続する配線が敷設されている。サーバ201~20Nを、バックプレーン103に接続することにより、クロック配信部101とサーバ201~20Nとの通信、スイッチ部102とサーバ201~20Nとの通信、サーバ201~20Nの間の通信が可能となる。バックプレーン103は、サーバ201~20Nの各々とクロック配信部101とを接続する破線で示された通信線C1~CNを備える。バックプレーン103は、サーバ201~20Nの各々とスイッチ部102とを接続する実線で示された通信線L1~LNを備える。通信線L1~LNのことをロックステップインタフェースとも呼ぶ。バックプレーン103は、サーバ管理部261~26Nの各々とクロック配信部101とを接続する一点鎖線で示された通信線H1~HNを備える。サーバ管理部261~26Nは、通信線L0によって互いが通信可能に接続される。
【0018】
図3は、本発明の一実施形態による情報処理装置の構成を示すブロック図である。
図3に情報処理システム1に用いられるサーバ201の構成例を示す。
サーバ201は、メモリ211と、不揮発性ストレージ221と、ネットワークI/F部231と、CPU241と、ロックステップ制御部251と、サーバ管理部261とを備える。サーバ管理部261は、通信ポート271を備えている。
図3では、サーバ201を例に説明を行うが、他のサーバ20X(Xは2~N)についても同様である。例えば、サーバ202は、メモリ212と、不揮発性ストレージ222と、ネットワークI/F部232と、CPU242と、ロックステップ制御部252と、サーバ管理部262とを備える。サーバ管理部262は、通信ポート272を備えている。また、各構成は、以下に説明するものと同様の機能を有している。
【0019】
メモリ211、不揮発性ストレージ221、ネットワークI/F部231、CPU241は、一般的なサーバに搭載されたものと同様の部品である。
例えば、メモリ211は、RAM(random access memory)等で構成された主記憶装置である。
不揮発性ストレージ221はHDD(hard disk drive)やROM(read only memory)等で構成される。不揮発性ストレージ221は、例えば、以下に説明する制御プログラムαを記憶する。
ネットワークI/F部231は、LANカード等の通信用モジュールで構成される。
CPU241は、OSや各種ソフトウェアを実行するプロセッサである。サーバ201には、サーバ201を含む複数のサーバ20Xによる多重化構成での運用を実現するために必要な制御プログラムα(図示せず)がインストールされる。例えば、サーバ201とサーバ202が多重化して同期して動作する構成の場合にサーバ201でハードウェアの障害などが生じると、同期ずれが生じる。制御プログラムαは、このような場合にサーバ201を多重化構成から論理的に切り離す縮退制御を行う機能を有している。CPU241は、例えば、制御プログラムαを実行する。また、CPU241は、次に説明するロックステップ制御部251と連携して、他のサーバ20Xが備えるCPU24Xとロックステップ方式による同期状態での動作が可能である。また、CPU241は、他のCPU24Xと同期することなく単独で動作する非同期状態での動作が可能である。
【0020】
ロックステップ制御部251は、ロックステップ方式の同期を実現するための機能を有するハードウェアである。ロックステップ制御部251は、CPU241に接続されている。ロックステップ方式の同期とは、複数のCPUが、クロック周期で同じデータを用いて同じ処理を行うことをいう。ロックステップ制御部251には、ロックステップ方式の同期の実現に必要な機能が実装されている。例えば、ロックステップ制御部251は、クロック周期で、同期が必要な複数のCPU241等が同じ動作を行ったかどうかを確認する判定処理を行う。例えば、サーバ201とサーバ202とが同期する場合、ロックステップ制御部251は、CPU241による演算結果(CPU241のレジスタやメモリ211に記録された情報)と、スイッチ部102を介して取得したCPU242による演算結果(CPU242のレジスタやメモリ212に記録された情報)とをクロック周期で比較して、両者が一致すれば同期が成功していると判定する。同期が成功している場合、サーバ201とサーバ202は、ロックステップ方式の同期を継続する。CPU241による演算結果とCPU242による演算結果とが一致しない場合、ロックステップ制御部251は、同期が失敗している(同期ずれ)と判定する。同期の判定処理は、サーバ202でも行われる。具体的には、ロックステップ制御部252は、CPU242による演算結果と、スイッチ部102を介して取得したCPU241による演算結果とをクロック周期で比較する。両者が一致する場合、ロックステップ制御部252は、同期が成功したと判定する。両者が一致しない場合、ロックステップ制御部252は、同期が失敗し同期ずれが生じたと判定する。
【0021】
同期が失敗した場合、制御プログラムαが縮退制御を行う。縮退制御を行うと、残りのサーバの間だけでロックステップ方式の同期を継続する。例えば、サーバ205とサーバ206とサーバ207の3台を同期させる場合であって、CPU245の演算結果が、CPU246の演算結果およびCPU247の演算結果と異なる場合、サーバ205のロックステップ制御部255は、CPU245およびメモリ215の同期が失敗したと判定し、その判定結果を、サーバ205の制御プログラムαへ通知する。制御プログラムαは、サーバ205を縮退制御する。サーバ205の縮退後は、サーバ206とサーバ207とが同期した動作を継続する。なお、一般的には2台のサーバで多重化することが多いが、3台のサーバを多重化すると、1台だけ演算結果が異なることに基づいて、同期の成否を判定できるので、同期失敗の原因となるサーバ(上の例ではサーバ205)の特定が容易である。後述するように本実施形態の基盤装置100を用いると、比較的容易に3台のサーバ205~207を多重化し、これら3台が同期するように構成することができる。
【0022】
また、2台のサーバ201とサーバ202の同期中に、例えば、ロックステップ制御部251が同期の失敗を判定した場合、その判定の前にサーバ201またはサーバ202でハードウェアの故障が生じている可能性が高い。ロックステップ制御部251は、サーバ201に故障が生じた場合、故障を検出してログに記録する機能を有している。ロックステップ制御部251は、同期失敗を判定すると、ログの記録に基づき、サーバ201側の問題であると判定する。サーバ201にインストールされた制御プログラムαは、ロックステップ制御部251の指示により、サーバ201を縮退制御する。
【0023】
サーバ管理部261は、サーバ201が備える管理用のコンピュータである。サーバ管理部261は、独自にCPU(図示せず)および当該CPUによって実行される管理プログラムを備え、CPU241とは独立して処理を行う。サーバ管理部261には、電源ユニット(図示せず)から電力が供給され、常時稼働している。サーバ管理部261は、サーバ201が起動していない状態でも稼働することができる。例えば、サーバ201の停止中に、サーバ管理部261は、通信ポート271に接続された外部(情報処理システム1に含まれない)のPC(personal computer)等と通信を行って、同期が必要なサーバの設定情報を、そのPC等から取得する。サーバ管理部261は、取得した設定情報を記憶する。
また、サーバ管理部261は、他のサーバ20X(Xは2~N)が備えるサーバ管理部26Xと、通信路L0を介して通信を行う。サーバ管理部261は、同期が必要なサーバの設定情報を他のサーバ管理部26Xへ送信する。これにより、サーバ管理部261~26Nは、設定情報を共有する。
また、サーバ管理部261は、同期が必要なサーバの設定情報から、同期すべきサーバの組み合わせを示す同期グループ情報を生成する。サーバ管理部261は、通信路H1を介して、同期グループ情報をクロック配信部101へ送信する。クロック配信部101は、送信された同期グループ情報に基づいてクロック信号を配信する。
【0024】
次に同期が必要なサーバの設定情報について説明する。
図4は、本発明の一実施形態による同期が必要なサーバの設定情報の一例を示す図である。
図4に例示するように設定情報は、「サーバ実装位置」、「2ndCPU」、「2ndIO」、「3rdCPU」、「3rdIO」の各項目を有している。「サーバ実装位置」には、基準となるサーバ201~20Nが収納されるスロットの情報が設定される。「2ndCPU」および「2ndIO」の各項目には、「サーバ実装位置」に設定したスロット位置に収納されたサーバ20x(1~Nのうち何れか)と同期をとる2台目のサーバ20y(yはxを除く1~Nのうち何れか)を収納するスロットのスロット番号が設定される。同期させる2台目のサーバが存在しない場合は0が設定される。「3rdCPU」および「3rdIO」の各項目には、「サーバ実装位置」で設定したスロット位置に収納されたサーバ20xと同期をとる3台目のサーバ20z(zはx、yを除く1~Nのうち何れか)を収納するスロットのスロット番号が設定される。同期させる3台目のサーバが存在しない場合は0が設定される。
【0025】
図4に例示する設定情報は、バックプレーン103に設けられた例えば7つのスロットにサーバ201~207の何れかを収納する場合の設定例である。一例として、スロットXにサーバ20X(X:1~7)を収納する場合を例に説明を行う。1行目のデータは、サーバ201に同期させる2台目のサーバにサーバ202を設定し、サーバ201に同期させる3台目のサーバを設定しないことを示している。2行目のデータには、1行目の設定と対応するデータが設定されている。つまり、2行目のデータは、サーバ202に同期させる2台目のサーバはサーバ201で、サーバ202に同期させる3台目のサーバは存在しないことを示している。具体的な動作については、
図5~
図6を用いて説明するが、本実施形態の基盤装置100によれば1~2行目に例示する設定により、2台のサーバを、高い可用性(ロックステップ方式の同期)を実現しつつ、多重化することができる。
【0026】
3行目、4行目のデータは、サーバ203およびサーバ204に対して同期させるサーバが存在しないことを示している。つまり、3行目、4行目のデータの「2ndCPU」~「3rdIO」には、何れも0が設定されている。本実施形態の基盤装置100によれば、1~4行目に例示する設定を行うことで、高可用性サーバ(サーバ201、202)と、稼働能力を重視した非多重化サーバ(サーバ203、204)とが混在する情報処理システム1を構築することができる。
【0027】
5行目のデータは、サーバ205に対し、サーバ206(2台目)とサーバ207(3台目)を同期させることを示している。同様に6行目のデータは、サーバ206に対し、サーバ205(2台目)とサーバ207(3台目)を同期させることを示している。7行目のデータは、サーバ207に対し、サーバ205(2台目)とサーバ206(3台目)を同期させることを示している。このような設定を行うことで3台のサーバを多重化し、3台のサーバをロックステップ方式で同期させることができる。なお、
図4に例示する設定情報では、最大3台までを同期するサーバとして設定することができるが、これに限定されない。設定情報には、4台以上同期するサーバを設定することができても良いし、2台のみ設定できてもよい。
【0028】
次に
図4の設定情報に基づいて情報処理システム1を構築する場合を例に、情報処理システム1の構成を設定して、少なくとも1台の高可用性サーバを含む情報処理システムを構築する手順や、そのときの情報処理システム1の動作について説明する。
図5は、本発明の一実施形態による同期が必要なサーバの設定処理の一例を示す図である。一例として、サーバ201~207がバックプレーン103に接続されているとする。また、情報処理システム1は通電しているが、システムとしては起動していない状態であるとする。上記の通り、サーバ201~207の起動状態にかかわらず、サーバ管理部261~267は常時稼働している。また、クロック配信部101はクロック信号の配信は行わないが、配信に必要な準備処理を行うことができる。
【0029】
まず、ユーザが、例えば、サーバ201のサーバ管理部261の通信ポート271に作業用のPCを接続する。ユーザは、PCを操作することにより、
図4で例示した設定情報をサーバ管理部261へ入力する。サーバ管理部261は、設定情報を取得する(ステップS11)。サーバ管理部261は、取得した管理情報を自装置の記憶部(図示せず)に書き込んで記憶する。次にサーバ管理部261は、通信路L0を介して、サーバ管理部262~267へ設定情報を送信する(ステップS12)。サーバ管理部262~267は、設定情報を取得し(ステップS13)、設定情報を記憶する。次に、例えば、サーバ管理部261が、設定情報に基づいて、同期グループ情報を作成する。
図4の設定情報の場合、サーバ管理部261は、例えば、同期させるサーバが収納されたスロット番号を組み合わせて(1,2)、(5,6,7)という同期グループ情報を作成する。次にサーバ管理部261は、作成した同期グループ情報(1,2)、(5,6,7)を、通信路H1を介して、クロック配信部101へ送信する(ステップS14)。クロック配信部101では、同期グループ情報取得部110が、同期グループ情報((1,2)、(5,6,7))を取得する(ステップS15)。クロック配信部101は、同期グループ情報に基づいて、クロック信号を配信する配信先を設定する。
【0030】
図6は、本発明の一実施形態による同期処理の一例を示す図である。
図4に示す設定情報では、サーバ201とサーバ202が多重化される。また、サーバ205~サーバ207が多重化される。
図6にクロックは配信部101、サーバ201、サーバ202の動作の一例を示す。
ユーザが、情報処理システム1へ起動指示を入力する。情報処理システム1は、起動処理を行って起動状態となる。サーバ201は、起動時にサーバ管理部261へ同期相手の情報を問い合わせる。サーバ管理部261は、サーバ201の同期相手としてサーバ202が存在することをCPU241へ通知する。CPU241は、ロックステップ制御部251へ同期相手の情報を通知する。サーバ202においても同様である。つまり、ロックステップ制御部252は、同期相手としてサーバ201の情報を取得する。
【0031】
基盤装置100およびサーバ201~207が起動し、通常の運転状態となると、クロック配信部101は、例えば、水晶振動子の発振周期等、所定の周期でクロック信号を配信する。クロック配信部101は、クロック信号の配信タイミングが到来すると(ステップS21;Yes)、同期グループ情報に示される一組みのサーバに向けて、同時に同位相のクロック信号を配信する。例えば、クロック配信部101は、サーバ201に対して通信路C1を介してクロック信号を配信する(ステップS22)。それと同時にクロック配信部101は、サーバ202に対して通信路C2を介して同位相のクロック信号を配信する(ステップS22´)。CPU241とCPU242は、クロック配信部101から取得したクロック信号に同期して動作する。サーバ201とサーバ202は、CPU241による演算結果とCPU242による演算結果を、スイッチ部102を介して授受する(ステップS23)。例えば、ロックステップ制御部251は、クロック周期ごとにCPU241の演算結果を同期相手の情報と共に、通信路L1を介してスイッチ部102へ出力する。ロックステップ制御部252は、クロック周期ごとにCPU242の演算結果を同期相手の情報と共に、通信路L2を介してスイッチ部102へ出力する。スイッチ部102は、同期相手の情報に基づいて、ロックステップ制御部251から取得した演算結果をサーバ202へ出力する。サーバ202では、ロックステップ制御部252がこれを取得する。スイッチ部102は、同期相手の情報に基づいて、ロックステップ制御部252から取得した演算結果をサーバ201へ出力する。サーバ201では、ロックステップ制御部251がこれを取得する。
【0032】
次にロックステップ制御部251は、CPU241による演算結果とCPU242による演算結果とを比較して同期の判定処理を行う(ステップS24)。それと同時にサーバ202では、ロックステップ制御部252が、CPU242による演算結果とCPU241による演算結果とを比較して同期の判定処理を行う(ステップS24´)。
【0033】
ロックステップ制御部251による判定結果が成功の場合(ステップS25;Yes)、同期動作を継続する。つまり、CPU241は、クロック信号を所定の周期で受信しつつ、クロック信号と同期して動作し、ロックステップ制御部251は、クロック周期ごとに同期判定を行う。ロックステップ制御部252についても同様に、判定結果が成功の場合(ステップS25´;Yes)、同期動作を継続する。
【0034】
ロックステップ制御部251による判定結果が失敗(同期ずれ)の場合(ステップS25;No)、失敗時の処理を行う。例えば、ロックステップ制御部251がサーバ201のハードウェア障害を検出しているような場合、サーバ201の制御プログラムαはサーバ201の縮退制御を行う(ステップS26)。同様にロックステップ制御部252による判定結果が失敗(同期ずれ)の場合(ステップS25´;No)、失敗時の処理を行う(ステップS26´)。例えば、サーバ201が原因で同期ずれが生じた場合、サーバ201は論理的に切り離された状態となり、サーバ201とサーバ202で多重化されていた高可用性サーバは、サーバ202のみが動作する運転状態となる。
【0035】
以上の動作は、
図4の設定情報で同期するように設定されたサーバ205~207についても同様である。つまり、クロック配信部101は、サーバ205~207に対し、同時に同位相のクロック信号を所定の周期で送信し、サーバ205~207ではCPU245~247が、このクロック信号に同期して動作する。そして、ロックステップ制御部255~257がスイッチ部102を介してクロック周期ごとのCPU245~247による演算結果を授受して、同期の判定を行う。サーバ205~207の3台で多重化されている場合、同期の判定で縮退するサーバを特定できる可能性が高くなる。また、1台で同期ずれが生じた場合でも、残りの2台で処理を二重化したまま運用することができる。
【0036】
また、
図4の設定情報で同期相手の設定がないサーバ203~204について、CPU233、243は、非同期の状態で動作する。クロック配信部101は、サーバ203~204にはクロック信号を配信しなくてよい。
【0037】
上記説明したように基盤装置100によれば、設定情報にて、同期相手の設定を行うことで、少なくとも1台の高可用性サーバを含む情報処理システム1を構築することができる。例えば、設定情報にて同期相手に2台のサーバを設定することで、3台のサーバによる同期が可能である。さらに基盤装置100によれば、設定情報にて、同期相手の設定を行わない(
図4の例では、0を設定する)ことにより、高可用性サーバと非多重化サーバが混在する情報処理システム1を構築することができる。これにより、システム構築時のサーバ選定、システム構築、動作確認等の作業を軽減し、より短時間かつ柔軟にシステム構築を行うことができる。
【0038】
図7は、本発明の一実施形態による情報処理システムの一例を示す図である。
図7に情報処理システム1の適用例として、フロント側に多重化したロードバランサを備えたWebシステムの構成例を示す。
Webシステムは、高可用性サーバ300,400A,400Bを含んで構成される。サーバ201Aとサーバ202Aは、同期を行う1台の高可用性サーバ300である。高可用性サーバ300は、ロードバランサである。サーバ203Aは非多重化サーバである。サーバ204A~205Aは、同期を行う1台の高可用性サーバ400Aである。サーバ206A~207Aは、同期を行う1台の高可用性サーバ400Bである。高可用性サーバ400A,400Bは、アプリケーションサーバである。高可用性サーバ300は、負荷に応じて高可用性サーバ400Aと高可用性サーバ400Bの何れかに処理を振り分ける。
図7の例のようにロードバランサが同期する2台のサーバで構成されている場合、サーバ1台の故障でシステムが停止することがない。
【0039】
また、ロードバランサはシステムの入口にあたり、停止しないシステムを実現するうえで非常に重要である。例えば、サーバ201A、202Aにサーバ203Aを加えた3台を同期させた構成とすることで、サーバ201A、202Aの2台が故障したような場合にも耐えられる非常に堅固なシステムを構築することが可能となる。また、基盤装置100を用いれば、サーバの多重度の変更も容易である。
また、アプリケーションサーバ(高可用性サーバ400A、400B)についても、処理の重要度に応じて、
図7に示す例のように2台ずつを同期させた構成とすることができる。
【0040】
本実施形態の基盤装置100によれば、ロックステップ方式で同期動作を実現できるサーバ201等を、バックプレーン103に実装したクロック配信部101を源振として動作させる。また、基盤装置100によれば、バックプレーン103に実装したスイッチ部102により、複数のサーバ201等の同期動作用のデータ通信を行う。また、基盤装置100によれば、各サーバ201~20Nの多重化や非多重化の設定を、運用目的に応じてプログラムすることができる。これにより、ユーザが所望するシステム構成を実現することができる。
【0041】
上述の基盤装置100は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0042】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。また、基盤装置100の全ての機能又は一部の機能は、例えば、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field-Programmable Gate Array)、集積回路等で構成されたハードウェアによって実現してもよい。
【0043】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【符号の説明】
【0044】
1・・・情報処理システム
100・・・基盤装置
101・・・クロック配信部
102・・・スイッチ部
103・・・バックプレーン
104・・・筐体
110・・・同期グループ情報取得部
201~20N・・・サーバ
211・・・メモリ
221・・・不揮発性ストレージ
231・・・ネットワークI/F部
241・・・CPU
251・・・ロックステップ制御部
261・・・サーバ管理部
271・・・通信ポート
C1~CN、H1~HN、L0、L1~LN・・・通信線