在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:
0
192.168
.
182.200
netmask
255.255
.
255.255
broadcast
182.168
.
182.200
route add -host
192.168
.
182.200
dev 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
for
keepalived
global_defs {
notification_email {
coffee_lanshan@sina.com
}
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
interface
eth0
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.200
80
{
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.130
80
{
weight
2
TCP_CHECK {
connect_timeout
3
nb_get_retry
3
delay_before_retry
1
connect_port
80
}
}
sorry_server
127.0
.
0.1
80
real_server
192.168
.
182.129
80
{
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显示的页面;
上图就相当于我们网站的错误提示页面;
欢迎大家更好的建议及补充;
本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1238530
