24. 高可用与集群基础
本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 配置高可用和集群基础,配合 SecureFX 传输配置文件。内容聚焦 Keepalived 高可用和 Pacemaker 集群管理,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。
24.1 前提条件
- RHEL 9 已安装(参考第 1 章),主机名设置为
LinuxDC。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
- 系统已订阅并启用 RHEL 仓库(参考第 2 章)。
- 至少两台节点(假设 node1 和 node2),网络连接正常,SSH 免密登录已配置(参考第 9 章)。
💡 提示:高可用配置需多节点测试,确保时间同步和网络稳定。在 RHEL 10 中,Pacemaker 支持更多内置容器资源代理,提升云原生集群管理效率。
24.2 高可用配置
24.2.1 安装 Keepalived
- 安装 Keepalived:
dnf install -y keepalived # 安装 Keepalived
24.2.2 配置 Keepalived(主节点 node1)
- 编辑配置文件:
vim /etc/keepalived/keepalived.conf # 示例内容: global_defs { notification_email { admin@example.com } notification_email_from keepalived@node1 smtp_server 127.0.0.1 router_id node1 } vrrp_instance VI_1 { state MASTER interface ens33 # 替换为实际接口 virtual_router_id 51 priority 100 # 主节点优先级高 advert_int 1 authentication { auth_type PASS auth_pass securepass } virtual_ipaddress { 192.168.1.100/24 } }
24.2.3 配置 Keepalived(备份节点 node2)
-
编辑配置文件(类似 node1,但调整):
# 在 node2: state BACKUP priority 90 # 备份节点优先级低 router_id node2 -
启用服务(两节点):
systemctl enable --now keepalived # 启用并启动 Keepalived -
防火墙配置(两节点):
firewall-cmd --permanent --add-port=112/udp # VRRP 端口 firewall-cmd --reload
🧠 知识点:Keepalived 使用 VRRP 协议实现 VIP 浮动。验证:
ip addr show显示 VIP 在主节点。✅ 检查点:主节点故障后,VIP 漂移到备份节点。
24.3 集群管理配置
24.3.1 安装 Pacemaker
-
安装 Pacemaker(两节点):
dnf install -y pcs pacemaker corosync fence-agents-all # 安装集群工具 -
设置 hacluster 用户密码(两节点):
passwd hacluster # 设置相同密码
24.3.2 配置 Pacemaker 集群
-
创建集群(node1 执行):
pcs cluster auth node1 node2 # 认证节点 pcs cluster setup cluster_name node1 node2 # 设置集群 pcs cluster start --all # 启动所有节点 pcs cluster enable --all # 启用开机自启 -
配置集群属性:
pcs property set stonith-enabled=false # 临时禁用 stonith(生产启用) -
创建虚拟 IP 资源:
pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s # 创建 VIP 资源 -
防火墙配置(两节点):
firewall-cmd --permanent --add-service=high-availability firewall-cmd --reload
🧠 知识点:Pacemaker 使用 Corosync 通信。验证:
pcs status cluster显示 Online 节点。✅ 检查点:
pcs status nodes显示节点状态,ip addr show显示 VIP。💡 提示:生产环境配置 stonith(如 fence_ipmilan)防止脑裂。在 RHEL 10 中,Pacemaker 支持更多云资源代理,如 AWS/GCP 集成。
24.4 常见问题与排查
🔍 故障排查:
-
问题 1:Keepalived VIP 未漂移
解决:检查优先级(keepalived.conf)、VRRP 多播(ip maddr)、日志(journalctl -u keepalived)。 -
问题 2:Pacemaker 节点离线
解决:pcs status nodes,检查 Corosync(journalctl -u corosync)、网络、认证。 -
问题 3:资源未启动
解决:pcs status resources,检查约束(pcs constraint)、日志(journalctl -u pacemaker)。 -
问题 4:防火墙阻挡
解决:firewall-cmd --list-all,添加必要端口/服务。
24.5 实践任务
- 使用 SecureCRT 通过 SSH(端口 2222)登录
LinuxDC,安装 Keepalived 并在 node1/node2 配置 VIP。 - 测试 Keepalived 故障切换。
- 安装 Pacemaker,配置集群 node1 和 node2。
- 创建虚拟 IP 资源并验证集群状态。
✅ 检查点:VIP 漂移正常,集群 Online,资源运行。
24.6 自测问题
-
问题 1:如何配置 Keepalived 虚拟 IP?
答案:编辑/etc/keepalived/keepalived.conf,设置virtual_ipaddress { 192.168.1.100 },然后systemctl enable --now keepalived。 -
问题 2:如何设置 Pacemaker 集群?
答案:pcs cluster setup cluster_name node1 node2,然后pcs cluster start --all。 -
问题 3:如何创建 Pacemaker 虚拟 IP 资源?
答案:pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s。
🧾 总结:
本章完整介绍了 RHEL 9 高可用与集群基础的配置,包括 Keepalived 和 Pacemaker 的设置。这些技能确保服务连续性,为后续容器虚拟化和云集成提供冗余基础。