ネットワーク障害時におけるクラスタロック

ネットワーク障害時におけるクラスタロック

   クラスタのネットワークに障害が発生してクラスタノード同士が通信できなくなると、SGLXは正常な通信ができるクラスタノード同士(サブクラスタ)で、クラスタの再編成を試みます。

   SGLXでは、これから再編成されようとしているクラスタノード数が、障害前に構成していた正常なクラスタノード数の過半数以上を超えた場合、その過半数を超えたノードでクラスタが再編成されます。過半数を満たさないサブクラスタのノードは停止します。

   しかし2ノードクラスタの場合は過半数を満たすノードがないので、どちらのクラスタノードをクラスタシステムとして残すかを決める仕組みが必要にな ります。この仕組みはSGLXにおいてクラスタロックという概念で実装されています。SGLXにおけるクラスタロックの方式としては以下の2種類を選択で きます。


  • ロックLUN方式
  • クォーラムサーバ方式
表3:クラスタロックの方式

   クラスタロックLUN方式は、クラスタの状態を保存しておくクラスタロックLUN領域を共有ストレージの一部に持ちます。クラスタノードはクラスタ の状態をロックLUN領域に定期的にアクセスすることで確認します。クラスタに障害が発生した場合、クラスタノードはロックLUN領域にマーキングを行い ます。マーキングが成功したノードはクラスタの再編成を行い、マーキングができなかったノードはクラスタとして構成されず停止します。

ロックLUN方式

   ロックLUN方式では、共有ストレージにロックLUN専用の領域としてフォーマットします。ロックLUN領域はfdiskコマンドでパーティション を作成し、Linux領域(idは83)として確保します。SGLXはロックLUN領域の状態を定期的にチェックしており、ロックLUN領域に障害が発生 した場合はクラスタノードの/var/log/messagesファイルにメッセージが記録されるようになっています。


ロックLUN方式のSGLXシステム構成
図5:ロックLUN方式のSGLXシステム構成
(画像をクリックすると別ウィンドウに拡大図を表示します)

クォーラムサーバ方式

   一方クォーラムサーバ方式は、クラスタノード以外に別途クォーラムサーバと呼ばれるクラスタの調停役のサーバを1台配置します。障害発生時に、クラ スタノードはクォーラムサーバにアクセスし、クォーラムサーバのメモリにマーキングを行います。クォーラムサーバのマーキングに成功したノードはクラスタ の再編成を行います。

   クォーラムサーバはServiceguard Quorum Serverとして無償で提供されています。Serviceguard Quorum ServerはRPMパッケージで提供されており、rpmコマンドで容易にインストールできます。クォーラムサーバ方式のSGLXのシステム構成を図6に 示します。


クォーラムサーバ方式のSGLXシステム構成
図6:クォーラムサーバ方式のSGLXシステム構成
(画像をクリックすると別ウィンドウに拡大図を表示します)

クラスタLVMとパッケージ

   SGLXにおける共有ストレージは、全クラスタノードから物理的に接続されている必要がありますが、共有ストレージ内でHAクラスタ化されている1 つのリソースにアクセスできるのは1ノードのみです。複数のクラスタノードが共有ストレージ上で構成されている1つのリソースに同時にアクセスすることは できません。

   もし複数のクラスタノードが共有ストレージ上の1つのリソースへ同時にアクセスすると、共有ストレージ上のデータは破壊されてしまいます。

   しかし複数のクラスタノードから、共有ストレージ上に存在する別々のサービスにアクセスすることは可能です。この機能を実現するためには共有ストレージ上にLVM領域を作成する必要があります。

   SGLXでは共有ストレージ上に、HAクラスタ化したいリソースごとにLVMボリュームグループを作成します。SGLXで管理されるリソースは、共有ストレージ上に作成したLVMのボリュームグループに1対1で対応します。

   例えば、高可用性を持ったApache WebサーバとMySQLサーバを1つのクラスタシステムで実現するためには、Apache用のLVMボリュームグループとMySQL用のLVMボリュームグループを作成します。

   これにより、ApacheとMySQLのデータを単一の物理ストレージ上に持ち、別々のクラスタノードから同時に各アプリケーションを利用することが可能となります。


ApacheとMySQLのリソースをLVMボリュームグループ上に配置
図7:ApacheとMySQLのリソースをLVMボリュームグループ上に配置
(画像をクリックすると別ウィンドウに拡大図を表示します)

   またノードに障害が発生した場合、そのノード上で実行されていたアプリケーションやデータが保存されているボリュームグループは、障害ノードで非アクティブ化され、待機している正常なクラスタノードでアクティブになります。

パッケージ

   可用性をもったアプリケーション、リソース(仮想IPアドレス、ディスク領域、ファイルシステム、プロセスなど)、フェイルオーバー先のノード名な どをひとまとめにしたものをSGLXではパッケージと呼びます。SGLXでHAクラスタ化されるアプリケーションは、パッケージとして取り扱います。パッ ケージの実行に必要なものとして表4の2つのファイルがあります。


  • パッケージ構成ファイル
  • パッケージ制御スクリプト
表4:パッケージの実行に必要なファイル

   パッケージ構成ファイルには、パッケージ名、サービス名、フェイルオーバーポリシー、所属するLANのサブネットマスクなどを記述します。

   一方パッケージ制御スクリプトには、そのアプリケーションが利用するLVMボリュームグループ、ファイルシステムの種類、マウントポイント、仮想IPアドレス、カスタムスクリプトなどを記述します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30