フォールトトレラント、フェールソフト、諸々の違い

基本情報の勉強で一番厄介なのが似たような単語の区別だと思うのですが、
フォールトトレラント、フェールソフト、フールプルーフ…全部「フ～」でマジ無理って思ったので、
備忘録としてまとめます。

（最悪<font color="red">**赤太文字**</font>だけ見れば区別できるように書いています）

# Fの対障害用語
・フォールトトレラント
・フォールトトレランス
・フォールトアボイダンス
・フォールトマスキング
・フェールセーフ
・フェールソフト
・フェールオーバー
・フェールバック
・フォールバック
・フールプルーフ

こんなにあると思いませんでした。
どれもシステムの信頼性に関するもので、<font color="red">**「システム障害に対してどんな対策をするか」**</font>がポイント。
名前が似てるだけじゃなくて、考え方だったり機能の話だったりするのが紛らわしい。

実際に試験を受けた際の思い出的には、これら全部をしっかりきっちり覚えるよりは他のところを広く勉強した方がいいような気もしますが、
現場の仕様書とか打ち合わせとかでしれっと出てくる度にちょっと焦るので再勉強します:writing_hand:

## ■「フォールト」から始まるもの
フォールト（fault）：障害、故障:boom:
### 1. フォールトトレラント（Fault Tolerant）
障害発生時、<font color="red">**機能を縮小せずに**</font>継続させる設計手法。
広義では「問題発生時の備え」という考え方そのものを指したりもする。
→ 「もしも障害が起こったら」という想定がある。
<font color="red">**何かが起こっても今まで通りに稼働させる**</font>。誤りに対して寛容。
e.g. 
・ハードディスクのRAID
・停電時でも発電機の起動で電力供給を継続するビル

トレラント（tolerant）：許容、耐性のある -形容詞

### 2. フォールトトレランス（Fault Tolerance）
フォールトトレラントと同義。
形容詞か名詞かの違い。

トレランス（tolerance）：耐性 -名詞

### 3. フォールトアボイダンス（Fault Avoidance）
<font color="red">**事前対策**</font>により、障害を回避する設計手法。
これも考え方や、技術を指したりする。
→ <font color="red">**「そもそも障害が起こらないように」**</font>というやり方。
e.g.
・高品質な部品を使う
・故障しにくい設計
・テストの徹底

アボイダンス（avoidance）：逃避、回避

### 4. フォールトマスキング（Fault Masking）
障害時に<font color="red">**障害の影響を他に与えないようにする**</font>という考え方。
システムの外から見ると故障状態はマスキングされる。
e.g.
・冗長符号によるエラー訂正

マスキング（masking）：覆い隠すこと

## ■「フェール」から始まるもの
・フェール（fail）：失敗する:dizzy_face:
### 5. フェールセーフ（Fail Safe）
障害発生時、<font color="red">**安全を優先して**</font>システムを移行する設計思想。
制御し続けないかぎり作動部は停止方向に動作させるようになっている。
→ **制御部**が故障したときの対応
e.g.
・電気ストーブ（倒れたら勝手に消える）
・踏切の遮断機（故障時は重力で下がる＝踏切に立ち入れないようにする）

セーフ（safe）：安全

### 6. フェールソフト（Fail Soft）
障害発生時、機能を縮小してでも<font color="red">**稼働継続**</font>を優先する設計思想。
作動部が一部動作しなくてもなんとか制御続行可能にする。
→ **作動部**が故障した時の対応
e.g.
・飛行機のエンジン（片方のエンジンが故障したら、もう片方のエンジンだけで飛べる）

ソフト（soft）：柔軟な（？）
→ 「柔軟に対応する」？

### 7. フェールオーバー（Fail Over）
障害発生時、<font color="red">**自動的に予備システムに切り替える**</font>こと（機能）。
つまり、システムが冗長化されている必要がある。
具体的な機能の話。
<font color="red">**フォールトトレラントのような考え方があって、フェールオーバーの仕組みが採用されている**</font>という関係性。多分。
e.g.
・記憶装置のミラーリング

