フェールセーフやフェールソフト・フールプルーフ 障害対策用語の整理

2021-03-02
%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E8%A8%AD%E8%A8%88
    

目次

概要

フェールセーフ とか フェールソフト とか フォールトトレランス といった単語がシステムの障害対策として出てくるが、 その辺りの似たような単語がよくわからなくなってしまうため個人的な理解として整理したものを記録しました。

ここで言う似たような単語とは次のようなものです。

  • フールプルーフ
  • フェールオーバ
  • フェールセーフ
  • フェールソフト
  • フェールバック
  • フォールトアボイダンス
  • フォールトトレランス
  • フォールトマスキング
  • フォールバック

それぞれの言葉を検索するとすぐ答えは見つかりますが最終的にこのように解釈しました。

  • フォールトアボイダンス: 障害を未然に防ぐ考え方
  • フォールトトレランス: 障害の発生が前提の考え方

    • フールプルーフ: あらかじめ組み込む・安全工学
    • フェールセーフ: 障害時の安全性優先
    • フェールソフト: 障害時の継続性優先(縮退運転)の思想。行為がフォールバック
  • フォールトマスキング: 障害を伝搬させない
  • フェールオーバ <=> フェールバック: 障害時の待機系切り替え・切り戻し

詳細は以下。

フォールトトレランス

フォールトトレランスはシステムの一部が故障し停止した場合でも予備の系統に切り替えるなどして正常に稼働させ続ける方法の総称です。 この方法は細分化すると次のようなものがあります。

  • フールプルーフ
  • フェールセーフ
  • フェールソフト

ポイント

障害が起こることが前提の考え方。

フールプルーフ

フールプルーフは機器を利用する際に操作を間違えたとしても危険な状況にならないような仕組みを、あらかじめ組み込んで設計しておく考え方。(=安全工学)

  • 蓋を閉めないと動かない洗濯機
  • 正しい向きにしか挿入できない電池ボックス

ポイント

あらかじめ対応できる対策。

フェールセーフ

フェールセーフは障害が発生した場合、安全性を確保する方向で停止するように設計しておく考え方。

  • 信号機が故障した場合、赤で停止する
  • 倒れた際に火が消えるストーブ

ポイント

安全性が最優先となる場合。

フェールソフト

フェールソフトはシステム障害が発生した場合、システム全体は止めず一部機能を切り離して稼働させ続ける方法です。(=縮退運転)

  • 片方のエンジンが止まっても飛び続ける飛行機

ポイント

継続性が優先事項となる場合。

フォールトアボイダンス

フォールトアボイダンスは品質管理を通して障害を防ぐ考え方です。

ポイント

障害を起こさない考え方。

フォールトマスキング

障害が発生しても外部に影響が伝播しないような仕組みにする考え方です。

フェールオーバ & フェールバック

フェールオーバは障害発生時に自動的に冗長な待機系コンピュータサーバ/システム/ネットワークに切り換える機能のことです。

フェールバックは、フェールオーバによって切り換えられたサーバ/システム/ネットワークを障害発生前の元の状態に戻す処理です。(切り戻し)

ポイント

フェールオーバ <=> フェールバック

フォールバック

フォールバックは障害が発生した場合、機能や性能を制限したり別の方式や系統に切り替えるなどして稼働状態を維持すること。またそのような切り替え手順・動作のことです(=縮退運転)。

フォールバック と フェールソフトとの違い

この2つの似ている単語は以下の違いで分類できます。

  • フェールソフト: 設計思想
  • フォールバック: 動作・行為

ポイント

フェイルソフトの考え方に従いフォールバックを行う

    

最新の投稿

Node.js で作成した REST API を Docker化
Node.jsでREST APIを作成 コンテナ化 コンテナ化定義 コンテナ化作業 参考 Node.js で作成した REST API を Docker化した際のメモです。 Node.jsでREST APIを作成 まずはNode.js…

JavaScriptで優先度付きキューを実装する
優先度付きキューについて ソース 参考 JavaScriptで優先度付きキュー (プライオリティキュー) を実装する 優先度付きキューについて 具体的には次のような機能があります。 キューに対して要素を優先度付きで追加 (push…

AWS Amplify で コンテナベースのデプロイを行い REST API を構築
検証した環境 やってみる 初期準備 パイプラインを確認 終了処理 参考 AWS Amplify で コンテナベースのデプロイを行い REST API を構築した際のメモです。 検証した環境 amplify 5.1.…

Pythonでソケット通信を実装しメッセージの送受信を行う
ソース server.py client.py 動かしてみる 参考 Pythonでソケット通信を実現する方法です。 ソース server.py サーバ側のソースです。 client.py…

next_permutationをJSで実装する
ソース 使い方 参考 C++で提供されている順列を生成する next_permutation のJS実装です。 ソース 順列が存在する場合はtrueを返し、そうでなければfalse…

応用情報技術者試験の合格体験記
受験時のステータス 受験結果 対策 スケジュール 午前問題 午後問題 参考書等 令和…

[JS]ラジアンから度数に度数からラジアンに変換する
コード 度数からラジアンへ ラジアンから度数へ サンプル ラジアンから度数に度数からラジアンに変換する際のスニペット。 コード 度数からラジアンへ ラジアンから度数へ サンプル

CentOS8 に Python + OpenCV をインストール
インストール テスト CentOS8 で標準で提供されているパッケージで Python + OpenCV 環境を構築する方法です。 検証した環境は CentOS8.3 (Docker) です。 インストール まず opencv…

[Perl] CentOS8 に plenv をインストール
インストール Step1 事前準備 Step2 PATHを通す (README通りにインストール) Step2 PATHを通す ($HOME以外にplenvをインストール) Step3 Perlインストール Step4 cpanmインストール CentOS…

JS/TSのclassでclass名を取得する
コード JS/TSのconstructorを利用して自分自身のクラス名を取得する際のメモ。 コード このコードの結果は次のようになります。

Tags

Dates

s-yoshiki
s-yoshiki
githubtwitterqiita
Web作ってますが、インタラクティブなプログラミングも好きです。
JavaScript / Vue / node.js / PHP / AWS / OpenCV
© 2021   404 motivation not found