LVS-DR + Keepalive搭建过程及分析HA的使用
一、实验拓扑
二、LVS配置
首先搭建好LVS-DR
可以参考如下Blog
LVS的DR模式搭建
Master
1、挂载keepalive.iso文件,并解压
[root@localhost ~]# mkdir /mnt/iso1
[root@localhost ~]# mount -o loop Keepalived.iso /mnt/iso1
[root@localhost ~]# cp -a /mnt/iso1/* .
2、解压后,安装其依赖包;源码安装keepalive
[root@localhost keepalived-1.2.2]# yum -y install kernel-devel openssl-devel popt-devel gcc*
[root@localhost keepalived-1.2.2]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-642.el6.x86_64/
[root@localhost keepalived-1.2.2]# make && make install
检查keepalived的启动文件是否存在,并将其加入到开机自启
[root@localhost keepalived-1.2.2]# ll /etc/init.d/keepalived
-rwxr-xr-x 1 root root 1288 2月 20 04:15 /etc/init.d/keepalived
[root@localhost keepalived-1.2.2]# chkconfig --add keepalived
[root@localhost keepalived-1.2.2]# chkconfig keepalived on
2、修改其keepalived主配置文件
! Configuration File for keepalived
global_defs {
router_id R1 #本地唯一标识 RID
}
}
#VRRP的实例1
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 66 属于同一个实例的VRID要相同
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.10.10.100
}
}
virtual_server 10.10.10.100 80 {
delay_loop 2
lb_algo rr
lb_kind DR
protocol TCP
#添加真实服务器的信息
real_server 10.10.10.13 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
real_server 10.10.10.14 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
}
3、测试
查看keepalive的日志文件,可见VRRP状态ARP接口都工作正常
Slave
1、配置集群地址
问题:
由于备LVS的网卡子接口IP也是10.10.10.100
- 那么处于同一局域网环境下,IP出现冲突;
- ARP包会将流量即给主又给备,因为主与备的IP相同
解决:
- IP地址的冲突是由网卡的启动脚本决定,修改之即可
- keepalive会绑定ARP权限,当主LVS使用的时候,备LVS是没有ARP权限的
可见,备LVS上提示地址冲突
修改网卡的启动文件
vim /etc/sysconfig/network-scripts/ifup-eth 大约在256行
将如下配置注释
重启网卡,虽然提示被使用了,但是网卡已经成功启动
关闭网卡的重定向
vim /etc/sysctl.conf 修改内核参数。 防止相同网络地址广播冲突, 如果有多快网卡需要设置多行
net.ipv4.conf.eth2.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
sysctl -p 刷新内核参数
2、修改主配置文件
直接从主LVS上将配置文件传给备LVS
[root@localhost ~]# scp /etc/keepalived/keepalived.conf root@10.10.10.12:/etc/keepalived/keepalived.conf
修改这三个地方
3、安装ipvsadm后,启动之
注意:
不用再次手动配置ipvsadm的集群节点信息,因为备LVS可以从keepalived的主配置文件中自动生成
三、测试
正常情况下,集群信息都是由主LVS提供
当主LVS的网卡出现故障或机器down机,则备LVS提供集群服务
1. 网卡出现故障
页面还是可以正常访问,查看备LVS的集群状态信息,可见LVS切换到了备LVS上
当主LVS的网卡恢复正常,切换到主LVS
2. 主LVSdown机
可见,页面还是正常访问,由于HA的作用,那么切换到备LVS
当主LVS恢复后,再次访问页面,可见集群站点部署在主LVS上
且备LVS的集群站点的状态没有信息