JP7056057B2 - 情報処理装置、情報処理方法、情報処理システム、及び、コンピュータ・プログラム - Google Patents

情報処理装置、情報処理方法、情報処理システム、及び、コンピュータ・プログラム Download PDF

Info

Publication number
JP7056057B2
JP7056057B2 JP2017189771A JP2017189771A JP7056057B2 JP 7056057 B2 JP7056057 B2 JP 7056057B2 JP 2017189771 A JP2017189771 A JP 2017189771A JP 2017189771 A JP2017189771 A JP 2017189771A JP 7056057 B2 JP7056057 B2 JP 7056057B2
Authority
JP
Japan
Prior art keywords
processing module
operating environment
computer
processing
module
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.)
Active
Application number
JP2017189771A
Other languages
English (en)
Other versions
JP2019067014A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2017189771A priority Critical patent/JP7056057B2/ja
Publication of JP2019067014A publication Critical patent/JP2019067014A/ja
Application granted granted Critical
Publication of JP7056057B2 publication Critical patent/JP7056057B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本開示は、可用性を向上可能な情報処理装置等に関する。
大規模なシステムやミッションクリティカルな業務のシステムでは、障害による業務の停止を防止すべく、冗長構成を備えた、可用性の高いフォールトトレラントなシステム(例えば、フォールトトレラントサーバ等)が構築される。特許文献1には、複数のプロセッサを有する二重化システムにおいて、あるシステムのプロセッサに障害が発生した際、障害が発生したプロセッサを切り離して、障害が発生していない他のプロセッサに切り替える技術が記載されている。
特開2011-28481号公報
冗長構成(例えば、二重化されたハードウェア構成等)を有するフォールトトレラントサーバは、特許文献1のように、非冗長構成のサーバ1台より多くの構成部材(典型的には、非冗長構成のサーバ2台の構成部材)を用いて構築される。なお、構成部材には、物理的な構成部材に限らず、ソフトウェア・プログラムは、仮想計算機等も含まれ得る。
このようなフォールトトレラントサーバを複数用いてクラスタシステムを構築すると、クラスタシステムに用いられる構成部材の数が増加するという課題がある。これにより、クラスタシステムの構築に要するコストが増大する。本開示に係る技術は、上記のような事情を鑑みて開発されたものである。即ち、本開示の目的の一つは、可用性が高いクラスタシステムの実現に要する構成部材の数を低減可能な技術を提供することにある。
上記目的を達成すべく、本開示の1態様に係る情報処理装置は、以下のように構成される。即ち、本開示の1態様に係る情報処理装置は、コンピュータとして情報処理を実行可能な処理モジュールである第1処理モジュールと、第1処理モジュールと互換性を有するコンピュータとして情報処理を実行可能な処理モジュールである第2処理モジュールと、第1処理モジュール及び第2処理モジュールの少なくともいずれかと互換性を有するコンピュータとして、第1処理モジュールが実行する情報処理を、第1処理モジュールに代替して実行可能な処理モジュールである第3処理モジュールと、第2処理モジュールと、第1処理モジュール又は第3処理モジュールの一方とを組み合わせることで、冗長構成が実現された第1の運用環境と、第1の運用環境の実現に用いられない単一の処理モジュールにより構成された第2の運用環境との2つの運用環境を構築する構成管理手段と、を備える。本開示の1態様に係る情報処理装置において、第1処理モジュールと第2処理モジュールとにより冗長構成が実現された第1の運用環境において実行される情報処理に関する障害が発生した場合、第3処理モジュールにより構成された第2の運用環境は、その障害を検知して構成管理手段に通知し、構成管理手段は、第3処理モジュールにより構成された第2の運用環境からの通知に応じて、第1処理モジュールと第2処理モジュールとの組合せを、第3処理モジュールと第2処理モジュールとの組合せに切り替えることで、第3処理モジュールにより構成された第2の運用環境を、第3処理モジュールと第2処理モジュールとにより冗長構成が実現された運用環境として再構築し、第3処理モジュールと第2処理モジュールとにより再構築された第2の運用環境は、第1処理モジュールと第2処理モジュールとにより構成されていた第1の運用環境において実行されていた処理を第1の運用環境に代替して実行するよう構成される。
本開示の他の1態様に係る通信処理方法は、情報処理装置が、コンピュータとして情報処理を実行可能な処理モジュールである第1処理モジュールと、第1処理モジュールと互換性を有するコンピュータとして情報処理を実行可能な処理モジュールである第2処理モジュールとを組み合わせることで、コンピュータが冗長構成された運用環境である第1の運用環境を構築し、第1処理モジュール及び第2処理モジュールの少なくともいずれかと互換性を有するコンピュータとして、第1処理モジュールが実行する情報処理を、第1処理モジュールに代替して実行可能な処理モジュールである第3処理モジュールのみを用いて構成された運用環境である第2の運用環境を構築し、第1処理モジュールと第2処理モジュールとにより冗長構成が実現された第1の運用環境において実行される情報処理に関する障害が発生した場合、その障害を検知し、第1処理モジュールと第2処理モジュールとの組合せを、第3処理モジュールと第2処理モジュールとの組合せに切り替えることで、冗長構成が実現された運用環境として第2の運用環境を再構築し、第1の運用環境が実行する処理を、第1の運用環境に代替して、再構築された第2の運用環境において実行することを含む。
また、同目的は、上記構成を有する情報処理装置、通信処理方法等をコンピュータによって実現するコンピュータ・プログラム(画像解析プログラム)、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。
即ち、本開示の更に他の1態様に係るコンピュータ・プログラムは、コンピュータとして情報処理を実行可能な処理モジュールである第1処理モジュールと、第1処理モジュールと互換性を有するコンピュータとして情報処理を実行可能な処理モジュールである第2処理モジュールとを組み合わせることで、コンピュータが冗長構成された運用環境である第1の運用環境を構築する処理と、第1処理モジュール及び第2処理モジュールの少なくともいずれかと互換性を有するコンピュータとして、第1処理モジュールが実行する情報処理を、第1処理モジュールに代替して実行可能な処理モジュールである第3処理モジュールのみで構成された運用環境である第2の運用環境を構築する処理と、第1処理モジュールと第2処理モジュールとにより冗長構成が実現された第1の運用環境において実行される情報処理に関する障害が発生した場合、その障害を検知する処理と、第1処理モジュールと第2処理モジュールとの組合せを、第3処理モジュールと第2処理モジュールとの組合せに切り替えることで、冗長構成が実現された運用環境として第2の運用環境を再構築する処理と、第1の運用環境が実行する処理を、第1の運用環境に代替して、再構築された第2の運用環境において実行する処理とを、情報処理装置を構成するコンピュータに実行させる。また、本開示の1態様に係る記録媒体には、上記したコンピュータ・プログラムが記録されてもよい。
本開示の更に他の一態様に係る情報処理システムは、情報処理を実行可能なコンピュータである第1コンピュータと、第1コンピュータと互換性を有するコンピュータである第2コンピュータと、第1コンピュータ及び第2コンピュータの少なくともいずれかと互換性を有するコンピュータとして、第1コンピュータが実行する情報処理を、第1コンピュータに代替して実行可能な第3コンピュータと、第2コンピュータと、第1コンピュータ又は第3コンピュータの一方とを組み合わせることで、冗長構成が実現された第1の運用環境と、第1の運用環境の実現に用いられない単一のコンピュータにより構成された第2の運用環境との2つの運用環境を構築する情報処理装置である構成管理装置と、を備える。本開示の一態様に係る情報処理システムにおいて、第1コンピュータと第2コンピュータとにより冗長構成が実現された第1の運用環境において実行される情報処理に関する障害が発生した場合、第2の運用環境は、その障害を検知して構成管理装置に通知し、構成管理装置は、第2の運用環境からの通知に応じて、第1コンピュータと第2コンピュータとの組合せを、第3コンピュータと第2コンピュータとの組合せに切り替えることで、冗長構成が実現された運用環境として、第2の運用環境を再構築し、第3コンピュータと第2コンピュータとにより再構築された第2の運用環境は、第1の運用環境が実行する処理を、第1の運用環境に代替して実行するよう構成される。
本開示によれば、可用性が高いクラスタシステムの実現に要する構成部材の数を低減可能である。
図1Aは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバの機能的な構成を例示するブロック図である。 図1Bは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバを実現するハードウェア構成の一例を示す説明図である。 図2は、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバにおいて実行されるソフトウェア・プログラムの構成の一例を示す説明図である。 図3Aは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバにおいて、クラスタフェイルオーバ処理が実行される過程の各状態を例示する説明図(1/2)である。 図3Bは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバにおいて、クラスタフェイルオーバ処理が実行される過程の各状態を例示する説明図(2/2)である。 図4Aは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバの動作(起動処理)の一例を示すフローチャート(1/3)である。 図4Bは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバの動作(起動処理)の一例を示すフローチャート(2/3)である。 図4Cは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバの動作(起動処理)の一例を示すフローチャート(3/3)である。 図5Aは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバの動作(ソフトウェア障害からの回復処理)の一例を示すフローチャート(1/3)である。 図5Bは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバの動作(ソフトウェア障害からの回復処理)の一例を示すフローチャート(2/3)である。 図5Cは、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバの動作(ソフトウェア障害からの回復処理)の一例を示すフローチャート(3/3)である。 図6は、本開示に係る技術の第1実施形態におけるフォールトトレラントサーバの動作(ハードウェア障害からの回復処理)の一例を示すフローチャートである。 図7は、本開示に係る技術の第2実施形態における情報処理装置の機能的な構成を例示するブロック図である。 図8は、本開示に係る技術の第2実施形態の変形例における情報処理システムの機能的な構成を例示するブロック図である。
<実施形態の概要>
各実施形態の詳細な説明に先立って、本開示における技術的な検討事項等について説明する。
ハードウェアが冗長構成されたフォールトトレラントサーバは、一般的に、通常のサーバ(非冗長構成のサーバ)複数台分の構成部材(例えば、プロセッサ、記憶装置、ネットワークインタフェース、電源装置等の部品)を用いて構築されることが多い。
例えば、一般的な(冗長化されていない)サーバ2台分の部品を用いて構成されるフォールトトレラントサーバによりクラスタシステムを構築する場合、一般的なサーバ4台分の部品が用いられることになる。これにより、クラスタシステムに用いられる部品の数が増大する。ここで、クラスタシステムは、例えば、複数のサーバを統合することで、システム全体として可用性を向上可能なシステムである。
また、部品数を削減すべく、例えば、1台のフォールトトレラントサーバと、1台の一般的なサーバ(非冗長化サーバ)とを用いて、クラスタシステムを構築する場合、一般的なサーバ3台分の部品を用いて、クラスタシステムを構築することが考えられる。しかしながら、この構成では、処理を実行する稼働系のサーバとして機能していたフォールトトレラントサーバにおいて障害が発生し、クラスタフェイルオーバを実行した場合、ハードウェアが冗長化されていない一般的なサーバが、稼働系のサーバとして処理を実行する。これにより、稼働系のサーバの信頼性が低下する。フォールトトレラントサーバが、再び稼働系サーバとして機能するには、再度クラスタフェイルオーバ(フェイルバック)を実行することになる。フェイルバック処理の実行中は、クラスタシステムとしての処理能力や応答性が低下する可能性がある。また、フェイルバック処理の実行前に、稼働系のサーバとして機能する一般的なサーバに障害が生じた場合、システムダウンに至る可能性がある。なお、クラスタフェイルオーバは、クラスタシステムの構成するサーバのうち、あるサーバにおいて障害が発生した場合に、他のサーバに切り替えて処理を継続する技術である。本開示に係る技術は、上記のような状況から着想に至った技術であり、本開示に係る技術の一態様であるフォールトトレラントサーバは、例えば、概略以下のように構成されてもよい。
本開示に係る技術の一態様であるフォールトトレラントサーバは、例えば、1つのフォールトトレラントサーバ内に少なくとも3台のCPU/IOモジュール(以下、単に「モジュール」と記載することがある)含んでよい。また、フォールトトレラントサーバは、例えば、ハードウェアが冗長化された稼働系の環境(稼働系の動作基盤)において動作するOS(Operating System)と、ハードウェアが冗長化されていない待機系の環境(待機系の動作基盤)において動作するOSと、を実行するよう構成されてよい。即ち、フォールトトレラントサーバにおいては、稼働系環境において動作するOS(以下、「稼働系OS」と記載することがある)と、待機系環境において動作するOS(以下、「待機系OS」と記載することがある)と、の2つのOSが実行されてよい。なお、ハードウェアが冗長化された環境は、例えば、2つのCPU/IOモジュールを組み合わせた冗長構成が実現された環境であってよい。また、ハードウェアが冗長化されていない環境は、例えば、1つのCPU/IOモジュールにより実現された環境であってよい。
フォールトトレラントサーバは、例えば、それら2つのOS(及びOSが実行される運用環境)を、クラスタソフトウェア等を用いてクラスタ化(クラスタリング)する。フォールトトレラントサーバは、例えば、クラスタ化されたシステムにおいて稼働系OSを切り替える際(例えば、クラスタフェイルオーバや、クラスタフェイルバック等)、ハードウェアが冗長化された環境において稼働系OSが実行されるように、CPU/IOモジュールの組合せを切り替えてよい。これにより、本開示に係る技術は、一般的な(非冗長化)サーバ3台分の部品により、クラスタソフトウェアによる可用性と、ハードウェアの冗長性とを併せ持つフォールトトレラントサーバを実現することができる。
以下、本開示に係る技術について、具体的な実施形態を用いて更に詳細に説明する。なお、以下の実施形態(及びその変形例)の構成は一つの具体例であり、本開示に係る技術の範囲は、それらには限定されない。以下に示す各実施形態における構成要素の分割(例えば、機能的な単位による分割)は、その実施形態を実現可能な一例である。各実施形態を実現可能な構成は、以下の例示に限定されず、様々な構成が想定され得る。以下の各実施形態を構成する構成要素は、更に分割されてもよく、また、以下の各実施形態を構成する1以上の構成要素が統合されてもよい。以下に例示する各実施形態が1以上の物理的装置、仮想的装置、及びその組合せを用いて実現される場合、1以上の構成要素が1以上の装置により実現されてもよく、1つの構成要素が複数の装置を用いて実現されてもよい。
なお、本開示に係る技術の一態様である情報処理方法は、以下の各実施形態における情報処理装置の動作として実現されてもよい。また、本開示に係る技術の一態様であるコンピュータ・プログラムは、以下の各実施形態における情報処理装置において、本開示に係る技術の一態様である情報処理方法を実行するプログラムとして実装されてもよい。
<第1実施形態>
以下、本開示に係る技術の第1の実施形態について説明する。
[構成]
図1Aは、本実施形態における情報処理装置(フォールトトレラントサーバ)の機能的な構成を例示するブロック図である。
図1Aに例示するように、フォールトトレラントサーバ100は、構成管理部101、CPU/IOモジュール102、CPU/IOモジュール103、及び、CPU/IOモジュール104を備える。フォールトトレラントサーバ100を構成するこれらの構成要素の間は、適切な通信方法(通信バス等)を用いて通信可能に接続されている。以下、CPU/IOモジュール102を「第1処理モジュール」、CPU/IOモジュール103を「第2処理モジュール」、CPU/IOモジュール104を「第3処理モジュール」と記載することがある。また、CPU/IOモジュール(102,103,104)を総称して、単に「CPU/IOモジュール」と記載することがある。
CPU/IOモジュールは、後述するように、各種情報処理を実行可能なコンピュータとして機能する装置である。CPU/IOモジュールは、例えば、フォールトトレラントサーバにおいて着脱可能(交換可能)な一式の構成部品(コンピューティング・モジュール)として実現されてもよい。
図1Aには、3台のCPU/IOモジュール(102から104)を含む構成例が示されているが、本実施形態はこれには限定されない。フォールトトレラントサーバ100は、3台以上の適切な数のCPU/IOモジュールを含んでよい。
構成管理部101は、CPU/IOモジュール102、CPU/IOモジュール103、及び、CPU/IOモジュール104の接続関係を調整することで、2つのCPU/IOモジュールを用いたハードウェアの冗長構成(二重化)を実現する。
図1Bは、図1Aに例示する構成管理部101、CPU/IOモジュール102、CPU/IOモジュール103、及び、CPU/IOモジュール104の具体的な構成例を示すブロック図である。
以下、CPU/IOモジュール(102、103、104)の構成について説明する。
図1Bに例示するように、各CPU/IOモジュール(102,103,104)は、それぞれ、CPU(Central Processing Unit)(102c、103c、104c)、メモリ(102d、103d、104d)、BMC(Baseboard Management Controller)(102a、103a、104a)、IOコントローラ(102e、103e、104e)、FT(Fault Tolerance)制御部(102b、103b、104b)、内部NIC(Network Interface Card)(102f、103f、104f)を含む。各CPU/IOモジュールは、それぞれ、例えばHDD(Hard Disk Drive)等の外部記憶装置を備えてもよい。また、各CPU/IOモジュールは、外部の通信ネットワークと接続される外部NICを備えてもよい。また、各CPU/IOモジュールは、各種記憶媒体(半導体フラッシュメモリ、光学記憶媒体、磁気記憶媒体等)に対する読み書きを制御可能なドライブデバイスを備えてもよい。
上記のように構成された各CPU/IOモジュール(102、103、104)は、各種情報処理を実行可能なコンピュータとして機能する。各CPU/IOモジュール(102、103、104)は、同じ構成のハードウェアにより実現されてもよい。また、各CPU/IOモジュール(102、103、104)は、同じソフトウェア・プログラム(OS、ドライバ、各種アプリケーションを含む)を実行可能な、異なる構成のハードウェアにより実現されてもよい。この場合、各CPU/IOモジュール(102、103、104)は、それぞれ互換性を有するハードウェアにより実現されてもよい。
以下、CPU/IOモジュール102(第1処理モジュール)を代表例として、CPU/IOモジュールの構成について説明する。CPU/IOモジュール103、104については、CPU/IOモジュールと概略同様の構成としてもよい。
CPU102cは、フォールトトレラントサーバ100における各種処理を実行する演算装置(プロセッサ)である。なお、CPU102cの種類は特に限定されず、現在では一般的に利用可能なプロセッサを採用可能である。フォールトトレラントサーバの仕様に応じて、適切な処理性能を有するプロセッサが、CPU102cとして適宜選択されてよい。なお、CPU102c、103c、104cは、同種の命令を実行可能なプロセッサであってよい。これらの各プロセッサは、同一の処理性能(プロセッシングパワー)を有してもよい。
メモリ102dは、各種データ及びプログラムを記憶可能な記憶デバイスである。メモリ102dは、例えば、SDRAM(Synchronous Dynamic Random Access Memory)等の、現在では一般的に利用可能な記憶デバイスを用いて実現されてもよい。メモリ103d、104dも、メモリ102dと同様の記憶デバイスを採用可能である。
IOコントローラ102eは、各種周辺デバイスに対する入出力を制御する制御装置である。IOコントローラ102eは、例えば、内部NIC102f、外部NIC、HDD、ドライブデバイス等の周辺デバイスと、CPU102c、メモリ102d、及びチップセットの間に介在し、各種データ及び信号の入出力を制御してもよい。IOコントローラ103e、104eも、IOコントローラ102eと同様に構成されてよい。IOコントローラ102eは、現在では一般的に入手可能なチップセットにより実現されてもよく、フォールトトレラントサーバ100の仕様に応じた専用の集積回路により実現されてもよい。
BMC102aは、CPU/IOモジュール102の監視及び制御等を実現する管理コントローラである。BMC102aは、例えば、CPU/IOモジュール102自体の起動(及び再起動)、終了(停止)、構成変更等の処理を実行するよう構成される。また、BMC102aは、例えば、CPU/IOモジュール102に実装されている各ハードウェアを監視し、これらのハードウェアの動作や、発生したイベント等を記録する。BMC102aは、例えば、IPMI(Intelligent Platform Management Interface)により規定された標準的な管理インタフェースを提供してもよい。BMC103a、BMC104aについても、BMC102aと同様に構成されてもよい。なお、BMC102a、BMC103a、及び、BMC104aは、後述するBMCスイッチ101a(BMC管理部)を介して、相互に通信可能に接続されていてよい。また、各BMCは、他のBMCの管理インタフェースを介して、他のCPU/IOモジュールを制御可能に構成されてもよい。
FT制御部102bは、他のCPU/IOモジュール(103又は104)におけるFT制御部(103b又は104b)と連携して、ハードウェアの冗長構成を実現するコントローラである。FT制御部102bは、例えば、後述するFT制御スイッチ101b(FT制御部)を介して、他のCPU/IOモジュール(103、104)におけるFT制御部103b、104bと通信可能に接続される。
FT制御部102bは、CPU/IOモジュール102と組み合わされてハードウェアの冗長構成を実現する他のCPU/IOモジュール(103又は104)におけるFT制御部(103b又は104b)と連携して、ハードウェア同期を実行するよう構成される。このハードウェア同期により、二つのCPU/IOモジュールが同期され、ハードウェアの二重化が実現される。この場合、2つのCPU/IOモジュールは、同じクロックで同期して動作してもよい。FT制御部102bは、ハードウェア同期処理を実行するように、CPU/IOモジュールに実装された各デバイスを制御するコントローラチップ(集積回路)として実現されてもよい。なお、FT制御部103b、104bは、FT制御部102bと同様に構成されてもよい。
内部NIC102fは、フォールトトレラントサーバ100内に構築された内部通信ネットワークと、後述するネットワークスイッチ101cとを介して、CPU/IOモジュール102と、他のCPU/IOモジュール(103、104)との間の通信処理を実行する。CPU/IOモジュール102は、内部NIC102fを介して、他のCPU/IOモジュール(103、104)との間で、各種データを相互に転送してもよい。本実施形態における内部通信ネットワークは特に限定されず、例えば、Ethernet(登録商標)互換の通信ネットワークであってもよい。また、通信ネットワークは、例えば、メタル配線による実現されてもよく、光配線により実現されてもよい。内部NIC103f、104fについても、内部NIC102fと同様に構成されてもよい。
以下、図1Bを参照して、構成管理部101の具体的な構成について説明する。図1Bに例示するように、構成管理部101は、BMCスイッチ101a、FT制御スイッチ101b、及び、ネットワークスイッチ101cを含む。
BMCスイッチ101a(以下、「BMC管理部」と記載することがある)は、各CPU/IOモジュール(102、103、104)に実装されたBMC(102a、103a、104a)に通信可能に接続される。BMCスイッチ101aは、各BMC(102a、103a、104a)の間で、データ及び信号を相互に転送する通信スイッチの機能を有するデバイスである。BMCスイッチ101aは、例えば、データ及び信号の転送を制御するマイクロコントローラと、各BMC(102a、103a、104a)との間の通信処理を実行する通信チップとを含んでもよい。
FT制御スイッチ101bは、各CPU/IOモジュール(102、103、104)に実装されたFT制御部(102b、103b、104b)に通信可能に接続される。FT制御スイッチ101bは、各FT制御部(102b、103b、104b)の接続関係を切り替えることで、少なくとも2つのCPU/IOモジュールを用いたハードウェアの冗長構成を実現する。例えば、FT制御スイッチ101bにより、FT制御部102bと、FT制御部103bとが接続され、これらの間でハードウェア同期が実行された場合、CPU/IOモジュール102と、CPU/IOモジュール103とにより、冗長構成(ハードウェアの二重化)が実現される。同様に、FT制御スイッチ101bにより、FT制御部103bと、FT制御部104bとが接続された場合、CPU/IOモジュール103と、CPU/IOモジュール104とにより、冗長構成(ハードウェアの二重化)が実現される。
FT制御スイッチ101bは、例えば、各FT制御部(102b、103b、104b)の間の接続関係を制御するマイクロコントローラと、各FT制御部(102b、103b、104b)との間の通信処理を実行する通信チップとを含んでもよい。
ネットワークスイッチ101cは、各CPU/IOモジュール(102、103、104)に実装された内部NIC(102f、103f、104f)に通信可能に接続され、それらの間におけるデータ及び信号の転送を制御する通信スイッチである。ネットワークスイッチ101cは、例えば、各内部NIC(102f、103f、104f)の間におけるデータの転送を制御するマイクロコントローラと、各内部NIC(102f、103f、104f)との間の通信処理を実行する通信チップとを含んでもよい。なお、ネットワークスイッチ101cは、現在では一般的に利用可能な通信ネットワーク用スイッチと同様の機能を備えてもよい。
[ソフトウェア構成]
以下、上記のように構成されたCPU/IOモジュール(102、103、104)において実行されるソフトウェア・プログラム(以下、単に「ソフトウェア」と記載することがある)の機能的な構成について、図2に例示するブロック図を参照して説明する。なお、以下において説明する各ソフトウェア・プログラムは、各CPU/IOモジュール(102、103、104)における不揮発性記憶装置(例えばHDDなど)に記憶されてもよく、外部の記録媒体に記録されてもよい。各CPU/IOモジュール(102、103、104)においては、例えば、CPU(102c、103c、104c)が、不揮発性記憶装置に記憶されたソフトウェア・プログラムをメモリ(102d、103d、104d)に読み込み、それらを実行してもよい。
以下においては、説明の便宜上、CPU/IOモジュール102と、CPU/IOモジュール103とにより、稼働系のOSが実行される動作基盤(ハードウェアが二重化された運用環境)が提供され、CPU/IOモジュール104により、待機系のOSが実行される動作基盤が提供されることを想定する。
また、以下においては、代表例として、CPU/IOモジュール102及びCPU/IOモジュール103により構成される稼働系の運用環境において実行されるOS及びソフトウェアについて説明する。CPU/IOモジュール104により実現される待機系の運用環境においても、同様のソフトウェアが実行可能であり、これにより、クラスタリングが実現される。
CPU/IOモジュールが起動された際、オペレーティングシステム(Operating System)であるOS201が起動する。OS201は、現在では一般的に利用可能な各種のOS(例えば、Windows(登録商標)、Linux(登録商標)、Unix(登録商標)等)であってもよい。OS201は、CPU/IOモジュール102に実装された各種ハードウェアを制御する管理機能を提供すると共に、各種アプリケーション・プログラムを実行する実行環境を提供する。
クラスタソフトウェア202は、ハードウェアが冗長化された稼働系の運用環境で実行されるOS201と、待機系の運用環境において実行されるOSとを連携させることで、それらを用いたクラスタシステムを構成する(クラスタリング環境を実現する)。クラスタソフトウェア202は、CPU/IOモジュールに含まれるCPU(102c等)において実行可能なコンピュータプログラムであってよい。
本実施形態におけるクラスタソフトウェア202は、通知処理部202aと、クラスタ制御部202bとを有してもよい。
通知処理部202aは、クラスタソフトウェア202と、FT制御ソフトウェア203との間の通知処理を実現する。通知処理部202aは、例えば、OS201において提供されるプロセス間通信や、共有メモリ等の方法を用いて、クラスタソフトウェア202と、FT制御ソフトウェア203との間の通信を実現してもよい。
クラスタ制御部202bは、FT制御ソフトウェア203からの指示(通知)に応じて、クラスタシステムを構成するOS201に対する各種操作を実行する。具体的には、クラスタ制御部202bは、FT制御ソフトウェア203からの指示(通知)に応じて、クラスタシステムを構成するOS201をシャットダウンする処理を実行してもよい。なお、クラスタ制御部202bは、クラスタシステムを構成するOS201の状態を、FT制御ソフトウェア203に提供(通知)してもよい。
本実施形態におけるクラスタソフトウェア202は、上記に限定されず、クラスタリングの実現に関する一般的な機能を備えてよい。クラスタソフトウェア202は、例えば、クラスタを構成する他のOSにおいて発生した障害を検知する処理を実行可能であってよい。クラスタソフトウェア202は、また、例えば、クラスタを構成する他のOSにおいて障害が発生した際、クラスタフェイルオーバ処理を実行可能であってよい。クラスタソフトウェア202は、また、例えば、クラスタを構成する他のOSにおける障害が解消した際、クラスタフェイルバック処理を実行可能であってよい。
FT制御ソフトウェア203は、BMC(例えば、BMC102a等)及びFT制御部(例えば、FT制御部102b等)を用いて、ハードウェアの2重化を実現する。FT制御ソフトウェア203は、FT二重化制御部203a、通知処理部203b、FT制御スイッチ管理部203c、及び、BMC制御部203dを有してもよい。FT制御ソフトウェア203は、CPU/IOモジュールに含まれるCPU(102c等)において実行可能なコンピュータ・プログラムであってよい。
FT二重化制御部203aは、FT制御部(102b、103b、104b等)やBMC(102a、103a、104a等)からの通知に応じて、ハードウェアの二重化に関する処理を実行する。FT二重化制御部203aは、また、クラスタソフトウェア202からの通知に応じて、ハードウェアの二重化に関する処理を実行する。FT二重化制御部203aは、例えば、クラスタソフトウェア202から、稼働系のOSが実行される動作基盤(運用環境)として、特定のCPU/IOモジュールが選択されたことを表す通知を受け付けてもよい。FT二重化制御部203aは、例えば、その通知に応じて、ハードウェアの冗長構成を実現するよう、FT制御部(例えば、FT制御部102b)を制御してもよい。
通知処理部203bは、クラスタソフトウェア202との間の通知処理を実行する。通知処理部202aは、例えば、OS201において提供されるプロセス間通信や、共有メモリ等の方法を用いて、クラスタソフトウェア202と、FT制御ソフトウェア203との間の通信を実現してもよい。
FT制御スイッチ管理部203cは、ハードウェアの冗長構成を実現するCPU/IOモジュールの接続状態を切り替えるよう、FT制御スイッチ101bを制御する。FT制御スイッチ管理部203cは、例えば、CPU/IOモジュール102と、CPU/IOモジュール103とを用いてハードウェアの冗長構成を実現するよう、FT制御スイッチ101bにおける各CPU/IOモジュール間の接続関係を設定してもよい。FT制御スイッチ管理部203cは、また、例えば、CPU/IOモジュール104と、CPU/IOモジュール103とを用いてハードウェアの冗長構成を実現するよう、FT制御スイッチ101bにおける各CPU/IOモジュール間の接続関係を設定してもよい
BMC制御部203dは、CPU/IOモジュールに関する状態を取得し、CPU/IOモジュールを操作する。具体的には、BMC制御部203dは、例えば、CPU/IOモジュールの実行状態(起動中、シャットダウン中、稼働中、等)を取得してもよい。また、BMC制御部203dは、例えば、CPU/IOモジュールに対して、各種指示(例えば、起動、停止、等)を通知してもよい。BMC制御部203dは、例えば、IPMIにより規定された管理インタフェースを用いて、上記処理を実行してもよい。各CPU/IOモジュールに実装されたBMC(例えばBMC102a)は、BMCスイッチ101aを介して、他のCPU/IOモジュールの情報を取得し、他のCPU/IOモジュールを操作可能であってよい。
[動作]
上記のように構成されたフォールトトレラントサーバ100の動作について説明する。
図3A及び図3Bは、フォールトトレラントサーバ100が起動してから、障害が発生し、フェイルオーバ処理により稼働系のOSが切り替わるまでの具体例を、模式的に表す説明図である。また、図4Aから図6は、フォールトトレラントサーバ100の動作の具体例を示すフローチャートである。
以下においては、初期の稼働状態として、CPU/IOモジュール102と、CPU/IOモジュール103とによりハードウェアが二重化された稼働系の運用環境(第1の運用環境)が提供され、CPU/IOモジュール104により待機系の運用環境(第2の運用環境)が提供されることを想定する(図3Aにおける「初期稼働状態(A)」)。この場合、待機系の運用環境は、単一のCPU/IOモジュール(この場合はCPU/IOモジュール104)により構成される。
また、以下、初期の稼働系の運用環境において実行されるOS201を、OS1(第1のOS)と記載する。OS1において実行されるクラスタソフトウェア202をクラスタSW1と記載することがある。また、OS1において実行されるFT制御ソフトウェア203をFT制御SW1と記載することがある。初期の待機系の運用環境において実行されるOS201を、OS2(第2のOS)と記載する。OS2において実行されるクラスタソフトウェア202をクラスタSW2と記載することがある。また、OS2において実行されるFT制御ソフトウェア203をFT制御SW2と記載することがある。
以下、図3A、及び、図4Aから図4Cを参照して、フォールトトレラントサーバ100の起動処理について説明する。
フォールトトレラントサーバ100を起動(例えば、電源をON)すると、初期設定として、CPU/IOモジュール102が起動モジュール(稼働系の運用環境として用いられるCPU/IOモジュール)に設定される。また、CPU/IOモジュール104が待機モジュール(待機系の運用環境として用いられるCPU/IOモジュール)に設定される(ステップS401)。
FT制御スイッチ101bは、フォールトトレラントサーバ100が起動された際、FT制御部102bと、FT制御部103bとが接続されるように、接続状態を設定する(ステップS402)。これにより、後述するように、CPU/IOモジュール102と、CPU/IOモジュール103とを用いて、ハードウェアが冗長化された運用環境(第1の運用環境)が構築されることになる。
フォールトトレラントサーバ100が起動された際、BMC102aは、起動モジュール(CPU/IOモジュール102)を起動(例えば、DC(Direct Current:直流)電源ON)する(ステップS403)。
これにより、CPU/IOモジュール102において、稼働系のOS1が起動され、クラスタSW1とFT制御SW1が起動される(ステップS404)。
起動されたFT制御SW1は、BMC102a、BMCスイッチ101a、BMC103aを介してCPU/IOモジュール103を起動する(ステップS405)。FT制御SW1は、BMC102a、BMCスイッチ101a、及び、BMC104aを介して、CPU/IOモジュール104の起動を要求する(ステップS406)。ステップS405及びステップS406は、並行して実行されてもよい。
図4Bを参照して、ステップS405に続く処理について説明する。
BMC103aは、FT制御SW1から受け付けた要求に応じて、CPU/IOモジュール103を起動(例えば、DC電源ON)する(ステップS407)。
CPU/IOモジュール103におけるFT制御部103bが、CPU/IOモジュール103が起動したことを、CPU/IOモジュール102におけるFT制御部102bに通知する(ステップS408)。
ステップS408における通知に応じて、FT制御SW1は、FT制御部102bとFT制御部103bとの間でハードウェア同期処理が実行されるようFT制御部102bに指示する(ステップS409)。この際、FT制御SW1は、FT制御部102b及びFT制御部103bに対して、ハードウェア同期を実行するよう指示してもよい。
FT制御部102bは、FT制御スイッチ101bを介して、FT制御部103bとの間でハードウェア同期を実行する(ステップS410)。
上記処理により、CPU/IOモジュール102と、CPU/IOモジュール103とによりハードウェアが二重化された、稼働系の運用環境が構築される。
以下、図4Cを参照して、ステップS406に続く処理について説明する。
BMC104aは、FT制御SW1から受け付けた要求に応じて、CPU/IOモジュール104を起動(例えば、DC電源ON)する(ステップS411)。
これにより、CPU/IOモジュール104において、稼働系のOSとしてOS2が起動され、クラスタSW2とFT制御SW2が起動される(ステップS412)。
クラスタSW2は、ネットワークスイッチ101cを介して、CPU/IOモジュール104が起動され、待機系のOSとしてOS2が起動したことをクラスタSW1へ通知する(ステップS413)。
クラスタSW1及びクラスタSW2は、OS1を稼働系OSとして設定し、OS2を待機系OSとして設定することでクラスタシステムを構築する(ステップS414)。クラスタ化を実行する具体的な処理は、例えば、周知の技術を用いて実現されてもよい。
上記の処理により、フォールトトレラントサーバ100の状態が、図3Aにおける「初期稼働状態(A)」になる。
以下、図3A、3B、及び、図5Aから図5Cを参照して、フォールトトレラントサーバ100において障害が発生した際の動作について説明する。以下においては、具体例として、図3Aにおける「初期稼働状態(A)」のようにフォールトトレラントサーバ100が起動した後、稼働系のOS1においてソフトウェア障害が発生し、稼働系のOSを、OS1からOS2に切り替えることを想定する。
OS1における障害が発生した際、待機系のOSであるOS2におけるクラスタSW2がその障害を検出する(ステップS501)。
クラスタSW2は、クラスタフェイルオーバ処理を実行し、OS2が稼働系OSに昇格する(ステップS502)。なお、クラスタフェイルオーバ処理は、例えば、周知技術を用いて実行可能である。これにより、フォールトトレラントサーバ100の状態が、図3Aにおける「フェイルオーバ状態(B)」になる。
クラスタSW2は、FT制御SW2に対して、OS2が稼働系OSに昇格されたことを通知する(ステップS503)。
その通知を受け付けたFT制御SW2は、OS1(待機系に降格されるOS)の動作基盤(運用環境)を構成する他のCPU/IOモジュール(CPU/IOモジュール102とCPU/IOモジュール103)の状態を取得する(ステップS504)。この処理は、例えば、BMC制御部203dにより実行されてもよい。
FT制御SW2は、他のCPU/IOモジュール(CPU/IOモジュール102とCPU/IOモジュール103)の状態に応じて、それらのCPU/IOモジュールの停止を指示する(ステップS505)。
具体的には、他のCPU/IOモジュール(CPU/IOモジュール102とCPU/IOモジュール103)の状態がOS稼働中である場合、FT制御SW2は、クラスタSW1に対して、OS1のシャットダウンを要求する。
また、他のCPU/IOモジュール(CPU/IOモジュール102とCPU/IOモジュール103)の状態が、起動処理中である場合、一定時間後に再度状態を確認する。再度状態を確認した結果、他のCPU/IOモジュールの状態がOS稼働中であれば、クラスタSW1に対して、OS1のシャットダウンを要求する。
OS1のシャットダウンを要求してからある時間が経過した後、クラスタSW2は、OS1のシャットダウンにより、他のCPU/IOモジュールの状態が停止状態(例えば、DC電源OFF)になったか否かを確認する。他のCPU/IOモジュールの状態が停止状態ではない場合、クラスタSW2は、他のCPU/IOモジュールがストールしていると判断し、FT制御SW2(特には、BMC制御部203d)に対して、他のCPU/IOモジュールの停止を要求してもよい。この場合、BMC制御部203dは、例えば、BMC104a、BMCスイッチ101aを介して、BMC102a及びBMC103aに対して、CPU/IOモジュール102及びCPU/IOモジュール103の停止を要求してもよい。
他のCPU/IOモジュールが停止された際、FT制御SW2は、FT制御スイッチ管理部203cを用いて、FT制御スイッチ101bにおける接続状態を、稼働系のOS2が動作しているCPU/IOモジュール104と、CPU/IOモジュール103とが接続された状態に切り替える(ステップS506)。これにより、CPU/IOモジュール104と、CPU/IOモジュール103とを用いて、ハードウェアが冗長化された運用環境が構築されるよう、FT制御スイッチ101bが設定される。
FT制御スイッチ101bの接続状態が変更された後、FT制御SW2は、BMC制御部203dを使用して、他のCPU/IOモジュール(CPU/IOモジュール102及びCPU/IOモジュール103)を起動する。この際、BMC制御部203dは、例えば、BMC104a、BMCスイッチ101aを介して、BMC102a、BMC103aに対して、それぞれCPU/IOモジュール102及びCPU/IOモジュール103の起動を要求してもよい。なお、この際、FT制御SW2は、CPU/IOモジュール102を待機モジュールに設定し、CPU/IOモジュール104を起動モジュールに設定してよい。
OS2におけるFT制御SW2が、停止しているCPU/IOモジュール102及びCPU/IOモジュール103の起動を要求する(ステップS507)。この際、FT制御SW2は、BMC制御部203dを用いて、CPU/IOモジュール102及びCPU/IOモジュール103の起動を要求してもよい。なお、ステップS507以降の処理(ステップS508からステップS510と、ステップS511からステップS514)は、並行して実行されてもよい。上記の処理により、フォールトトレラントサーバ100の状態が、図3Bにおける「復旧状態(C)」になる。
以下、図5Bを参照して、ステップS507に続く処理について説明する。
CPU/IOモジュール103におけるFT制御部103bは、CPU/IOモジュール103が起動したことをCPU/IOモジュール104におけるFT制御部104bに通知する(ステップS508)。
OS2におけるFT制御SW2は、FT制御部104bとFT制御部103bとの間でハードウェア同期処理が実行されるようFT制御部104bに指示する(ステップS509)。この際、FT制御SW2は、FT制御部104b及びFT制御部103bに対して、ハードウェア同期を実行するよう指示してもよい。
FT制御部104bは、FT制御スイッチ101bを介して、FT制御部103bとの間でハードウェア同期を実行する(ステップS510)。
上記処理により、CPU/IOモジュール104と、CPU/IOモジュール103とによりハードウェアが二重化された、稼働系の運用環境(第2の運用環境)が構築される。
以下、図5Cを参照して、ステップS507に続く処理について説明する。
ステップS507における要求を受け付けたCPU/IOモジュール102におけるBMC102aは、CPU/IOモジュール102を起動(例えば、DC電源ON)する(ステップS511)。
これにより、CPU/IOモジュール102において、待機系のOSとしてOS1が起動され、クラスタSW1とFT制御SW1が起動される(ステップS512)。
クラスタSW1は、ネットワークスイッチ101cを介して、CPU/IOモジュール102が起動され、待機系のOSとしてOS1が起動したことを、CPU/IOモジュール104におけるクラスタSW2へ通知する(ステップS513)。
クラスタSW2及びクラスタSW1は、CPU/IOモジュール104と、CPU/IOモジュール103とにより構築された運用環境において実行されるOS2を稼働系OSとして設定し、OS1を待機系OSとして設定することでクラスタを構築する(ステップS514)。クラスタ化を実行する具体的な処理は、例えば、周知の技術を用いて実現されてもよい。
上記の処理により、フォールトトレラントサーバ100の状態が、図3Aにおける「稼働状態(D)」になる。
上記説明した一連の処理により、フォールトトレラントサーバ100は、2つのCPU/IOモジュール(102、103)によりハードウェアが冗長化された運用環境において、稼働系のOS(例えば、OS1)を実行することができる。また、1つCPU/IOモジュール104により構築された運用環境において、待機系のOS(例えば、OS2)を実行することができる。
フォールトトレラントサーバ100は、また、稼働系のOS(OS1)において障害が発生した場合、障害が発生してしない待機系のOS2にフェイルオーバ処理を実行してOS2を稼働系のOSとして昇格する。フォールトトレラントサーバ100は、OS2の昇格にともない、ハードウェアが冗長化された運用環境を構築するCPU/IOモジュールの組合せを切り替える。これにより、稼働系に昇格したOS2は、2つのCPU/IOモジュール(103、104)によりハードウェアが冗長化された運用環境において実行される。即ち、フォールトトレラントサーバ100は、3台分のCPU/IOモジュールを用いて、ハードウェアが冗長化された稼働系の運用環境と、待機系の運用環境とを含むクラスタシステムを実現することができる。
以下、図6を参照して、フォールトトレラントサーバ100においてハードウェア障害が発生した際の動作を説明する。以下、においては、初期の稼働状態として、CPU/IOモジュール102と、CPU/IOモジュール103とによりハードウェアが二重化された稼働系の運用環境が提供され、CPU/IOモジュール104により待機系の運用環境が提供されることを想定する(図3Aにおける「初期稼働状態(A)」)。また、ハードウェアが二重化された稼働系の運用環境において、ハードウェア障害が発生したことを想定する。
まず、CPU/IOモジュール102において発生した何らかのハードウェアの故障が検知される(ステップS601)。具体的には、CPU/IOモジュール102において実行されるOS1に組み込まれたドライバ等が、ハードウェア故障を検知してもよい。
FT制御SW1(又はFT制御部102b)は、ハードウェアが冗長構成された運用環境から、CPU/IOモジュール102を切り離す(ステップS602)。これにより、OS1は、CPU/IOモジュール103のみで動作を継続する。即ち、一時的に、CPU/IOモジュール103により、OS1の運用が継続される。
故障しているCPU/IOモジュール102が切り離された後、例えば、フォールトトレラントサーバ100のユーザ等により、障害復旧処理が実行される(ステップS603)。例えば、ユーザは、CPU/IOモジュール102を交換してもよい。
CPU/IOモジュール102が障害から回復した場合(ステップS604においてYES)、新たなCPU/IOモジュールが起動(例えば、DC電源ON)され、CPU/IOモジュール103とハードウェア同期が実行される。これにより、CPU/IOモジュール102が復帰して、ハードウェアが冗長構成された運用環境が回復される。この場合、例えば、FT制御SW1が、CPU/IOモジュール102を起動し、CPU/IOモジュール103とCPU/IOモジュール102とのハードウェア同期処理を実行してよい。
上記処理により、フォールトトレラントサーバ100は、稼働系の運用環境においてハードウェア障害が発生した場合であっても、処理を継続することが可能であり、また、処理を継続したまま、障害から復旧することが可能である。
以上のように構成されたフォールトトレラントサーバ100は、可用性が高いクラスタシステムを実現するフォールトトレラントサーバの構成部材の数を低減することができる。その理由は、フォールトトレラントサーバ100は、2台のCPU/IOモジュールを用いてハードウェアが冗長化された稼働系の運用環境を提供すると共に、1台のCPU/IOモジュールを用いて待機系の運用環境を提供することで、クラスタシステムを構築することができるからである。これにより、例えば、稼働系の運用環境で動作するOS(稼働系のOS)にソフトウェア障害が発生した場合、フォールトトレラントサーバ100は、クラスタフェイルオーバ処理により、待機系のOSを稼働系のOSとして昇格することで、処理を中断することなく継続することができる。これにより、フォールトトレラントサーバ100は、ソフトウェア障害に対して、比較的高い可用性を実現可能である。
また、この際、フォールトトレラントサーバ100は、稼働系の運用環境を提供するCPU/IOモジュールの組合せを切り替えることで、ハードウェアが冗長化された稼働系の運用環境において、昇格したOSを実行可能である。即ち、クラスタフェイルオーバ処理が実行された後も、稼働系のOSは、ハードウェアが冗長化された運用環境において実行されることから、ハードウェア障害に対して、比較的高い可用性を実現可能である。
一般的に、ハードウェアが二重化されたフォールトトレラントサーバには、非冗長化サーバ2台分の部材が用いられる。また、ハードウェアが二重化されたフォールトトレラントサーバを最低2台用いてクラスタシステムを構築する場合、非冗長化サーバ4台分の部材が用いられることになる。これに対して、本実施形態におけるフォールトトレラントサーバ100は、非冗長化サーバ3台分の部材により、ハードウェアが二重化された運用環境を備える、クラスタシステムを構築可能である。
[変形例]
上記説明した具体例の場合、ソフトウェア障害が発生してクラスタフェイルオーバ処理が実行された際、CPU/IOモジュール102は、待機系の運用環境として動作する。これに対して、フォールトトレラントサーバ100は、例えば、CPU/IOモジュール102が、稼働系の運用環境として動作するように、クラスタフェイルバック処理を自律的に実行してもよい。この場合、フォールトトレラントサーバ100は、例えば、一旦CPU/IOモジュール102を待機系として起動し、その後、CPU/IOモジュール102において実行されるOS1を稼働系OSに昇格(OS2を待機系OSに降格)してもよい。その際、フォールトトレラントサーバ100は、再度、CPU/IOモジュール102とCPU/IOモジュール103とを用いて、ハードウェアの冗長構成を実現してもよい。
また、上記説明した具体例の場合、ソフトウェア障害、ハードウェア障害が発生した際に、自動的に復旧処理が実行されるが、フォールトトレラントサーバ100は、障害が発生した際の動作について、自動復旧と、手動復旧とを切り替え可能な機能を備えてもよい。
<第2実施形態>
以下、本開示に係る技術の基本的な実施形態である第2実施形態について説明する。図7は、本実施形態における情報処理装置700の機能的な構成を例示するブロック図である。
図7に例示するように、情報処理装置700は、第1処理モジュール702と、第2処理モジュール703と、第3処理モジュール704と、含む。情報処理装置700は、また、構成管理部701(構成管理手段)を含む。情報処理装置700を構成するこれらの構成要素の間は、適切な通信方法により通信可能に接続されていてよい。
第1処理モジュール702、第2処理モジュール703、及び、第3処理モジュール704は、それぞれ、CPU、メモリ、不揮発性記憶装置(HDD等)、通信インタフェース、及びBMC等を備えるコンピュータを含んでよい。
第1処理モジュール702、第2処理モジュール703、及び、第3処理モジュール704は、同じ構成のハードウェアにより実現されてもよい。また、第1処理モジュール702、第2処理モジュール703、及び、第3処理モジュール704は、例えば、同じソフトウェア・プログラム(OS、ドライバ、各種アプリケーションを含む)を実行可能な、異なる構成のハードウェアにより実現されてもよい。なお、第1処理モジュール702は、例えば、第1実施形態におけるCPU/IOモジュール102と同様に構成されてもよく、第2処理モジュール703は、例えば、第1実施形態におけるCPU/IOモジュール103と同様に構成されてもよく、第3処理モジュール704は、例えば、第1実施形態におけるCPU/IOモジュール104と同様に構成されてもよい。
第1処理モジュール702は、例えば、OS及び各種アプリケーション等を用いて、何らかの情報処理を実行するよう構成される。第2処理モジュール703は、第1処理モジュール702及び第3処理モジュール704と同様の処理を実行可能な互換性を有する。第3処理モジュール704は、第1処理モジュール702が実行する情報処理を、第1処理モジュール702に代替して実行可能である。
構成管理部701は、第1処理モジュール702と、第2処理モジュール703と、第3処理モジュール704と、を組み合わせることで、情報処理を実行可能なコンピュータが冗長構成された運用環境を構築する。より具体的には、構成管理部701は、例えば、第1処理モジュール702と、第2処理モジュール703と、を組み合わせることで、コンピュータが冗長構成された運用環境を実現することが可能である。構成管理部701は、また、例えば、第3処理モジュール704と、第2処理モジュール703と、を組み合わせることで、コンピュータが冗長構成された運用環境を実現することが可能である。なお、構成管理部701は、例えば、上記第1実施形態における構成管理部101と同様に構成されてもよい。
上記ように構成された情報処理装置700において、第1処理モジュール702と、第2処理モジュール703とにより、コンピュータが冗長構成された運用環境(第1の運用環境)を実現されることを想定する。また、単体の第3処理モジュール704により、コンピュータが冗長構成されていない運用環境(第2の運用環境)が実現されることを想定する。なお、係る運用環境には、例えば、ハードウェアとしての各処理モジュール(第1処理モジュール702と、第2処理モジュール703、第3処理モジュール704)と、それらにおいて実行される各種ソフトウェア(OS、ドライバ、アプリケーション等)が含まれてよい。第1処理モジュール702及び第2処理モジュール703により構築された第1の運用環境において実行される情報処理に障害が発生した場合、第3処理モジュール704により構築された第2の運用環境は、その障害を検知し、構成管理部701にその障害を通知する。
構成管理部701は、第2の運用環境(第3処理モジュール704)からの通知に応じて、第1処理モジュール702と、第2処理モジュール703との組合せを、第3処理モジュール704と、第2処理モジュール703との組合せに切り替える。この際、構成管理部701は、例えば、第1処理モジュール702と、第2処理モジュール703とにより構成された運用環境から、第2処理モジュール703を切り離してよい。構成管理部701は、第2処理モジュール703と、第3処理モジュール704とを組み合わせることで、冗長構成が実現された運用環境として、第2の運用環境を再構築する。これにより、情報処理装置700は、ハードウェアが冗長化された運用環境を構築することが可能である。
再構築された第2の運用環境において、第1の運用環境(第1処理モジュール702と第2処理モジュール703との組合せ)において実行されていた情報処理が、第1の運用環境に代替して実行される。これにより、第2の運用環境は、障害が発生した第1の運用環境に代替して、第1の運用環境において実行されていた処理を、ハードウェアが冗長化された第2の運用環境において継続することが可能である。
以上のように構成されたフォールトトレラントサーバ700は、可用性が高いクラスタシステムを実現するフォールトトレラントサーバの構成部材の数を低減することができる。その理由は、フォールトトレラントサーバ700は、2台の処理モジュール(例えば、第1処理モジュールと第2処理モジュール、又は、第3処理モジュールと第2処理モジュール)を用いてハードウェアが冗長化された稼働系の運用環境を提供すると共に、1台の処理モジュール(例えば、第3処理モジュール)を用いて待機系の運用環境を提供することで、クラスタシステムを構築することができるからである。
[変形例]
上記説明した第2実施形態においては、本開示に係る技術の一態様として、情報処理装置(フォールトトレラントサーバ)内に、コンピュータとして機能する複数の処理モジュールを含む構成について説明した。本開示に係る技術はこれには限定されず、例えば、図8に例示するような、情報処理システム(フォールトトレラントシステム)として実現されてもよい。
この場合、構成管理装置801は、例えば、構成管理部701と同様に構成され、同様の処理を実行可能な情報処理装置であってよい。第1コンピュータ802は、第1処理モジュール702と同様に構成され、同様の処理を実行可能なコンピュータであってよい。第2コンピュータ803は、第2処理モジュール703と同様に構成され、同様の処理を実行可能なコンピュータであってよい。第3コンピュータ804は、第3処理モジュール704と同様に構成され、同様の処理を実行可能なコンピュータであってよい。構成管理装置801、第1コンピュータ802、第2コンピュータ803、第3コンピュータ804は、適切な通信ネットワークを用いて、相互に通信可能に接続されていてよい。
上記のように構成されたフォールトトレラントシステム800も、フォールトトレラントサーバ700と同様、可用性が高いクラスタシステムを実現するための構成部材の数を低減することができる。
以上、本開示に係る技術を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本開示に係る技術の範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、上記したような実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、変更又は改良を加えた新たな実施形態も、本開示に係る技術の範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本開示に係る技術の範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
100 フォールトトレラントサーバ
101 構成管理部
102 CPU/IOモジュール
103 CPU/IOモジュール
104 CPU/IOモジュール
102a、103a、104a BMC
102b、103b、104b FT制御部
102c、103c、104c CPU
102d、103d、104d メモリ
102e、103e、104e IOコントローラ
102f、103f、104f 内部NIC
201 OS
202 クラスタソフトウェア
203 FT制御ソフトウェア
700 情報処理装置
701 構成管理部
702 第1処理モジュール
703 第2処理モジュール
704 第3処理モジュール
800 フォールトトレラントシステム
801 構成管理装置
802 第1コンピュータ
803 第2コンピュータ
804 第3コンピュータ

