lvs+keepalived實現LB熱備實現網站高可用

在lvs高負載中,LB節點(也就是常說的DR)會存在單點問題;這裏使用了keepalived來解決單點問題;實現冗餘;

看圖操作;

LB1:eth0:192.168.182.133  (vip:eth0:0 192.168.182.200)

LB2: eth0:192.168.182.138  (vip: eth0:0 192.168.182.200)

rs1: eth0:192.168.182.130  (vip: lo:0   192.168.182.200)

rs2: eth0:192.168.182.129  (vip: lo:0   192.168.182.200)

lvs模型爲DR;

首先在兩臺rs1、rs2上進行操作;

1
2
3
4
5
6
7
8
9
10
11
echo 2> /proc/sys/net/ipv4/conf/all/arp_announce
echo 2> /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 1> /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1> /proc/sys/net/ipv4/conf/eth0/arp_ignore
service network restart
ifconfig lo:0192.168.182.200netmask 255.255.255.255broadcast 182.168.182.200
route add -host 192.168.182.200dev lo:0
yum install httpd -y
echo web1 > /var/www/html/index.html    #rs1標識web1
echo web2 > /var/www/html/index.html    #rs2標識web2
service httpd start

LB1、LB2上進行操作;

1
yum install ipvsadm keepalived httpd -y

LB1的上的keepalived配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
! Configuration File forkeepalived
global_defs {
notification_email {
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_1
}
vrrp_instance VI_1 {
state MASTER    #LB2爲BACKUP
interfaceeth0
virtual_router_id 51
priority 101#LB2爲100
advert_int 1
authentication {
auth_type PASS
auth_pass lansgg
}
virtual_ipaddress {
192.168.182.200
}
}
virtual_server 192.168.182.20080{
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.182.13080{
weight 2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 1
connect_port 80
}
}
sorry_server 127.0.0.180
real_server 192.168.182.12980{
weight 2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 1
connect_port 80
}
}
}

LB1:

1
echo error:192.168.182.133> /var/www/html/index.html  #此步爲了測試錯誤展示頁面

LB2:

1
echo error:192.168.182.138> /var/www/html/index.html

LB1、LB2分別啓動keepalived、httpd、ipvsadm

在LB1查看發現如下:

發現vip和ipvs規則已經添加;

下面進行測試;

我們停掉rs1的httpd服務

你會發現LB1的ipvs規則變化;並且進行頁面測試;

現在你可以停掉LB1上的keepalived,vip會自動漂移到LB2上;服務及相關規則不受影響;

1
[root@LB1 ~]# /etc/init.d/keepalived stop

你發現vip由優先級爲100的頂替了,也就是LB2

而我們的業務沒有受到影響:

然後進行測試當停掉2臺rs,看看vip顯示的頁面;

上圖就相當於我們網站的錯誤提示頁面;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章