フェンシング(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のセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

クラウドネイティブ技術とアジャイル手法を駆使し、市場投入スピード(Time-to-Market)を最大化。「進化し続けるアプリケーション」を開発します。初期リリースを最速化し、拡張性と柔軟性を備えた、ビジネスの成長に追従できるアプリケーションを開発します。

DX・AI戦略支援

「何から手を付けるべきか分からない」「AIを導入したいが、費用対効果が見えない」といった経営課題に対し、技術とビジネスの両面から解を導き出します。 絵に描いた餅で終わる戦略ではなく、エンジニアリングの実装能力に基づいた、「実現可能で、勝てる技術戦略」を策定します。


リファクタリング・リアーキテクチャ

「システムが古くて改修できない」「障害が頻発する」といった技術的負債を解消します。既存資産の徹底的な診断に基づき、コードのクリーン化(リファクタリング)や、クラウドへの移行(リアーキテクチャ)を行い、システムの寿命を延ばしコストを最適化します。