Claims (7)

  1. コンピュータとして情報処理を実行可能な処理モジュールである第1処理モジュールと、
    前記第1処理モジュールと互換性を有するコンピュータとして情報処理を実行可能な処理モジュールである第2処理モジュールと、
    前記第1処理モジュール及び前記第2処理モジュールの少なくともいずれかと互換性を有するコンピュータとして、前記第1処理モジュールが実行する情報処理を、前記第1処理モジュールに代替して実行可能な処理モジュールである第3処理モジュールと、
    前記第2処理モジュールと、前記第1処理モジュール又は前記第3処理モジュールの一方とを組み合わせることで、冗長構成が実現された第1の運用環境と、前記第1の運用環境の実現に用いられない単一の処理モジュールにより構成された第2の運用環境との2つの運用環境を構築する構成管理手段と、を備え、
    前記第1処理モジュールと前記第2処理モジュールとにより冗長構成が実現された前記第1の運用環境において実行される情報処理に関する障害が発生した場合、前記第3処理モジュールにより構成された前記第2の運用環境は、その障害を検知して前記構成管理手段に通知し、
    前記構成管理手段は、前記第3処理モジュールにより構成された前記第2の運用環境からの通知に応じて、前記第1処理モジュールと前記第2処理モジュールとの組合せを、前記第3処理モジュールと前記第2処理モジュールとの組合せに切り替えることで、前記第3処理モジュールにより構成された前記第2の運用環境を、前記第3処理モジュールと前記第2処理モジュールとにより冗長構成が実現された前記運用環境として再構築し、
    前記第3処理モジュールと前記第2処理モジュールとにより再構築された前記第2の運用環境は、前記第1処理モジュールと前記第2処理モジュールとにより構成されていた前記第1の運用環境において実行されていた処理を前記第1の運用環境に代替して実行し、
    前記第1処理モジュールと前記第2処理モジュールとにより冗長構成が実現された前記運用環境である前記第1の運用環境において障害が発生していない場合、前記第1の運用環境は、自情報処理装置における情報処理を実行する稼働系のOS(Operating System)として第1のOSを実行し、前記第3処理モジュールにより構成された前記第2の運用環境は、前記第1の運用環境において障害が発生した際に稼働系のOSに代替して処理を実行する待機系のOSとして第2のOSを実行し、
    前記第1の運用環境において、前記第1のOSに障害が発生した場合、前記構成管理手段により前記第2処理モジュールと前記第3処理モジュールとが組み合わされることで冗長構成が実現されるよう再構築された前記運用環境である前記第2の運用環境は、前記第2のOSを稼働系のOSとして実行する
    情報処理装置。
  2. 前記第1の運用環境において、前記第1のOSに障害が発生した後、前記第1のOSが
    障害から回復した場合、
    前記第1の運用環境は、前記第1のOSを待機系のOSとして実行する
    請求項に記載の情報処理装置。
  3. 前記第1の運用環境において、前記第1のOSに障害が発生していない場合、前記第1処理モジュールは、前記第1処理モジュールと、前記第2処理モジュールとを同期する同期処理を実行し、
    前記第1の運用環境において、前記第1のOSに障害が発生した場合、前記第2の運用環境において、前記第3処理モジュールは、前記第3処理モジュールと、前記第2処理モジュールとを同期する同期処理を実行する
    請求項又は請求項に記載の情報処理装置。
  4. 前記第1の運用環境において、前記第1のOSに障害が発生した場合、
    前記第3処理モジュールにより構築された第2の運用環境は、前記第1処理モジュール及び前記第2処理モジュールを停止し、前記第2の運用環境が再構築された際に、前記第1処理モジュール及び前記第2処理モジュールを起動し、
    前記構成管理手段は、前記第1処理モジュール及び前記第2処理モジュールが停止された後、前記第2処理モジュールを前記運用環境から切り離し、前記第2処理モジュールと前記第3処理モジュールとを組み合わせることで、前記第2の運用環境を構築する
    請求項から請求項のいずれか一項に記載の情報処理装置。
  5. 情報処理装置が、
    コンピュータとして情報処理を実行可能な処理モジュールである第1処理モジュールと、前記第1処理モジュールと互換性を有するコンピュータとして情報処理を実行可能な処理モジュールである第2処理モジュールとを組み合わせることで、コンピュータが冗長構成された運用環境である第1の運用環境を構築し、
    前記第1処理モジュール及び前記第2処理モジュールの少なくともいずれかと互換性を有するコンピュータとして、前記第1処理モジュールが実行する情報処理を、前記第1処理モジュールに代替して実行可能な処理モジュールである第3処理モジュールのみを用いて構成された運用環境である第2の運用環境を構築し、
    前記第1処理モジュールと前記第2処理モジュールとにより冗長構成が実現された前記第1の運用環境において実行される情報処理に関する障害が発生した場合、その障害を検知し、
    前記第1処理モジュールと前記第2処理モジュールとの組合せを、前記第3処理モジュールと前記第2処理モジュールとの組合せに切り替えることで、冗長構成が実現された運用環境として前記第2の運用環境を再構築し、
    前記第1の運用環境が実行する処理を、前記第1の運用環境に代替して、再構築された前記第2の運用環境において実行し、
    記第1処理モジュールと前記第2処理モジュールとにより冗長構成が実現された前記運用環境である前記第1の運用環境において障害が発生していない場合、前記第1の運用環境は、自情報処理装置における情報処理を実行する稼働系のOS(Operating System)として第1のOSを実行し、前記第3処理モジュールにより構成された前記第2の運用環境は、前記第1の運用環境において障害が発生した際に稼働系のOSに代替して処理を実行する待機系のOSとして第2のOSを実行し、
    前記第1の運用環境において、前記第1のOSに障害が発生した場合、前記第2処理モジュールと前記第3処理モジュールとが組み合わされることで冗長構成が実現されるよう再構築された前記運用環境である前記第2の運用環境は、前記第2のOSを稼働系のOSとして実行する
    情報処理方法。
  6. 情報処理装置に、
    コンピュータとして情報処理を実行可能な処理モジュールである第1処理モジュールと、前記第1処理モジュールと互換性を有するコンピュータとして情報処理を実行可能な処理モジュールである第2処理モジュールとを組み合わせることで、コンピュータが冗長構成された運用環境である第1の運用環境を構築する処理と、
    前記第1処理モジュール及び前記第2処理モジュールの少なくともいずれかと互換性を有するコンピュータとして、前記第1処理モジュールが実行する情報処理を、前記第1処理モジュールに代替して実行可能な処理モジュールである第3処理モジュールのみで構成された運用環境である第2の運用環境を構築する処理と、
    前記第1処理モジュールと前記第2処理モジュールとにより冗長構成が実現された前記第1の運用環境において実行される情報処理に関する障害が発生した場合、その障害を検知する処理と、
    前記第1処理モジュールと前記第2処理モジュールとの組合せを、前記第3処理モジュールと前記第2処理モジュールとの組合せに切り替えることで、冗長構成が実現された運用環境として前記第2の運用環境を再構築する処理と、
    前記第1の運用環境が実行する処理を、前記第1の運用環境に代替して、再構築された
    前記第2の運用環境において実行する処理と
    前記第1処理モジュールと前記第2処理モジュールとにより冗長構成が実現された前記運用環境である前記第1の運用環境において障害が発生していない場合、前記第1の運用環境は、自情報処理装置における情報処理を実行する稼働系のOS(Operating System)として第1のOSを実行し、前記第3処理モジュールにより構成された前記第2の運用環境は、前記第1の運用環境において障害が発生した際に稼働系のOSに代替して処理を実行する待機系のOSとして第2のOSを実行する処理と、
    前記第1の運用環境において、前記第1のOSに障害が発生した場合、前記第2処理モジュールと前記第3処理モジュールとが組み合わされることで冗長構成が実現されるよう再構築された前記運用環境である前記第2の運用環境は、前記第2のOSを稼働系のOSとして実行する処理と、
    を実行させる
    コンピュータ・プログラム。
  7. 情報処理を実行可能なコンピュータである第1コンピュータと、
    前記第1コンピュータと互換性を有するコンピュータである第2コンピュータと、
    前記第1コンピュータ及び前記第2コンピュータの少なくともいずれかと互換性を有するコンピュータとして、前記第1コンピュータが実行する情報処理を、前記第1コンピュータに代替して実行可能な第3コンピュータと、
    前記第2コンピュータと、前記第1コンピュータ又は前記第3コンピュータの一方とを組み合わせることで、冗長構成が実現された第1の運用環境と、前記第1の運用環境の実現に用いられない単一のコンピュータにより構成された第2の運用環境との2つの運用環境を構築する情報処理装置である構成管理装置と、を備え、
    前記第1コンピュータと前記第2コンピュータとにより冗長構成が実現された前記第1の運用環境において実行される情報処理に関する障害が発生した場合、前記第2の運用環境は、その障害を検知して前記構成管理装置に通知し、
    前記構成管理装置は、前記第2の運用環境からの通知に応じて、前記第1コンピュータと前記第2コンピュータとの組合せを、前記第3コンピュータと前記第2コンピュータとの組合せに切り替えることで、冗長構成が実現された前記運用環境として、前記第2の運用環境を再構築し、
    前記第3コンピュータと前記第2コンピュータとにより再構築された前記第2の運用環境は、前記第1の運用環境が実行する処理を、前記第1の運用環境に代替して実行し、
    前記第1コンピュータと前記第2コンピュータとにより冗長構成が実現された前記運用環境である前記第1の運用環境において障害が発生していない場合、前記第1の運用環境は、自情報処理装置における情報処理を実行する稼働系のOS(Operating System)として第1のOSを実行し、前記第3コンピュータにより構成された前記第2の運用環境は、前記第1の運用環境において障害が発生した際に稼働系のOSに代替して処理を実行する待機系のOSとして第2のOSを実行し、
    前記第1の運用環境において、前記第1のOSに障害が発生した場合、前記第2コンピュータと前記第3コンピュータとが組み合わされることで冗長構成が実現されるよう再構築された前記運用環境である前記第2の運用環境は、前記第2のOSを稼働系のOSとして実行する
    情報処理システム。
