SE基本情報に出るIT用語

フォールトトレラントとは?障害が発生しても大丈夫なように備えておく考え方のこと

どうも!ひよこSE(@PiyoOct)です。

フォールトトレラントとは、障害が発生しても大丈夫なように備えておく、システムを設計するときの考え方のようなものです。

何かトラブルが発生してから

ヤバい!ヤバい!どうしよう?

と考えていたのでは、「大丈夫か?このシステム」ってなりますよね。

なので、ヤバくなった時を想定。

もっとまじめに言えば、「障害が発生しても、大丈夫なように備えておきましょうね」というのが、フォールトトレラントです。

スポンサーリンク

フォールトトレラントは、障害が発生しても大丈夫なように備えておく考え方のこと

フォールトトレラントとは、障害が発生しても大丈夫なように備えておく考え方のことです。

じゃあ、具体的にどうやって備えるの?

次の3つです!

その1:フェールセーフ

フェールセーフとは、故障したときに安全性を優先する考え方です。

例えば、こんなのがあります。

  • 某銀行(み●ほ銀行)のATMがエラーで止まる(お金のやり取りのため、安全第一)
  • 地震のときに、エレベータが非常停止する(揺れてるのに動いていたら危ないため)
  • 石油ストーブにうっかり足をぶつけると、勝手に消火することがある

イメージとしては、非常停止ボタンを押して、システムを全停止させる、安全第一の考え方です。

その2:フェールソフト

フェールソフトとは、故障時に継続して稼働することを優先する考え方です。

例えば、こんなのがあります。

  • エヴァンゲリオンのアンビリカンケーブルが断線したときの5分間の内臓電源
  • 飛行機のエンジンは、最悪1つしか動かないとしても飛び続けることができる
  • 体調が悪いけど、いまは仕事が大変なときだから、なんとか出社して定時に帰る

「故障が発生したらすぐに止めてしまえ」といかない場合に、性能ダウン覚悟でも、動かすイメージです。

その3:フールプルーフ

フールプルーフは、人間がうっかりミスしても、誤作動を起こさないようにする考え方のことです。

例えば、こんなのがあります。

  • 電池のプラスマイナスを逆にして電源をつけようとしても、つかない
  • 洗濯機はフタを閉めないと動かない
  • ブレーキとアクセルを踏み間違えても、加速しない(衝突回避の技術ができる?)

うっかりミスをしない人間は、まずいません。

それで、いきなり壊れたり事故につながったら大変なので、可能な限り、誤作動は防ぎましょうという話です。

スポンサーリンク

基本情報技術者試験的には、フォールトトラレントはやっかいな用語

基本情報技術者試験的には、フォールトトラレントは、なかなかにやっかいな用語です。

H24年春期の過去問

H24年春期の過去問を見てみましょう(問題のすぐ下に答えを書くので注意)。

フォールトトレラントシステムを実現する上で不可欠なものはどれか。

ア. システム構成に冗長性をもたせ,部品が故障してもその影響を最小限に抑えることで,システム全体には影響を与えずに処理を続けられるようにする。

イ. システムに障害が発生したときの原因究明や復旧のため,システム稼働中のデータベースの変更情報などの履歴を自動的に記録する。

ウ. 障害が発生した場合,速やかに予備の環境に障害前の状態を復旧できるよう,定期的にデータをバックアップする。

エ. 操作ミスが発生しにくい容易な操作にするか,操作ミスが発生しても致命的な誤りとならないように設計する。

基本情報技術者試験.com」より筆者作成

この問題の答えは、アです。

イはシステムログの話、ウはバックアップの話、エはフールプルーフの話なので消去法で、アです。

フェールソフトと混同しがち

え?ちょっと待って?フォールトトレラントって、「障害が発生しても大丈夫なように備えておく考え方のこと」って言ってたじゃん。ひよこSEのウソつき!

どっちかといえば、「フェールソフト」に近いよね?

みたいにモヤモヤした人もいるはずです。

さて、フェールソフトですが、「故障時に継続して稼働することを優先する考え方」です。

ア. システム構成に冗長性をもたせ,部品が故障してもその影響を最小限に抑えることで,システム全体には影響を与えずに処理を続けられるようにする。

これを見ると、たしかに「フェールソフトだから、アはちがう」と考えちゃうと思います。

フォールトトラレントは、かなりざっくりとした概念

フォールトトラレントは、実は、かなりざっくりとした概念です。

なので、こう考えてください。

「そもそも、システムは正常に動いて当然。なので、万が一のときも、影響は最小限であるべき」

この考え方が根底にあって、「それじゃあ、障害が発生しても大丈夫なようにどうやって備えようかな?」ってことを実際に考えます。

フォールトトラレント=フェールセーフ+フェールソフト+フールプルーフ

考えた結果、

いや、システムを止めないとマズいぞ!安全第一!

となれば、フェールセーフ的な考え方。

いやいや、システムを止めるわけにはいかない!何としても継続!

となれば、フェールソフト的な考え方です。

なので、

(ざっくり)フォールトトラレント=(少し細かく)フェールセーフ+フェールソフト+フールプルーフ

みたいな感じで覚えておいて、あとは過去問で感覚(読解力)を身に付けるしかないですね(*´ω`)。

個人的には、フォールトトラレントとフェールソフトの違いを問うてくる問題が出てきたら、悪問だと思う。

まとめ:フォールトトレラントとは、障害のときに備えておく的な考え

フォールトトラレントとは、障害が発生しても大丈夫なように備えておく、システムを設計するときの考え方のようなものです。

かなりざっくりとしているので、

  • そのあとに安全第一で行くのか?
  • システムは意地でも止めないようにするのか?

は、突っ込んで検討するものだと思っておいてくださいまし(-_-;)。

スポンサーリンク

コメント

タイトルとURLをコピーしました