HA(高可用性)構成でよく並べて語られる keepalived と Pacemaker は、
同じ「冗長化」でも 思想・守備範囲・重さがかなり違います。
混同されやすいので、まず結論から整理します。
まず一言でいうと
1. keepalived とは何か
役割
典型的な用途
Webサーバ
L4/L7ロードバランサ
APIゲートウェイ
単一サービスの Active/Standby
仕組み(ざっくり)
メリット
構成が非常にシンプル
学習コストが低い
設定ファイルが分かりやすい
OS標準パッケージで使えることが多い
動作が軽い
デメリット
管理対象はほぼ VIP のみ
リソース間の依存関係を表現できない
クラスタ全体の整合性管理はできない
Split Brain 対策が弱い(基本なし)
2. Pacemaker とは何か
役割
Pacemaker 単体ではなく、通常は以下とセットです。
Corosync(クラスタ通信)
STONITH(フェンシング)
典型的な用途
仕組み(ざっくり)
クラスタ全体で「今どうあるべきか」を合意
リソースの状態遷移を厳密に制御
異常時は再起動・移動・停止を判断
メリット
デメリット
学習コストが非常に高い
設定・運用が難しい
トラブル時の解析が大変
小規模構成では過剰
3. 機能比較表
| 観点 | keepalived | Pacemaker |
|---|
| 主目的 | VIP切替 | クラスタ全体管理 |
| 構成の重さ | 軽い | 重い |
| 学習コスト | 低 | 高 |
| 管理対象 | VIP中心 | 任意のリソース |
| 依存関係管理 | 不可 | 可能 |
| Split Brain 対策 | ほぼなし | あり |
| DB冗長化 | 不向き | 向いている |
| 運用難易度 | 低 | 高 |
4. 選定基準(重要)
keepalived を選ぶべきケース
VIP が切り替われば十分
サービスは stateless
障害時は「とりあえず切り替わればOK」
運用をシンプルにしたい
Web / LB / API など
判断基準
「IPが生きてれば仕事は回る」
Pacemaker を選ぶべきケース
DBやストレージを含む
データ整合性が最重要
リソースの順序制御が必要
障害時の挙動を厳密に制御したい
金融・基幹・24/365システム
判断基準
「間違った切替は、切替しないより危険」
5. よくある誤解
誤解①
「keepalivedでもDB HAできる?」
→ できなくはないが、やるべきではない
整合性・分断耐性が弱すぎる。
誤解②
「PacemakerはVIP切替だけに使うもの?」
→ オーバースペック
keepalivedで十分なことが多い。
6. 実務的な結論
フロント層(LB, Web)
バックエンド(DB, ストレージ)
迷ったら
まず keepalived
要件が増えたら Pacemaker
まとめ(短く)
keepalived
→ 速い・軽い・単純
Pacemaker
→ 正確・重い・難しい
HAは「強さ」より「正しさ」が重要
要件に対して過不足ない道具を選ぶのが正解
この記事へのコメント