合肥整站推广,微信网站怎么做,wordpress站外链接,布吉网站建设哪家公司便宜点keepalived介绍 keepalived为LVS应运而生的高可用服务。LVS的调度器无法做高可用#xff0c;于是keepalived这个软件。实现的是调度器的高可用。
但是keepalived不是专门为LVS集群服务的#xff0c;也可以做其他代理服务器的高可用。 LVS高可用集群的组成 主调度器备调度器于是keepalived这个软件。实现的是调度器的高可用。
但是keepalived不是专门为LVS集群服务的也可以做其他代理服务器的高可用。 LVS高可用集群的组成 主调度器备调度器一般是一主二备
主调度器能够正常运行时由主调度器进行后端真实服务器的分配处理。其余的备用调度器都处于冗余状态。备用调度器是不参与集群的运转只有主调度器出现了故障无法运行此时备调度器才会承担主调度器的工作
一旦主调度器恢复工作继续由主调度器进行处理备调度器又成为冗余基于VRRP 主服务器作用转发数据发送报文告诉备服务器自己在线。备服务器作用监听主服务器发来的数据收不到消息的时候就接替主服务器。
VRRPkeepalived是基于VRRP协议实现LVS的高可用。解决了调度器和单节点的故障问题。
VRRP协议提高网络路由器的可靠性开发的一种协议。
选举出主和备预先设定好了主和备的优先级备的优先级低。一旦开启服务优先级高的会自动抢占主的位置
vrrp的组播通信224.0.0.18 vrrp协议当中的主备服务器通过这个组播地址进行通信交换主备服务器之间的运行状态。主服务器会周期性的发送VRRP报文消息以告知其他服务器主服务器现在的状态。
主备切换主服务器发生故障或者不可达VRRP协议会把请求转义到备服务器。通过组播地址VRRP可以迅速的通知其他服务器发送了主备切换确保新的主服务器可以正常的处理客户端的请求。
故障恢复一旦主服务器恢复通信由组播地址进行通信发现在恢复的主服务器优先级更高会抢占原主服务器的位置成为主服务器调度和接受请求。 高可用集群的脑裂现象以及预防措施 高可用集群的脑裂现象及其诱发原因 脑裂现象主和备同时拥有vrrp地址。在高可用系统当中联系两个节点的心跳线本来是一体的。动作协调的高可用系统。心跳线断开之后分裂了两个独立的个体。主备之间失去了联系都以为是对方出现了故障。两个调度器就像脑裂人一样抢占VIP。导致主有VIP备也有VIP因此整个集群失败。
解决方法
软件层面
1.配置文件有问题
2.通过tcpdump抓包分析
3.重启两边服务 网络层面
1.高可用服务器之间心跳线检测失败。主备之间无法进行通信。
2.硬件层面
2.1连接主备之间的心跳线老化
2.2网卡或者网卡驱动失效IP地址配置冲突
2.3 防火墙没有配置心跳线消息的传输通道
2.4后端服务器的配置问题心跳方式不同心跳广播冲突软件BUG 脑裂预防预防措施 针对脑裂现象的产生运维人员第一时间要做的不是处理发生故障的调度器或则故障线路而是首先确保业务不会因此中断进行脑裂的预防尤为重要。出现问题先保证业务的进行再进行排障。 keepalived的体系和模块 全局模块core模块负责整个keepalived的启动加载和维护
VRRP模块实现VRRP协议主备切换
check负责健康检查检查后端真实服务器的健康情况配置在真实服务器的模块当中。 LVSkeepalived的实时和部署 test1 主调度器 20.0.0.10 test2 备调度器 20.0.0.20 后端真实服务器1 20.0.0.50 后端真实服务器2 20.0.0.90 vip地址20.0.0.100 客户端20.0.0.60 test1
//关闭防火墙
systemctl stop firewalld
setenforce 0yum -y install ipvsadm keepalived
//安装所需工具cd /etc/keepalived.conf
cp keepalives.conf keepalives.conf.bak
//对重要文件进行备份 vim keepalived.conf
smtp_server 127.0.0.1 //line 10
route_id LVs_01 // line 12
//主备服务器名称id不能一致#vrrp_strict //line 15
//取消严格遵守vrrp协议功能注释该行state MASTER //LINE 22
//表示身份主备 备BACKUP
interface ens33 //line 24
//指定vip的物理接口virtual_router_id 10 //26
//虚拟路由的id号priority 100
//优先级advert-int 1
//发送报文的间隔时间工作中一般为30authenication {auth_type PASSauth_pass 1111
}virtuak_ipaddress {192.168.233.100//指定集群的真实地址
}
virtual-server 20.0.0.100 80 {
delay_loop 6
//健康检查的间隔时间
lb_algo rr
//负载均衡的调度算法
lb_kind DR //46
//指定整个LVS的工作方式要大写
persistence_timeout 0 //48
//连接保持时间
protocol TCP
//
}real_server 20.0.0.30 80 { //52
weight 1
//后端真实服务器的轮询权重
TCP_CHECK {
//对真实服务器的检查connect_port 80//检测目标的端口号此处检测是30connect_timeout 3//检测连接超时时间nb_get_retry 3//重试次数delay_before_retry 4//重试的间隔秒数}
}real_server 20.0.0.40 80 { //52
weight 1
//后端真实服务器的轮询权重
TCP_CHECK {
//对真实服务器的检查connect_port 80//检测目标的端口号此处检测是30connect_timeout 3//检测连接超时时间nb_get_retry 3//重试次数delay_before_retry 4//重试的间隔秒数}
}
}
wq! systemctl restart keepalived.service
ipvsadm -ln
//重启服务并查看 test2
//关闭防火墙
systemctl stop firewalld
setenforce 0yum -y install ipvsadm keepalivedcd /etc/keepalived.conf
cp keepalives.conf keepalives.conf.bakscp root192.168.233.10:/etc/keepalived/keepalived.conf /etc/keepalived
//远程复制到test2本机
//此处得修改route_id号等 安装nginxsystemctl restrat nginx
cd /usr/local/nginx/html
vim index.html
//制作访问页面
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
ifup ifcfg-lo:0
route add -host 20.0.0.100 dev lo:0
vim /etc/sysctl.confnet.ipv4.conf.lo.arp_ignore1
//设置lo接口忽略任何接口的ARP请求net.ipv4.conf.lo.arp_announce2
//设置lo接口仅会相应本地的IP地址其他的接口ARP请求全部忽略
net.ipv4.conf.all.arp_ignore1
//所有接口忽略来自任务接口的ARP请求net.ipv4.conf.all.arp_announce2
//所有接口仅会响应本地的IP地址的ARP请求其他的接口的ARP请求全部忽略sysctl -p
//刷新
创建页面内容 修改内核 添加虚拟网卡
test3 test4 操作相同
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICElo:0
ONBOOTyes
IPADDR20.0.0.100
NETMASK255.255.255.255
wqifup ifcfg-lo:0
route add -host 20.0.0.100 dev lo:0 测试
本机访问
curl 本机ip 客户端访问
curl 20.0.0.100 下面关闭其中一个keepalived
关闭主站 观察备站 curl 20.0.0.100依然可以负载均衡访问成功 测试轮询 查看端口加权成功 结果 keepalivednginx实验 nginx1 20.0.0.10 主 nginx2 20.0.0.20 备 实验开始前先备份以防报错而无法修改 主站
systemctl restart nginx
yum -y install keepalived
cd /etc/keeplived
cp keepalived.conf keepalived.conf.bak smtp_server 127.0.0.1
#vrrp_strict
virtual_route_id 51vrrp_script check_nginx {script /opt/check_nginx.shinterval 5
}
//添加脚本
vrrp_intance VI_1 {}virtual_ipaddress {
192.168.233.100
}
track_script {
check_nginx
}scp root192.168.233.61:/etc/keepalived/keepalived.conf /etc/keepalives/nginx2
/opt
vim check_nginx.sh
/usr/bin/curl -I http://localhost /dev/null
if [ $? -ne 0 ]
then
systemctl stop keepalived
fi
wq
chmod 777 check_nginx.shnginx1
拖入脚本
chmod 777 check_nginx.sh
systemctl restart keepalived.service
ip addrnginx2
设置访问页面 总结
keepalived的工作方式基于VRRP协议
1.确定主备
2.vrrp只能有一个出现在主服务器上。
3.通过vrrp 组播地址 224.0.0.18 发送vrrp报文检测主的心跳
4.主备切换主出现故障vip地址会漂移到备服务器。
5.主恢复了vrrp地址还会回到主
6.脑裂 主备都有VIP
硬件层面软件层面
脑裂解决软件层面
1.检查配置文件重启
7.keepalive不是只能和lvs搭配也可以和其他服务配合实现高可用 如何解决keepalived脑裂问题
1.硬件准备两条心跳线这样短一条依然能够传送心跳消息
2.设置防火墙一定要让心跳消息通过。
3.依靠监控软件实时检测来实现zabbix 脑裂如何解决
软件层面
1.配置文件有问题
2.通过tcpdump抓包分析
3.重启两边服务 网络层面
1.高可用服务器之间心跳线检测失败。主备之间无法进行通信。
2.硬件层面
2.1连接主备之间的心跳线老化
2.2网卡或者网卡驱动失效IP地址配置冲突
2.3 防火墙没有配置心跳线消息的传输通道
2.4后端服务器的配置问题心跳方式不同心跳广播冲突软件BUG 了解即可
dev 开发环境 开发人员专用
sit 测试环境 测试人员使用开发运维
pre预生产环境 开发和运维和最终生产环境保持一致
prd生产环境面向用户的环境