keepalived と 当ててるパッチたち
今使ってるのは 1.1.17 、その前に使ってたのは 1.1.15 す。
keepalived 1.1.17
- keepalived-1.1.13-extcheck-1.0.patch
- keepalived-1.1.17_pidfile.patch
- nopreempt from FAULT state not working
- 詳しくは メルマガアーカイブ: [Clustcom News] VRRP、こんな失敗大変だ を参照
- ちなみに試した限りでは、SIGTERM での keepalived の再起動ではこの現象は起りませんでした。keepalived が生きたまでリンクup/downが発生したときに発現するようです。追っかけてないすけど、起動時のステートでは問題なくて、BACKUP状態からの状態遷移に問題があるんでしょうね。
ちなみに、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
- keepalived-1.1.13-extcheck-1.0.patch
- nopreempt from FAULT state not working
- この2つは1.1.17のと同じ。
- Problem with vrrp_script child process not being
- このスレッドの keepalived-1.1.15-sr2.patch を当ててました。
- 1.1.16 で取り込まれたようなので、1.1.17では当ててません。
合わせて読んでください手前味噌
[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
- 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己
- 出版社/メーカー: 技術評論社
- 発売日: 2008/08/07
- メディア: 単行本(ソフトカバー)
- 購入: 133人 クリック: 2,270回
- この商品を含むブログ (288件) を見る