本章结构
1、Keepalived概述
2、Keepalived体系,主要的模块
3、Keepalived工作原理
4、LVS+Keepalived的部署
一、Keepalived概述
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。
vrrp通信原理:vrrp就是虚拟路由冗余协议,它的出现就是为了解决静态路由的单点故障。
vrrp是通过一种竞选机制来将路由交给某个vrrp路由器
vrrp用ip多播的方式实现高可用之间的通信
工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包时,就启动并接管主节点的资源,备节点可以由多个,通过优先级来进行竞选,但一般Keepalived系统和运维工作是一对的
二、Keepalived体系,主要的模块
主要有三个模块:core、check和vrrp
core模块:Keepalived核心配置,负责主进程启动,维护并且调用全局的配置文件来加载和解析。
cheak模块: 负责健康检查
vrrp模块:来实现vrrp协议的
三、Keepalived工作原理
keepalived高可用应用(健康检查,故障切换)
底层基于VRRP协议实现的高可用
由优先级决定服务器的主备角色,Master服务器上会生成vip,客户端会把访问发送给vip,由Master服务器接收用户的请求,Master服务器会定期给Backup服务器发送VRRP报文,来告知Master服务器状态正常。
当Backup在超时时间内没有收到VRRP报文则会认为Master异常,此时会通过ip命令生成VIP,接替Master的工作接收用户请求。
四、Keepalived经常会出现的问题
脑裂现象
出现脑裂现象产生的原因
Master一直发送心跳消息给backup主机,如果中间的链路突然断掉,backup主机将无法收到master主机发送过来的心跳消息(也就是vrrp报文),backup这时候会立即抢占master的工作,但其实这时候的master是正常工作的,此时就会出现脑裂的现象。
怎么预防脑裂现象
1.使用shell脚本对这两个主机之间的连通性进行监测,如果发现有问题,就会立即关闭keepalived服务来防止脑裂的产生。
2.增加一条链路作为备用链路,即使主链路挂掉了,备用链路也会顶上来,master主机可以继续给backup主机发送心跳消息。
3.监控软件的方法,这边主要是采用的zabbix来监控的,主要就是创建监控项,创建触发器来测试关闭keepalived服务。
keepalived实验
框架图
1.配置负载调度器(主、备相同)
关闭防火墙和安全机制并安装keepalived服务
加载并检查ip_vs模块
(1)配置keeplived(主、备DR 服务器上都要设置)修改配置前先做个备份
10行--修改,邮件服务指向本地(即修改地址为回环地址)
12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接
#定义VRRP热备实例参数
20行--修改,指定热备状态,主为MASTER,备为BACKUP
21行--修改,指定承载vip地址的物理接口
22行--修改,指定虚拟路由器的ID号,每个热备组保持一致
23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
27行--修改,指定验证密码,主备服务器保持一致
指定群集vip地址
修改,指定虚拟服务器地址(VIP)、端口
指定群集工作模式,直接路由(DR)
指定第一个Web节点的地址、端口
删除,添加以下健康检查方式#添加第二个 Web节点的地址、端口#删除后面多余的配置
192.168.88.10和20都需要配置vip(虚拟IP)
重启网卡
检查一下
启动keepalived服务
查看虚拟网卡vip
(2)启动 ipvsadm 服务
保存一下ipvsadm规则并启动
清空规则并重新添加配置规则
检查一下
(3)调整 proc 响应参数,关闭Linux 内核的重定向参数响应
刷新并查看
2.配置节点服务器30 40
关闭防火墙和安全机制
安装并启动httpd服务
输入文字信息用于验证
重启网络
启动并查看虚拟端口
修改配置文件并刷新查看
在浏览器浏览192.168.88.99进行验证
再在主服务器关闭 keepalived 服务后再测试, systemctl stop keepalived并重启网络,再到浏览器进行验证
因为高可用访问仍然成功,实验结束