フェールソフト
システムの一部が故障したときに、故障した部分を切り離し、機能や性能を縮小してでも、システム全体の運転を継続させる設計の考え方。
イマシルちゃんの解説
飛行機のエンジンが1つ止まっちゃっても、残りのエンジンで近くの空港まで飛び続けられるように作られているんだ。
全部の力は出せないけど、止まらずに動き続ける。
これがフェールソフトだよ!
「完全じゃなくてもいいから、とにかく止めない」っていう考え方なんだ。
より深い解説
定義
フェールソフト(fail soft)は、故障が発生したとき、その部分を切り離したり、機能を制限したりして、システムが提供するサービスの水準を下げてでも、全面的な停止を避ける設計の考え方である。このように機能を縮小して動作を続けることを、縮退運転(フォールバック)という。
具体例
| 例 | 故障時の動作 |
|---|---|
| 複数のサーバによる負荷分散 | 1台が故障したら切り離し、残りのサーバで処理を続ける(応答は遅くなる) |
| 複数のCPUを持つシステム | 1つのCPUが故障しても、残りのCPUで処理を続ける |
| 交通信号の制御システム | 中央の制御が故障したら、各交差点の信号が個別の決まったパターンで動作する |
| 通信回線 | 一部の回線が切れたら、残りの回線や低速なバックアップ回線で通信を続ける |
| Webサイト | 負荷が高すぎるときに、重い機能(検索、おすすめの表示など)を止めて、主要な機能だけを提供する |
フォールトトレランスとの違い
| フェールソフト | フォールトトレランス | |
|---|---|---|
| 故障時の機能・性能 | 低下する(縮退運転) | 低下しない(正常に動き続ける) |
| 必要な仕組み | 故障した部分の切り離しと、残りでの再構成 | 予備を含めた十分な冗長化 |
| コスト | 比較的低い | 高い |
フォールトトレランスの設計でも、予備の機器まで故障した場合などには、フェールソフトの考え方で縮退運転に移ることが多い。
信頼性・安全性を高める考え方の比較
| 考え方 | 故障時の動作 |
|---|---|
| フェールセーフ | 安全な状態にする(停止を含む) |
| フェールソフト | 機能を縮小して運転を続ける |
| フォールトトレランス | 正常な運転を続ける |
| フールプルーフ | (故障ではなく)人の誤操作に対して、誤動作を防ぐ |