Keepalived 是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health Checking)功能——判断 LVS 负载调度器,节点服务器的 可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。
1.1 Keepalived工作原理
Keepalived是通过VRRP协议实现高可用性的,Keepalived作为一个高性能集群软件,它还能实现对集群中服务器运行状态的监控以及故障隔离。
Keepalived工作在TCP/IP 参考模型的 三层、四层、五层,也就是分别为:网络层,传输层和应用层,根据TCP、IP参数模型隔层所能实现的功能。
1.2 Keepalived 体系主要模块及其作用
Keepalived体系架构中主要有三个模块,分别是core、check和vrrp。
- core模块: 为keepalive的核心、负责主进程的启动,维护及全局配置文件的加载和解析
- check模块: 负责健康检查,常见的方式有端口检查及URL检查
- vrrp模块: 是来实现VRRP协议的。
2. LVS简介
LVS是Linux Virtual Server 的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能。
2.1 LVS组成部分
- ipvsadm:命令行工具, 用于管理集群服务及集群服务上的RS等
- ipvs: 工作于内核上的程序, 可根据用户定义的集群实现请求转发.
2.2 LVS集群常用结构
正常情况下,LVS集群都采用三层结构,其体系结构如图所示:
- 第一层:负载调度器,负责将客户端的请求以设定的方式发送到后端的服务器上执行。
- 第二层:服务器池,是真正执行客户请求的服务器。
- 第三层:共享存储,它为服务器池提供一个共享的存储区域,这样使服务器池拥有相同的内容,提供相同的服务。
2.3 LVS负载均衡调度算法
调度算法决定了如何在集群节点之间分布工作负荷。当负载调度器收到来自客户端的入站请求时,调度器必须决定哪个集群节点应该处理请求。调度器用的调度方法分为两类 :
(1)静态调度算法
- rr(轮询)
- wrr(加权轮询)
- sh(源地址哈希)
- dh(目的地址哈希)
(2)动态调度算法
- lc(最少链接)
- wlc(加权最少链接)LVS的理想算法
- sed(最短期望延迟)
- NQ算法
- LBLC(基于局部性的最少连接)
- LBLCR(带复制的基于局部性的最少链接)
3. 实现LVS+Keepalived主要步骤
3.1 实验拓扑图以及各个主机的IP配置
主机 |
IP地址 |
漂移地址 |
操作系统 |
主服务器master |
192.168.4.132/24 |
192.168.4.253 |
CentOS 8.2 |
备用服务器backup |
192.168.4.133/24 |
192.168.4.253 |
CentOS 8.2 |
web服务器web-1 |
192.168.4.134/24 |
CentOS 8.2 |
|
web |