(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【0014】
<第1の実施形態>
図1を参照しながら、本発明の第1の実施形態に係るフォールトトレラント装置300が有する構成について詳細に説明する。
図1は、本発明の第1の実施形態に係るフォールトトレラント装置300が有する機能の概略的な構成を示すブロック図である。
【0015】
第1の実施形態に係るフォールトトレラント装置300は、モジュール1と、モジュール2と、伝送路(レーン)30とを有する。伝送路30は、モジュール1と、モジュール2とを接続している。伝送路30は、複数の伝送路を含む。
【0016】
モジュール1と、モジュール2とは、それぞれ、物理的に存在している情報処理装置であり、たとえば、ラック式の筐体に着脱可能なサイズ(大きさ)をなすユニットである。
【0017】
モジュール1が有する構成は、CPUサブシステム10と、I/Oサブシステム11とに概念的に大別される。CPUサブシステム10は、送信部113と、受信部114とを有する。I/Oサブシステム11は、送信部116と、受信部117とを有する。
【0018】
ロックステップ方式に従い2つのCPUサブシステムが動作しているフォールトトレラント装置300において、モジュール2は、モジュール1が有する構成と同様な構成を有する。このため、モジュール2が有する構成については説明を省略する。
【0019】
図1に示された構成例においては、送信部113と、受信部217とは、伝送路30のうち2本の伝送路を用いて接続されている。受信部114、受信部117、送信部116、送信部213、受信部214、送信部216に関しても同様に、それぞれ、伝送路30のうち2本の伝送路を用いて接続されている。尚、送信部と、受信部とを接続している伝送路の本数は、2本でなくともよく、さらに多くの本数であってもよい。
【0020】
次に、フォールトトレラント装置300のうち、
図1において簡略的に示されたモジュール1が有する構成について、
図2を参照しながら詳細に説明する。
図2は、第1の実施形態に係るモジュール1が有する構成を示すブロック図である。
【0021】
モジュール1は、プロセッサ100と、チップセット110と、I/Oデバイス130とを有する。プロセッサ100は、送信部101と、受信部102とを有する。I/Oデバイス130は、受信部131と、送信部132とを有する。チップセット110は、受信部111と、送信部112と、送信部113と、受信部114と、遅延バッファ115と、送信部116と、受信部117と、バッファ118と、バッファ119と、比較部120と、送信部121と、受信部122と、制御部123と、組み込み部140とを有する。
【0022】
プロセッサ100には、主記憶装置(メモリ)等が接続されていてもよい。I/Oデバイス130は、ハードディスク等の入出力装置が接続されていてもよい。
【0023】
CPUサブシステム10は、プロセッサ100と、受信部111と、送信部112と、送信部113と、受信部114と、遅延バッファ115と、制御部123とを総称して概念的に表している。I/Oサブシステム11は、I/Oデバイス130と、受信部117と、バッファ118と、バッファ119と、比較部120と、送信部121と、受信部122とを総称して概念的に表している。
【0024】
次に、上述した機能構成を有するフォールトトレラント装置300のうち、
図1において簡略的に示されたモジュール2が有する物理的構成について、
図3を参照しながら詳細に説明する。
図3は、第1の実施形態に係るモジュール2が有する構成を示すブロック図である。
図3においては、
図2に示された構成要素と対応する構成要素に対して、添え字の頭文字のみが異なる添え字が割り当てられている。モジュール2は、モジュール1と同様な構成を有するので、モジュール2が有する構成に関する詳細な説明を省略する。
【0025】
次に、
図2を参照しながら、モジュール1が有する各構成要素における動作について詳細に説明する。
【0026】
プロセッサ100は、I/Oデバイス130宛のパケットと、モジュール2(
図3)におけるI/Oデバイス230宛のパケット(データ)とを作成(発行)する等、動作する。チップセット110は、当該パケットを中継する。
【0027】
送信部101は、プロセッサ100が作成したパケットを、チップセット110に送信する。また、受信部102は、チップセット110が送信したパケットを受信する。
【0028】
I/Oデバイス130は、プロセッサ100宛のパケット、及び、モジュール2(
図3)におけるプロセッサ200宛のパケットを作成する。送信部132は、I/Oデバイス130が作成したパケットをチップセット110に送信する。I/Oデバイス130において、受信部131は、チップセット110が送信したパケットを受信する。
【0029】
チップセット110は、プロセッサ100が作成したパケット、モジュール2(
図3)におけるプロセッサ200が作成したパケット、I/Oデバイス130が作成したパケット、モジュール2(
図3)におけるI/Oデバイス230が作成したパケットを中継する。
【0030】
受信部111は、送信部101が送信したパケットを受信し、受信したパケットの宛先を読み取る。読み取った宛先がI/Oデバイス130である場合に、受信部111は、当該パケットをバッファ118に格納する。読み取った宛先がモジュール2(
図3)におけるI/Oデバイス230である場合に、受信部111は、当該パケットを送信部113に出力する。チップセット110において、送信部112は、受信部114が受信したパケット、または、遅延バッファ115に格納されているパケットをプロセッサ100に送信する。
【0031】
送信部113は、受信部111が受信したパケットを、伝送路30を介してモジュール2(たとえば、チップセット210)に送信する。送信部113は、制御部123によって指示された伝送路幅にて、伝送路30を介してパケットを送信する。
【0032】
受信部114は、モジュール2におけるチップセット210(
図3)が送信したパケットを、伝送路30(
図1)を介して受信し、受信した当該パケットを送信部112に対して出力する。受信部114は、制御部123によって指示された伝送路幅にて、伝送路30(
図1)を介してパケットを受信する。
【0033】
送信部116は、受信部122が受信したパケットを、伝送路30(
図1)を介してモジュール2(
図3)におけるチップセット210に送信する。送信部116は、制御部123によって指示された伝送路幅にて、伝送路30を介してパケットを送信する。受信部117は、モジュール2(
図3)におけるチップセット210が送信したパケットを、伝送路30を介して受信し、受信した当該パケットをバッファ119に格納する。受信部117は、制御部123によって指示された伝送路幅にて、伝送路30(
図1)を介してパケットを受信する。
【0034】
遅延バッファ115は、受信部122が出力したパケットを入力し、制御部123によって指示された遅延時間後に、当該パケットを送信部112に対して出力する。
【0035】
本実施形態に係るフォールトトレラント装置300は、ロックステップ方式に従い動作する。この場合に、フォールトトレラント装置300においては、I/Oサブシステム11におけるI/Oデバイス130、及び、I/Oサブシステム21(
図3)におけるI/Oデバイス230から送信されたパケットは、それぞれ、CPUサブシステム10におけるプロセッサ100と、CPUサブシステム20(
図3)におけるプロセッサ200とに同様なタイミングにて到着する。
【0036】
制御部123(
図2)、及び、制御部223(
図3)によって伝送路30における伝送路幅が変更された場合に、伝送路30におけるレイテンシは、該伝送路幅に応じて変化する。制御部123は、当該伝送路幅に基づき、パケットがプロセッサ100とプロセッサ200とに、同様なタイミングにて到着するよう遅延時間を調整する。
【0037】
比較部120は、バッファ118に格納されているパケットと、バッファ119に格納されているパケットとが一致するか否かを判定し、一致した場合に、当該パケットを送信部121に対して出力する。一致しなかった場合には、当該パケットに関する動作は失敗である。
【0038】
送信部121は、比較部120が出力したパケットをI/Oデバイス130に送信する。受信部122は、送信部132が送信したパケットを受信し、受信したパケットを遅延バッファ115と、送信部116とに送信する。
【0039】
伝送路30にて障害が発生した場合に、フォールトトレラント装置300において実行される、該障害からの回復動作について説明する。
【0040】
説明の便宜上、
図1に示された伝送路30に含まれている複数の伝送路を、モジュール1にて接続された側にて、上から順に、第1伝送路乃至第8伝送路と表すとする。上位伝送路は、各構成要素に接続されている2本の伝送路のうち、モジュール1側にて上側に示されている伝送路であるとする。下位伝送路は、各構成要素に接続されている2本の伝送路のうち、モジュール1側にて下側に示されている伝送路であるとする。したがって、
図1に示された例において、上位伝送路は、第1伝送路、第3伝送路、第5伝送路、及び、第7伝送路を含む。下位伝送路は、第2伝送路、第4伝送路、第6伝送路、及び、第8伝送路を含む。
【0041】
たとえば、第6伝送路は、受信部117と、送信部213とを接続している伝送路のうち、下位伝送路を表している。第5伝送路は、受信部117と、送信部213とを接続している伝送路のうち、上位伝送路を表している。第1伝送路は、送信部113と、受信部217とを接続している伝送路のうち、上位伝送路を表している。
【0042】
図4を参照しながら、第6伝送路にて障害50が発生した例を参照しながら、本実施形態に係るフォールトトレラント装置300における動作について説明する。
図4は、第6伝送路にて障害50が発生した例を表す図である。
【0043】
第6伝送路にて障害50が発生した場合には、I/Oサブシステム11(
図5)、または、CPUサブシステム20(
図6)が、フォールトトレラント装置300から機能的に切り離される。
図5は、I/Oサブシステム11がフォールトトレラント装置300から機能的に切り離されている状態を概念的に表す図である。
図6は、CPUサブシステム20がフォールトトレラント装置300から機能的に切り離されている状態を概念的に表す図である。
【0044】
上述した各モジュールにおける、CPUサブシステム、または、I/Oサブシステムのうち、少なくともいずれかのサブシステムに障害が発生した場合には、上述した少なくともいずれかのサブシステムが機能的に切り離され、その後、サブシステムを含むモジュール全体が交換される。たとえば、ユーザは、モジュールに設置されているランプ(すなわち、障害が発生しているか否かを報知するランプ(不図示))、または、当該モジュールに関するログを参照することによって、当該モジュールに障害が発生している(または、発生した)か否かを知ることができる。
【0045】
次に、
図7を参照しながら、上述した少なくともいずれかのサブシステムが機能的に切り離された後に、フォールトトレラント装置300における動作について詳細に説明する。
図7は、サブシステムが機能的に切り離された後に、第1の実施形態に係るフォールトトレラント装置300における動作の流れを示すフローチャートである。したがって、この動作は、上述した少なくともいずれかのサブシステムが機能的に切り離されている状態にあるフォールトトレラント装置300にて実行される。たとえば、フォールトトレラント装置300にて障害が発生した場合に、組み込み部140によって、上述した少なくともいずれかのサブシステムが機能的に切り離される。
【0046】
制御部123は、伝送路に含まれている全伝送路(第1伝送路乃至第8伝送路)の機能が有効になるよう制御する(ステップS101)。この場合に、制御部123は、第1伝送路乃至第8伝送路を、それぞれ、通信(入出力)する状態(通信可能状態)になるよう制御する。
【0047】
組み込み部140は、モジュール1及びモジュール2を用いた2重化状態が可能であるよう、これらのモジュールをフォールトトレラント装置300に機能的に組み込む組み込み動作を実行する(ステップS102)。たとえば、組み込み動作は、一方のプロセッサに接続されているメモリに格納されているデータを、他方のプロセッサに接続されているメモリにコピーする等、動作することによって、フォールトトレラント装置300にモジュールを機能的に組み込む動作である。
【0048】
障害の要因がモジュール1にあり、さらに、モジュール1が交換された場合に、組み込み部140は、当該組み込み動作が成功していることになる。しかし、障害の要因がモジュール2にあり、さらに、モジュール1が交換された場合に、組み込み部140は、当該組み込み動作を失敗していることになる。
【0049】
制御部123は、当該組み込み動作が成功であるか否かを判定する(ステップS103)。該組み込み動作が失敗である場合に(ステップS103にてNO)、制御部123は、伝送路30のうち、下位伝送路のみの機能が有効になるよう制御する(ステップS104)。すなわち、制御部123は、ステップS104にて、第2伝送路、第4伝送路、第6伝送路、及び、第8伝送路のみの機能が有効になるよう制御する。その後、組み込み部140は、該組み込み動作を実行する(ステップS105)。制御部123は、当該組み込み動作が成功であるか否かを判定する(ステップS106)。
【0050】
障害の要因がモジュール2に接続された側の上位伝送路にある場合に、ステップS104にて下位伝送路のみの機能が有効になるよう制御されているので、制御部123は、当該組み込み動作が成功であったと判定する。この場合に、フォールトトレラント装置300においては、モジュール1、モジュール2、及び、伝送路30を用いた2重化状態が実現されている。これに対して、障害の要因がモジュール2に接続された側の下位伝送路にある場合に、ステップS104にて下位伝送路のみの機能が有効になるよう制御されているので、制御部123は、ステップS106にて、当該組み込み動作が失敗であると判定する。
【0051】
該組み込み動作が失敗である場合に(ステップS106にてNO)、制御部123は、伝送路30のうち、上位伝送路のみの機能が有効になるよう制御する(ステップS107)。その後、組み込み部140は、該組み込み動作を実行する(ステップS108)。制御部123は、当該組み込み動作が成功であるか否かを判定する(ステップS109)。
【0052】
障害の要因が、下位伝送路のうちモジュール2に接続された伝送路である場合に、制御部123は、ステップS109にて、組み込み動作が成功であったと判定する。
【0053】
ステップS109にてNOの場合に、制御部123は、フォールトトレラント装置300にて発生した障害の要因が、1つではなく、複数である(すなわち、多重障害が発生している)と判定する(ステップS110)。すなわち、これは、すべての伝送路の機能が有効になるよう制御した場合、上位伝送路のみの機能が有効になるよう制御した場合、及び、下位伝送路のみの機能が有効になるよう制御した場合、いずれの場合であっても、当該組み込み動作は失敗である。
【0054】
フォールトトレラント装置300において、一方のモジュールのみが、正常に機能しているモジュールに交換されたとする。この場合に、伝送路30において、下位伝送路のみの機能が有効になるよう制御した場合、あるいは、上位伝送路のみの機能が有効になるよう制御した場合のうち、いずれかの場合において組み込み動作が成功であったときに、交換されていない側のモジュールに接続されている伝送路30に障害の要因がある。この場合に、たとえば、交換されていない側のモジュールが交換される。その後、フォールトトレラント装置300は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。
【0055】
図7に示された動作は、モジュール2においても同様に実行される。
【0056】
図8を参照しながら、伝送路30において下位伝送路のみの機能が有効になるよう制御した状態について説明する。
図8は、伝送路30において下位伝送路のみの機能が有効になるよう制御した状態を概念的に表す図である。この例の場合に、実線にて示されているように、フォールトトレラント装置300は、伝送路30において、第2伝送路、第4伝送路、第6伝送路、及び、第8伝送路のみの機能が有効になるよう制御する。尚、
図8及び
図9(後述)において点線は、機能が有効になるよう制御されていない伝送路を表す。
図8に示す例において、障害50は、第6伝送路のうち、モジュール1の側にて障害50が発生していることを表す。下位伝送路のみの機能が有効になるよう制御した場合に、該下位伝送路における第6伝送路にて障害50が発生しているので、フォールトトレラント装置300は、モジュール1、及び、モジュール2に関する組み込み動作を失敗していることになる。
【0057】
図9を参照しながら、伝送路30において上位伝送路のみの機能が有効になるよう制御した状態について説明する。
図9は、伝送路30において上位伝送路のみの機能が有効になるよう制御した状態を概念的に表す図である。この例の場合に、フォールトトレラント装置300は、伝送路30において、第1伝送路、第3伝送路、第5伝送路、及び、第7伝送路のみの機能が有効になるよう制御する。
図9に示す例において、障害50は、下位伝送路における第6伝送路のうち、モジュール1の側にて発生していることを表す。第6伝送路にて障害50が発生しているので、上位伝送路のみの機能が有効になるよう制御した場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2に関する組み込み動作が成功していることになる。
【0058】
図10を参照しながら、各伝送路が、伝送路Aと、伝送路Bとを有する場合に、フォールトトレラント装置300が、モジュール1と、モジュール2とを用いて2重化を実現する動作の流れの一例について説明する。
図10は、フォールトトレラント装置300が、2つのモジュール(モジュール1と、モジュール2)を用いて2重化状態を実現する動作の流れの一例を概念的に表す図である。説明の便宜上、フォールトトレラント装置300においては、モジュール1が、正常に機能しているモジュールに交換されたとする。
【0059】
伝送路A、及び、伝送路Bは、それぞれ、複数の伝送路を表す。たとえば、伝送路Aが、
図1等を参照しながら上述した上位伝送路であり、伝送路Bが下位伝送路である。
【0060】
まず、制御部123は、伝送路Aと、伝送路Bとがともに機能が有効になるよう制御する(順序1)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現されている。組み込み動作が失敗である場合に、制御部123は、伝送路Aのみの機能が有効になるよう制御する(順序2)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300にて、モジュール1、モジュール2、及び、伝送路30を用いた2重化状態が実現されている。組み込み動作が失敗である場合に、制御部123は、伝送路Bのみの機能が有効になるよう制御する(順序3)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、制御部123は、フォールトトレラント装置300にて、モジュール1、モジュール2、及び、伝送路30を用いた2重化状態が実現されている。組み込み動作が失敗である場合に、制御部123は、障害の要因が複数存在していると判定する。
【0061】
したがって、組み込み動作が成功であった場合には、フォールトトレラント装置300において、モジュール1、及び、モジュール2を用いた2重化状態が実現される。
【0062】
図10に示された動作は、モジュール2においても実行される。
【0063】
図11を参照しながら、伝送路が、伝送路Aと、伝送路Bと、伝送路Cと、伝送路Dとである場合に、フォールトトレラント装置300が、2つのモジュール(モジュール1と、モジュール2)を用いて2重化状態を実現する動作の流れの一例について説明する。
図11は、フォールトトレラント装置300が、2つのモジュール(モジュール1と、モジュール2)を用いて2重化状態を実現する動作の流れの一例を概念的に表す図である。説明の便宜上、フォールトトレラント装置300においては、モジュール1が、正常に機能しているモジュールに交換されたとする。
【0064】
伝送路Aと、伝送路Bと、伝送路Cと、伝送路Dとは、それぞれ、複数の伝送路を表す。この場合に、送信部(たとえば、送信部113)、及び、受信部(たとえば、受信部217)は、それぞれ、伝送路Aのうちの1つの伝送路と、伝送路Bのうちの1つの伝送路と、伝送路Cのうちの1つの伝送路と、伝送路Dのうちの1つの伝送路とを介して接続している。この例において、上位伝送路は、伝送路Aと、伝送路Bとを表す。下位伝送路は、伝送路Cと、伝送路Dとを表す。
【0065】
まず、制御部123は、伝送路Aと、伝送路Bと、伝送路Cと、伝送路Dとがいずれも機能が有効になるよう制御する(順序1)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。組み込み動作が失敗である場合に、制御部123は、伝送路Aと、伝送路Bとのみの機能が有効になるよう制御する(順序2)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。組み込み動作が失敗である場合に、制御部123は、伝送路Cと、伝送路Dとのみの機能が有効になるよう制御する(順序3)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。組み込み動作が失敗である場合に、制御部123は、障害の要因が複数存在していると判定する。
【0066】
図11に示された動作は、モジュール2においても実行される。尚、
図11に示された一部の動作のみが実行されてもよい。
【0067】
図11に示された動作は、モジュール2においても実行される。
【0068】
図12を参照しながら、伝送路が、伝送路Aと、伝送路Bと、伝送路Cと、伝送路Dとである場合に、フォールトトレラント装置300が、モジュール1と、モジュール2とを用いて2重化状態を実現する動作の流れの一例について説明する。
図12は、フォールトトレラント装置300が、2つのモジュール(モジュール1と、モジュール2)を用いて2重化状態を実現する動作の流れの一例を概念的に表す図である。
【0069】
伝送路Aと、伝送路Bと、伝送路Cと、伝送路Dとは、それぞれ、複数の伝送路を表す。この場合に、送信部(たとえば、送信部113)、及び、受信部(たとえば、受信部217)は、それぞれ、伝送路Aのうちの1つの伝送路と、伝送路Bのうちの1つの伝送路と、伝送路Cのうちの1つの伝送路と、伝送路Dのうちの1つの伝送路とを介して接続している。この例において、上位伝送路は、伝送路Aと、伝送路Bとを表す。下位伝送路は、伝送路Cと、伝送路Dとを表す。
【0070】
まず、制御部123は、伝送路Aと、伝送路Bと、伝送路Cと、伝送路Dとがいずれも機能が有効になるよう制御する(順序1)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。組み込み動作が失敗である場合に、制御部123は、伝送路Aと、伝送路Bとのみの機能が有効になるよう制御する(順序2)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。組み込み動作が失敗である場合に、制御部123は、伝送路Cと、伝送路Dとのみの機能が有効になるよう制御する(順序3)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。
【0071】
組み込み動作が失敗である場合に、制御部123は、伝送路Aと、伝送路Cとのみの機能が有効になるよう制御する(順序4)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功である場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。組み込み動作が失敗である場合に、制御部123は、伝送路Aと、伝送路Dとのみの機能が有効になるよう制御する(順序5)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。
【0072】
組み込み動作が失敗である場合に、制御部123は、伝送路Bと、伝送路Cとのみの機能が有効になるよう制御する(順序6)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。組み込み動作が失敗である場合に、制御部123は、伝送路Bと、伝送路Dとのみの機能が有効になるよう制御する(順序7)。組み込み部140は、モジュール1、及び、モジュール2に関する組み込み動作を実行する。組み込み動作が成功であった場合に、フォールトトレラント装置300においては、モジュール1、及び、モジュール2を用いた2重化状態が実現される。組み込み動作が失敗である場合に、制御部123は、障害の要因が複数存在していると判定する。
【0073】
図12に示された動作は、モジュール2においても実行される。尚、
図12に示された一部の動作のみが実行されてもよい。
【0074】
図10乃至
図12に示された動作の例においては、複数の伝送路30のうち少なくとも一部の伝送路が組み合わされた所定の組み合わせに従い、2重化状態を実現することが可能な組み合わせを用いてフォールトトレラント装置300における機能が実現される。
【0075】
次に、本発明の第1の実施形態に係るフォールトトレラント装置300に関する効果について説明する。
【0076】
第1の実施形態に係るフォールトトレラント装置300によれば、高い可用性を実現することができる。この理由は、ロックステップ方式に従い2つのCPUサブシステムが動作しているフォールトトレラント装置300にて、一部の伝送路にて障害が発生した場合に、障害が発生していない伝送路を用いて2重化状態を回復することができるからである。
【0077】
<第2の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第2の実施形態について説明する。
【0078】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【0079】
図13を参照しながら、本発明の第2の実施形態に係るフォールトトレラント装置320が有する構成について詳細に説明する。
図13は、本発明の第2の実施形態に係るフォールトトレラント装置320が有する機能の概略的な構成を示すブロック図である。
【0080】
第2の実施形態に係るフォールトトレラント装置320は、モジュール3と、モジュール4と、伝送路30とを有する。伝送路30は、モジュール3と、モジュール4とを接続している。伝送路30は、複数の伝送路を含む。
【0081】
図11、または、
図12を参照しながら説明したように、各送信部と、各受信部とを接続している伝送路は、伝送路A、伝送路B、伝送路C、及び、伝送路Dなる伝送路であるとする。また、上位伝送路は、伝送路A、及び、伝送路Bであるとする。下位伝送路は、伝送路C、及び、伝送路Dであるとする。
図11、または、
図12を参照しながら説明したように、伝送路A乃至伝送路Dは、それぞれ、複数の伝送路を含んでいる。
【0082】
次に、フォールトトレラント装置320のうち、
図13において簡略的に示されたモジュール3が有する構成について、
図14を参照しながら詳細に説明する。
図14は、第2の実施形態に係るモジュール3が有する構成を示すブロック図である。ロックステップ方式に従い2つのCPUサブシステムが動作しているフォールトトレラント装置320において、モジュール4は、モジュール3が有する構成と同様な構成を有する。このため、モジュール4が有する構成については説明を省略する。
【0083】
モジュール3は、プロセッサ100と、チップセット310と、I/Oデバイス130とを有する。チップセット310は、受信部111と、送信部112と、送信部113と、受信部114と、遅延バッファ115と、送信部116と、受信部117と、バッファ118と、バッファ119と、比較部120と、送信部121と、受信部122と、レジスタ124と、制御部125と、組み込み部140とを有する。
【0084】
制御部125は、
図11または
図12を参照しながら上述した動作に従い制御された制御情報を、順次、レジスタ124から読み取り、読み取った制御情報に従い、伝送路の機能が有効になるよう制御する。レジスタ124には、機能が有効になるよう制御する伝送路を表す制御情報を格納することができる。
【0085】
次に、
図15を参照しながら、上述した少なくともいずれかのサブシステムが機能的に切り離された後に、フォールトトレラント装置320における動作について詳細に説明する。
図15は、上述した少なくともいずれかのサブシステムが機能的に切り離された後に、第2の実施形態に係るフォールトトレラント装置320における動作の流れを示すフローチャートである。
【0086】
制御部125は、レジスタ124に格納されている制御情報(たとえば、
図11または
図12において、1つの順序に応じた制御情報)を読み取り(ステップS201)、読み取った制御情報に従い伝送路の機能が有効になるよう制御する(ステップS202)。組み込み部140は、モジュール3と、モジュール4とに関する組み込み動作を実行する(ステップS203)。制御部125は、該組み込み動作が成功であるか否かを判定する(ステップS204)。
【0087】
組み込み動作が成功であった場合には(ステップS204にてYES)、フォールトトレラント装置320において、モジュール3と、モジュール4とを用いた2重化状態が実現されている。該組み込み動作が失敗である場合に(ステップS204にてNO)、制御部125は、
図12または
図13に例示された制御情報に従った動作が完了したか否かを判定する(ステップS205)。該動作が完了してない場合に(ステップS205にてNO)、ステップS201に示された動作が実行される。ステップS205にてYESの場合には、フォールトトレラント装置320において、モジュール3、及び、モジュール4を用いた2重化状態を実現することができなかったことを表す。すなわち、この場合に、制御部125は、複数の要因によって障害が発生した多重障害であると判定する(ステップS206)。
【0088】
たとえば、
図11に示された制御情報の場合に、制御部125は、まず、伝送路30に含まれているすべての伝送路(伝送路A乃至伝送路D)の機能が有効になるよう制御する(順序1)。当該制御情報に従った組み込み動作が失敗である場合に、制御部125は、伝送路30のうち、上位伝送路(伝送路A、及び、伝送路B)の機能が有効になるよう制御する(順序2)。当該制御情報に従った組み込み動作が失敗である場合に、制御部125は、伝送路30のうち、下位伝送路(伝送路C、及び、伝送路D)を有効に制御する(順序3)。
【0089】
伝送路30のうち、上位伝送路、または、下位伝送路のいずれか一方に障害が発生した場合には、
図11に例示された制御情報に従って動作することによって、フォールトトレラント装置320においては、モジュール3、及び、モジュール4を用いた2重化状態が実現される。
【0090】
たとえば、
図12に示された制御情報の場合に、制御部125は、まず、伝送路30に含まれているすべての伝送路(伝送路A乃至伝送路D)の機能が有効になるよう制御する(順序1)。当該制御に従った組み込み動作が失敗である場合に、制御部125は、伝送路30のうち、上位伝送路(伝送路A、及び、伝送路B)の機能が有効になるよう制御する(順序2)。以降、
図12を参照しながら上述した動作が実行される。
【0091】
図12に従った動作によれば、上位伝送路、及び、下位伝送路の双方に障害が発生していた場合であっても、一部の伝送路の障害であれば、フォールトトレラント装置320において、モジュール3、及び、モジュール3を用いた2重化状態を実現することができる。たとえば、伝送路B、及び、伝送路Cにて障害が発生している状態は、上位伝送路、及び、下位伝送路の双方に障害が発生している状態を表す。この場合に、
図11に従った動作によれば、フォールトトレラント装置320において2重化状態を実現することができないものの、
図12に従った動作によれば、フォールトトレラント装置320において2重化状態を実現することができる。
【0092】
図11、及び、
図12に示されたいずれの動作であっても、まず、伝送路30におけるすべての伝送路の機能が有効になるよう制御され、当該制御に従った組み込み動作が失敗である場合に、一部の伝送路のみの機能が有効になるよう制御される。したがって、すべての伝送路が有効である場合における組み込み動作が成功であるか否かを、最優先にて判定するので、当該動作によれば、最大の伝送路幅を確保することができる可能性が高い。
【0093】
また、
図11、及び、
図12に示されたいずれの動作であっても、機能が有効になるよう制御される伝送路の個数が多い順に処理を実行することによって、より広い伝送路幅を確保することができる。この理由は、広い伝送路幅を先に制御する処理によって、伝送路幅の広い順に組み込み動作が成功である構成を決定することができるからである。
【0094】
次に、本発明の第2の実施形態に係るフォールトトレラント装置320に関する効果について説明する。
【0095】
第2の実施形態に係るフォールトトレラント装置320によれば、高い可用性を実現することができる。この理由は、第1の実施形態にて説明した理由と同様である。
【0096】
さらに、本実施形態に係るフォールトトレラント装置320によれば、より高い可用性を提供することができる。これは、
図11または
図12を参照しながら上述した理由に基づく。
【0097】
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。
【0098】
図16を参照しながら、本発明の第3の実施形態に係る制御装置501が有する構成について詳細に説明する。
図16は、本発明の第3の実施形態に係る制御装置501が有する構成を示すブロック図である。
【0099】
第3の実施形態に係る制御装置501は、制御部502と、組み込み部503とを有する。
【0100】
制御装置501は、ロックステップ方式に従い動作するフォールトトレラント装置において動作する。制御装置501は、たとえば、
図1に示したフォールトトレラント装置300、及び、
図13に示したフォールトトレラント装置320において、複数のサブシステムを接続している複数の伝送路を介した動作を制御する。
【0101】
次に、
図17を参照しながら、本発明の第3の実施形態に係る制御装置501における動作について詳細に説明する。
図17は、第3の実施形態に係る制御装置501における動作の流れを示すフローチャートである。
【0102】
制御装置501は、複数の伝送路のうち、少なくとも一部の伝送路の機能が有効になるよう制御する(ステップS301)。
【0103】
組み込み部503は、制御装置501が、機能が有効になるよう制御した伝送路と、サブシステムとを用いる2重化状態を実現する組み込み動作を実行する(ステップS302)。
【0104】
制御部502は、該組み込み動作が成功であるか否かを判定する(ステップS303)。
【0105】
組み込み動作が成功であった場合には、ステップS301、及び、ステップS302によって、制御装置501が、機能が有効になるよう制御した伝送路と、サブシステムとを用いる2重化状態が実現されている。組み込み動作が失敗である場合に、制御装置501は、ステップS301にて制御した伝送路とは異なる伝送路の機能が有効になるよう制御することによって、
図17に示された動作を繰り返し実行してもよい。
【0106】
制御部502は、第1の実施形態に係る制御部123、または、第2の実施形態に係る制御部125が有する機能と同様な機能によって実現することができる。組み込み部503は、第1の実施形態に係る組み込み部140、または、第2の実施形態に係る組み込み部140が有する機能と同様な機能によって実現することができる。したがって、制御装置501は、第1の実施形態に係るモジュール1、モジュール2、第2の実施形態に係るモジュール3、または、モジュール4が有する機能と同様な機能によって実現することができる。
【0107】
次に、本発明の第3の実施形態に係る制御装置501に関する効果について説明する。
【0108】
第3の実施形態に係る制御装置501によれば、フォールトトレラント装置に関して高い可用性を実現することができる。この理由は、伝送路の一部に障害が発生した場合であっても、一部の伝送路と、サブシステムとを用いた2重化状態を実現するからである。
【0109】
上述した各実施形態においては、フォールトトレラント装置において2重化状態を実現する例を参照しながら、該フォールトトレラント装置における動作について説明した。しかし、さらに多くの冗長性を有する動作であっても、各実施形態にて上述した動作と同様に動作することによって、フォールトトレラント装置が有する機能を実現することができる。すなわち、フォールトトレラント装置において実現される動作は、2重化状態に限定されず、多重化状態であってもよい。
【0110】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【解決手段】制御装置501は、ロックステップ方式に従い動作する複数のサブシステムを接続している該複数の伝送路のうち、少なくとも一部の伝送路の機能が有効になるよう制御する制御部502と、制御部502によって機能が有効になるよう制御された該伝送路と、該複数のサブシステムとを用いる多重化状態を実現する組み込み動作を実行する組み込み部503とを有する。制御部502は、該組み込み動作が成功であるか否かを判定し、前記組み込み動作が失敗である場合に、前記複数の伝送路のうち、前記組み込み動作が失敗であった伝送路とは異なる伝送路を用いた前記組み込み動作が成功であるか否かを判定し、成功である場合に前記異なる伝送路の機能が有効になるよう制御する。