LVS+Keepalived高可用群集

发布于:2025-05-29 ⋅ 阅读:(23) ⋅ 点赞:(0)

目录

一:Keepalived 双机热备基础知识

1.Keepalived 概述及安装

(1)Keepalived 的热备方式

2.使用 Keepalived 实现双机热备

(1)主配置服务器

(2)备用服务器配置

3.测试双机热备功能

二:使用Keepalived 实现双机热备

1.准备测试网站

2.配置主调度器

3.配置从调度器

4.配置web节点服务器

5.测试 LVS+Keepalived 高可用群集


一:Keepalived 双机热备基础知识

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

1.Keepalived 概述及安装

Keepalived 的官方网站位于 http://www.keepalived.org/,本章将以 YUM方式讲解 Keepalived 的安装、配置和使用过程。在非 LVS 群集环境中使用时,Keepalived 也可以作为热备软件使用。

(1)Keepalived 的热备方式

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

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

(2)Keepalived 的安装与控制服务

安装Keepalived

在0penEuler24系统中,使用DNF方式安装keepalived.x86642.2.8-1.oe2403sp1,会自动安装 Keepalived 所需的软件包。除此之外,在 LVS群集环境中应用时,也需要用到 ipvsadm 管理工具。

控制Keepalived 服务

DNF 安装 keepalived 后,执行以下命令将 keepalived 服务设置为开机启动。

2.使用 Keepalived 实现双机热备

基于 VRRP 的热备方式,Keepalived 可以用作服务器的故障切换,每个热备组可以有 多台服务器--当然,最常用的就是双机热备了。在这种双机热备方案中,故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(不管是 Web、FTP、Mail,还是 SSH、DNS…

本小节将通过一个简单的案例来说明 Keepalived 双机热备的配置方法。其中,主、备服务器的IP 地址分别为 192.168.10.101和 192.168.10.102,基于漂移地址 192.168.10.100 提供 Web 服务,如图 3.2 所示。

主、备服务器中都需要安装 Keepalived,使用 YUM 方式安装 httpd 提供Web 服务。下面仅讲解与 Keepalived 相关的配置及测试过程。

(1)主配置服务器

Keepalived服务的配置目录位于/etc/keepalived/。其中,keepalived.conf 是主配置文件。另外包括一个子目录 samples/,提供了许多配置样例作为参考。

在 Keepalived 的配置文件中,使用“global defs {…}”区段指定全局参数,使用“vrrp instance 实例名称 {…}”区段指定 VRRP 热备参数,注释文字以“!”符号开头

确认上述配置无误,然后启动 Keepalived 服务。实际状态为 MASTER 的主服务器将为 ens3160接口自动添加 VIP 地址,通过 ip 命令可以査看。注意:ifconfig 命令看不到。

(2)备用服务器配置

在同一个 Keepalived 热备组内,所有服务器的 Keepalived 配置文件基本相同,包括虚拟路由器的 ID 号、认证信息、漂移地址、心跳频率等。不同之处主要在于路由器名称、热备状态、优先级。

  • 路由器名称(router id):建议为每个参与热备的服务器指定不同的名称。
  • 热备状态(state):至少应有一台主服务器,将状态设为MASTER;可以有多台备用的服务器,将状态设为BACKUP
  • 优先级(priority):数值越大则取得 VIP 控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可依次递减,但不要相同,以免在争夺 VIP 控制权时发生冲突。

配置备用服务器(可以有多台)时,可以参考主服务器的keepalived.conf配置文件内容,只需修改路由器名称、热备状态、优先级。

确认配置无误,一样需要启动 Keepalived 服务。此时主服务器仍然在线,VIP 地址实际上仍然由主服务器控制,其他服务器处于备用状态。因此,在备用服务器中将不会为 ens160 接口添加 VIP 地址。

3.测试双机热备功能

Keepalived 的日志消息保存在/var/log/messages 文件中,在测试主、备故障自动切换功能时,可以跟踪此日志文件来观察热备状态的变化。以针对连通性和Web 服务的测试为例,主要操作如下。

(1)连通性测试

在客户机中执行“ping-t 192.168.10.100”命令,能够正常、持续 ping 通,根据以下操作继续观察测试结果。

① 停止启用主服务器的 Keepalived 服务,发现 ping 测试只中断了 1或 2个包即恢复正常,说明己有其他服务器接替 VIP地址,并及时响应客户机请求。

②)重新启用主服务器的 Keepalived 服务,发现 ping 测试再次中断1或2个包即恢复正常,说明主服务器已恢复正常,并夺回 VIP 地址的控制权。

