跳转至

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 实践任务

  1. 使用 SecureCRT 通过 SSH(端口 2222)登录 LinuxDC,安装 Keepalived 并在 node1/node2 配置 VIP。
  2. 测试 Keepalived 故障切换。
  3. 安装 Pacemaker,配置集群 node1 和 node2。
  4. 创建虚拟 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 的设置。这些技能确保服务连续性,为后续容器虚拟化和云集成提供冗余基础。