LVSの冗長構成化までを記載しましたので、今回は各サービスのバランシング設定についてを
記載します。
今回はlvs01, lvs02共に共通設定です。
設定を片方入れ忘れたりすると、Fail Overした際に一部サービスが停止したり、
人為的な運用トラブルを起こします。
設定を共有することもできますが、誤った設定で起動した際に全てのサービスが停止することから、
ミドルウェアにconfig check等の機能がない場合は片系試して設定を同期することを推奨しております。
LVSにhttpサービスを追加
- /etc/keepalived/keepalived.conf
-
############################################ # 210.171.134.231:80 # -> web01, web02 ############################################ virtual_server 10.12.0.231 80 { delay_loop 6 lvs_sched lc lvs_method NAT nat_mask 255.254.0.0 persistence_timeout 0 protocol TCP real_server 10.10.200.101 80 { weight 128 inhibit_on_failure TCP_CHECK { connect_port 80 connect_timeout 5 nb_get_retry 1 delay_before_retry 2 } } real_server 10.10.200.102 80 { weight 128 inhibit_on_failure TCP_CHECK { connect_port 80 connect_timeout 5 nb_get_retry 1 delay_before_retry 2 } } }
今回のサービス死活監視はTCPの80番ポートで通信が可能かどうかのチェックにしていますが、
keepalivedではHTTP_GETなどでHTTPステータスコードが200かどうかなど、細かく制御
可能ですので、どの程度になったら切り離すべきか、サービス要件にあわせて決定します。
個別サーバへのNAT
例えばSSHや、バックエンドアプリケーションなどのサービスを提供する際にバランシングは不要だが、
特定のサーバにアクセスを回したいという場合があります。
そう言った場合にもバランシング設定で1台固有にするというのもありですが、スケールアウトする可能性が
ないのであれば、管理上の面からNATで直接通信をまわしてしまうほうがよいでしょう。
例としてVIPへのSSHアクセスをweb01にまわす設定を記載します。
※ 前回の設定分はあえて記載していませんが、削除するとPrivate Network から外部に接続できませんのでご注意ください。
- /etc/sysconfig/iptables
-
*nat # for virtual server -A PREROUTING -d 10.12.0.231 -p tcp --dport 22 -j DNAT --to 10.10.200.101 COMMIT
keepalived のreload
keepalived をrestartすると、その際にvrrpでの死活監視が失敗して不要なFailOver/FailBackが発生します。 設定を変更する場合はreloadするだけに留めることをお勧めいたします。 冒頭でも述べていますが、reloadする際はスタンバイの片方で変更内容が問題ないか動作確認してから アクティブ側にも反映することを推奨いたします。- /etc/init.d/keepalived reload
- /sbin/ipvsadm -L -n
Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 10.12.0.231:80 lc -> 10.10.200.101:80 Masq 128 0 0 -> 10.10.200.102:80 Masq 128 0 0
後は実際にアクセスしてみて振り分けされているかどうか確認し、正しく冗長構成が行われているかどうか
じっくり確認します。





最近のコメント