keepalived と 当ててるパッチたち

今使ってるのは 1.1.17 、その前に使ってたのは 1.1.15 す。

keepalived 1.1.19

1.1.19ではpidfileとnopreemptパッチは取り込まれているので、

だけ当てています。

keepalived 1.1.17

  • keepalived-1.1.13-extcheck-1.0.patch
    • DSASさんところのヘルスチェック拡張パッチです。ふふ。DNS_CHECKとSSL_HELLOを使ってます。
    • ちなみに、このパッチを当てないで DNS_CHECK とか SSL_HELLO を使うと、keepalived.confにreal_serverを複数書いているにも関わらず、ipvs的には1つしか有効にならないという不思議状態になりますので、バージョンアップのときとかにはパッチ当て忘れないように気をつけてください。
  • keepalived-1.1.17_pidfile.patch
    • 1.1.16以降で、IPVS(--check)とVRRP(--vrrp)とが別プロセスで起動できなくなったのでその修正パッチです。
  • nopreempt from FAULT state not working


ちなみに、keepalivedをIPVS(--check)とVRRP(--vrrp)とでプロセスを分けて起動している理由はこうです。

IPVS的な変更(リアルサーバの追加とかバーチャルサーバの追加)は割と頻繁にあるオペレーションなのですが、その反映にはkeepalivedプロセスの再起動 (それか自分は使ってませんがSIGHUPによるconfの再読み込み) が必要になります。

このとき、もし1つのプロセスで運用していると、無関係なVRRPまで再起動がかかってしまいます。

おとなしく動いている子にはさわらない、というのが運用の定石です。しかもVRRPはフェイルオーバのトリガになるのでなおさらさわりたくありません。

ですので、IPVS (--check オプション) と VRRP (--vrrp オプション) とを別プロセスで起動して、それぞれ独立に再起動できるようにしているわけです。

前述の通り、IPVS は割と頻繁に再起動しますが、VRRP の方は keepalived のバージョンアップのときぐらいでほとんど再起動せず動きっぱなしです。

ちなみにdaemontools配下でkeepalived -n --check, keepalived -n --vrrp, なプロセスを動かしています。

……とDSAS勉強会のときに聞いたのでぼくもそうしてます^^

keepalived 1.1.15

合わせて読んでください手前味噌

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

*><*