フェンシング(Fencing)とは

フェンシング(Fencing)は、分散システムやクラスター環境において、共有リソースへのアクセス競合を防ぐため、障害が発生したノードを隔離・排除するプロセスです。

フェンシングの概要と目的

フェンシング(Fencing)は、特に高可用性(High Availability: HA)クラスターシステムで重要な役割を果たす概念です。

障害が発生したノード(コンピュータ)が、あたかも正常に動作しているかのように見せかけて、共有ストレージなどのリソースを操作し続けると、データ破損やシステムの不安定化を招く可能性があります。このような状態をスプリットブレイン(Split-Brain)といいます。

フェンシングは、このスプリットブレイン現象を防ぐために、問題のあるノードが共有リソースに一切アクセスできないようにする仕組みです。

主な目的は、データの整合性を確保し、クラスター全体の可用性を維持することです。フェンシングにより、障害ノードは共有リソースから強制的に切り離され、システムが正常な状態に復旧するのを妨げないようにします。

フェンシングの主要な手法

フェンシングには、その目的を達成するために様々な手法があります。

1. ディスクフェンシング

  • 概要:
    • 共有ディスクへのアクセスを物理的に遮断する手法です。
  • 動作:
    • 障害ノードが共有ストレージに接続できないように、SCSI予約やファイバーチャネルスイッチのポートを無効化するなどの操作を行います。これにより、障害ノードが共有ディスクに書き込みを行うことを防ぎ、データ破損を回避します。

2. 電源フェンシング

  • 概要:
    • 障害ノードの電源を強制的に遮断する手法です。
  • 動作:
    • IPMI(Intelligent Platform Management Interface)や専用の電源管理機器(PDU)を通じて、障害ノードを強制的に再起動またはシャットダウンします。これにより、ノード上のプロセスがすべて停止し、共有リソースへのアクセスが物理的に不可能になります。

3. I/Oフェンシング

  • 概要:
    • 障害ノードのI/Oを停止させる手法です。
  • 動作:
    • SAN(Storage Area Network)環境などでは、障害ノードからのデータ読み書きの要求をブロックすることで、共有ストレージへのアクセスを無効化します。これは、より粒度の細かい制御を可能にします。

スプリットブレイン問題とフェンシングの役割

スプリットブレインは、クラスター内の通信が途絶え、ノードが互いの状態を正しく認識できなくなることで発生します。

このとき、両方のノードが「自分だけが正常なノードである」と誤解し、同じ共有リソースを同時に操作しようとすることがあります。

フェンシングは、この誤解を解消し、一方のノードがもう一方のノードを確実に隔離することで、データの整合性を守ります。フェンシングが成功すると、隔離されたノードは共有リソースにアクセスできなくなり、残りのノードが正常なサービスを継続できます。このため、高可用性クラスターの設計と運用において、フェンシング機構の適切な実装とテストは極めて重要です。

関連用語

スプリットブレイン | 今更聞けないIT用語集
スプリットブレイン | 今更聞けないIT用語集
クラウドソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。