一、keepalived+lvs作用
使用keepalived解决lvs的单点故障
高可用集群
二、调度器配置
lvs的配置是一主一从和两台WEB服务器分别IP为
mgt192.168.28.3
master 192.168.28.4
slave1 192.168.28.5
slave2 192.168.28.6
部署LVS主备调度器
调整master和backup的ARP参数(一致)全都安装一遍
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
安装keepalived
安装ipvsadm
yum install -y keepalived yum install -y ipvsadm modprobe ip_vs
配置keepalived
主配置完毕直接传送给从
scp keepalived.conf 192.168.28.4:/etc/keepalived/keepalived.conf
global_defs {
router_id NGINX1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.28.200
}
}
virtual_server 192.168.28.200 80 {
delay_loop 6
lb_algo rr
global_defs {
router_id NGINX1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.28.200
}
}
virtual_server 192.168.28.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 192.168.28.5 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.28.6 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
从
global_defs {
router_id NGINX1
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.28.200
}
}
virtual_server 192.168.28.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 192.168.28.5 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.28.6 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
创建文件夹这是在Linux系统中创建一个名为ipvsadm的文件。该文件是用于配置IPVS(IP Virtual Server)的工具,IPVS是一个Linux内核中的负载均衡器。在该文件中,可以设置IPVS的参数和规则,以便实现负载均衡和高可用性。
touch /etc/sysconfig/ipvsadm
启动master和backup的keepalived与ipvsadm
systemctl restart keepalived modprobe ip_vs ipvsadm -ln
查看lvs节点状态 ipvsadm -ln
三、web节点配置
1、调整ARP参数
vim /etc/sysctl.conf
vim /etc/sysctl.conf sysctl -p
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce=2
slave1和slave2 分别安装nginx
yum -y install epel-release yum -y install nginx cd /usr/share/nginx/html/ echo nginx2 > index.html cat index.html
2、 配置虚拟IP地址
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
web1与web2分别写一个index.html用于测试的网站根目录
web1与web2创建虚拟ip
cd /etc/sysconfig/network-scripts/ cp ifcfg-lo ifcfg-lo:0 vim ifcfg-lo:0 DEVICE=lo:0 IPADDR=192.168.28.200 NETMASK=255.255.255.255 ONBOOT=yes NAME=loopback:0
重启网络一下
systemctl restart network
3、添加回环路由
route add -host 192.168.28.200/32 dev lo:0
route add -host 192.168.28.200/32 dev lo:0
测试(下面可以看到测试成功,自动切换web1与web2)
两个库测试阶段只有一个可以用
关闭主库
[root@localhost ~]# systemctl stop keepalived
[root@localhost ~]# systemctl stop ipvsadm
开启备库
[root@localhost ~]# systemctl restart keepalived
[root@localhost ~]# curl 192.168.28.200
一、keepalived双机热备
二、概述
1、 Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。
2、 原理
在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但
是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
3、解决单点故障问题
三、安装
三台主机一台master两台slave
slave1和slave2安装keepalived
yum install -y keepalived
slave1
slave2
1、配置文件
/etc/keepalived/keepalived.conf
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.backup vim /etc/keepalived/keepalived.conf systemctl restart keepalived
2、配置项
router_id 1 定义节点id
state MASTER|BACKUP 定义节点主从状态
interface ens33 配置监听的网卡
virtual_router_id 51 同一个热备组要保持一致
priority 100 节点优先级
advert_int 1 多少秒进行一次心跳检测
authentication {
auth_type PASS
auth_pass 1111
}
keepalived节点的认证方式,同一个keepalived双机热备组一定要保持一致
virtual_ipaddress 配置VIP,即漂移地址
vrrp
四、功能模块
1、core
主进程启动
2、vrrp
vrrp协议:热备份路由协议
3、check
健康状态检测
五、配置双机热备
slave1和slave2
master
backup
六、配置共享文件
主master创建文件并分享出去
mkdir /opt/tuep vim /etc/exports systemctl restart nfs showmount -e 192.168.28.4
回到slave1和slave2上查看一下并挂载全部操作一下
showmount -e 192.168.28.4 mount 192.168.28.4:/opt/tuep /usr/share/nginx/html
回主服务master
echo nginx1 > index.html
回从服务器查看一下slava1和slave2
ll /usr/share/nginx/html/
先看slave1的IP a
主机查看一下
停止slave1的keepalived
去slave2查看IP a再去主机刷新一下
七、双机热备的脑裂现象
1、Keepalived配置里同一 VRRP实例
如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。
2、vrrp实例名字不一致、优先级一致
3、防火墙打开,导致心跳无法正常通信
4、网卡故障 网卡进行多路复用
八、VIP无法通信
注释:vrrp_strict