目录
一,keepalived说明
1,什么是keepalived
Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。
Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。
所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。
什么是高可用?
高可用:两台业务系统启动着相同的服务,如果有一台服务器故障,另一台自动接管,我们将这个称之为高可用。
2,VRRP介绍
VRRP 相关术语
-
虚拟路由器:Virtual Router
-
虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器
-
VIP:Virtual IP
-
VMAC:Virutal MAC (00-00-5e-00-01-VRID)
-
物理路由器:
-
master:主设备
-
backup:备用设备
-
priority:优先级
虚拟路由器的主备 是由priority:优先级决定的
VRRP相关技术
通告:心跳,优先级等;周期性
工作方式:抢占式,非抢占式,延迟抢占模式,
安全认证:
-
无认证
-
简单字符认证:预共享密钥
-
MD5
工作模式:
-
主/备:单虚拟路径器
-
主/主:主/备(虚拟路由器1),备/主(虚拟路由器2)
通告:
是宣告自己的主权,不要妄想抢班夺权,不停的向外抢占式:
主服务器宕机,过了一段时间修好了,再把主权抢过来非抢占式:
主服务器宕机,过了一段时间修好了,原来的主就作为备了安全认证:
如没有安全认证,不在集群中的keeplive服务器设置超高的优先级,会造成事故
3,实现的原理
keepalived的工作原理:通过VRRP协议实现的
Keepalived高可用服务对之间的故障切换转移,是通过 VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)来实现的。
在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活看,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。
keepalived架构
4,keepalived相关文件
-
软件包名:keepalived
-
主程序文件:/usr/sbin/keepalived
-
主配置文件:/etc/keepalived/keepalived.conf
-
配置文件示例:/usr/share/doc/keepalived/
-
Unit File:/lib/systemd/system/keepalived.service
-
Unit File的环境配置文件:
-
/etc/sysconfig/keepalived CentOS
keepalived文件配置组成
/etc/keepalived/keepalived.conf 配置组成
-
GLOBAL CONFIGURATION
Global definitions(全局配置):定义邮件配置,route_id,vrrp配置,多播地址等
-
VRRP CONFIGURATION
VRRP instance(s):定义vrrp协议中的每个vrrp虚拟路由器的规则,基本信息
-
LVS CONFIGURATION(lvs调度服务器的规则设置)
Virtual server group(s)
Virtual server(s):LVS集群的VS和RS
二,配置LVS+keepalived高可用集群
配置结构
1,配置主备抢占式模式
配置环境设置
主keepalived:192.168.18.100
备keepalived:192.168.18.90
web1:192.168.18.91
web2:192.168.18.109
vip:192.168.18.123客户机访问:
主keepalived:192.168.18.100配置
关闭防火墙和setenforce
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
安装keepalived和ipvsadm软件
[root@localhost ~]# yum install -y ipvsadm.x86_64 keepalived.x86_64
准备ipvsadm环境(不做这一步ipvsadm无法启动)
[root@localhost ~]# modprobe ip_vs #加载模块
[root@localhost ~]# cat /proc/net/ip_vs #查看是否加载成功
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost ~]# ipvsadm-save>/etc/sysconfig/ipvsadm #重定向保存位置
修改keepalived文件
[root@localhost ~]# cd /etc/keepalived/ #切换目录
[root@localhost kee