【ふぉーるとますきんぐ】

フォールトマスキング とは?

最終更新:
💡 壊れても気づかせない、裏方の職人技

システムの一部で故障が起きても、冗長な構成や誤り訂正によって誤りを打ち消し、外から見える結果に影響させないようにする技術。フォールトトレランス(障害耐性)を実現する方法の一つ。

📌 このページのポイント
フォールトマスキング ― TMR(三重モジュラ冗長)の例 入力データ 系統A 結果 = 42 系統B ⚠ 結果 = 99 系統C 結果 = 42 多数決 (Voter) 正しい結果 42 1系統が誤っても多数決で正しい結果を出力 → 利用者は気づかない(2系統同時の誤りは隠せない)
三重モジュラ冗長(TMR)によるフォールトマスキング
ひよこ ひよこ
フォールトマスキングって、エラーを無視するってこと?
ペンギン先生 ペンギン先生
無視じゃなくて「打ち消す」だよ。裏側では余分に用意した部品や符号が誤りを補っていて、ユーザーには何事もなかったかのように正しい結果を見せる技術なんだ
ひよこ ひよこ
具体的にはどうやるの?
ペンギン先生 ペンギン先生
代表的なのはTMR(三重モジュラ冗長)だよ。同じ処理を3つの系統で同時に実行して、多数決で結果を決める。1つが誤った答えを出しても、残り2つが一致していれば正しい答えが選ばれるから、外から見ると障害がなかったように見えるんだ。ただ、2つが同時に同じように誤ると隠せないよ
ひよこ ひよこ
メモリにもそういう仕組みがあるって聞いたけど?
ペンギン先生 ペンギン先生
ECCメモリだね。データに誤り訂正符号を付けて保存し、読み出すときに1ビットの誤りなら自動で直すよ。よく使われるSECDEDという方式では、2ビットの誤りは検出できても訂正まではできないんだ。サーバーのように信頼性が大事な機器で使われているよ
ひよこ ひよこ
フェイルオーバーとは違うの?
ペンギン先生 ペンギン先生
フェイルオーバーは、故障を検出してから予備の系統に切り替える仕組みで、切り替えの間に処理が止まることがある。フォールトマスキングは、冗長な結果や符号から正しいものを復元するから、故障の検出や切り替えを待たずに正しい出力を続けられるんだ。ただし隠せるのは、用意した冗長性で補える範囲の故障だけだよ
ひよこ ひよこ
デメリットはないの?
ペンギン先生 ペンギン先生
いい質問だね。障害が隠れるから、管理者が気づかないうちに冗長性が減っていることがあるんだ。3系統のうち1つが壊れたまま放置すると、もう1つおかしくなった瞬間に正しい答えを選べなくなる。信頼性の研究でも、単純なマスキングは冗長性が失われていくことを隠してしまうから、実際には誤りの検出と組み合わせるとされているよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「フォールトマスキング」って出てきたら「一部が壊れても、冗長性で誤りを打ち消してユーザーに気づかせない仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Fault Masking」 = 障害隠蔽
💬 fault(障害)をmask(隠す)する、つまり障害の影響をマスクで覆い隠すイメージだよ

参考資料

← 用語集にもどる