フォールトトレラント設計
フォールトトレラント設計(フォールトトレラントせっけい、Fault tolerant design)は、システム設計の手法であり、システムの一部に問題が生じても全体が機能停止するということなく(たとえ機能を縮小しても)動作し続けるようなシステムを設計するものである。
この用語はハードウェアあるいはソフトウェアの障害があってもほとんど途切れることなく動作し続けるコンピュータシステムの設計を指して使われることが多い。
他の領域の例としては、自動車の設計でタイヤが一本パンクしても走行できるような設計を指す。
手法
- フォールトトレラントな部品
- 部品それぞれが内部に異常を発生しても部品として機能し続けることができれば、システム全体としても機能し続ける。自動車の例で言うと、自動車にはランフラットタイヤを装備しているものがある。これは、内部に硬いゴムの層を持っているもので、表面がパンクしても走行が可能となっている。走行できる時間は限られているしスピードも落とす必要があるが、従来のタイヤから見れば大きな進歩と言えよう。
- 冗長性
- これはバックアップの部品があって、障害が発生したときに自動的に代替して動作するものである。例えば、大型トレーラーではタイヤをひとつ失っても大きな問題とはならない。多くのタイヤを持っているため、タイヤひとつでは危険ではない(操縦の役割がある前輪はそうではない)[1]。
どのようなときフォールトトレラント設計をするのか
すべての部品に対してフォールトトレラント設計を施すのは得策ではない。 どの部品をフォールトトレラントにすべきかを決定するには以下のような判断基準が考えられる。
- その部品はどれだけ重要か?
- 自動車では、ラジオは重要ではない。したがって、ラジオをフォールトトレラント設計する必要性は低い。
- その部品はどのくらい障害を起こすか?
- 自動車のドライブシャフトのように、いくつかの部品は故障することはほとんど考えられないので、フォールトトレラント設計の必要性は低い。
- その部品をフォールトトレラントにするのにかかるコストは?
- 例えば、自動車のエンジンに冗長性を持たせるとすると、経済的にも重量やサイズもコストが高くなることが予想される。
全ての条件に適合した部品の例として自動車の搭乗者拘束システム(シートベルトやエアバッグ)がある。我々が意識しない第一の搭乗者拘束システムは重力である。自動車が転覆などした場合、重力による拘束はなくなってしまう。このような事故の際に搭乗者を拘束するのは安全上非常に重要なので、第一の条件に合っている。シートベルトがない時代には事故によって搭乗者が外に放り出されることがよくあった。したがって第二の条件にも合っている。シートベルトなどは価格的にも重量的にもコストは高くない。したがって第三の条件にも合っている。以上のことから、シートベルトを全ての自動車に装備するのはよい考えと言える。その他のエアバッグなどの補助部品はやや高価なので、第三の条件に適合しないかもしれない。このため、安価な自動車にエアバッグを搭載していないものが(高価な自動車よりも)多いのである。
実例
コンピュータ
ミッションクリティカルなシステムにおいて、コンピュータのフォールトトレラント性は重要である。そういった用途に用いるため、製品自体に広範なフォールトトレラント設計を盛り込んだコンピュータも作られており、タンデムコンピューターズやストラタステクノロジー、NECなどの製品がある。これらはCPUを含む全てのハードウェアを2重化し、ハードウェア障害(部品障害)に対してはフォールトトレラント性を確保している(ただしオペレーティングシステムの障害やユーザー操作上の問題に対応できるとは限らない)。
タンデムコンピューターズは、同社のビジネスをフォールトトレラントなシステムを開発/製造/販売するものとしていた。同社のNonStopシステムは「シングルポイント・トレラント」なシステムであり、十年間の動作時間の計測をして公表していた[2]。
ハードウェアのフォールトトレラント性は、故障した部品をシステム動作中に交換することを要求する場合がある。 このようなバックアップがひとつだけ存在するシステムを「シングルポイント・トレラント」と言う。フォールトトレラントシステムと呼ばれているものはほとんどこのタイプである。このようなシステムでは故障発生間隔の平均時間(MTBF)が十分に長くないと、部品交換中に使用中のバックアップも故障してしまうことがある。MTBFが長ければ長いほど良いが、フォールトトレラントシステムに特にそれが求められているわけではない。
自動車
エンジン
自動車エンジンを二重化した例としてトヨタ・センチュリーはよく知られている。コスト高よりも信頼性を高めることを優先した実装例でもある。また日本国内での市販車で唯一[3]の実装であることが、官公庁の選択時において他社(他車)と差別化する大変大きな訴求ポイントともなっている。搭載されているV型12気筒エンジン制御システムが二重化されており、いずれか片方の6気筒が故障しても走行できる。また燃料ポンプも二重化されている。
電装品
例えば近年では、一般的な乗用車においてもサブマイコンの採用やフェールオペレーションの実装によりフォールトトレラントな設計がされていることが多い。例えば、純正もしくはディーラーオプションのようなカーナビの場合、実際に不具合が発生すると最寄の整備工場を案内しつつ最低限のエンジン制御を行うなど最低限のサービスを提供可能とするような仕組が実装されつつある。
また、リモコンキー搭載車でリモコンの故障やバッテリー切れなど不具合に備えメカニカルキーを使用可能にし、またキーそのものも用意されることがある。これは「リモコンの不具合は珍しいこととは言えず、特に水没は日常のあらゆるシーンで発生しうる(故障率)」「キーが使えなければ乗車もエンジン始動も出来ず(重要度)」「コストも高くない」の3つの条件に合致するフォールトトレラントの一つと言える。
備考
フォールトトレラントシステム(故障しても動作するシステム)と滅多に故障しないシステムは違う。例えば、ウェスタン・エレクトリック社のクロスバー交換機システムは40年間に2時間という故障発生確率であり、非常に故障しにくい(フォールト・レジスタント)と言える。しかし、ひとたび故障するとシステムは完全に停止するので、フォールトトレラントとは言えない。
脚注
- ↑ あくまでも自動車の走行という話であって、外れたタイヤがころがっていくと危ないという話は別問題。
- ↑ 障害などの発生確率から、動作不能となる時間の割合を算出。例えば10年間で1日だけ動作できないなどといった形である。
- ↑ 市販されていない車種も含めると御料車専用車種の日産・プリンスロイヤルもブレーキ・燃料系統のフォールトトレラント設計を行っている。