LVS ロードバランサのフィナーレは、
LVS自体の冗長化だ。
もう1機LVSを追加しAct/Std構成にする。
■LVS01の仮想IPを解除する
VIPはkeepalivedのVRRPで管理するため、
前回まで使用していた、eth0:0を削除する。
#vi /etc/network/interfaces
auto lo eth0 bond0
iface lo inet loopback
allow-hotplug eth0 eth1 eth2
iface eth0 inet static
address 192.168.24.161
netmask 255.255.255.0
gateway 192.168.24.1
#iface eth0:0 inet static
#address 192.168.24.160
#netmask 255.255.255.0
#gateway 192.168.24.1
iface bond0 inet static
address 10.10.10.11
netmask 255.255.255.0
broadcast 10.10.10.255
slaves eth1 eth2
auto lo eth0 bond0
iface lo inet loopback
allow-hotplug eth0 eth1 eth2
iface eth0 inet static
address 192.168.24.161
netmask 255.255.255.0
gateway 192.168.24.1
#iface eth0:0 inet static
#address 192.168.24.160
#netmask 255.255.255.0
#gateway 192.168.24.1
iface bond0 inet static
address 10.10.10.11
netmask 255.255.255.0
broadcast 10.10.10.255
slaves eth1 eth2
■LVS02をセットアップ
・ifslave,ipvsadm,keepalivedのインストール
・LVS01にあわせてネットワーク設定
■LVS01 VRRP設定
vrrp_instance VI {
state BACKUP
interface bond0
garp_master_delay 5
virtual_router_id 1
priority 101
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass p@ssw0rd
}
virtual_ipaddress {
192.168.24.160/24 dev eth0
}
}
virtual_server_group PROXY10 {
192.168.24.160 8080
}
virtual_server group PROXY10 {
delay_loop 3
lvs_sched wrr
lvs_method DR
protocol TCP
real_server 10.10.10.10 8080{
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 8080
connect_timeout 2
}
}
real_server 10.10.10.20 8080{
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 8080
connect_timeout 2
}
}
}
state BACKUP
interface bond0
garp_master_delay 5
virtual_router_id 1
priority 101
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass p@ssw0rd
}
virtual_ipaddress {
192.168.24.160/24 dev eth0
}
}
virtual_server_group PROXY10 {
192.168.24.160 8080
}
virtual_server group PROXY10 {
delay_loop 3
lvs_sched wrr
lvs_method DR
protocol TCP
real_server 10.10.10.10 8080{
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 8080
connect_timeout 2
}
}
real_server 10.10.10.20 8080{
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 8080
connect_timeout 2
}
}
}
■LVS02 VRRP設定
vrrp_instance VI {
state BACKUP
interface bond0
garp_master_delay 5
virtual_router_id 1
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass p@ssw0rd
}
virtual_ipaddress {
192.168.24.160/24 dev eth0
}
}
virtual_server_group PROXY10 {
192.168.24.160 8080
}
virtual_server group PROXY10 {
delay_loop 3
lvs_sched wrr
lvs_method DR
protocol TCP
real_server 10.10.10.10 8080{
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 8080
connect_timeout 2
}
}
real_server 10.10.10.20 8080{
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 8080
connect_timeout 2
}
}
}
state BACKUP
interface bond0
garp_master_delay 5
virtual_router_id 1
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass p@ssw0rd
}
virtual_ipaddress {
192.168.24.160/24 dev eth0
}
}
virtual_server_group PROXY10 {
192.168.24.160 8080
}
virtual_server group PROXY10 {
delay_loop 3
lvs_sched wrr
lvs_method DR
protocol TCP
real_server 10.10.10.10 8080{
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 8080
connect_timeout 2
}
}
real_server 10.10.10.20 8080{
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 8080
connect_timeout 2
}
}
}
LVS01と違うのはpriorityだけ。
■VRRPを動かす
1号機のkeepalivedを動作させる。
#/etc/init.d/keepalived start
syslogにMASTERとなった事が出力されていれば、OK。
#ip addr show eth0
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:ff:3b:21 brd ff:ff:ff:ff:ff:ff
inet 192.168.24.161/24 brd 192.168.24.255 scope global eth0
inet 192.168.24.160/24 scope global secondary eth0
2: eth0:
link/ether 08:00:27:ff:3b:21 brd ff:ff:ff:ff:ff:ff
inet 192.168.24.161/24 brd 192.168.24.255 scope global eth0
inet 192.168.24.160/24 scope global secondary eth0
VIPが設定されているはずだ。
次に2号機でもkeepalivedを動作させよう。
2号機はBACKUPとなりVIPは振られない。
■障害テスト
1.クライアントからVIP宛にping -t しておこう。
2.LVS01をshutdownする。
3.pingは途切れず、クライアントからブラウザでPROXY経由でWebが見れる事を確認
自分の場合は1回だけPing応答が途切れたが、タイミングの問題だろう。
以上、動作も問題ない。
0 件のコメント:
コメントを投稿