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

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

💡 壊れても気づかせない、裏方の職人技
📌 このページのポイント
フォールトマスキング ― TMR(三重モジュラ冗長)の例 入力データ 系統A 結果 = 42 系統B ⚠ 結果 = 99 系統C 結果 = 42 多数決 (Voter) 正しい結果 42 1つの系統が故障しても、多数決で正しい結果を出力 → ユーザーは障害に気づかない
三重モジュラ冗長(TMR)によるフォールトマスキング
ひよこ ひよこ

フォールトマスキングって、エラーを無視するってこと?

ペンギン先生 ペンギン先生

無視じゃなくて「隠蔽」だよ。裏側では障害を検知して対処しているんだけど、表側のユーザーには何事もなかったかのように見せる技術なんだ。飛行機のエンジンが1基止まっても残りで飛び続けるようなイメージだね

ひよこ ひよこ

具体的にはどうやるの?

ペンギン先生 ペンギン先生

代表的なのはTMR(三重モジュラ冗長)だよ。同じ処理を3つの系統で同時に実行して、多数決で結果を決める。1つが壊れても残り2つが正しい答えを出すから、外から見ると障害がなかったように見えるんだ

ひよこ ひよこ

メモリにもそういう仕組みがあるって聞いたけど?

ペンギン先生 ペンギン先生

ECCメモリだね。データを保存するときに誤り訂正符号を付加して、1ビットのエラーなら自動的に修正する。サーバーデータセンターでは当たり前に使われていて、ユーザーが気づかないうちにエラーが直っているんだ

ひよこ ひよこ

フェイルオーバーとは違うの?

ペンギン先生 ペンギン先生

フェイルオーバーは障害が起きてから切り替える仕組みで、切り替え中に一瞬ダウンタイムが生じることもある。フォールトマスキングは障害が起きた瞬間に自動的に結果を補正するから、理論上はダウンタイムがゼロなんだ。より高いレベルの障害耐性と言えるね

ひよこ ひよこ

デメリットはないの?

ペンギン先生 ペンギン先生

いい質問だね。障害が隠蔽されるから、管理者が気づかないうちに冗長性が減っていることがあるんだ。3系統のうち1つが壊れてマスキングで隠されているのに放置すると、もう1つ壊れた瞬間に一気に落ちる。だから障害をマスキングしつつ、裏でアラートを上げて修理する運用が重要だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「フォールトマスキング」って出てきたら「障害が起きてもユーザーに気づかせない仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Fault Masking」 = 障害隠蔽
💬 fault(障害)をmask(隠す)する、つまり障害の存在をマスクで覆い隠すイメージだよ
← 用語集にもどる