ITの教科書検索
入門読了 約9分

フォールトトレラントとフェールセーフの違い

フォールトトレラントは故障しても機能を落とさず動き続ける設計、フェールセーフは安全な側に倒して止める設計です。フェールソフト・フールプルーフも事例を選んで見分けられます。

目次
  1. フォールトトレラントとフェールセーフの違い
  2. 信頼性設計の2つの方向
  3. 故障の後の動きで分ける
  4. フールプルーフとは
  5. 事例で見分ける
  6. アクティブ-スタンバイとアクティブ-アクティブ
  7. 単一障害点・フェールオーバー・高可用性
  8. 練習問題

フォールトトレラントとフェールセーフの違いは、故障の後に動き続けるか止めるか

サーバが1台壊れてもサービスを続けるのか、安全のために止めるのか。設計では、故障した後の動きを先に決めておきます。フォールトトレラントは、部品が故障しても、機能を落とさずに動き続けるように作る設計です。フェールセーフは、故障したときに、システムを安全な側に倒して止める設計です。

この2つの間に、機能を落として動き続けるフェールソフトがあります。人の誤操作を防ぐフールプルーフは、起点が故障ではない点で、ほかの3つと性質が違います。予備を持たせて止まりにくくした効果は、稼働率の数字で比べられます。

信頼性設計には、故障を防ぐ方向と、故障に備える方向がある

システムが正しく動けなくなる原因を、フォールトと呼びます。フォールトは英語で、故障や欠陥を指す語です。システムを止まりにくくする工夫をまとめて、信頼性設計と呼びます。

1つ目の方向は、故障そのものを起こりにくくすることです。品質の高い部品を使い、点検や保守を続けます。この考え方をフォールトアボイダンスと呼びます。

2つ目の方向は、故障は起きるものと考え、起きても困らないように作ることです。部品はいつか必ず壊れるので、アボイダンスだけでは故障を0にできません。フォールトトレラント・フェールソフト・フェールセーフの3つは、この2つ目の方向に入ります。フールプルーフは、故障ではなく人の誤操作に備える考え方です。

フォールトトレラント・フェールソフト・フェールセーフは、故障の後の動きで分ける

3つとも、起点は同じ故障です。違うのは、故障の後にどれだけ機能を残すかです。

故障フォールトトレラントそのまま続くフェールソフト機能を落として続くフェールセーフ安全側で止まるフールプルーフ誤操作受け付けずに防ぐ故障フォールトトレラントそのまま続くフェールソフト機能を落として続くフェールセーフ安全側で止まるフールプルーフ誤操作受け付けずに防ぐ
線の高さは、動いている機能の量です。上の3つは故障が起きた後の動きが違い、フールプルーフだけは起点が人の誤操作です。

フォールトトレラントは、機能を落とさずに動き続ける

フォールトトレラントは、一部が故障しても、外から見て同じように動き続ける考え方です。装置を2台以上用意しておき、1台が壊れても残りで同じ処理を続けます。このように予備を持たせることを、冗長化と呼びます。

故障の影響を外に見せないことを、フォールトマスキングと呼びます。例えば、3台で同じ計算をして多数決を取れば、1台が誤った答えを出しても、外には正しい答えが出ます。

資料によっては、フォールトトレラントを「故障しても全体として止まらない」という広い意味で使い、機能を落として続けるフェールソフトも含めることがあります。以下では、違いが見えやすいように、機能を落とさずに続けるものをフォールトトレラント、機能を落として続けるものをフェールソフトと分けて説明します。

フェールソフトは、機能を落としてでも動き続ける

フェールソフトは、壊れた部分を切り離し、残った部分で動き続ける考え方です。全部を止めずに済む代わりに、使える機能が減ったり、処理が遅くなったりします。機能を落として動かし続けることを、縮退運転と呼びます。

4台のWebサーバのうち1台が壊れ、残りの3台で受け付けを続ける場合が、これに当たります。同じ量の要求を3台でさばくので、応答は遅くなります。

フェールセーフは、安全な側に倒して止める

フェールセーフは、故障したときに、事故や被害が起きない側にシステムを倒す考え方です。動き続けることより、安全を優先します。多くの場合、安全な側とは止めることです。

人が近づいたことを見張るセンサーが壊れたら、工場のロボットを止める場合が、これに当たります。センサーが壊れたまま動かすと、人に気づけないからです。

4つの考え方の起点と、その後の動き
考え方起点その後の動き
フォールトトレラント故障機能を落とさず動き続ける
フェールソフト故障壊れた部分を切り離し、機能を落として動き続ける
フェールセーフ故障安全な側に倒す。多くは止める
フールプルーフ人の誤操作誤った操作を受け付けない

フールプルーフとは、人の誤操作を防ぐ考え方

