keepalived+lvs(HA+LB)
Keepalived+lvs (HA+LB)
主机环境:RHEL6 系列 selinux and iptables disabled
实验主机:
LVS‐ACTIVE:
192.168.2.15
LVS‐BACKUP:
192.168.2.117
LVS‐VIP:
192.168.2.27
Realsever:
192.168.2.243 192.168.2.111
主备机上的软件包安装
yum install gcc -y
yum install openssl-devel -y
yum install libnl-devel
tar zxf keepalived-1.2.12.tar.gz
cd keepalived-1.2.12
./configure --prefix=/usr/local/keepalived
make && make install
cd /usr/local/keepalived/ keepalived全部的文件目录都在这,能够作软连接放到规定路径
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
lncd keepalived/ -s /usr/local/keepalived/sbin/keepalived /sbin/
cd /etc/keepalived/ 修改配置文件
ls
vim keepalived.conf (格式严格)
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost #接收警报的 email 地址,能够添加多个
}
notification_email_from keepalived@joan2.example.com #设置邮件的发送地址
smtp_server 127.0.0.1 #设置邮件的发送地址
smtp_connect_timeout 30 #设置链接 smtp 服务器超时时间
router_id LVS_DEVEL #load balancer 的标识 ID,用于 email 警报
}
vrrp_instance VI_1 {
state MASTER #备机改成 BACKUP,此状态是由 priority 的值来决定的,当前
priority 的值小于备机的值,那么将会失去 MASTER 状态
interface eth0 #HA 监测网络接口
virtual_router_id 45 #主、备机的 virtual_router_id 必须相同,取值 0-255
priority 78 #主机的优先级,主机优先级必定要大于备机
advert_int 1 #主备之间的通告间隔秒数
authentication {#主备切换时的验证
auth_type PASS #设置验证类型,主要有 PASS 和 AH 两种
auth_pass 1111 #设置验证密码,在一个 vrrp_instance 下,MASTER 与 BACKUP 必
须使用相同的密码才能正常通讯
}
virtual_ipaddress {
192.168.2.27#设置虚拟 IP 地址,能够设置多个虚拟 IP 地址,每行一个
}
virtual_server 192.168.2.27 80 {#定义虚拟服务器
delay_loop 6 #每隔 6 秒查询 realserver 状态
lb_algo rr #lvs 调度算法,这里使用轮叫
lb_kind DR #LVS 是用 DR 模式
#persistence_timeout 50 #会话保持时间,单位是秒,这个选项对于动态网页是很是有
用的,为集群系统中 session 共享提供了一个很好的解决方案。有了这个会话保持功能,用户的
请求会被一直分发到某个服务节点,直到超过这个会话保持时间。须要注意的是,这个会话保
持时间,是最大无响应超时时间,也就是说用户在操做动态页面时,若是在 50 秒内没有执行任
何操做,那么接下来的操做会被分发到另外节点,可是若是一直在操做动态页面,则不受 50 秒
的时间限制。
protocol TCP #指定转发协议类型,有 tcp 和 udp 两种
real_server 192.168.2.243 80 { #配置服务节点
weight 1 #配置服务节点的权值,权值大小用数字表示,数字越大,权
值越高,设置权值的大小能够为不一样性能的服务器分配不一样的负载,能够对性能高的服务器设
置较高的权值,而对性能较低的服务器设置相对较低的权值,这样就合理的利用和分配了系统
资源
TCP_CHECK { #realserve 的状态检测设置部分,单位是秒
connect_timeout 3 #10 秒无响应超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔
}
}
real_server 192.168.2.111 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}能够照这样添加虚拟服务器
/etc/init.d/keepalived restart 启动keepalived
分别在 realserver 上执行如下命令
192.168.2.243
ifconfig eth0:0 192.168.2.27 netmask 255.255.255.255 up 添加虚拟ip
arptables -A IN -d 192.168.2.27 -j DROP
arptables -A OUT -s 192.168.2.27 -j mangle --mangle-ip-s 192.168.2.243
/etc/init.d/arptables_jf save
/etc/init.d/arptables_jf start
192.168.2.111
ifconfig eth0:0 192.168.2.27 netmask 255.255.255.255 up
arptables -A IN -d 192.168.2.27 -j DROP
arptables -A OUT -s 192.168.2.27 -j mangle --mangle-ip-s 192.168.2.111
/etc/init.d/arptables_jf save
/etc/init.d/arptables_jf start
检测:
1.高可用测试:中止 master 上的 keepalived 服务,看 backup 是否接管。
2. 负载均衡测试:访问 http://192.168.2.27,看到页面在两个 realserver 上切换表示成功!
你也能够经过 ipvsadm -Lnc 查看详细链接状况!
3. 故障切换测试:任意关闭 realserver 上的 httpd 服务,Keepalived 监控模块是否能及时发现,
而后屏蔽故障节点,同时将服务转移到正常节点来执行。
西
欢迎关注本站公众号,获取更多信息