【IPA】覚えられないもの:システムが故障しても機能を維持する仕組み

こんにちは、びぶんです!

IPAの勉強をしていてなかなか覚えられない「システムが故障しても機能を維持する仕組み」、1単語でいえば「耐故障性」について、僕のアウトプットもかねて書きます。

モノは故障するものです。故障することを受け入れ、うまく故障したものを制御し、安全に使う仕組みをしていく必要があります。

このような考え方は様々なものがありますが、今回は図も交えながら1つずつ説明していきます。

モノは故障するもの

システムが長い間使用できるようにするためには、「故障しない」ことが大事です。しかし、ものは基本的に劣化していくもの。必ず故障しないという保証はありません。

例えば、ノートパソコンを使用する場合も、購入してから数年は問題ありませんが、長いこと使うと、

  • バッテリがダメになり、充電ができない
  • ソフトを動かそうとしても。うまく動いてくれない
  • 動いているけど、ファンの音がうるさい

など様々なことが起こりえます。最終的には故障というのも考えられます。スマホの場合だと故障すると、かなり不便になる方も多いかと思います。現に僕はそうでした。

そこで大事なのが、故障した場合にどうすれば安全に作動するかということ。故障することは受け入れ、故障しても正常に作動するような仕組みにしておけば、故障部分を除いて使い続けることができます。

それを実現するために考えられているのが、「耐故障性」「フォールトトレランス」です。

なぜ耐故障性が重要?

上で書いたように、モノは故障するものなので、受け入れて、うまく付き合う必要があります。しかし、これがどれだけ重要なのでしょうか?

例えば、自動運転付き自動車。自動運転があると操作せずに目的地まで運んでくれます。僕は乗ったことがないですが、とても快適なんでしょう。

しかし、何かの衝撃で自動運転の機能が故障し、車が暴走してしまうことを考えてみてください。大惨事になりかねません。

そこで、故障した場合は自動運転の機能を使用できないようにし、人がハンドルを握る通常の運転のみで走行できるようにすればどうでしょう。

このように故障した場合の安全な仕組みがなければ、惨事にはつながります。そのためにも、安全に動作させるための仕組みが重要になります。そんな仕組みはどのようなものがあるのでしょうか?

どんな種類がある?

耐故障性の考え方は、主に以下のようなものがあります。

すべてカタカナ、横文字です。覚えにくい。すこしでも区別できるようになるべく視覚的に仕組みを説明します。

フェールソフト(fail soft)

フェールソフトは、故障した場合に「故障した部分を切り離し、正常な機能をそのまま動かす」という考え方です。

全体の性能が落ちたとしても故障部分を切り離し、故障していない部分が正常に動くように制御する(縮退運転:フォールバック)を行います。

図にするとこんな感じ。

フェールオーバ(fail over)

フェールオーバは、故障した場合に「すべての処理やデータ機能を別の装置に移す」という考え方です。

1台が故障したとしても替えの装置を用意しておくことで、すべての処理やデータ(over)を移行することで、使っている人からは正常に動作しているように見えます。

図にするとこんな感じ。

フェールセーフ(fail safe)

フェールセーフは、故障した場合に「影響範囲を最小限に収め、安全に動かす」という考え方です。

故障したとしても動かなくなるのではなく、その故障が影響する部分を小さくすることで、安全な方向へ制御するというものです。

図にするとこんな感じ。

フォールトマスキング(fault masking)

フォールトマスキングは、故障した場合に「外部に影響しないように故障部分を隠す、または隠したまま勝手に回復する」という考え方です。

図にするとこんな感じ。

フールプルーフ(foolproof)

フールプルーフは、故障した場合に「誤作動による故障しにくい設計にする」という考え方です。

誤作動にはいくつかのパターンがあります。人の操作によるもの、災害によるもの。これらにより、故障することをあらかじめ少なくするというものです。

英単語でproofとは、「~に耐久力をつける」という意味があるようです。つまし、fool(愚か者/何も分からない人)に対してproofする(耐久力をつける)という意味になります。

まとめ

今回は、耐故障性についてまとめました。

カタカナ語が多いIT用語ですが、図によってまとめたり、英単語の意味で理解するのもよい策になります。ぜひ、覚えてあげてくださいね。