(2)Web 访问测试

在 keepalived 运行的主机上启动 nginx 服务并写入不通的测试页面内容

主服务器

备用服务器

在客户机中访问 http://192.168.10.100/,将看到由主服务器 192.168.10.101提供的网页文档。

① 停止启用主服务器的 Keepalived 服务,再次访问上述 Web 服务,将看到由备用服务
器 192.168.10.102 提供的网页文档,说明 VIP 地址已切换至备用服务器。

② 重新启用主服务器的 Keepalived 服务,再次访问上述 Web 服务,将看到重新由主服
务器 192.168.10.101 提供的网页文档,说明主服务器已重新夺取 VIP 地址。

通过上述测试过程,可以发现双机热备已经正常。客户机只要通过VIP地址就可以访问服务器所提供的 Web 等应用。其中,任何一台服务器失效,另一台服务器将会立即接替服务,从而实现高可用性。实际应用时,注意主、备服务器所提供的 Web 服务内容要保持一致。

二:使用Keepalived 实现双机热备

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

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

使用 Keepalived 构建 LVS 群集时,也需要用到 ipvsadm 管理工具。但大部分工作会由 Keepalived 自动完成,不需要手动执行 ipvsadm(除了查看和监控群集以外)。下面主要讲解 Keepalived 的服务器池设置,关于 NFS 共享服务的配置、Keepalived 的热备配置等在此不再详细阐述。

操作系统 主机名 IP 服务
open Euler master 192.168.10.101 keepalived
open Euler backup 192.168.10.102 keepalived
open Euler web1 192.168.10.103 httpd
open Euler web2 192.168.10.104 httpd
open Euler client 192.168.10.105

1.准备测试网站

web1 :

web2:

使用客户端测试:

client:

2.配置主调度器

master:

(1)全局配置

(2)web服务池配置

(3)重新启动keepalived服务

查看新生成的VIP

3.配置从调度器

从调度器的配置与主调度器基本相同,也包括全局配置、热备配置、服务器池配置,只需要调整 router id、state、priority 参数即可,其余内容完全相同。配置完成以后重启 Keepalived 服务。

4.配置web节点服务器

web1  web2

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

临时添加

5.测试 LVS+Keepalived 高可用群集

在客户机的浏览器中,能够通过LVS+Keepalived群集的 VIP 地址(192.168.10.100)正 常访问 Web 页面内容。当主、从调度器任何一个失效时,Web 站点仍然可以访问(可能需要 刷新或者重新打开浏览器):只要服务器池有两台及以上的真实服务器可用,就可以实现访问量的负载均衡。通过主、从调度器的/var/log/messages 日志文件,可以跟踪故障切换过程;若要查看负载分配情况,可以执行“ipvsadm -ln”“ipvsadm -lnc”等操作命令。最终可以验证 LVS+Keepalived 高可用负载均衡群集的健壮性。

(1)在master上查看规则

测试网站,使用客户端访问网站

关闭master服务器,查看backup服务器上的状态

继续测试客户端访问网站

在当今互联网业务高并发、高可用的需求背景下,单点故障和性能瓶颈成为系统稳定性的重大挑战,而 Keepalived 凭借其轻量级、开源且灵活的特性,成为解决这些问题的利器。本课件围绕 Keepalived 的两大核心功能展开,首先深入讲解其基于 VRRP 协议实现的高可用性机制,通过主备节点自动切换保障服务持续在线,避免因单点故障导致的业务中断:随后结合Linux VirtualServe1(LVS)的直接路由(DR)模式,探讨如何利用Keepalived 构建高效负载均衡集群,通过优化网络性能实现流量的智能分发与扩展。课件通过理论解析与实探演示,从高可用架构设计、LVS-DR 模式原理,到参数调优、故障排查等环节,系统化地呈现 Keepalived 的部署与运维技巧,助力学员掌握构建高可用、高性能分布式系统的核心能力,为应对业务增长与系统复杂度提升提供可靠的技术支撑。