LVS + Keepalived2015/06/10 |
LVS + Keepalived 構成で、LVS + Keepalived サーバーを冗長化します。
ここでは以下のような環境を例に設定します。 | +----------------+-----------------+ | | 192.168.0.30|eth0 --- VIP:192.168.0.29 --- eth0|192.168.0.31 +-------+--------+ +--------+-------+ | LVS+Keepalived | | LVS+Keepalived | +-------+--------+ +--------+-------+ 10.0.0.30|eth1 ----- VIP:10.0.0.29 ---- eth1|10.0.0.31 | | +----------------+-----------------+ | +------------+ | +------------+ | Backend01 |10.0.0.51 | 10.0.0.52| Backend02 | | Web Server +------------+-------------+ Web Server | | |eth0 eth0| | +------------+ +------------+ |
LVS + Keepalived サーバーの eth0, eth1 双方へ VIP を設定し、eth0 側の VIP宛へ来た HTTP パケットを
Backend01, Backend02 の Webサーバーへ NAT 方式で負荷分散します。
事前にバックエンド Webサーバーのデフォルトゲートウェイを LVS の内側 VIP (例では「10.0.0.29」) に設定しておきます。
|
|
[1] | ipvsadm および keepalived をインストールします。 |
[root@dlp ~]#
yum -y install ipvsadm keepalived # IP フォワードを有効にする [root@dlp ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf [root@dlp ~]# sysctl -p
touch /etc/sysconfig/ipvsadm [root@dlp ~]# systemctl start ipvsadm [root@dlp ~]# systemctl enable ipvsadm |
[2] | Keepalived 設定です。 双方の Keepalived サーバーで 1箇所を除き、以下のように同じ設定で OK です。 「priority」の箇所のみ双方のサーバーで重複した値にならないように適当に値を変更ください。 |
[root@dlp ~]# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.org
[root@dlp ~]#
vi /etc/keepalived/keepalived.conf # 新規作成 global_defs { notification_email { root@dlp.srv.world } notification_email_from root@dlp.srv.world smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_Server } vrrp_instance VI_1 { # 両方でバックアップとする(プライオリティで制御する) state BACKUP # 監視させるインターフェース interface eth0 # 仮想ルータのID virtual_router_id 51 # プライオリティ (双方のサーバーで値を変更) # (値の大きい方が優先度が高くなる) priority 100 # プライオリティが高い方へ復帰しない nopreempt # VRRP送信間隔 advert_int 1 # VRRPをやり取りする際の認証情報 authentication { auth_type PASS auth_pass password } virtual_ipaddress { # 仮想IPアドレス 192.168.0.29 dev eth0 10.0.0.29/24 dev eth1 } } virtual_server 192.168.0.29 80 { # 監視する間隔 delay_loop 3 # 負荷分散方式 lvs_sched rr # パケットの転送方式 lvs_method NAT protocol TCP # バックエンドサーバー#1 real_server 10.0.0.51 80 { weight 1 HTTP_GET { url { # 監視先URL path / # 正常な場合のステータスコード status_code 200 } # タイムアウト時間(秒) connect_timeout 3 } } # バックエンドサーバー#2 real_server 10.0.0.52 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 } } } systemctl start keepalived [root@dlp ~]# systemctl enable keepalived |
[3] |
以上で設定完了です。任意のクライアントPC から Webブラウザで設定した VIP にアクセスして動作確認してください。
また、いずれかの Keepalived サーバーや バックエンド Web サーバーをダウンさせて、サービスが正常に切り替わるかも確認してください。
|
Sponsored Link |