LVS+Keepalived高可用群集

目录

一,Keepalived概述及安装

(1)Keepalived的热备方式

1,keepalived的安装与服务控制

(1)安装keepalived

(2)控制keepalived服务

2,使用keepalived实现双机热备

(1)主服务器的配置

(2)备用服务器的配置

3,测试双机热备功能

(1)连通性测试

(2)Web访问测试

(3)查看日志记录

二,使用Keepalived实现双机热备(案例)

第一台(调度器)和第二台(调度器)一样

[第三台(web)和 第四台(web)一样](#第三台(web)和 第四台(web)一样)

第五台(客户端)


一,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)可以在热备组内的路由器之间进行转移,所以也称为漂移P地址。使用Keepalived 时,漂移地址的实现不需要手动建立虚接口配置文件(如ens33:0),而是由Keepalived 根据配置文件自动管理。

1,keepalived的安装与服务控制

(1)安装keepalived

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

复制代码
dnf instally keepalived ipvsadm

(2)控制keepalived服务

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

复制代码
systemctl enable keepalived

2,使用keepalived实现双机热备

基于VRRP的热备方式,Keepalived可以用作服务器的故障切换,每个热备组可以有多台服务器--当然,最常用的就是双机热备了。在这种双机热备方案中,故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(不管是Web、FTP、Mail,还中,主、备服务器的IP地址分别为192.168.10.101和192.168.10.102,基于漂移地址192.168.10.100提供Web服务,是SSH、DNS...)本小节将通过一个简单的案例来说明Keepalived双机热备的配置方法。主、备服务器中都需要安装Keepalived,使用YUM方式安装httpd 提供Web 服务。下面仅讲解与Keepalived 相关的配置及测试过程。

(1)主服务器的配置

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

在 Keepalived 的配置文件中,使用"global defs..."区段指定全局参数,使用"vrrp_instance实例名称(..."区段指定VRRP热备参数,注释文字以"!"符号开头。

复制代码
cd /etc/keepalived
cp keepalived.conf.sample keepalived.conf
vim keepalived.conf

|---------------------------------|---------------------|
| router_id HA _EST_RI | 本路由器(服务器)的名称 |
| vrrp_instance VI_1 | 定义VRRP热备实例 |
| state MASTER | 热备状态,MASTER表示主服务器 |
| interface ens33 | 承载VIP地址的物理接口 |
| virtual router id 1 | 虚拟路由器的ID号,每个热备组保持一致 |
| priority 100 | 优先级,数值越大优先级越高 |
| advert int 1 | 通告间隔秒数(心跳频率) |
| authentication | 认证信息,每个热备组保持一致 |
| auth_type PASS | 认证类型 |
| auth pass 123456 | 密码字串 |
| virtual ipaddress192.168.10.100 | 指定漂移地址(VIP),可以有多个 |

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

复制代码
systemctl start keepalived
ip a

(2)备用服务器的配置

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

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

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

复制代码
systemctl stop firewalld
setenforce 0
cd /etc/keepalived
cp keepalived.conf.sample keepalived.conf
vim keepalived.conf

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

复制代码
systemctl start keepalived
ip a

3,测试双机热备功能

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

(1)连通性测试

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

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

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

(2)Web访问测试

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

两台

复制代码
echo "test1">/var/www/html/index.html
systemctl start httpd
systemctl enable httpd

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

①停止启用主服务器的Keepalived服务,再次访问上述Web服务,将看到由备用服务

器192.168.10.102提供的网页文档,说明VIP地址已切换至备用服务器。

②重新启用主服务器的Keepalived服务,再次访问上述Web服务,将看到重新由主服

务器192.168.10.101提供的网页文档,说明主服务器已重新夺取VIP地址。

(3)查看日志记录

在执行主、备服务器故障切换的过程中,分别观察各自的/var/log/messages日志文件,可以看到MASTER、SLAVE状态的迁移记录。①主服务器中,Keepalived服务状态先变为"stop",移除VIP地址,恢复后重新变为MASTER。

复制代码
less /var/log/messages

二,使用Keepalived实现双机热备(案例)

第一台(调度器)和第二台(调度器)一样

只需要将01改为02即可

复制代码
systemctl stop firewalld
setenforce 0
dnf -y install keepalived
dnf -y install keepalived ipvsadm
cd /etc/keepalived
cp keepalived.conf.sample keepalived.conf
vim keepalived.conf

第三台(web)和 第四台(web)一样

只需要将test1改为test2即可

复制代码
systemctl stop firewalld
setenforce 0
dnf -y install httpd
echo "test1">/var/www/html/index.html
systemctl start httpd
systemctl enable httpd
ip addr add 192.168.10.172/32 dev lo label lo:0
nmcli c reload
nmcli c up lo
ip route add local 192.168.10.172/32 dev lo
route add -host 192.168.10.172 dev lo
vim /etc/rc.local
ip addr add 192.168.10.172/32 dev lo label lo:0
ip route add local 192.168.10.172/32 dev lo
chmod +x /etc/rc.local
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p 

第五台(客户端)

复制代码
systemctl stop firewalld
setenforce 0
curl 192.168.10.172
curl 192.168.10.172

随便挂起一台调度器

复制代码
curl 192.168.10.172

停掉一台HTTPD服务

复制代码
curl 192.168.10.172
相关推荐
墨家前任巨子5 小时前
定时关机脚本
运维
云计算练习生5 小时前
什么是上下文切换?进程切换时 CPU 到底在保存什么
linux·服务器·操作系统·进程切换
用户0510122572965 小时前
RGA(二)——RK3588 的核拓扑与能力差异
linux·嵌入式
ESDWAN5 小时前
企业组网后网络频繁掉线,常见故障排查指南
运维·网络·架构
用户0510122572965 小时前
RGA(一)——基础知识
linux·嵌入式
qetfw5 小时前
Debian 综合服务实训:Apache2、Samba、LDAP、vsftpd 与 OpenVPN
linux·服务器·debian
用户0510122572965 小时前
RGA(三)——实宽高、虚宽高与对齐约束
linux·嵌入式
fastjson_5 小时前
帆软看板 - 问题收集
linux·前端·javascript
jianpeng的工程笔记5 小时前
EL8 / EL9 安装 Slurm 26.05.4:主备控制器、MariaDB 记账与作业验收
linux·数据库·mariadb·高性能计算·slurm
程序员-Benothing5 小时前
Linux系统时间管理:date、timedatectl、NTP、Chrony配置
linux·运维·服务器