【ふぉーるとますきんぐ】
フォールトマスキング とは?
最終更新:
💡 壊れても気づかせない、裏方の職人技
システムの一部で故障が起きても、冗長な構成や誤り訂正によって誤りを打ち消し、外から見える結果に影響させないようにする技術。フォールトトレランス(障害耐性)を実現する方法の一つ。
📌 このページのポイント
フォールトマスキングって、エラーを無視するってこと?
無視じゃなくて「打ち消す」だよ。裏側では余分に用意した部品や符号が誤りを補っていて、ユーザーには何事もなかったかのように正しい結果を見せる技術なんだ
具体的にはどうやるの?
代表的なのはTMR(三重モジュラ冗長)だよ。同じ処理を3つの系統で同時に実行して、多数決で結果を決める。1つが誤った答えを出しても、残り2つが一致していれば正しい答えが選ばれるから、外から見ると障害がなかったように見えるんだ。ただ、2つが同時に同じように誤ると隠せないよ
メモリにもそういう仕組みがあるって聞いたけど?
フェイルオーバーとは違うの?
フェイルオーバーは、故障を検出してから予備の系統に切り替える仕組みで、切り替えの間に処理が止まることがある。フォールトマスキングは、冗長な結果や符号から正しいものを復元するから、故障の検出や切り替えを待たずに正しい出力を続けられるんだ。ただし隠せるのは、用意した冗長性で補える範囲の故障だけだよ
デメリットはないの?
いい質問だね。障害が隠れるから、管理者が気づかないうちに冗長性が減っていることがあるんだ。3系統のうち1つが壊れたまま放置すると、もう1つおかしくなった瞬間に正しい答えを選べなくなる。信頼性の研究でも、単純なマスキングは冗長性が失われていくことを隠してしまうから、実際には誤りの検出と組み合わせるとされているよ
まとめ:ざっくりこれだけ覚えればOK!
「フォールトマスキング」って出てきたら「一部が壊れても、冗長性で誤りを打ち消してユーザーに気づかせない仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Fault Masking」 = 障害隠蔽
💬 fault(障害)をmask(隠す)する、つまり障害の影響をマスクで覆い隠すイメージだよ