首页 > 应用开发 > IT综合 > LVS+Keepalived高可用群集
LVS+Keepalived高可用群集
一、LVS+keepalived高可用群集
1、LVS(Linux虚拟服务器Linux virtual server)
LVS实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法
2、keepalived
支持故障自动切换(Failover)
支持节点健康状态检查(Health Checking)
判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup节点保证业务正常,当 master 故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点
3、keepalived实现原理
keepalived采用VRRP热备份协议实现Linux 服务器的多机热备功能
VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案。
由多台路由器组成一个热备份组,通过共用的虚拟IP地址对外提供服务
每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务
二、实验
1、配置负载调度器
systemctl stop firewalld.service
setenforce 0
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p ###加载/etc/sysctl.conf配置参数
ipvsadm-save > /etc/sysconfig/ipvsadm ###保存负载分配策略
systemctl start ipvsadm ##开启服务,开启前需保存
ipvsadm -C ###清空分配策略
ipvsadm -A -t 192.168.184.10:80 -s rr #这里指定的虚拟IP为ens33网卡ip,重启keepliaved后会自动绑定虚拟网卡
ipvsadm -a -t 192.168.184.10:80 -r 192.168.184.40:80 -g
ipvsadm -a -t 192.168.184.10:80 -r 192.168.184.50:80 -g
ipvsadm ###启用策略
ipvsadm -ln ###查看节点状态
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.
2、部署NFS共享服务器
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum -y install nfs-utils rpcbind ##安装nfs两安装包
systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
systemctl enable rpcbind.service
mkdir /opt/lic
mkdir /opt/kiki
chmod 777 /opt/lic
chmod 777 /opt/kiki
vim /etc/exports ##写入共享策略
/opt/lic 192.168.184.0/24(rw,sync)
/opt/kiki 192.168.184.0/24(rw,sync) ###其权限可读写, 信息同步
exportfs -rv ###发布共享
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
3、配置节点服务器 (两台)
systemctl stop firewalld
setenforce 0
yum -y install httpd
systemctl start httpd
vim /etc/sysconfig/network-scripts/ifcfg-lo:0 ###编辑环回口的虚拟网卡
DEVICE=lo:0
>
IPADDR=192.168.184.188
NETMASK=255.255.255.255
service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
vim /etc/sysctl.conf ###编辑系统内核配置
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p ## 加载内核配置文件参数
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
web 1 和 2一样
showmount -e 192.168.184.30
mount.nfs 192.168.184.30:/opt/lic /var/www/html
echo 'this is lic web!' > /var/www/html/index.html
1.
2.
3.
mount.nfs 192.168.184.30:/opt/kiki /var/www/html
echo 'this is kiki web!' > /var/www/html/index.html
1.
2.
4、配置keepalived(主备DR服务器都要设)
cd /etc/keepalived/ ##将keepalived配置文件进行备份
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
......
global_defs { #定义全局参数
1.
2.
3.
4.
5.
smtp_server 127.0.0.1 ##10行修改邮件服务指向本地
router_id LVS_01 ##12行,指定服务器名称,主备不同,备为LVS_02
#vrrp_strict #加注释
}
vrrp_instance VI_1 { #定义VRRP热备实例参数 ###14行,vrrp_strict:严格遵守VRRP协议
state MASTER ##20行,指定热备状态,主为MASTER,备为BACKUP
interface ens33 ##21行,指定承载vip地址的物理接口
virtual_router_id 10 ##22行,指定虚拟路由器的ID号,每个热备组保持一致
##23行,指定优先级,主为100 ,备为99
priority 100
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #定义认证信息,每个热备组保持一致
auth_type PASS #认证类型
##27行,指定验证码,主备一致
auth_pass 123123
}
virtual_ipaddress { #指定群集vip地址
192.168.184.188
}
}
##34行,指定虚拟服务器地址(VIP),端口,定义虚拟服务器和web服务器池参数
virtual_server 192.168.184.188 80 {
delay_loop 6 #健康检查的间隔时间(秒)
lb_algo rr #指定调度算法,轮询(rr)
##37行,指定群集工作模式,DR模式
lb_kind DR
persistence_timeout 50 #连接保持时间(秒)
protocol TCP #应用服务采用的是 TCP协议
##41行,指定第一个web节点地址,端口
real_server 192.168.184.40 80 {
weight 1 #节点的权重
##43行,添加一下健康检查方式
TCP_CHECK {
connect_port 80 #添加检查的目标端口
connect_timeout 3 #添加连接超时(秒)
nb_get_retry 3 #添加重试次数
delay_before_retry 4 #添加重试间隔
}
}
real_server 192.168.184.50 80 { #添加第二个 Web节点的地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22198239/viewspace-2868431/ ,如需转载,请注明出处,否则将追究法律责任。