フェイルオーバーとは?フェイルバックとの違いと冗長化設計の鉄則

フェイルオーバーとは?フェイルバックとの違いと冗長化設計の鉄則の詳細について、専門知識を詳しくお届けします。

「自動復旧を設定していたから安心していたが、深夜にスマホが鳴り止まなくなった」——国内大手ECプラットフォームのインフラ刷新を主導したシニアエンジニアの手記には、背筋の凍るようなインシデントの記録が残されています。原因は、データベース自動切り替えの過敏なヘルスチェック設定と、ネットワーク分断時の排他制御不備でした。

特に危険視されるのが、両系統が同時に「自分が主系だ」と誤認して独立稼働する「スプリットブレイン(Split-Brain)」現象です。監視用のインターコネクト回線だけが瞬断した際、主系は正常に稼働しているにもかかわらず、待機系は「主系が死亡した」と判断して昇格。双方が共有ディスクやDBへ同時に書き込みを行った結果、データベースファイルが物理的に破損し、整合性修復に38時間以上の全面サービス停止を余儀なくされた事例が報告されています。

この惨劇を防ぐためのスプリットブレイン対策として、実務では「クォーラム(定足数)アルゴリズム」が不可欠です。サーバーノードを3台以上の奇数構成、あるいは第3の証人ノード(監視専用の軽量インスタンス)を配置し、過半数の合意が得られないノードを即座にネットワークから切り離すフェンシング処理(STONITH:Shoot The Other Node In The Head)を徹底します。

木村 陽翔

木村 陽翔

テックライター兼ウェブディレクター

デジタルガジェットとスマート家電の検証記事を多数執筆。失敗しないモノ選びを提案します。

Share this article
Twitter Facebook Pinterest