MySQL接続をLVSで管理しておけば、PGでの振り分けとか、リアルサーバ側でのIP変更対応が不要になって便利なんだけど、落とし穴があるような気がしてきた…。
httpなどの他プロトコルと同じ keepalived で管理していると、ipvsadmで個別にweightを変更するような対応ができない。
ipvsadmで個別にweight変更しても、結局keepalivedに戻されたりするので、keepalived.conf を書き換えてkeepalived再起動することになる。
そうすると、全LVS設定を巻き込むことになる。
httpの場合は特に問題が出ていないのだけど、mysql接続が巻き込まれると、sleepプロセス発生の原因になっているような…。
もちろん、timeout時間の問題については対応済なので、そこは潰している。
というか、違う用途の接続は、同じkeepalivedで管理しない方が良いのかもしれない。
IPVS(--check)とVRRP(--vrrp)を分けて運用するという手法があるくらいなので、一つのkeepalivedで一括管理していること自体がそもそもの間違いなのか…。