(57)【要約】【課題】システムの可用性を向上させる。【解決手段】自システムで使用されているプロセッサに障害が発生した場合に、自システムに含まれる全てのプロセッサを隔離し、他システムに対して障害発生通知を送信する二重化制御部１０４、２０４と、障害発生通知を受信した場合に、当該障害発生通知を送信したシステムに対してプロセッサの切り替え指示を送信するＣＰＵモジュール部１００、２００と、を有し、切り替え指示を受信した場合に、プロセッサ切り替え部は、自システムで使用するプロセッサを、障害が発生したプロセッサから他のプロセッサに切り替え、二重化制御部は、他システムに格納されている情報を自システムに格納させ、隔離した全てのプロセッサを自システムに組み込んでから、自システムと他システムとを同期させる。【選択図】図１
2011028481.tif 000002
【特許請求の範囲】
【請求項１】
二重化構成された第１および第２のシステムを備え、
それぞれの前記システムが、
複数のプロセッサと、
自システムで使用する前記プロセッサを切り替えるプロセッサ切り替え部と、
自システムで使用されている前記プロセッサに障害が発生した場合に、自システムに含まれる全ての前記プロセッサを自システムから隔離し、他システムに対して障害発生通知を送信する制御部と、
前記障害発生通知を受信した場合に、当該障害発生通知を送信したシステムに対してプロセッサの切り替え指示を送信する切り替え指示送信部と、を有し、
前記切り替え指示を受信した場合に、
前記プロセッサ切り替え部は、自システムで使用する前記プロセッサを、前記障害が発生した前記プロセッサから他の前記プロセッサに切り替え、
前記制御部は、他システムに格納されている情報を自システムに格納させ、自システムから隔離した全ての前記プロセッサを自システムに組み込んでから、自システムと他システムとを同期させる、
ことを特徴とするフォールトトレラントサーバ。
【請求項２】
それぞれの前記システムは、自システムで使用する前記プロセッサに電力を供給する電力供給部を、さらに有し、
前記電力供給部は、前記プロセッサ切り替え部によって前記プロセッサが切り替えられた場合に、電力供給先のプロセッサを、前記障害が発生した前記プロセッサから他の前記プロセッサに切り替えることを特徴とする請求項１記載のフォールトトレラントサーバ。
【請求項３】
前記制御部は、自システムに含まれる全ての前記プロセッサによる自システム以外へのデータ送信を不可能にすることで、全ての前記プロセッサを自システムから隔離することを特徴とする請求項１または２記載のフォールトトレラントサーバ。
【請求項４】
前記制御部は、自システムに含まれる全ての前記プロセッサによる自システム以外へのデータ送信を可能にすることで、自システムから隔離した全ての前記プロセッサを自システムに組み込むことを特徴とする請求項３の記載のフォールトトレラントサーバ。
【請求項５】
二重化構成され、それぞれ複数のプロセッサを有する第１および第２のシステムを備えるサーバで実行されるプロセッサ切り替え方法であって、
自システムで使用されている前記プロセッサに障害が発生した場合に、自システムに含まれる全ての前記プロセッサを自システムから隔離し、他システムに対して障害発生通知を送信するステップと、
前記障害発生通知を受信した場合に、当該障害発生通知を送信したシステムに対してプロセッサの切り替え指示を送信するステップと、
前記切り替え指示を受信した場合に、自システムで使用する前記プロセッサを、前記障害が発生した前記プロセッサから他の前記プロセッサに切り替えるプロセッサ切り替えステップと、
他システムに格納されている情報を自システムに格納させ、自システムから隔離した全ての前記プロセッサを自システムに組み込んでから、自システムと他システムとを同期させるステップと、
を含むことを特徴とするプロセッサ切り替え方法。
【請求項６】
請求項５に記載の各ステップをコンピュータに実行させるためのプロセッサ切り替えプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォールトトレラントサーバ、プロセッサ切り替え方法およびプロセッサ切り替えプログラムに関する。
【背景技術】
【０００２】
大規模なシステムやミッションクリティカルな業務のシステムでは、障害の発生が許されない。したがって、システムに冗長性を持たせて障害を回避させるフォールトトレランスなシステムが構築されている。下記特許文献１には、ＣＰＵ、主記憶、通信インターフェース等のハードウェアを二重化し、いずれか一方のハードウェアが故障しても通常運用を継続することが可能なフォールトトレラントサーバが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１４５４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に記載のサーバでは、運用系に障害が発生した場合、二重化部分を運用系から待機系に切り替えている。しかしながら、切り替えた後の運用系は故障した状態のままであるため、この運用系を交換するまでの間は、システムの冗長性が失われてしまう。この問題を解決するために、ハードウェアを三重化することも考えられるが、サーバの占有領域の増大や消費電力の増大等を招いてしまう。
【０００５】
本発明は、上述した課題を解決するためになされたものであり、システムの可用性を向上させることができるフォールトトレラントサーバ、プロセッサ切り替え方法およびプロセッサ切り替えプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のフォールトトレラントサーバは、二重化構成された第１および第２のシステムを備え、それぞれのシステムが、複数のプロセッサと、自システムで使用するプロセッサを切り替えるプロセッサ切り替え部と、自システムで使用されているプロセッサに障害が発生した場合に、自システムに含まれる全てのプロセッサを自システムから隔離し、他システムに対して障害発生通知を送信する制御部と、障害発生通知を受信した場合に、当該障害発生通知を送信したシステムに対してプロセッサの切り替え指示を送信する切り替え指示送信部と、を有し、切り替え指示を受信した場合に、上記プロセッサ切り替え部は、自システムで使用するプロセッサを、障害が発生したプロセッサから他のプロセッサに切り替え、上記制御部は、他システムに格納されている情報を自システムに格納させ、自システムから隔離した全てのプロセッサを自システムに組み込んでから、自システムと他システムとを同期させる。
【０００７】
本発明のプロセッサ切り替え方法は、二重化構成され、それぞれ複数のプロセッサを有する第１および第２のシステムを備えるサーバで実行されるプロセッサ切り替え方法であって、自システムで使用されているプロセッサに障害が発生した場合に、自システムに含まれる全てのプロセッサを自システムから隔離し、他システムに対して障害発生通知を送信するステップと、障害発生通知を受信した場合に、当該障害発生通知を送信したシステムに対してプロセッサの切り替え指示を送信するステップと、切り替え指示を受信した場合に、自システムで使用するプロセッサを、障害が発生したプロセッサから他のプロセッサに切り替えるプロセッサ切り替えステップと、他システムに格納されている情報を自システムに格納させ、自システムから隔離した全てのプロセッサを自システムに組み込んでから、自システムと他システムとを同期させるステップと、を含む。
【０００８】
本発明のプロセッサ切り替えプログラムは、上記プロセッサ切り替え方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【０００９】
本発明によれば、システムの可用性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態におけるフォールトトレラントサーバの概略構成を示すブロック図である。
【図２】実施形態におけるプロセッサ切り替え処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明に係るフォールトトレラントサーバの好適な実施形態について説明する。
【００１２】
まず、図１を参照して、実施形態におけるフォールトトレラントサーバの構成について説明する。図１は、実施形態におけるフォールトトレラントサーバの概略構成図である。
【００１３】
同図に示すように、フォールトトレラントサーバ１は、ＣＰＵモジュール部１００およびＩ／Ｏモジュール部３００からなる第１のシステムと、ＣＰＵモジュール部２００およびＩ／Ｏモジュール部４００からなる第２のシステムとを有する。フォールトトレラントサーバ１は、これら二つのシステムによって二重化構成（冗長構成）されたシステムを備える。
【００１４】
つまり、ＣＰＵモジュール部１００とＣＰＵモジュール部２００とは同一構成であり、Ｉ／Ｏモジュール部３００とＩ／Ｏモジュール部４００とは同一構成である。ＣＰＵモジュール部１００とＣＰＵモジュール部２００はクロック同期で動作する。Ｉ／Ｏモジュール部３００とＩ／Ｏモジュール部４００は並行して動作する。
【００１５】
以下においては、ＣＰＵモジュール部１００およびＩ／Ｏモジュール部３００の構成について説明し、ＣＰＵモジュール部２００およびＩ／Ｏモジュール部４００の構成についてはその説明を省略する。
【００１６】
ＣＰＵモジュール部１００は、運用系プロセッサ１０１と、待機系プロセッサ１０２と、プロセッサ切り替え部１１０と、メモリ・Ｉ／Ｏ制御部１０３と、二重化制御部１０４（制御部）とを有する。プロセッサ切り替え部１１０は、プロセッサ選択部１１１と、エラー情報記憶部１１２と、電源供給部１１３とを有する。Ｉ／Ｏモジュール部３００は、二重化制御部１０４（制御部）と、Ｉ／Ｏデバイス３０１と、診断部３０２とを有する。
【００１７】
運用系プロセッサ１０１は、バス１２１を介してプロセッサ切り替え部１１０のプロセッサ選択部１１１と接続される。待機系プロセッサ１０２は、バス１２２を介してプロセッサ切り替え部１１０のプロセッサ選択部１１１と接続される。プロセッサ選択部１１１は、バス１２３を介してメモリ・Ｉ／Ｏ制御部１０３と接続される。メモリ・Ｉ／Ｏ制御部１０３は、バス１２４を介して二重化制御部１０４と接続される。二重化制御部１０４は、バス３２１を介してＩ／Ｏデバイス３０１および診断部３０２に接続される。二重化制御部１０４は、バス５２１を介してＩ／Ｏモジュール部４００の二重化制御部２０４と接続される。
【００１８】
運用系プロセッサ１０１および待機系プロセッサ１０２は、プロセッサの内部で発生したエラーを検出する。運用系プロセッサ１０１は、検出したエラー情報（信号１３１）をプロセッサ切り替え部１１０のエラー情報記憶部１１２に送信する。待機系プロセッサ１０２は、検出したエラー情報（信号１３２）をプロセッサ切り替え部１１０のエラー情報記憶部１１２に送信する。
【００１９】
メモリ・Ｉ／Ｏ制御部１０３は、運用系プロセッサ１０１または待機系プロセッサ１０２が発行するトランザクションをチェックして、例えばプロトコルエラーやデータエラー等を検出する。メモリ・Ｉ／Ｏ制御部１０３は、検出したエラー情報（信号１３３）をプロセッサ切り替え部１１０のエラー情報記憶部１１２に送信する。
【００２０】
プロセッサ選択部１１１は、プロセッサ切り替え部１１０に接続するプロセッサとして、運用系プロセッサ１０１および待機系プロセッサ１０２のうちいずれか一方を選択する。プロセッサ選択部１１１は、プロセッサの選択結果をメモリ・Ｉ／Ｏ制御部１０３に通知する。
【００２１】
エラー情報記憶部１１２は、運用系プロセッサ１０１、待機系プロセッサ１０２およびメモリ・Ｉ／Ｏ制御部１０３から送信された各種のエラー情報を記憶する。エラー情報記憶部１１２は、各種のエラー情報を記録した場合に、プロセッサエラーが発生した旨（信号１３４）を二重化制御部１０４に通知する。
【００２２】
電源供給部１１３は、運用系プロセッサ１０１および待機系プロセッサ１０２のうちのいずれか一方を電力供給先のプロセッサに設定し、電力を供給する。
【００２３】
二重化制御部１０４は、ＣＰＵモジュール部１００で発行されたトランザクションとＣＰＵモジュール部２００から発行されたトランザクションとを比較して、例えばタイミングのずれやデータの差異等を検出する。二重化制御部１０４は、運用系プロセッサ１０１、待機系プロセッサ１０２またはメモリ・Ｉ／Ｏコントローラでエラーが検出された場合に、ＣＰＵモジュール部１００を自システムから切り離して隔離する。二重化制御部１０４は、ＣＰＵモジュール部１００を自システムから隔離した場合に、ＣＰＵモジュール部２００にプロッサエラーが発生した旨を通知する。二重化制御部１０４は、エラーを発生したプロセッサが他のプロッセサに切り替えられた後に、隔離したＣＰＵモジュール部１００を自システムに組み込む。二重化制御部１０４は、ＣＰＵモジュール部１００とＣＰＵモジュール部２００との間の同期処理を行う。
【００２４】
診断部３０２は、エラー情報記憶部１１２に記憶されたエラー情報を参照する。診断部３０２は、プロセッサ選択部１１１によるプロッセサの選択を制御する。診断部３０２は、運用系プロセッサ１０１または待機系プロセッサ１０２に電力を供給する電源供給部１１３の電力供給先を制御する。
【００２５】
フォールトトレラントサーバ１には、上述した各機能を実現させるプロセッサ切り替えプログラムがインストールされている。このプロセッサ切り替えプログラムを実行することで、上述した各種の機能を実現することができる。
【００２６】
次に、図１および図２を参照して、実施形態におけるフォールトトレラントサーバ１のプロセッサ切り替え処理について説明する。図２は、プロセッサ切り替え処理の処理手順を説明するためのフローチャートである。この処理手順では、第１のシステムで使用するプロッセサとして選択されているＣＰＵモジュール部１００の運用系プロセッサ１０１が故障した場合に行われるプロセッサ切り替え処理の手順について説明する。
【００２７】
最初に、運用系プロセッサ１０１が内部エラーを検出した場合（ステップＳ１０１；ＹＥＳ）には、運用系プロセッサ１０１がエラー情報をエラー情報記憶部１１２に記憶させる。一方、メモリ・Ｉ／Ｏ制御部１０３がプロトコルエラーやデータエラー等を検出した場合（ステップＳ１０１；ＹＥＳ）には、メモリ・Ｉ／Ｏ制御部１０３がエラー情報をエラー情報記憶部１１２に記憶させる。
【００２８】
続いて、エラー情報記憶部１１２は、上記いずれかのエラー情報を記憶した場合に、プロセッサエラーが発生した旨を二重化制御部１０４に通知する。
【００２９】
続いて、二重化制御部１０４は、ＣＰＵモジュール部１００からＩ／Ｏモジュール部３００へのアクセスを禁止することで、ＣＰＵモジュール部１００を自システムから隔離する（ステップＳ１０２）。そして、二重化制御部１０４は、他システムのＣＰＵモジュール部２００にプロッサエラーが発生した旨を通知する（ステップＳ１０３）。
【００３０】
続いて、ＣＰＵモジュール部２００（切り替え指示送信部）は、受信したエラー通知に基づいて、Ｉ／Ｏモジュール部３００の診断部３０２にプロセッサ切り替え指示を送信する。
【００３１】
続いて、診断部３０２は、エラー情報記憶部１１２に記憶されているエラー情報を取得する。診断部３０２は、取得したエラー情報に基づいて、運用系プロセッサ１０１が故障したと判定する。診断部３０２は、プロセッサ切り替え部１１０に接続するプロセッサとして、待機系プロセッサ１０２を選択させるための指令をプロセッサ選択部１１１に送信する。プロセッサ選択部１１１は、プロセッサ切り替え部１１０に接続するプロセッサとして、待機系プロセッサ１０２を選択する。これにより、プロセッサ切り替え部１１０に接続するプロセッサが、故障した運用系プロセッサ１０１から待機系プロセッサ１０２に切り替わる（ステップＳ１０４）。
【００３２】
診断部３０２は、運用系プロセッサ１０１が故障したと判定した場合に、運用系プロセッサ１０１への電力の供給を停止し、待機系プロセッサ１０２への電力の供給を開始させるための指令を電源供給部１１３に送信する。電源供給部１１３は、電力を供給するプロセッサとして、待機系プロセッサ１０２を選択する。これにより、電力の供給先が、故障した運用系プロセッサ１０１から待機系プロセッサ１０２に切り替わる（ステップＳ１０５）。
【００３３】
続いて、二重化制御部１０４および二重化制御部２０４は、運用系プロセッサ１０１の二重化（冗長化）の対象として稼働していた運用系プロセッサ２０１の内部情報を、待機系プロセッサ１０２にコピーさせる。二重化制御部１０４および二重化制御部２０４は、ＣＰＵモジュール部２００のメモリに格納されている内容を、ＣＰＵモジュール部１００のメモリにコピーさせる（ステップＳ１０６）。
【００３４】
続いて、二重化制御部１０４は、ＣＰＵモジュール部１００からＩ／Ｏモジュール部３００へのアクセス禁止状態を解除することで、ＣＰＵモジュール部１００を自システムに組み込む（ステップＳ１０７）。二重化制御部１０４および二重化制御部２０４は、ＣＰＵモジュール部１００とＣＰＵモジュール部２００との間の同期処理を行う（ステップＳ１０８）。
【００３５】
これにより、プロセッサが故障した場合であっても、故障したプロセッサ以外のハードウェアについては、引き続き二重化構成を維持したまま、システムを稼動させることができる。したがって、プロセッサ故障時のシステムの停止時間を極力短時間に抑えることができ、さらに、プロセッサが故障してもシステムの機能や性能を劣化させることなく稼働させることができる。それゆえに、フォールトトレラントサーバ１の可用性を向上させることができる。
【００３６】
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【００３７】
例えば、上述した実施形態では、各ＣＰＵモジュール部に運用系プロセッサと待機系プロセッサとを一つずつ設けた場合について説明したが、各ＣＰＵモジュール部に運用系プロセッサを二つ以上儲けることとしてもよい。この場合には、プロセッサ選択部が、故障した運用系プロセッサ以外の運用系プロセッサを選択することとすればよい。
【００３８】
また、上述した実施形態では、電力供給部によって電力供給先のプロセッサを切り替えているが、電力供給部は必ずしも設ける必要はない。ＣＰＵモジュール部で使用するプロセッサをいずれか一のプロセッサに切り替えることができればよい。
【００３９】
また、上述した実施形態では、ＣＰＵモジュール部１００からＩ／Ｏモジュール部３００へのアクセスを禁止することで、ＣＰＵモジュール部１００をシステムから隔離しているが、システムから隔離する方法はこれに限定されない。例えば、故障した運用系プロセッサ１０１を含むＣＰＵモジュール部から、他のシステムにデータを送信することができないように、運用系プロセッサ１０１および待機系プロセッサ１０２をシステムから隔離することができればよい。
【符号の説明】
【００４０】
１…フォールトトレラントサーバ、１００、２００…ＣＰＵモジュール部、１０１、２０１…運用系プロセッサ、１０２、２０２…待機系プロセッサ、１０３、２０３…メモリ・Ｉ／Ｏ制御部、１０４、２０４…二重化制御部、１１０、２１０…プロセッサ切り替え部、１１１、２１１…プロセッサ選択部、１１２、２１２…エラー情報記憶部、１１３、２１３…電源供給部、３００、４００…Ｉ／Ｏモジュール部、３０１、４０１…Ｉ／Ｏデバイス、３０２。４０２…診断部。
【図１】
2011028481.tif 000003
【図２】
2011028481.tif 000004