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 |
|
|