JP2017189771A 2017-09-29 2017-09-29 情報処理装置、情報処理方法、情報処理システム、及び、コンピュータ・プログラム Active JP7056057B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017189771A JP7056057B2 (ja) 2017-09-29 2017-09-29 情報処理装置、情報処理方法、情報処理システム、及び、コンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017189771A JP7056057B2 (ja) 2017-09-29 2017-09-29 情報処理装置、情報処理方法、情報処理システム、及び、コンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2019067014A JP2019067014A (ja) 2019-04-25
JP7056057B2 true JP7056057B2 (ja) 2022-04-19

Family

ID=66337816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017189771A Active JP7056057B2 (ja) 2017-09-29 2017-09-29 情報処理装置、情報処理方法、情報処理システム、及び、コンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP7056057B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042001A (ja) 2005-08-05 2007-02-15 Hitachi Ltd 計算機システム、同期化処理方法、およびプログラム
JP2012077235A (ja) 2010-10-05 2012-04-19 Nitto Denko Corp 光半導体装置用エポキシ樹脂組成物およびそれを用いて得られる光半導体装置用リードフレーム、ならびに光半導体装置
JP2012185560A (ja) 2011-03-03 2012-09-27 Nec Corp クラスタシステムおよびその制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042001A (ja) 2005-08-05 2007-02-15 Hitachi Ltd 計算機システム、同期化処理方法、およびプログラム
JP2012077235A (ja) 2010-10-05 2012-04-19 Nitto Denko Corp 光半導体装置用エポキシ樹脂組成物およびそれを用いて得られる光半導体装置用リードフレーム、ならびに光半導体装置
JP2012185560A (ja) 2011-03-03 2012-09-27 Nec Corp クラスタシステムおよびその制御方法

