フォールトトレラント設計
出典: フリー百科事典『ウィキペディア(Wikipedia)』
フォールトトレラント設計(Fault tolerant design)は、システム設計の手法であり、システムの一部に問題が生じても全体が機能停止するということなく(たとえ機能を縮小しても)動作し続けるようなシステムを設計するものである。
この用語はハードウェアあるいはソフトウェアの障害があってもほとんど途切れることなく動作し続けるコンピュータシステムの設計を指して使われることが多い。
他の領域の例としては、自動車の設計でタイヤが一本パンクしても走行できるような設計を指す。
目次 |
[編集] 手法
- フォールトトレラントな部品 部品それぞれが内部に異常を発生しても部品として機能し続けることができれば、システム全体としても機能し続ける。自動車の例で言うと、自動車にはランフラットタイヤを装備しているものがある。これは、内部に硬いゴムの層を持っているもので、表面がパンクしても走行が可能となっている。走行できる時間は限られているしスピードも落とす必要があるが、従来のタイヤから見れば大きな進歩と言えよう。
- 冗長性 これはバックアップの部品があって、障害が発生したときに自動的に代替して動作するものである。例えば、大型トレーラーではタイヤをひとつ失っても大きな問題とはならない。多くのタイヤを持っているため、タイヤひとつでは危険ではない(操縦の役割がある前輪はそうではない)。(訳注:あくまでも自動車の走行という話であって、外れたタイヤがころがっていくと危ないという話は別問題)
[編集] 欠点
フォールトトレラント設計の利点は明らかだが、欠点はないだろうか?
- 障害検出の阻害 また同じ例で説明すると、タイヤ1個がパンクしたことは運転手には分からないかもしれない。これはフォールトトレラントシステムでも同様である。この問題は分離された「自動障害検出システム」が処理するのが一般的である。タイヤの例では、空気圧モニターが空気圧が減っていることを検出し、運転手に知らせる。代替案として「手動障害検出システム」があり、自動車が停車するたびにタイヤをチェックするようなものである。
- 障害修正の優先順位の低下 操作者が障害に気づいても、フォールトトレラントシステムではそれを直すことがおろそかになる危険がある。障害が修正されない場合、フォールトトレラントな部品全体が動かなくなったり冗長部品が全部障害となったりすると、システム全体の障害を引き起こすことが考えられる。
- 試験の難しさ 原子炉のような故障の際の影響が大きいフォールトトレラントシステムでは、バックアップが機能するかどうかを事前にチェックする簡単な方法はない。最も有名な例はチェルノブイリ原子力発電所のメルトダウンである。彼らは緊急用のバックアップの冷却機能をチェックするために第一と第二の冷却機構を停止させてテストしていた。そのときにバックアップが動作せず、結果としてメルトダウンと放射能汚染が起きてしまった。
- コスト フォールトトレラント部品も冗長部品もコストを増大させる。これは単に経済的なコストだけではなく、例えば全体重量を増大させるなどの問題も含む。例えば、有人宇宙船は何重にも冗長なフォールトトレラント部品を搭載しているため、安全性をそこまで求められない無人宇宙船よりもずっと重量が大きくなる。このため打ち上げロケットもより推進力があるものを作成する必要がある。
[編集] どんなときフォールトトレラント設計をするのか
すべての部品に対してフォールトトレラント設計を施すのは得策ではない。 どの部品をフォールトトレラントにすべきかを決定するには以下のような判断基準が考えられる。
- その部品はどれだけ重要か? 自動車では、ラジオは重要ではない。したがって、ラジオをフォールトトレラント設計する必要性は低い。
- その部品はどのくらい障害を起こすか? 自動車のドライブシャフトのように、いくつかの部品は故障することはほとんど考えられないので、フォールトトレラント設計の必要性は低い。
- その部品をフォールトトレラントにするのにかかるコストは? 例えば、自動車のエンジンに冗長性を持たせるとすると、経済的にも重量やサイズもコストが高くなることが予想される。
全ての条件に適合した部品の例として自動車の搭乗者拘束システム(シートベルトやエアバッグ)がある。我々が意識しない第一の搭乗者拘束システムは重力である。自動車が転覆などした場合、重力による拘束はなくなってしまう。このような事故の際に搭乗者を拘束するのは安全上非常に重要なので、第一の条件に合っている。シートベルトがない時代には事故によって搭乗者が外に放り出されることがよくあった。したがって第二の条件にも合っている。シートベルトなどは価格的にも重量的にもコストは高くない。したがって第三の条件にも合っている。以上のことから、シートベルトを全ての自動車に装備するのはよい考えと言える。その他のエアバッグなどの補助部品はやや高価なので、条件に適合しないかもしれない。このため、安価な自動車にエアバッグを搭載していないものが(高価な自動車よりも)多いのである。
[編集] 実例
コンピュータではフォールトトレラント性は重要である。タンデム・コンピュータは、同社のビジネスをフォールトトレラントなシステムを開発/製造/販売するものとしていた。同社のNonStopシステムは「シングルポイント・トレラント」なシステムであり、十年間の動作時間の計測をして公表していた。 (訳注:障害などの発生確率から、動作不能となる時間の割合を算出。例えば10年間で1日だけ動作できないなどといった形である)
ハードウェアのフォールトトレラント性は、故障した部品をシステム動作中に交換することを要求する場合がある。 このようなバックアップがひとつだけ存在するシステムを「シングルポイント・トレラント」と言う。フォールトトレラントシステムと呼ばれているものはほとんどこのタイプである。このようなシステムではMTBF(故障発生間隔の平均時間)が十分に長くないと、部品交換中に使用中のバックアップも故障してしまうことがある。MTBFが長ければ長いほど良いが、フォールトトレラントシステムに特にそれが求められているわけではない。
[編集] 自動車
[編集] エンジン
自動車エンジンを二重化した例としてトヨタ・センチュリーはよく知られている。コスト高よりも信頼性を高めることを優先した実装例でもある。また日本国内での唯一の実装であることが、官公庁の選択時において他社(他車)と差別化する大変大きな訴求ポイントともなっている。搭載されているV型12気筒エンジン制御システムが二重化されており、いずれか片方の6気筒が故障しても走行できる。また燃料ポンプも二重化されている。
[編集] 関連用語
フォールトトレラントシステム(故障しても動作するシステム)と滅多に故障しないシステムは違う。例えば、ウェスタン・エレクトリック社のクロスバー交換機システムは40年間に2時間という故障発生確率であり、非常に故障しにくい(フォールト・レジスタント)と言える。しかし、ひとたび故障するとシステムは完全に停止するので、フォールトトレラントとは言えない。