LVS + Keepalived #12013/08/20 |
LVS の設定のみでは、負荷分散先として設定したサーバーのどれかがダウンしても、
コネクションをダウンサーバーへ振り分ける可能性があります。
Keepalived を使って転送先サービスの死活監視をすると、そのような状態を回避して、
サービスの冗長化をすることができます。
ここでは以下のような環境を例に設定してみます。 | VIP|192.168.0.99 eth0|192.168.0.100 +----------+ --------------------| LVS |---------------------- +----------+ eth1|10.0.0.100 | +----------+ | +----------+ | |10.0.0.30 | 10.0.0.31| | | Backend1 |------------------------------| Backend2 | | Web | eth0 eth0| Web | +----------+ +----------+ |
LVS + Keepalived サーバーの eth0 側へ VIP を設定し、VIP宛へ来た HTTP パケットを Backend1, Backend2 の WebサーバーへNAT転送してみます。
なお、バックエンドWebサーバーの両方で、デフォルトゲートウェイを LVS の内側アドレスに設定しておく必要があります。
(例では「10.0.0.100」)
|
|
[1] | LVS の設定は Keepalived で制御されるので、まずは LVSの設定をクリアしておきます。 |
[root@gw ~]# ipvsadm -C [root@gw ~]# /etc/rc.d/init.d/ipvsadm save ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ] |
[2] | Keepalived インストール |
[root@gw ~]# yum -y install keepalived
|
[3] | Keepalived 設定 |
[root@gw ~]# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bk
[root@gw ~]#
vi /etc/keepalived/keepalived.conf # 新規作成 global_defs { notification_email { # フェイルオーバー時の通知先 cent@srv.world } # 通知メールの送信元 notification_email_from root@srv.world # 使用するメールサーバ smtp_server 127.0.0.1 smtp_connect_timeout 30 # 任意の名前 router_id LVS_Server } vrrp_instance VI_1 { # マスターサーバーとする state MASTER # 監視させるインターフェース interface eth0 # 仮想ルータのID virtual_router_id 51 virtual_ipaddress { # 仮想IPアドレス 192.168.0.99 } } virtual_server 192.168.0.99 80 { # 監視する間隔 delay_loop 3 # 負荷分散方式 lvs_sched rr # パケットの転送方式 lvs_method NAT protocol TCP # バックエンドサーバー#1 real_server 10.0.0.30 80 { weight 1 HTTP_GET { url { # 監視先URL path / # 正常な場合のステータスコード status_code 200 } # タイムアウト時間(秒) connect_timeout 3 } } # バックエンドサーバー#2 real_server 10.0.0.31 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 } } }
[root@gw ~]#
/etc/rc.d/init.d/keepalived start Starting keepalived: [ OK ] [root@gw ~]# chkconfig keepalived on
# Keepalived で振られたVIPは ifconfig では出ないので、以下で確認 [root@gw ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:16:36:92:b5:dd brd ff:ff:ff:ff:ff:ff inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0 inet 192.168.0.99/32 scope global eth0 inet6 fe80::216:36ff:fe92:b5dd/64 scope link valid_lft forever preferred_lft forever |
[4] |
以上で設定完了です。クライアントからWebブラウザで設定したVIPにアクセスして動作確認してください。
|
Sponsored Link |