☆ 人間が手動で切替え → **スイッチオーバー**

オーバー（over）：超える
→ 「切替により超える」？

### 8. フェールバック（Fail Back）
<font color="red">**[フェールオーバー](#7-フェールオーバーfail-over)した予備から障害発生前の元の状態に切り戻す**</font>こと（機能）。
これも機能の話。
＝フェールオーバーとフェールバックはセット

・バック（back）：戻る

## ■「フォール」から始まるもの
・フォール（fall）：落ちる、落とす:arrow_heading_down:
ひとつだけです。
### 9. フォールバック（Fall Back）
<font color="red">**機能や性能を下げて（制限して）**</font>稼働を続けること。
「縮退運転」ともいう。
[フェールソフト](#6-フェールソフトfail-soft)と似てるが、フェールソフトが**フェールの後処理の考え方**で、フォールバックは**フェールを起こしにくくする為の考え方**。
e.g.
・4Gスマホ（基地局が古くて4Gが使えない場所でも3Gで使えるようにする）
・Blu-rayプレイヤー（古いモニターでも映像の解像度を下げて見れるようにする）

## ■「フール」から始まるもの
・フール（fool）：愚かな🤪
ひとつだけです。

### 10. フールプルーフ（Fool Proof）
<font color="red">**ユーザが誤った操作**</font>をしても、安全に稼働させる設計思想。
「大抵の人は説明書を読まないので意図しない操作に備えよう」という考え方。
e.g.
・電子レンジ（扉を閉めなければ作動しない）
・トイレのおしり洗浄機（人が座っていないと水は出ない）

プルーフ（proof）：耐性、防ぐ

## 区別のポイント
実際名前だけではなく意味も結構似ているなと感じます。
似てるやつは自分が納得できるポイント大事。

例えば、
フェールセーフ：**安全**優先
フェールソフト：**稼働継続**優先（機能縮小**あり**）
フォールトトレラント：**稼働継続**優先（機能縮小**なし**）

また、
フォールトトレラント：**「問題が起きたら」**の対策案
フォールトアボイダンス：**「問題を起こさないため」**の対策案
（参考：[フォールトトレランス (fault tolerance)](https://wa3.i-3-i.info/word14813.html)）

↓ あと、これなるほどなって思いました。
>「フォールトに備えてたのにフールがフェイルを起こしたのでフォールした」
（参考：[フェールソフト/フェールセーフ/・・10つをかんたんに覚える方法](https://kanasys.com/tech/786)）

「**障害（fault）**に備えてたのに**おばかさん（fool）**が**やらかした（fail）**ので**性能を落として稼働を継続（fall）**した」
って感じでしょうか。

# おわりに
個人的には「フールプルーフ」っていう名前に技術者側の感情が乗ってて好きです。
ちゃんと説明書読むようにします。

間違い等ありましたらご教示ください。

# 参考
1. [フォールトトレランス (fault tolerance)とは | 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/word14813.html)
2. [フォールバック (fallback)とは | 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/word14810.html)
3. [フォールトトレランス、フェールソフト、フェールセーフの違い | 情報処理技術者試験 | 予想問題(オリジナル)](http://tooljp.com/jyosho/docs/faulttolerance/faulttolerance.html)
4. [フェールセーフとフェールソフトの違い | ITを分かりやすく解説](https://medium-company.com/%E3%83%95%E3%82%A7%E3%83%BC%E3%83%AB%E3%82%BB%E3%83%BC%E3%83%95%E3%81%A8%E3%83%95%E3%82%A7%E3%83%BC%E3%83%AB%E3%82%BD%E3%83%95%E3%83%88%E3%81%AE%E9%81%95%E3%81%84/)
5. [フェールソフト/フェールセーフ/・・10つをかんたんに覚える方法 | 節約テクノロジ](https://kanasys.com/tech/786)