【製品解説】EDB Failover Manager(EFM)5.3.0
Postgres 高可用性管理の要 〜厳格なSSL検証に対応し、レプリケーションの可観測性を強化:Postgresの自動フェイルオーバーを担うEFMが進化。最新版ではSSLの「verify-full」に対応し接続セキュリティを厳格化。レプリケーションスロット前進エラーの警告通知やVIP誤割当の修正も施し、スプリットブレインを防ぐ堅牢なHA環境を提供します。
1. EFMとは?
EDB Failover Manager(EFM)は、Postgresデータベースクラスター向けの高可用性(HA)管理ツールです。ストリーミングレプリケーションを用いたプライマリ・スタンバイ構成において健全性を監視し、障害発生時に自動フェイルオーバーを実行します。PostgreSQLおよびEDB Postgres Advanced Serverの両方に対応し、プライマリノード、スタンバイノード、およびクォーラム維持用のウィットネスノードでクラスターを構成します。
2. EFMの仕組み
EFMは主に以下の機能とメカニズムにより、ダウンタイムを防ぎスプリットブレインを回避します。
- 継続的な健全性監視: エージェントが定期的にDB状態をチェックし、接続途絶時はクラスター全体で障害を検証。
- 自動フェイルオーバーとVIP管理: 障害確定時に最適なスタンバイを昇格させ、仮想IP(VIP)を新プライマリへ自動再割り当て。
- 各種ツールとの連携: 複数ホスト指定(libpq/JDBC)、PgBouncer、Pgpool-IIとの連携やイーガー・フェイルオーバーに対応。
- クォーラム判定とフェンシング: ウィットネスノードによる過半数判定と孤立ノードの自動停止(隔離)により、多重書き込みを防止。
3. 主なメリット
- 自動化された高可用性: 計画外障害発生時における手動昇格作業を不要にし、復旧時間を大幅短縮。
- 柔軟な導入構成: VIP運用、クライアント側フェイルオーバー、プロキシやコネクションプーラーとの連携に幅広く対応。
- リソース競合の回避: クラウド環境(NLB構成等)でDBノードとプーラーを切り離し、システム負荷の衝突を防止。
- 通知とカスタムスクリプト: アラート通知(メール等)や昇格前後のカスタムフェンシングスクリプトを実行可能。
- 多様なプラットフォーム対応: 主要Linuxディストリビューションおよび異種CPUアーキテクチャ(x86_64 / Power等)の混在環境に対応。
4. バージョン5.3.0 新機能
【機能強化および修正点】
- SSLモード「verify-full」サポート:
jdbc.sslmodeプロパティで厳格なホスト検証を行うverify-fullモードに対応。 - スタンバイ再構築時の設定適用向上: 再作成時に
db.config.dirプロパティ値を適切に反映するよう改善。 - レプリケーションスロット前進エラー警告: スタンバイ上でスロット前進が妨げられた際、管理者への警告通知機能を導入。
- rewind前のチェックポイント強制実行: 障害プライマリ再構成時、
pg_rewind判定前に現プライマリでチェックポイントを実行。 - メモリ割り当て拡張とライブラリ更新:
efm実行時のメモリ上限を拡大しOOMエラーを対策。Log4J 2.25.3 および Bouncy Castle 2.1.2 へ更新。 - VIP割り当て不具合の修正: スタンバイノードへの誤った仮想IP割り当て検知漏れ(リグレッション)を解消。