Also Published As

Publication number Publication date
JP2019067014A (ja) 2019-04-25

Similar Documents

Publication Publication Date Title
US9195553B2 (en) Redundant system control method
EP2306318B1 (en) Enhanced solid-state drive management in high availability and virtualization contexts
US9280428B2 (en) Method for designing a hyper-visor cluster that does not require a shared storage device
US20140173330A1 (en) Split Brain Detection and Recovery System
JP5392594B2 (ja) 仮想計算機冗長化システム、コンピュータシステム、仮想計算機冗長化方法、及びプログラム
JP2011060055A (ja) 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
JP5561622B2 (ja) 多重化システム、データ通信カード、状態異常検出方法、及びプログラム
JP2008097276A (ja) 障害回復方法、計算機システム及び管理サーバ
US11573737B2 (en) Method and apparatus for performing disk management of all flash array server
JP2008107896A (ja) 物理資源制御管理システム、物理資源制御管理方法および物理資源制御管理用プログラム
WO2015104841A1 (ja) 多重系システムおよび多重系システム管理方法
JP4182948B2 (ja) フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
JP5287974B2 (ja) 演算処理システム、再同期方法、およびファームプログラム
KR100928187B1 (ko) 듀얼 프로세서 제어 장치의 고장 안전 구조
JP7056057B2 (ja) 情報処理装置、情報処理方法、情報処理システム、及び、コンピュータ・プログラム
JP5534021B2 (ja) ストレージ装置、制御部およびストレージ装置制御方法
JP6335336B2 (ja) ストレージシステムおよびその制御方法
JP2006114064A (ja) 記憶サブシステム
JP2006277724A (ja) 処理装置及びその障害復旧方法と障害回復方法
JP6954693B2 (ja) フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム
JP2005122763A (ja) 記憶装置
JP6773345B1 (ja) フォールトトレラントシステム、サーバ、及びそれらの運用方法
JP2011086316A (ja) 引継方法、計算機システム及び管理サーバ
JP5353378B2 (ja) Haクラスタシステムおよびそのクラスタリング方法
JP7209784B1 (ja) 冗長化システム及び冗長化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211013

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211022

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220321

R151 Written notification of patent or utility model registration

Ref document number: 7056057

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151