(57)【特許請求の範囲】
【請求項１】
第一及び第二の情報処理装置による二重化構成を有するフォールトトレラントシステムであって、
前記第一の情報処理装置のみで稼働している状態において前記第二の情報処理装置の稼働が開始されるときに、前記第一の情報処理装置の入出力資源の構成に関する第一の入出力資源情報を記憶する第一の記憶手段と、
前記第二の情報処理装置のＣＰＵの初期化が開始される前に、前記第一の入出力資源情報を第二の入出力資源情報として記憶する第二の記憶手段と、
前記第二の情報処理装置のＣＰＵの初期化において、前記第二の入出力資源情報を用いて前記第二の情報処理装置の入出力資源に関する設定を行う設定手段と、
を備えるフォールトトレラントシステム。
【請求項２】
前記第二の記憶手段は、記憶済みである、前記第二の情報処理装置の入出力資源の構成に関する第三の入出力資源情報と前記第一の入出力資源情報とを比較し、前記第一の入出力資源情報と前記第三の入出力資源情報とが異なる場合、前記第三の入出力資源情報を前記第二の入出力資源情報に更新する、
請求項１に記載のフォールトトレラントシステム。
【請求項３】
前記第二の記憶手段は、巡回冗長検査により、前記第一の入出力資源情報と前記第三の入出力資源情報とを比較する、
請求項２に記載のフォールトトレラントシステム。
【請求項４】
前記第一の記憶手段は、前記第一の情報処理装置のＣＰＵから発行された入出力リクエストに対して、前記第一の情報処理装置の入出力コントローラに代行して応答する仮想化された入出力バッファを備え、
前記第二の記憶手段は、前記第二の情報処理装置のＣＰＵから発行された入出力リクエストに対して、前記第二の情報処理装置の入出力コントローラに代行して応答する仮想化された入出力バッファを備える、
請求項１乃至請求項３のいずれか一項に記載のフォールトトレラントシステム。
【請求項５】
前記第一の記憶手段は、前記第一の情報処理装置に関する前記二重化構成への組み込みを制御する第一のフォールトトレラント制御回路に含まれ、
前記第二の記憶手段、及び、前記設定手段は、前記第二の情報処理装置に関する前記二重化構成への組み込みを制御する第二のフォールトトレラント制御回路に含まれる、
請求項１乃至請求項４のいずれか一項に記載のフォールトトレラントシステム。
【請求項６】
前記第一の情報処理装置が備えるＣＰＵ、メモリ、入出力コントローラと、
前記第二の情報処理装置が備える、ＣＰＵ、メモリ、入出力コントローラと、
をさらに備える請求項１乃至請求項４のいずれか一項に記載のフォールトトレラントシステム。
【請求項７】
第一及び第二の情報処理装置による二重化構成を有するフォールトトレラントシステムによって、
前記第一の情報処理装置のみで稼働している状態において前記第二の情報処理装置の稼働が開始されるときに、前記第一の情報処理装置の入出力資源の構成に関する第一の入出力資源情報を第一の記憶手段に記憶し、
前記第二の情報処理装置のＣＰＵの初期化が開始される前に、前記第一の入出力資源情報を第二の入出力資源情報として第二の記憶手段に記憶し、
前記第二の情報処理装置のＣＰＵの初期化において、前記第二の入出力資源情報を用いて前記第二の情報処理装置の入出力資源に関する設定を行う、
フォールトトレラント制御方法。
【請求項８】
前記第二の記憶手段に記憶済みである、前記第二の情報処理装置の入出力資源の構成に関する第三の入出力資源情報と前記第一の入出力資源情報とを比較し、前記第一の入出力資源情報と前記第三の入出力資源情報とが異なる場合、前記第三の入出力資源情報を前記第二の入出力資源情報に更新する、
請求項７に記載のフォールトトレラント制御方法。
【請求項９】
第一及び第二の情報処理装置による二重化構成を有するフォールトトレラントシステムにおいて、
前記第一の情報処理装置のみで稼働している状態において前記第二の情報処理装置の稼働が開始されるときに、前記第一の情報処理装置の入出力資源の構成に関する第一の入出力資源情報を第一の記憶手段が記憶する場合に、
前記第二の情報処理装置のＣＰＵの初期化が開始される前に、前記第一の入出力資源情報を第二の入出力資源情報として第二の記憶手段に記憶する処理と、
前記第二の情報処理装置のＣＰＵの初期化において、前記第二の入出力資源情報を用いて前記第二の情報処理装置の入出力資源に関する設定を行う処理と、
を前記第二の情報処理装置に実行させるためのフォールトトレラント制御プログラム。
【請求項１０】
前記第二の記憶手段に記憶済みである、前記第二の情報処理装置の入出力資源の構成に関する第三の入出力資源情報と前記第一の入出力資源情報とを比較し、前記第一の入出力資源情報と前記第三の入出力資源情報とが異なる場合、前記第三の入出力資源情報を前記第二の入出力資源情報に更新する処理を実行させる、
請求項９に記載のフォールトトレラント制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォールトトレラントシステム、フォールトトレラント制御方法、及び、フォールトトレラント制御プログラムに関する。
【背景技術】
【０００２】
現在、例えば二重化したサーバを備えることによって可用性を向上させた、多数のフォールトトレラントシステムが構築されている。このようなフォールトトレラントシステムでは、障害が発生したのち、片系のサーバによる稼働状態から二重化構成による稼働状態に復帰する際に、稼働中のサーバにおけるデータを、稼働を開始するもう片方のサーバにコピーする処理を行う。そして、その処理を行う間、システムの運用を一時的に停止する必要があるので、このようなシステムの停止時間を短縮する技術が期待されている。
【０００３】
このような技術に関連する技術として、特許文献１には、オンライン系サブシステムとオフライン系サブシステムとによる情報処理を二重化するように構成されたフォールトトレラントサーバが開示されている。このサーバは、二重化を開始する前に、オンライン系サブシステムのメモリに記憶されている全てのデータを、オフライン系サブシステムのメモリにコピーする全コピー処理を実行する。このサーバは、オンライン系サブシステムのメモリに記憶されているデータのうち、全コピー処理中に内容が変更されたと判定される基準を満たすデータを検出する。そしてこのサーバは、検出されたデータを、オンライン系サブシステムのメモリから オフライン系サブシステムのメモリにコピーするように動作する。
【０００４】
また、特許文献２には、ライトアドレスデータ格納用メモリモジュールをメモリスロットに実装したフォールトトレラントサーバが開示されている。このサーバは、メインメモリへのライトアドレスを、ライトアドレスデータ格納用メモリに蓄積する。このサーバは、障害発生に起因して片系動作となった時点から片系動作を終了して二重化動作に復旧させる時点の間にかけて蓄積されたライトアドレスを、メモリバスへ出力する。そしてこのサーバは、出力されたライトアドレスに対応付けられるメインメモリに格納されたデータを読み出して、障害から復旧した他の片系のメインメモリへコピーする。
【０００５】
また、特許文献３には、動作系情報処理システムに待機系情報処理システムを同期化させる二重化情報処理システムが開示されている。このシステムは、この同期化の際、動作系のキャッシュメモリの内容を待機系のキャッシュメモリにコピーすると共に、動作系の主記憶装置の内容を待機系の主記憶装置にコピーする。このシステムは、コピーが完了するまでの間、動作系のＣＰＵ（Central Processing Unit）および待機系のＣＰＵからのリードおよびライトを動作系の主記憶装置に対するリードおよびライトとして処理する。そしてこのシステムにおける動作系及び待機系のＣＰＵは、キャッシュメモリのコピーの完了時、主記憶装置のコピーの完了を待たずに、同一タイミングで同一の処理の実行を開始する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１８４８６６号公報
【特許文献２】特開２０１４−１５７４９２号公報
【特許文献３】特開２０１３−０２０５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
コンピュータシステムの規模、及び、コンピュータシステムが処理するデータ量は、年々急速に増加していることから、上述したフォールトトレラントシステムを、片系による稼働状態から二重化構成による稼働状態へ復帰するのに要する時間も増加する傾向にある。したがって、上述した特許文献１乃至３が示す技術では、フォールトトレラントシステムの可用性を向上する点において十分であるとはいえず、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間をさらに短縮することが課題である。
【０００８】
本発明の主たる目的は、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間を短縮するフォールトトレラントシステム等を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様に係るフォールトトレラントシステムは、第一及び第二の情報処理装置による二重化構成を有するフォールトトレラントシステムであって、前記第一の情報処理装置のみで稼働している状態において前記第二の情報処理装置の稼働が開始されるときに、前記第一の情報処理装置の入出力資源の構成に関する第一の入出力資源情報を記憶する第一の記憶手段と、前記第二の情報処理装置のＣＰＵの初期化が開始される前に、前記第一の入出力資源情報を第二の入出力資源情報として記憶する第二の記憶手段と、前記第二の情報処理装置のＣＰＵの初期化において、前記第二の入出力資源情報を用いて前記第二の情報処理装置の入出力資源に関する設定を行う設定手段と、を備える。
【００１０】
上記目的を達成する他の見地において、本発明の一態様に係るフォールトトレラント制御方法は、第一及び第二の情報処理装置による二重化構成を有するフォールトトレラントシステムによって、前記第一の情報処理装置のみで稼働している状態において前記第二の情報処理装置の稼働が開始されるときに、前記第一の情報処理装置の入出力資源の構成に関する第一の入出力資源情報を第一の記憶手段に記憶し、前記第二の情報処理装置のＣＰＵの初期化が開始される前に、前記第一の入出力資源情報を第二の入出力資源情報として第二の記憶手段に記憶し、前記第二の情報処理装置のＣＰＵの初期化において、前記第二の入出力資源情報を用いて前記第二の情報処理装置の入出力資源に関する設定を行う。
【００１１】
また、上記目的を達成する更なる見地において、本発明の一態様に係るフォールトトレラント制御プログラムは、第一及び第二の情報処理装置による二重化構成を有するフォールトトレラントシステムにおいて、前記第一の情報処理装置のみで稼働している状態において前記第二の情報処理装置の稼働が開始されるときに、前記第一の情報処理装置の入出力資源の構成に関する第一の入出力資源情報を第一の記憶手段が記憶する場合に、前記第二の情報処理装置のＣＰＵの初期化が開始される前に、前記第一の入出力資源情報を第二の入出力資源情報として第二の記憶手段に記憶する処理と、前記第二の情報処理装置のＣＰＵの初期化において、前記第二の入出力資源情報を用いて前記第二の情報処理装置の入出力資源に関する設定を行う処理と、を前記第二の情報処理装置に実行させる。
【００１２】
更に、本発明は、係るフォールトトレラント制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１３】
本発明によれば、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間を短縮するフォールトトレラントシステム等が得られる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係るフォールトトレラントシステム１の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るフォールトトレラントシステム１の動作を示すフローチャートである。
【図３】一般的なフォールトトレラントシステム２の構成を示すブロック図である。
【図４】一般的なフォールトトレラントシステム２の動作を示すフローチャートである。
【図５】本発明の第２の実施形態に係るフォールトトレラントシステム３の構成を示すブロック図である。
【図６】本発明の各実施形態に係るフォールトトレラントシステムに含まれるサーバ、フォールトトレラント制御回路、あるいは情報処理装置を実現可能な情報処理装置９００の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
＜第１の実施形態＞
図１は、本発明の第１の実施の形態に係るフォールトトレラントシステム１の構成を示すブロック図である。フォールトトレラントシステム１は、サーバ１０ａ及び１０ｂによる二重化構成を有する。
【００１７】
サーバ１０ａ及び１０ｂの構成は同等であり、その機能も同等である。具体的には、サーバ１０ａ（１０ｂ）は、ＣＰＵ１１ａ（１１ｂ）、メモリ１２ａ（１２ｂ）、フォールトトレラント制御回路１３ａ（１３ｂ）、ＩＯ（Input Output）コントローラ１４ａ（１４ｂ）を備える。サーバ１０ａ及び１０ｂは、後述する図６に例示する情報処理装置９００としても表される。
【００１８】
フォールトトレラント制御回路１３ａ及び１３ｂは、サーバ１０ａ（１０ｂ）で障害が発生した場合に、サーバ１０ａ（１０ｂ）の運用を停止し、フォールトトレラントシステム１を片系での運用状態に移行することを制御する。フォールトトレラント制御回路１３ａ及び１３ｂは、また、フォールトトレラントシステム１がサーバ１０ａあるいは１０ｂによる片系での運用状態から二重化構成の状態に復帰することを制御する。フォールトトレラント制御回路１３ａ及び１３ｂは、クロスリンク１５によって通信可能に接続されており、互いに連携して上述した制御に関する動作を行う。
【００１９】
フォールトトレラント制御回路１３ａ（１３ｂ）は、記憶部１３０ａ（１３０ｂ）、設定部１３２ａ（１３２ｂ）を備える。記憶部１３０ａ（１３０ｂ）、設定部１３２ａ（１３２ｂ）は、順に、記憶手段、設定手段の一例である。記憶部１３０ａ（１３０ｂ）は、後述する通り、データを記憶する機能に加えて、当該データの記憶の制御に関係する処理を行う記憶制御機能を備えることとする。フォールトトレラント制御回路１３ａ（１３ｂ）は、例えばチップセットとして構成される。フォールトトレラント制御回路１３ａ（１３ｂ）は、また、後述する図６に例示する情報処理装置９００の少なくとも一部としても表される。
【００２０】
本実施形態では、フォールトトレラントシステム１が、サーバ１０ｂが障害等により停止した後にサーバ１０ａのみにより（即ち片系で）運用されている状態において、サーバ１０ｂの再稼働によって二重化構成に復帰する場合の動作について説明することとする。この場合、サーバ１０ａは第１の情報処理装置とも称し、サーバ１０ｂは第２の情報処理装置とも称する。
【００２１】
尚、フォールトトレラントシステム１が、サーバ１０ａが障害等により停止した後サーバ１０ｂのみにより運用されている状態において、サーバ１０ａの再稼働によって二重化構成に復帰する場合の動作も同様である。この場合、サーバ１０ａは第２の情報処理装置とも称し、サーバ１０ｂは第１の情報処理装置とも称する。
【００２２】
フォールトトレラントシステム１が二重化構成の状態に復帰する動作を開始するにあたって、サーバ１０ｂにおけるフォールトトレラント制御回路１３ｂは、サーバ１０ｂの稼働準備の開始を、サーバ１０ａにおけるフォールトトレラント制御回路１３ａに通知する。尚、フォールトトレラント制御回路１３ａ及び１３ｂは、順に、第１及び第２のフォールトトレラント制御回路とも称する。
【００２３】
フォールトトレラント制御回路１３ａの記憶部１３０ａ（第１の記憶手段の一例）は、稼働準備の開始の通知に応じて、仮想ＩＯバッファ１３１ａに、サーバ１０ａの現在のＩＯリソース（入出力資源とも称する）の構成に関するＩＯリソース情報（第１の入出力資源情報の一例）を格納する。仮想ＩＯバッファ１３１ａは、例えば、記憶部１３０ａが備えるメモリによって構成される。ＩＯリソース情報は、例えば、ＣＰＵ１１ａがＩＯコントローラ１４ａ（入出力コントローラの一例）を介してアクセスする外部記憶装置等の周辺機器を含むＩＯリソース（不図示）の構成を表す情報である。したがって、ＩＯリソース情報は、ＩＯリソースの構成が変更されない限り変化しない情報である。
【００２４】
仮想ＩＯバッファ１３１ａは、ＣＰＵ１１ａから発行された、ＩＯリソースに対するＩＯリクエスト（入出力リクエストの一例）に対して、ＩＯコントローラ１４ａに代行して応答する機能を備える。すなわち、仮想ＩＯバッファ１３１ａは、ＩＯコントローラ１４ａにおける実際のＩＯバッファを仮想化したものであり、ＣＰＵ１１ａによって、ＩＯコントローラ１４ａにおける実際のＩＯバッファと同等に認識される。以上のことから、記憶部１３０ａは、仮想ＩＯバッファ１３１ａに格納するＩＯリソース情報を、ＩＯコントローラ１４ａから取得すればよい。
【００２５】
フォールトトレラント制御回路１３ｂの記憶部１３０ｂも、フォールトトレラント制御回路１３ａの記憶部１３０ａと同様に、仮想ＩＯバッファ１３１ｂを備えている。仮想ＩＯバッファ１３１ｂは、例えば、記憶部１３０ｂが備えるメモリによって構成される。
【００２６】
仮想ＩＯバッファ１３１ｂも仮想ＩＯバッファ１３１ａと同様に、ＣＰＵ１１ｂから発行された、ＩＯリソースに対するＩＯリクエストに対して、ＩＯコントローラ１４ｂに代行して応答する機能を備える。すなわち、仮想ＩＯバッファ１３１ｂは、ＩＯコントローラ１４ｂにおける実際のＩＯバッファを仮想化したものであり、ＣＰＵ１１ｂによって、ＩＯコントローラ１４ｂにおける実際のＩＯバッファと同等に認識される。
【００２７】
サーバ１０ｂの再稼働によってフォールトトレラントシステム１の二重化構成を復帰する動作が開始される時点において、仮想ＩＯバッファ１３１ｂには、サーバ１０ｂが以前稼働していたときのＩＯリソース情報（第３の入出力資源情報とも称する）が格納されている場合がある。当該ＩＯリソース情報は、サーバ１０ｂが稼働していた当時のサーバ１０ｂのＩＯリソースの構成を表す情報である。あるいは、二重化構成に組み込むサーバ１０ｂが新たなサーバである場合などでは、仮想ＩＯバッファ１３１ｂには、ＩＯリソース情報が格納されていない場合もある。
【００２８】
記憶部１３０ｂは、記憶部１３０ａから取得した仮想ＩＯバッファ１３１ａに格納されているＩＯリソース情報と、仮想ＩＯバッファ１３１ｂに格納されているＩＯリソース情報とを比較する。記憶部１３０ｂは、この比較を、例えば巡回冗長検査（ＣＲＣ：Cyclic Redundancy Check）により行ってもよいし、あるいは、その他の一般的なデータの比較手法を用いて行ってもよい。
【００２９】
記憶部１３０ｂは、上述の比較において、両方のＩＯリソース情報が一致しない場合、仮想ＩＯバッファ１３１ｂに格納されているＩＯリソース情報を、仮想ＩＯバッファ１３１ａに格納されているＩＯリソース情報に置き換える。尚、仮想ＩＯバッファ１３１ｂにおいて置き換えられたのちのＩＯリソース情報は、第２の入出力資源情報とも称する。
【００３０】
フォールトトレラントシステム１において上述した処理が行われたのち、フォールトトレラント制御回路１３ｂは、ＣＰＵ１１ｂの初期化を開始する。フォールトトレラント制御回路１３ｂにおける設定部１３２ｂは、ＣＰＵ１１ｂの初期化において、仮想ＩＯバッファ１３１ｂに格納されているＩＯリソース情報を用いて、ＣＰＵ１１ｂのＩＯリソースに関する設定を行う。ＣＰＵ１１ｂのＩＯリソースに関する設定とは、具体的には、例えば、ＩＯコントローラ１４ｂを介した個々の周辺機器へのアクセスに関するＣＰＵ１１ｂのリソースの割り当てなどである。
【００３１】
フォールトトレラント制御回路１３ｂは、ＣＰＵ１１ｂの初期化を完了したのち、メモリ１２ａに格納されているデータを、ＣＰＵ１１ａ及び１１ｂを用いてメモリ１２ｂにコピーする。そして、フォールトトレラント制御回路１３ｂは、ＣＰＵ１１ｂに対して、上述したＩＯリソースに関する設定以外の設定をＣＰＵ１１ａと同等に設定する。フォールトトレラント制御回路１３ｂは、この設定を、例えば、ＣＰＵ１１ａが備えるレジスタに格納されているＣＰＵの動作環境を表すデータを、ＣＰＵ１１ｂが備えるレジスタに同様に格納すればよい。
【００３２】
フォールトトレラントシステム１は、フォールトトレラント制御回路１３ａ及び１３ｂによる上述した処理を完了したのち、サーバ１０ｂを再稼働することによって二重化構成による運用を開始する。
【００３３】
次に図２のフローチャートを参照して、本実施形態に係るフォールトトレラントシステム１の動作（処理）について詳細に説明する。
【００３４】
フォールトトレラント制御回路１３ｂは、フォールトトレラントシステム１がサーバ１０ａのみにより（即ち片系で）運用されている状態において、サーバ１０ｂの稼働準備の開始をフォールトトレラント制御回路１３ａに通知する（ステップＳ１０１）。フォールトトレラント制御回路１３ａがこの通知を受信すると、フォールトトレラント制御回路１３ａにおける記憶部１３０ａは、仮想ＩＯバッファ１３１ａに、ＩＯコントローラ１４ａから取得した、サーバ１０ａのＩＯリソース情報を格納する（ステップＳ１０２）。
【００３５】
フォールトトレラント制御回路１３ｂにおける記憶部１３０ｂは、仮想ＩＯバッファ１３１ａに格納されているＩＯリソース情報と仮想ＩＯバッファ１３１ｂに格納されているＩＯリソース情報とを、ＣＲＣにより比較する（ステップＳ１０３）。
【００３６】
ステップＳ１０３における比較において両方のＩＯリソース情報が一致する場合（ステップＳ１０４でＹｅｓ）、処理はステップＳ１０６へ進む。ステップＳ１０３における比較において両方のＩＯリソース情報が一致しない場合（ステップＳ１０４でＮｏ）、記憶部１３０ｂは、仮想ＩＯバッファ１３１ｂのＩＯリソース情報を、仮想ＩＯバッファ１３１ａのＩＯリソース情報に更新する（ステップＳ１０５）。
【００３７】
フォールトトレラント制御回路１３ｂは、ＣＰＵ１１ｂの初期化を開始する（ステップＳ１０６）。フォールトトレラント制御回路１３ｂにおける設定部１３２ｂは、仮想ＩＯバッファ１３１ｂに格納されているＩＯリソース情報を用いて、ＣＰＵ１１ｂのＩＯリソースに関する設定を行う（ステップＳ１０７）。フォールトトレラント制御回路１３ｂは、ＣＰＵ１１ｂの初期化を終了する（ステップＳ１０８）。
【００３８】
フォールトトレラント制御回路１３ｂは、メモリ１２ａのデータをメモリ１２ｂにコピーするとともに、ＣＰＵ１１ｂに対して、ＩＯリソースに関する設定以外の設定を、ＣＰＵ１１ａと同等に設定し（ステップＳ１０９）、全体の処理は終了する。
【００３９】
本実施形態に係るフォールトトレラントシステム１は、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間を短縮することができる。その理由は、フォールトトレラントシステム１は、稼働中のサーバ１０ａのＩＯリソース情報を、稼働を開始するサーバ１０ｂにおける仮想ＩＯバッファ１３１ｂに格納し、ＣＰＵ１１ｂの初期化においてに、仮想ＩＯバッファ１３１ｂに格納したＩＯリソース情報を用いて、ＣＰＵ１１ｂのＩＯリソースに関する設定を行うからである。
【００４０】
以下に、本実施形態に係るフォールトトレラントシステム１によって実現される効果について、詳細に説明する。
【００４１】
コンピュータシステムの規模、及び、コンピュータシステムが処理するデータ量は、年々急速に増加していることから、フォールトトレラントシステムを、片系による稼働状態から二重化構成による稼働状態へ復帰するのに要する時間も増加する傾向にある。したがって、フォールトトレラントシステムの可用性が低下しないように、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間をさらに短縮することが課題である。
【００４２】
このような課題に対して、本実施形態に係るフォールトトレラントシステム１は、記憶部１３０ａと記憶部１３０ｂと設定部１３２ｂとを備え、例えば図１及び図２を参照して上述した通り動作する。即ち、記憶部１３０ａは、サーバ１０ａのみで稼働している状態においてサーバ１０ｂの稼働が開始されるときに、サーバ１０ａの入出力資源の構成に関するＩＯリソース情報を記憶する。記憶部１３０ｂは、サーバ１０ｂのＣＰＵの初期化が開始される前に、記憶部１３０ａに記憶されているＩＯリソース情報を記憶する。そして設定部１３２ｂは、サーバ１０ｂのＣＰＵの初期化において、記憶部１３０ｂに記憶されたＩＯリソース情報を用いてサーバ１０ｂの入出力資源に関する設定を行う。
【００４３】
ここで、図３及び図４を参照して、本実施形態に係るフォールトトレラントシステム１と、一般的なフォールトトレラントシステム２との動作の差異について説明する。
【００４４】
図３は、一般的なフォールトトレラントシステム２の構成を示すブロック図である。図４は、一般的なフォールトトレラントシステム２の動作（処理）を示すフローチャートである。
【００４５】
フォールトトレラントシステム２は、サーバ２０ａ及び２０ｂによる二重化構成を有する。サーバ２０ａ及び２０ｂの構成は同等であり、その機能も同等である。具体的には、サーバ２０ａ（２０ｂ）は、ＣＰＵ１１ａ（１１ｂ）、メモリ１２ａ（１２ｂ）、フォールトトレラント制御回路２３ａ（２３ｂ）、ＩＯコントローラ１４ａ（１４ｂ）を備える。但し、フォールトトレラントシステム２に含まれる構成要素のうち、その機能が上述したフォールトトレラントシステム１に含まれる構成要素と同等である構成要素に対しては、フォールトトレラントシステム１における番号と同一の番号を付与することとする。したがって、サーバ２０ａ（２０ｂ）の構成は、フォールトトレラント制御回路２３ａ（２３ｂ）を除き、サーバ１０ａ（１０ｂ）と同等である。フォールトトレラント制御回路２３ａ（２３ｂ）は、設定部２３２ａ（２３２ｂ）を備えている。
【００４６】
図４に例示するフローチャートにおいて、ステップＳ２０１、ステップＳ２０６乃至Ｓ２０９は、順に、図２に例示するフローチャートにおける、ステップＳ１０１、ステップＳ１０６乃至Ｓ１０９に相当する。
【００４７】
本実施形態に係るフォールトトレラントシステム１におけるフォールトトレラント制御回路１３ａ及び１３ｂは、図２に例示する通り、ステップＳ１０６においてＣＰＵ１１ｂの初期化を開始する前に、ステップＳ１０２乃至Ｓ１０５の処理を行う。これに対して、一般的なフォールトトレラントシステム２におけるフォールトトレラント制御回路２３ａ及び２３ｂは、図４に例示する通り、ステップＳ２０６においてＣＰＵ１１ｂの初期化を開始する前に、ステップＳ１０２乃至Ｓ１０５に相当する処理を行わない。本実施形態に係るフォールトトレラントシステム１は、ステップＳ１０２乃至Ｓ１０５の処理を行うので、ステップＳ１０７において、ＣＰＵ１１ｂのＩＯリソースに関する設定を完了することができる。これに対して、一般的なフォールトトレラントシステム２は、ステップＳ１０２乃至Ｓ１０５に相当する処理を行わないので、ステップＳ２０７において、ＣＰＵ１１ｂのＩＯリソースに関する実際の設定を行うことができず、その仮設定を行う。そして、フォールトトレラントシステム２は、ＣＰＵ１１ｂの初期化が完了したのちに、ステップＳ２１０において、ＣＰＵ１１ｂに対して、ＩＯリソースに関する設定を、ＣＰＵ１１ａと同等に設定する。
【００４８】
このように、本実施形態に係るフォールトトレラントシステム１は、一般的なフォールトトレラントシステム２においてＣＰＵ１１ｂの初期化を終了した後に行われていたＳ２１０の処理を行う必要がない。したがって、フォールトトレラントシステム１は、ＣＰＵ１１ｂの初期化が完了した後の、サーバ１０ｂの動作状態をサーバ１０ａの動作状態に同期させるために必要な処理の量を削減するので、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間を短縮することができる。
【００４９】
また、本実施形態に係るフォールトトレラント制御回路１３ａ（１３ｂ）は、一般的なフォールトトレラントシステム２におけるフォールトトレラント制御回路２３ａ（２３ｂ）に、仮想ＩＯバッファ１３１ａ（１３１ｂ）を有する記憶部１３０ａ（１３０ｂ）を追加することにより実現可能である。即ち、フォールトトレラントシステム１において、片系による稼働状態から二重化構成による稼働状態への復帰を制御するファームウェアは、フォールトトレラントシステム２におけるファームウェアから大きな変更を加えることなく実現可能である。したがって、本実施形態に係るフォールトトレラントシステム１は、一般的なフォールトトレラントシステム２との間において、ファームウェアの互換性を維持したまま、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間を短縮することができる。
＜第２の実施形態＞
図５は、本発明の第２の実施形態に係るフォールトトレラントシステム３の構成を示すブロック図である。
【００５０】
本実施形態に係るフォールトトレラントシステム３は、第１の情報処理装置３０ａ及び第２の情報処理装置３０ｂによる二重化構成を有する。第１の情報処理装置３０ａ及び第２の情報処理装置３０ｂは、例えば、第１の実施形態に係るサーバ１０ａ及び１０ｂのような装置である。
【００５１】
フォールトトレラントシステム３は、第１の記憶部３１ａ、第２の記憶部３１ｂ、及び、設定部３２ｂを備えている。第１の記憶部３１ａ、第２の記憶部３１ｂ、設定部３２ｂは、順に、第１の記憶手段、第２の記憶手段、設定手段の一例である。
【００５２】
第１の記憶部３１ａは、第１の情報処理装置３０ａのみで稼働している状態において第２の情報処理装置３０ｂの稼働が開始されるときに、第１の情報処理装置３０ａの入出力資源の構成に関する第１の入出力資源情報３１０ａを記憶する。第１の記憶部３１ａは、例えば第１の実施形態に係る記憶部１３０ａと同様に仮想ＩＯバッファを備え、当該仮想ＩＯバッファに第１の入出力資源情報３１０ａを記憶してもよい。第１の入出力資源情報３１０ａは、例えば、第１の実施形態に係るＩＯリソース情報のような情報である。
【００５３】
第２の記憶部３１ｂは、第２の情報処理装置３０ｂのＣＰＵの初期化が開始される前に、第１の入出力資源情報３１０ａを第２の入出力資源情報３１０ｂとして記憶する。
【００５４】
設定部３２ｂは、第２の情報処理装置３０ｂのＣＰＵの初期化において、第２の入出力資源情報３１０ｂを用いて第２の情報処理装置３０ｂの入出力資源に関する設定を行う。設定部３２ｂは、例えば第１の実施形態に係る設定部１３２ｂと同様に、この入出力資源に関する設定を行う。
【００５５】
本実施形態に係るフォールトトレラントシステム３は、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間を短縮することができる。その理由は、フォールトトレラントシステム３は、稼働中の第１の情報処理装置３０ａの入出力資源情報を、稼働を開始する第２の情報処理装置３０ｂにおける第２の記憶部３１ｂに格納し、第２の情報処理装置３０ｂのＣＰＵの初期化において、当該入出力資源情報を用いて、当該ＣＰＵの入出力資源に関する設定を行うからである。
【００５６】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図５に示したフォールトトレラントシステムにおける各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１、及び、図５において、少なくとも、下記構成は、プロセッサによって実行される命令を含むソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・記憶部１３０ａ及び１３０ｂにおける記憶制御機能、
・設定部１３２ａ及び１３２ｂ、
・第１の記憶部３１ａにおける記憶制御機能、
・第２の記憶部３１ｂにおける記憶制御機能、
・設定部３２ｂ。
【００５７】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図６を参照して説明する。
【００５８】
図６は、本発明の各実施形態に係るフォールトトレラントシステムに含まれるサーバ、フォールトトレラント制御回路、あるいは情報処理装置を実現可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図６は、図１、及び、図５に示したフォールトトレラントシステムを実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００５９】
図６に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・通信インタフェース９０５、
・バス９０６（通信線）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・モニターやスピーカ、キーボード等の入出力インタフェース９０９。
【００６０】
即ち、上記構成要素を備える情報処理装置９００は、これらの構成がバス９０６を介して接続された一般的なコンピュータである。情報処理装置９００は、ＣＰＵ９０１を複数備える場合もあれば、マルチコアにより構成されたＣＰＵ９０１を備える場合もある。
【００６１】
そして、上述した実施形態を例に説明した本発明は、図６に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１、及び、図５）における上述した構成、或いはフローチャート（図２）の機能である。本発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）、または、ＲＯＭ９０２やハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００６２】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００６３】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００６４】
１    フォールトトレラントシステム
１０ａ（１０ｂ）    サーバ
１１ａ（１１ｂ）    ＣＰＵ
１２ａ（１２ｂ）    メモリ
１３ａ（１３ｂ）    フォールトトレラント制御回路
１３０ａ（１３０ｂ）    記憶部
１３１ａ    仮想ＩＯバッファ
１３１ｂ    仮想ＩＯバッファ
１３２ａ（１３２ｂ）    設定部
１４ａ（１４ｂ）    ＩＯコントローラ
１５    クロスリンク
２０ａ（２０ｂ）    サーバ
２３ａ（２３ｂ）    フォールトトレラント制御回路
２３２ａ（２３２ｂ）    設定部
３    フォールトトレラントシステム
３０ａ    第１の情報処理装置
３０ｂ    第２の情報処理装置
３１ａ    第１の記憶部
３１ｂ    第２の記憶部
３１０ａ    第１の入出力資源情報
３１０ｂ    第２の入出力資源情報
３２ｂ    設定部
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【要約】
【課題】フォールトトレラントシステムにおいて、片系による稼働状態から二重化構成による稼働状態への復帰に要する時間を短縮する。
【解決手段】フォールトトレラントシステム３は、第１及び第２の情報処理装置３０ａ及び３０ｂによる二重化構成を有し、第１の情報処理装置３０ａのみで稼働している状態において第２の情報処理装置３０ｂの稼働が開始されるときに、第１の情報処理装置３０ａの入出力資源の構成に関する第１の入出力資源情報３１０ａを記憶する第１の記憶部３１ａと、第２の情報処理装置３０ｂのＣＰＵの初期化が開始される前に、第１の入出力資源情報３１０ａを第２の入出力資源情報３１０ｂとして記憶する第２の記憶部３１ｂと、第２の情報処理装置３０ｂのＣＰＵの初期化において、第２の入出力資源情報３１０ｂを用いて第２の情報処理装置３０ｂの入出力資源に関する設定を行う設定部３２ｂと、を備える。
【選択図】      図５【図１】
0006928148.tif 000002
【図２】
0006928148.tif 000003
【図３】
0006928148.tif 000004
【図４】
0006928148.tif 000005
【図５】
0006928148.tif 000006
【図６】
0006928148.tif 000007