2019独角兽企业重金招聘Python工程师标准>>>
Linux集群概述
• 根据功能划分为两大类:高可用和负载均衡
• 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务
• 实现高可用的开源软件有:heartbeat、keepalived
• 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2台
• 负载均衡器(Load Balancer, LB )是一组能够将IP数据流以负载均衡形式转发到多台物理服务器的集成软件。有硬件负载均衡器和软件负载均衡器之分,硬件负载均衡器主要是在访问网络和服务器之间配置物理负载均衡设备,客户端对物理服务器的访问请求首先会抵达负载均衡设备,然后再由负载均衡设备根据一定的负载算法转发到后端服务器。相比而言,软件负载均衡器不需要特定的物理设备,只需在相应的操作系统上部署具有负载均衡功能的软件即可。
• 在Opens tack高可用集群部署中,服务的负载均衡和高可用主要有两种主流的实现方案,即 HAProxy+ Keepalived和Pacemaker+HAProxy方案。由于OpenStack服务组件多样,不同服务均需要进行特定的高可用设计,并且从集群资源统一调度和集群稳定性的角度考虑,后一种方案是多数OpenStack厂商的高可用部署方案首选,但是选用后一方案并不意味着Keepalived在OpenStack高可用集群部署中不被使用。由于Keepalived 的主要作用之一是进行虚拟路由的故障切换,其在Neutron 的L3 高可用设计与实现中起着举足轻重的作用。
• keepalive通过VRRP(Virtual Router Redundancy Protocl)协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。使用多台节点安装keepalived。其他的节点用来提供真实的服务,同样的,他们对外表现一个虚拟的IP。主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
• master通过VRRP向backup发送数据包,backup没接收到VRRP数据包的时候,说明master就宕机了,根据权重接手成为master。
Keepalived介绍
是一个基于VRRP(虚拟路由冗余协议)可用来实现服务高可用性的软件方案,避免出现单点故障。Keepalived一般用来实现轻量级高可用性,且不需要共享存储,一般用于两个节点之间,常见有LVS+Keepalived、Nginx+Keepalived组合。
Keepalived的项目实现的主要目标是简化LVS项目的配置并增强其稳定性,即Keepalived是对LVS项目的扩展增强。Keepalived为Linux系统和基于Linux 的架构提供了负载均衡和高可用能力,其负载均衡功能主要源自集成在Linux内核中的LVS项目模块IPVS( IP Virtual Server ),基于IPVS提供的4 层TCP/IP协议负载均衡, Keepalived也具备负载均衡的功能,此外, Keepalived还实现了基于多层TCP/IP 协议( 3 层、4 层、5/7 层)的健康检查机制,因此, Keepalived在LVS 负载均衡功能的基础上,还提供了LVS 集群物理服务器池健康检查和故障节点隔离的功能。除了扩展LVS的负载均衡服务器健康检查能力, Keepalived 还基于虚拟路由冗余协议( Virtual Route Redundancy Protocol, VRRP )实现了LVS 负载均衡服务器的故障切换转移,即Keepalived还实现了LVS负载均衡器的高可用性。Keepalived 就是为LVS 集群节点提供健康检查和为LVS 负载均衡服务器提供故障切换的用户空间进程。
图3-1为Keepalived的原理架构图,从图中可以看到, Keepalived的多数核心功能模块均位于用户空间,而仅有IPVS和NETLINK模块位于内核空间,但是这两个内核模块正是Keepalived 实现负载均衡和路由高可用的核心模块,其中的NETLINK主要用于提供高级路由及其相关的网络功能。Keepalived的大部分功能模块位于用户空间,其中几个核心功能模块的介绍如下。
WatchDog :其主要负责监控Checkers和VRRP子进程的运行状况。
Checkers :此功能模块主要负责真实服务器的健康检查( HealthChecking ),是Keepalived最主要的功能之一,因为HealthChecking是负载均衡功能稳定运行的基础, LVS集群节点的故障隔离和重新加入均依赖于HealthChecking的结果。
VRRPStack :此功能模块主要负责负载均衡器之间的故障切换,如果集群架构中仅使用一个LVS负载均衡器,由于本身不具备故障切换的条件,则VRRPStack不是必须的。
IPVS Wrapper :此模块主要用来发送设定的规则到内核IPVS代码。Keepalived的设计目标是构建高可用的LVS 负载均衡群集, Keepalived在运行中将会通过IPVSWrapper模块调用IPVSAdmin工具来创建虚拟服务器,检查和管理LVS集群物理服务器池。
Netlink Reflector :此功能模块主要用来设定VRRP的VIP地址并提供相关的网络功能,该模块通过与内核中的NETLINK模块交互,从而为Keepalived 提供路由高可用功能。
从Keepalived 的实现原理和功能来看, Keepalived是开源负载均衡项目LVS的增强和虚拟路由协议VRRP实现的集合,即Keepalived通过整合和增强LVS与VRRP来提供高可用的负载均衡系统架构。
• 在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色。
• master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的mater。
• Keepalived要有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现VRRP协议的。
• keepalive有三个模块,core负责朱金城的启动,维护和全局配置文件的加载和解析,check负载检查健康,vrrp实现VRRP协议
• 实现负载均衡的开源软件有LVS、keepalived、haproxy、nginx,商业的有F5、Netscaler
• Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。使用多台节点安装keepalived。其他的节点用来提供真实的服务,同样的,他们对外表现一个虚拟的IP。主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
• MASTER制定为主控制节点,虚拟id两个节点必须相同。delay_loop 指定6秒检测服务状态。
• 设置连接方式为直连方式DR,负载策略为轮叫方式rr,协议是TCP。然后我们设置了两个提供服务节点的IP和端口。分别为192.168.2.108和192.168.2.109的80端口。也就是网页访问服务。
• 设置备机的配置文件,模式设置为BACKUP,权重修改为50。这样才可以优先让主控制节点接管。
.搭建keepalived服务
我们使用四个节点来做这个实验,两个充当控制节点,另外两个提供服务。然后用真机的浏览器访问虚拟IP。
注意事项:
1.所有节点要做好解析。
2.时间同步
3.yum源设置好(除了基本的源,高可用等也要添加)
keepalived配置高可用
• 准备两台机器130和132,130作为master,132作为backup
• 两台机器都执行yum install -y keepalived
• 两台机器都安装nginx,其中130上已经编译安装过nginx,132上需要yum安装nginx: yum install -y nginx
• 设定vip为100
• 编辑130上keepalived配置文件,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf获取
• 130编辑监控脚本,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_check_ng.sh获取
• 给脚本755权限
• systemctl start keepalived 130启动服务
•
• 132上编辑配置文件,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_keepalived.conf获取
• 132上编辑监控脚本,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_check_ng.sh获取
• 给脚本755权限
• 132上也启动服务 systemctl start keepalived
实例:
安装keepalived服务
在机器130和132上面,都把selinux和防火墙关了
[root@localhosts 01]# /etc/init.d/iptables stop
[root@localhosts 01]# setenforce 0
[root@localhosts 01]# yum install -y keepalived
[root@localhosts 02]# yum install -y keepalived
[root@localhosts 01]# ps aux | grep nginx #查看nginx服务
[root@localhosts 02]# rpm -qa |grep nginx #查看nginx服务有没有安装过
[root@localhosts 02]# yum install -y nginx #安装NGINX服务
[root@localhosts 01]# ls /etc/keepalived/keepalived.conf #查看NGINX服务配置文件
[root@localhosts 01]# cat !$ #查看配置文件的内容
[root@localhosts 01]# vim /etc/keepalived/keepalived.conf
[root@localhosts 01]# > !$ #清空原始内容
[root@localhosts 01]]# !vim
global_defs { #全局定义的参数
notification_email { #出现错误时候,给邮箱发邮件
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx { #检测NGINX服务是否正常,检测时间三秒钟
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 { #定义MASTER
state MASTER
interface ens33 #通过ens33网卡发广播
virtual_router_id 51 #定义路由器的ID
priority 100 #权重
advert_int 1
authentication { #认证信息
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress { #绑定的IP地址192.168.130.100
192.168.130.100
}
track_script {
chk_nginx #检查NGINX脚本
}
}
定义监控脚本
检查NGINX脚本是否正常
[root@localhosts 01]]# vim /usr/local/sbin/check_ng.sh
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
systemctl start nginx
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
[root@localhosts 01]# cat /usr/local/sbin/check_ng.sh #查看NGINX脚本
[root@localhosts 01]# chmod 755 /usr/local/sbin/check_ng.sh #赋予它执行的权限
[root@localhosts 01]# systemctl start keepalived #启动keepalived
[root@localhosts 01]# ps aux |grep keep #查看keepalived服务有没有启动
[root@localhosts 01]# ps aux |grep nginx #查看nginx服务有没有启动
[root@localhosts 01]# /etc/init.d/nginx stop #停止NGINX服务
Stopping nginx (via systemctl): [ 确定 ]
[root@localhosts 01]# !ps #查看nginx服务会不会自动加载,如果出现了nginx,说明会自动加载。
[root@localhosts 01]# less /var/log/messages #查看nginx日志
[root@localhosts 01]# ip add #查看ens33网卡,IP地址192.168.133.100
[root@localhosts 01]# iptables -nvL #查看防火墙 有没有关
[root@localhosts 01]# getenforce #查看selinux有没有关闭
[root@localhosts 02]# iptables -nvL #查看防火墙 有没有关
[root@localhosts 02]# systemctl stop firewalld #关闭firewalld
[root@localhosts 02]# getenforce #查看selinux有没有关闭
Permissive
[root@localhosts 02]# setenforce 0
[root@localhosts 02]# /etc/keeplived/keepalived.conf
[root@localhosts 02]# vi !$ #只需要改一下IP地址就行了
global_defs { #全局定义的参数
notification_email { #出现错误时候,给邮箱发邮件
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx { #检测NGINX服务是否正常,检测时间三秒钟
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 { #定义MASTER
state MASTER
interface ens33 #通过ens33网卡发广播
virtual_router_id 51 #定义路由器的ID
priority 100 #权重
advert_int 1
authentication { #认证信息
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress { #绑定的IP地址192.168.130.100
192.168.133.100
}
track_script {
chk_nginx #检查NGINX脚本
}
}
[root@localhosts 02]#vi /usr/local/sbin/check_ng.sh
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
systemctl start nginx
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
[root@localhosts 02]# chmod 755 !$ #修改权限,方便启动。
[root@localhosts 02]# systemctl start keepalived #启动keepalived服务
[root@localhosts 02]# ps aux |grep keep #查看keep 进程
[root@localhosts 02]# systemctl restart keepalived
[root@localhosts 02]# ps aux |grep keep
[root@localhosts 02]#
然后访问组的IP,在百度上输入IP:192.168.133.130
查看nginx默认的配置文件的位置
[root@localhosts 01]# cat /usr/local/nginx/conf/vhost #查看NGINX脚本
ld.conf proxy.conf ssl.conf test.com.conf
[root@localhosts 01]# cat /usr/local/nginx/conf/vhost/aaa.com.conf
[root@localhosts 01]#cat /data/wwwroot/default/index.html
[root@localhosts 01]#
[root@localhosts 02]# cat /usr/share/nginx/html/index.html #查看NGINX脚本
backup backup.
[root@localhosts 02]# cat /usr/local/nginx/conf/vhost/aaa.com.conf
[root@localhosts 02]#cat /data/wwwroot/default/index.html
[root@localhosts 02]#
keepalived服务的开启导致nginx关不上
[root@localhosts 02]# ps aux |grep nginx #查看NGINX服务
[root@localhosts 02]# systemctl stop nginx #关闭NGINX服务
[root@localhosts 02]# !ps
[root@localhosts 02]# #查看NGINX服务
[root@localhosts 02]# !ps #发现nginx服务没有关闭,运行keepalived服务没有关闭
测试高可用
• 先确定好两台机器上nginx差异,比如可以通过curl -I 来查看nginx版本
• 测试1:关闭master上的nginx服务
• 测试2:在master上增加iptabls规则
• iptables -I OUTPUT -p vrrp -j DROP
• 测试3:关闭master上的keepalived服务
• 测试4:启动master上的keepalived服务
实例:
[root@localhosts 02]# iptables -A OUTPUT -p vrrp -j DROP #
[root@localhosts 02]# iptables -nvL #查看包
[root@localhosts 02]# tail /var/log/messages #查看日志的变化
Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。使用多台节点安装keepalived。其他的节点用来提供真实的服务,同样的,他们对外表现一个虚拟的IP。主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
二、搭建keepalived服务
1.keepalived的原理图如下所示:
最左边是客户机,它访问我们的虚拟IP。然后我们有master(主控制节点)和backup(备用控制节点)。最右边的就是我们提供服务的真机了。
2.搭建keepalived服务
我们使用四个节点来做这个实验,两个充当控制节点,另外两个提供服务。然后用真机的浏览器访问虚拟IP。
注意事项:
1.所有节点要做好解析。
2.时间同步
3.yum源设置好(除了基本的源,高可用等也要添加)
如图是我们的操作控制台:
keepalived的安装包为:
keepalived-1.2.13.tar.gz
两个控制节点分别解压和编译、安装keepalived:
在编译keepalived之前我们需要安装一些相关的包:
编译keepalived源码包:
这个是我们的 编译结果:
然后我们进行安装:
上述的步骤在两个控制节点上都要进行,最后在配置文件中我们再设定主副节点。
建立软链接,把keepalived的配置文件和服务启动文件链接到指定位置:
设置配置文件:
我们设置了邮件的发送地址和ip,MASTER制定为主控制节点,虚拟id两个节点必须相同。delay_loop 指定6秒检测服务状态。
设置虚拟ip,这是我们客户机访问的IP。
这个是剩余的配置文件内容,我们设置连接方式为直连方式DR,负载策略为轮叫方式rr,协议威TCP。然后我们设置了两个提供服务节点的IP和端口。分别为192.168.2.108和192.168.2.109的80端口。也就是网页访问服务。
然后我们设置备机的配置文件,模式设置为BACKUP,权重修改为50。这样才可以优先让主控制节点接管。
然后我们打开keepalived服务,并查看日志,发现已经识别了192.168.2.110虚拟IP:
在两个提供真机的服务节点上安装arptable_jf软件:
设置arptables的策略:
然后我们要在两个控制节点上安装ipvsadm软件来监控服务的状态:
如果无法安装的话,查看yum源,设置成如下所示:
在两个提供服务的真机上安装httpd,设置完默认发布内容后启动服务:
然后我们在主控制节点上查看当前的监控信息:
在真机的浏览器上查看192.168.2.110的信息。因为是轮叫策略,所以会轮换显示192.168.2.108和192.168.2.109的默认发布内容:
3.小结:
这样我们就搭建了keepalived下的高可用集群。这个的复杂程度要低于heartbeat,在生产环境中也是非常常见的。
注意:
- backup收不到master发来的VRRP数据包,是指的心跳检测
- keeplived 配置文件里面vip指定的网卡需要用ip add查看后,把配置文件里面的interface 改成本机上的网卡名字,我就是照搬复制没改网卡名字,所以就报错了Keepalived_vrrp[17516]: VRRP_Instance(VI_1) Unknown interface ,改完之后就ok了
- 监测的那个模块唤起的nginx
- 在生产环境中要保证NGINX服务要一致,这样高可用性才有意义。
- vip,即出现脑裂
- master和backup的keepalived的配置文件中的网卡名字。自己配置,如果master上叫eth0,backup上叫eth1,在配置文件中指定即可。
- 生产环境中,IP资源都是有限而且固定的,只能使用分配好的IP地址。
- 若是有两台backup,当master宕机,由backup1接管IP的监听,那backup1会不会给backup2发送VRRP数据
- mysql,nginx才是实际运行的服务,keepalived只是用来搭建高可用集群,供nginx服务实现高可用
常见问题:
1、备用keepalived起来的前提就是主的keepalived停掉了(宕机、或者nginx起不来等 导致主keepalived服务停掉 vrrp协议不可达),又怎么会出现主和备的keepalived同时存在 并争抢vip资源呢?
能不能举例说明一下 主备的keepalived哪些情况会同时存在呀?
答:这个就是脑裂。 主认为从宕机,从认为主宕机就会出现脑裂。 如果两台机器直接网络异常,比如网卡通信有问题,或者配置了iptables策略,就会出现脑裂。
2、置方案里有配置 vrrp_strict 这个参数配置这个参数后 vip ping不通
答:理论上配置该参数后,并不会导致vip 不通。
3、keepalived无法启动?
答:查一下它的日志吧,防火墙关闭
4、配置了keepalived,启动keepalived发现无法拉起nginx,防火墙和selinux都关闭了,脚本权限也是755,检查日志是下面的提示?请问这个是什么原因?
Jan 8 21:41:31 moli_linux2 kernel: keepalived[5650]: segfault at 0 ip (null) sp 00007ffd979d1c88 error 14 in libgcc_s-4.8.5-20150702.so.1[7f232a968000+15000]
Jan 8 21:41:31 moli_linux2 Keepalived_vrrp[5650]: VRRP_Instance(VI_1) removing protocol VIPs.
Jan 8 21:41:31 moli_linux2 Keepalived[2498]: Keepalived_vrrp exited due to segmentation fault (SIGSEGV).
Jan 8 21:41:31 moli_linux2 Keepalived[2498]: Please report a bug at https://github.com/acassen/keepalived/iss
答:你的监控nginx服务的脚本如何写的? 手动执行它是否有错误?
5、卸载重新安装yum install -y keepalived 就好使了。
[root@CentOS7_two ~]# systemctl status keepalived.service
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
Active: failed (Result: resources) since 三 2018-04-11 19:48:28 CST; 57s ago
Process: 29330 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
答:重新安装 配置文件内容是否改。
6、Keepalived拉不起check_ng.sh脚本,脚本权限都给了755,防火墙和selinux都清了并已经关闭的。
答:通过check_ng.sh启动的,把配置文件的名称修改正确后,然后把脚本放去另一个路径来重启keepalived的就可以了。
7、
1、实验发现keepalived.conf配置文件设置了优先级priority嘛,就算主和从keepalived同时启动不会出现脑裂啊 。
好像设置了防火墙才会脑裂
答:1 理论上,同时启动肯定不会脑裂的,但是说不好会出现啥未知问题,导致两台机器不通或者其他类似这种情况,最终导致脑裂。
2、 要是生产环境设置了多个VIP,那在lvs_dr_rs.sh脚本中是写成如下格式吗。
........
vip1=192.168.31.110
vip2=192.168.31.111
ifconfig lo:0 $vip1 broadcast $vip1 netmask 255.255.255.255 up
ifconfig lo:1 $vip2 broadcast $vip2 netmask 255.255.255.255 up
........
这样的话,lo:0有好几个IP了,在啥情况下回这样用呢。
8、这个错怎么解决啊,防火墙都关了,vip是一个人用的ip,keepalive能正常起来,但是不能正常服务
答:libipset.so.3 这个文件不存在。
你检查一下有无安装 ipset-devel包
9、VIP的地址是怎么规定的?
答:可用的一个ip。 通常我们做高可用,局域网环境比较多。 所以这个vip是和两台机器同网段的一个内网ip。
当然,如果用在外网环境下,无所谓在不在一个网段,只要客户端能访问到。
参考链接 :
Keepalived的概述与配置 : https://mp.weixin.qq.com/s/wS-eStjuyRrIbWBUY-108g
资料:
高性能集群软件Keepalived之基础知识篇 : https://www.ixdba.net/archives/2017/03/472.htm
搭建高可用负载均衡器: haproxy+keepalived : https://mp.weixin.qq.com/s/qIsotbx7MfvNm4DQwz7Psg
Keepalived高可用集群应用实践 : https://www.jianshu.com/p/1f6e13d3ca9c
Keepalived常用配置及脚本 : https://blog.csdn.net/huwh_/article/details/77887058
keepalived两种场景配置方法 : http://blog.chinaunix.net/uid-30395867-id-5786650.html
Keepalived 系列 :https://www.aliyun.com/jiaocheng/topic_13519.html?spm=5176.100033.1.5.XCkefz
Kubernetes v1.10+Keepalived HA集群墙内部署实践:https://mp.weixin.qq.com/s/rNx7DJ28wer6lxCPTzMX4Q
Keepalived的概述与配置:https://mp.weixin.qq.com/s/wS-eStjuyRrIbWBUY-108g
系统架构师-Keepalived学习笔记 : https://www.jianshu.com/p/ec44af134543
(Cent OS 5.9)KeepAlived+Mysql高可用双机热备:https://mp.weixin.qq.com/s/y9GSd35ocZOHtqgsQGydvA
keepalived 实现 Tomcat 服务双机热备 : https://mp.weixin.qq.com/s/DNvSXenAy6bRIwM_Nqjzhw
双机热备的原理 : https://mp.weixin.qq.com/s/mKkLJLr_XF_M-gkFr4jTyg
MHA+keepalived(补充) : http://blog.51cto.com/hmtk520/1943865
LVS+Keepalived负载均衡高可用如此简单? 荐 : http://blog.51cto.com/liangey/1631056
haproxy+keepalived负载均衡之主备切换(centos) : https://www.jb51.net/os/RedHat/55468.html
lvs+keepalived+nginx实现高性能负载均衡集群:https://www.cnblogs.com/liuyisai/p/5990645.html
基于Keepalived实现LVS双主高可用集群 荐 : http://blog.51cto.com/scholar/1662430
keepalived搭建双机热备:https://mp.weixin.qq.com/s/KftO00grhCQ7842DbTe60A
高可用技术之KeepAlived浅析:https://mp.weixin.qq.com/s/U5EAgIX8Kq_AUCRLTBelWQ
keepalived+mysql实现双主高可用https://www.cnblogs.com/liuyisai/p/5998110.html
linux高级技巧:集群之keepalived http://blog.chinaunix.net/uid-29622064-id-4406581.html
Keepliaved介绍 : https://blog.csdn.net/huwh_/article/details/77113410
实现基于Keepalived高可用集群网站架构的多种方法(3) : https://www.cnblogs.com/keerya/p/7819970.html
实现基于Keepalived高可用集群网站架构的多种方法 : https://www.cnblogs.com/keerya/p/7819970.html
Haproxy+Keepalived主主高可用 荐 : http://blog.51cto.com/fighter/1254815
keepalived高可用haproxy+varnish+lnmp实现站点搭建与ansible实现 : http://blog.51cto.com/11010461/2143383
HAProxy入门及常用配置模拟测试 : http://blog.51cto.com/11010461/2139872
haproxy+keepalived搭建nginx+lamp集群 : http://blog.51cto.com/11638832/1879305
原 haproxy+pecemaker : https://blog.csdn.net/sinat_37757403/article/details/78280188
HAProxy基于KeepAlived实现Web高可用及动静分离 荐 : http://blog.51cto.com/scholar/1665213
keepalived+lvs/nginx 实现调度器高可用 : http://blog.51cto.com/pirateli/1661387
Keepalived+Haproxy双主高可用负载均衡代理动静分离web服务器 : http://blog.51cto.com/linuxgentoo/1557071
Atlas+Keepalived实现MySQL读写分离、读负载均衡 :https://www.jianshu.com/p/3172de8bc709
从keep-alive原理 分析TCP游戏服务端心跳包的实用功能 : https://mp.weixin.qq.com/s/QoSxK25ZcFL14YplygDi1w
HAProxy
高性能反向代理软件HAProxy(一)之基本概念 置顶 :http://blog.51cto.com/cuchadanfan/1694844
高性能反向代理软件HAProxy(二)之应用举例 置顶 : http://blog.51cto.com/cuchadanfan/1694860
高性能反向代理软件HAProxy(三)之高可用 置顶 : http://blog.51cto.com/cuchadanfan/1695498
企业实战(4)-实现基于Haproxy负载均衡集群的电子商务网站架构 : http://blog.51cto.com/mozart/2047332
HAproxy+Keepalived负载均衡-高可用web站 : http://blog.51cto.com/jdonghong/1883378
HAproxy负载均衡MYSQL双主 : http://blog.51cto.com/jdonghong/1883376
HAproxy负载均衡WEB : http://blog.51cto.com/jdonghong/1883368
Keepalived+MariaDB10配置+双主+高可用数据库 : http://blog.51cto.com/jdonghong/1883361
LVS-DR+keepalived(——实现WEB站负载均衡和高可用) :http://blog.51cto.com/jdonghong/1883359
Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置 : http://blog.51cto.com/jdonghong/1883341
Keepalived高可用集群应用场景与配置 : http://blog.51cto.com/xpleaf/1904095
keepalived invalid ttl 故障一例 荐 : http://blog.51cto.com/caiguangguang/933912
企业实战(3)-主从实现基于Keepalived高可用集群网站架构 荐 置顶 : http://blog.51cto.com/mozart/2044127
keepalived健康检查方式 : https://www.cnblogs.com/liang-wei/p/6197411.html
Linux 高可用(HA)集群之keepalived 荐 : http://blog.51cto.com/cuchadanfan/1696588
web集群综合项目keepalived+lvs+lamp+nfs+mysql : http://blog.51cto.com/11638832/1870021
浅谈web应用的负载均衡、高可用、群集 : http://blog.51cto.com/11638832/1870019
项目:web网站NLB负载均衡 : http://blog.51cto.com/11638832/1855858
keepalived 实现 Tomcat 服务双机热备 :https://mp.weixin.qq.com/s/kZ9ctZzlBs9aC6PPhHwYKQ
原 MFS+Keepalived双机高可用热备方案 : https://blog.csdn.net/sinat_37757403/article/details/78327723
LVS+KeepAlived,搭建MySQL高可用负载均衡 荐 : http://blog.51cto.com/diannaowa/1674735
LVS+KeepAlived,RabbitMQ高可用负载均衡 荐 : http://blog.51cto.com/diannaowa/1671623
LVS-DR+Keepalived高可用群集部署 : http://blog.51cto.com/13728740/2161580
搭建LVS-NAT负载均衡群集 : http://blog.51cto.com/13728740/2162111
Mysql双主 keepalived+lvs实现mysql高可用性 : https://mp.weixin.qq.com/s/k2mAqSmr41SNb2nXet9cZg
企业中MySQL高可用集群架构三部曲之MM+keepalived 荐 : https://blog.51cto.com/sumongodb/1953244
原 MooseFS及其高可用部署 : https://blog.csdn.net/sinat_37757403/article/details/78327763
corosync+pacemaker+crmsh实现高可用 荐 : http://blog.51cto.com/zhaochj/1678307
corosync+pacemaker简单实践实现mariadb数据库高可用模型 : http://blog.51cto.com/pirateli/1659075
crosync + pacemaker + (NFS,DRBD,iSCSI)实现MySQL的高可用 荐 :http://blog.51cto.com/guoting/1556503
DRBD原理知识 荐 :http://blog.51cto.com/guoting/1553462
Varnish
Varnish原理和配置详解 : http://blog.51cto.com/guoting/1558305
Varnish 学习笔记总结 : http://blog.51cto.com/pirateli/1659475
Varnish详解与实战 荐 : http://blog.51cto.com/linuxgentoo/1558263
Varnish 实战项目 : https://www.cnblogs.com/keerya/p/7833724.html
Varnish+缓存Web站 +图片+动静分离 : http://blog.51cto.com/jdonghong/1883337
高性能的开源HTTP加速器varnish : http://blog.51cto.com/cuchadanfan/1698830