フールプルーフは、人が操作を間違えても危険にならないように、誤った操作を受け付けない作りにする考え方です。人は操作を必ずどこかで間違える、という前提に立ちます。ヒューマンエラーを避けるための技術の1つです。

電子レンジは、ドアを開けると加熱が止まり、ドアを閉めないと加熱が始まりません。ファイルの削除ボタンを押すと、本当に削除するかの確認が出る作りも同じです。

フェールセーフとの違いは起点にあります。フェールセーフは装置の故障から始まり、フールプルーフは人の操作から始まります。装置が正しく動いていても、人の誤りで事故が起きることがあるため、別の考え方として扱います。

事例を選んで、4つのどれに当たるかを確かめる

見分けるときは、次の2つを順に見ます。まず起点が故障か人の操作かを見て、故障なら、その後に機能を残すかどうかを見ます。

事例を選ぶ
サーバに電源装置を2台積んでおき、1台が壊れても、もう1台で同じように動き続ける。
  1. フォールトトレラント(これに当たる)
  2. フェールソフト
  3. フェールセーフ
  4. フールプルーフ
フォールトトレラントに当たります。起点は故障です。故障の後も、機能も性能も落とさずに動き続けるので、フォールトトレラントです。

光った語が、判断の決め手です。「同じように」「正しい答えが出続ける」なら機能を落としていないので、フォールトトレラントです。「遅くなりながら」「その機能だけを止め」なら機能を落として続けているので、フェールソフトです。

アクティブ-スタンバイ構成とアクティブ-アクティブ構成

フォールトトレラントにする代表的な方法が、装置を2台以上並べる冗長化です。並べた装置の使い方には、2つの構成があります。

アクティブ-スタンバイ構成は、ふだんは1台だけが処理し、もう1台は待機している構成です。処理している1台が壊れると、待機していた1台が処理を引き継ぎます。引き継ぎの間は、短い時間だけ処理が止まることがあります。このため、待機系への引き継ぎをフェールソフトの例として扱う資料もあります。デフォルトゲートウェイを2台のルータで受け持つFHRPの仕組みが、この構成の例です。

アクティブ-アクティブ構成は、2台以上がどれも処理を受け持つ構成です。ふだんは負荷を分け合い、1台が壊れると残りが全部を受け持ちます。残りの台数で足りなければ処理が遅くなり、そのときの動きはフェールソフトに当たります。

待機している装置をどの程度準備しておくかは、BCPとDRの記事のスタンバイ方式の節で比べています。台数を増やす方法はスケールアウトの記事で説明しています。2台にしたときの稼働率は、可用性とSLAの記事の計算機で求められます。AWSでは、複数のアベイラビリティゾーンに装置を分けて置き、1か所の故障に備えます。分けて置く単位は、リージョンとアベイラビリティゾーンの記事で説明しています。

単一障害点・フェールオーバー・高可用性との関係

そこが止まるとシステム全体が止まってしまう1か所を、単一障害点と呼びます。英語のsingle point of failureの頭文字から、SPOFとも書きます。冗長化は、装置を2台以上並べて、この単一障害点をなくす手段です。

1台だけのロードバランサが単一障害点になる例は、ロードバランサの記事にあります。

アクティブ-スタンバイ構成で、稼働系が故障したときに待機系へ切り替えることを、フェールオーバーと呼びます。NISTの用語集は、多くは人の操作なしに、自動で待機系へ切り替える能力と定義しています。FHRPによるルータの切り替わりも、フェールオーバーの例です。

反対に、故障した側が直ったあと、処理を元の側へ戻すことをフェールバックと呼びます。AWSの災害復旧サービスの文書も、災害が解決したあとに元の環境へ戻す手順をフェールバックとしています。

高可用性は、可用性を高く保ち、システムを止まりにくくすることです。英語のhigh availabilityから、HAとも書きます。NISTの用語集は、装置や部品が止まっている間も可用性を保つフェールオーバーの機能と説明しています。

フォールトトレラントの設計は、高可用性を得るための手段です。AWSの設計指針の「信頼性の柱」も、単一障害点を避けることを設計の基本に挙げています。そして、複数のアベイラビリティゾーンに分けてフォールトトレランスと高可用性を得る形を勧めています。可用性の高さは、稼働率の数値で比べられます。

参考にした資料

練習問題(全5問)

Q1フェールソフトの説明として正しいものはどれ?
Q2温度センサーが壊れたら、ヒーターへの電気を切る設計はどれに当たる?
Q3SIMカードの角が1つ欠けていて、向きを間違えると差し込めない。これに当たる考え方はどれ?
Q4フォールトアボイダンスの説明として正しいものはどれ?
Q5アクティブ-スタンバイ構成の説明として正しいものはどれ?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

クラウドの記事を続けて読む

クラウド 全36本中34本目