LVS+Keepalived高可用群集

LVS+Keepalived高可用群集

一、Keepalived 双机热备

Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检査(Health Checking)功能--判断 LVS 负载调度器、节点服务器的可用性,当master 主机出现故障及时切换到 backup节点保证业务正常,当 master 故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。

1.keepalived的热备方式

Keepalived 采用 VRRP(Virtual Router Redundancy Protocol, 虚拟路由冗余协议)热备份协议,以软件的方式实现Linux 服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案--由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态。若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务,如图所示。

热备组内的每台路由器都可能成为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移IP地址。使用Keepalived 时,漂移地址的实现不需要手动建立虚接口配置文件(如 ens33 :0),而是由 Keepalived 根据配置文件自动管理。

二、使用keepalived实现双机热备

Keepalived 的设计目标是构建高可用的 LVS 负载均衡群集,可以调用ipvsadm 工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备。使用Keepalived 构建 LVS 群集更加简便易用,主要优势体现在:对 LVS 负载调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。

在基于 LVS+Keepalived 实现的 LVS 群集结构中,至少包括两台热备的负载调度器,三台以上的节点服务器。本节将以 DR 模式的 LVS 群集为基础,增加一台从负载调度器,使用Keepalived 来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的 LVS 网站群集平台,如图 所示。

基础环境配置

关闭防火墙和安全机制(所有设备)

配置主、从调度器

配置主调度器步骤如下:

在101和102上安装keepalived和ipvsadm

(1)全局配置、热备配置首先为主、从调度器实现热备功能,漂移地址使用LVS 群集的 VIP 地址。

主keepalived配置:

补 vrrp_strict 注释后关闭严格模式

(2)web服务器池配置

在 Keepalieved 的热备配置基础上添加"virtual server VIP 端口 {...}"区段来 配置虚拟服务器,主要包括对负载调度算法、群集工作模式、健康检查间隔、真实服务器地址等参数的设置。

从配置同理主配置
只是state状态为backup,优先级比主配置低

在主和从上启动服务

查看vip在主调度器上

lvs的策略

配置web节点服务器

根据所选择的群集工作模式不同(DR或NAT),节点服务器的配置也有些差异。以 DR模式为例,除了需要调整/proc 系统的 ARP 响应参数以外,还需要为虚拟接口 lo∶0 配置 VIP 地址,并添加一条到 VIP 的本地路由。

在103和104上配置

DR 模式需要节点服务器也配置 vip


如果要永久配置则写入/etc/rc.local中
再加权限则可永久配置

设置arp参数


创建测试网站

103:test1

104:test2

测试

测试keepalied的主从漂移

关闭101主keepalied,则VIP会去102从keepalied中

不影响客户端的访问

当网站服务器103关闭则只能访问104网站

lvs策略自动删除

当103网站修好后lvs策略自动添加回来

客户端访问正常

若后续添加NFS则参考上一章文档

相关推荐
AllFiles4 分钟前
Linux 网络故障排查:如何诊断与解决 ARP 缓存溢出问题
linux·后端
pps-key26 分钟前
Afrog漏洞扫描器:从入门到入狱......边缘的摇摆记录(pps-key黑化版)
linux·计算机网络·安全·网络安全
学Linux的语莫37 分钟前
linux的root目录缓存清理
linux·运维·服务器
oMcLin39 分钟前
如何在 SUSE Linux Enterprise Server 15 上部署并优化 K3s 集群,提升轻量级容器化应用的资源利用率?
linux·运维·服务器
L_09071 小时前
【Linux】进程概念
linux
Ghost Face...1 小时前
深入解析YT6801驱动模块架构
linux·运维·服务器
比奇堡派星星1 小时前
Linux 杂项设备驱动框架详解
linux·arm开发·驱动开发
Eternity∞2 小时前
基于Linux系统vim编译器情况下的C语言学习
linux·c语言·开发语言·学习·vim
芝麻馅汤圆儿2 小时前
cpu 大小核
linux·运维·centos
牛奶咖啡132 小时前
shell脚本编程(三)
linux·shell脚本编程·环境变量的设置与取消·位置参数变量与内部参数变量·返回与退出状态·让变量获取键盘输入内容·使用decalre声明变量