Skip to content

16. 高可用与集群基础

本章节指导在 RHEL 8.10(主机名 ZSLinux)上使用 SecureCRT 配置高可用和集群基础,配合 SecureFX 传输配置文件。内容聚焦 Keepalived 高可用和 Pacemaker 集群管理,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 ZSLinux 环境中测试,确保实验一致性。

16.1 前提条件

  • RHEL 8.10 已安装(参考第 1 章),主机名设置为 ZSLinux.
  • 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 6 章).
  • 使用 SecureFX 传输文件(SFTP 协议).
  • 具有 root 或 sudo 权限.
  • 系统已订阅并启用 RHEL 仓库(参考第 4 章).
  • 至少两台节点(假设 node1 和 node2),网络连接正常,SSH 免密登录已配置(参考第 6 章).

16.2 高可用配置

16.2.1 安装 Keepalived

  • 安装 Keepalived:
    bash
    dnf install -y keepalived  # 安装 Keepalived 高可用工具

16.2.2 配置 Keepalived

  • 编辑 Keepalived 配置文件(在 master 节点,如 node1):
    bash
    vim /etc/keepalived/keepalived.conf  # 编辑 Keepalived 配置文件
    # 添加以下内容(示例虚拟 IP 192.168.1.100):
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.1.100
        }
    }
  • 在 backup 节点(如 node2)修改 state BACKUPpriority 90.
  • 启动服务:
    bash
    systemctl enable --now keepalived  # 启用并启动 Keepalived 服务

16.2.3 基础负载均衡

  • 安装 HAProxy(可选负载均衡):
    bash
    dnf install -y haproxy  # 安装 HAProxy 负载均衡工具
  • 编辑 HAProxy 配置:
    bash
    vim /etc/haproxy/haproxy.cfg  # 编辑 HAProxy 配置文件
    # 添加前端和后端配置(示例):
    frontend http-in
        bind *:80
        default_backend webservers
    backend webservers
        server node1 192.168.1.101:80 check
        server node2 192.168.1.102:80 check
  • 启动服务:
    bash
    systemctl enable --now haproxy  # 启用并启动 HAProxy 服务

16.3 集群管理

16.3.1 安装 Pacemaker 和 Corosync

  • 安装集群工具:
    bash
    dnf install -y pcs pacemaker corosync  # 安装 Pacemaker 和 Corosync

16.3.2 配置集群

  • 设置密码(在所有节点):
    bash
    passwd hacluster  # 设置 hacluster 用户密码
  • 设置集群:
    bash
    pcs host auth node1 node2  # 节点认证
    pcs cluster setup cluster_name node1 node2  # 配置集群节点
    pcs cluster start --all  # 启动所有节点集群
    pcs cluster enable --all  # 启用开机自启

16.3.3 管理资源

  • 创建虚拟 IP 资源:
    bash
    pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s  # 创建虚拟 IP 资源
  • 配置故障转移:
    bash
    pcs resource meta vip target-role="Started"  # 设置资源启动角色
    pcs resource group add group_vip vip  # 创建资源组

16.4 验证

  • 验证 Keepalived:
    bash
    ip addr show  # 检查虚拟 IP 192.168.1.100 是否绑定
    systemctl status keepalived  # 检查 Keepalived 状态
  • 验证集群状态:
    bash
    pcs status cluster  # 检查集群状态
    pcs status nodes  # 检查节点状态
    pcs status resources  # 检查资源状态
  • 测试故障转移:
    bash
    systemctl stop keepalived  # 在 master 节点停止 Keepalived
    ip addr show  # 在 backup 节点检查虚拟 IP 是否切换
  • 常见问题:
    • 集群无法启动:检查 Corosync 配置(/etc/corosync/corosync.conf)或节点认证(pcs host auth)。
    • 资源未迁移:确认资源组(pcs resource group)和优先级(priority)设置正确。
    • Keepalived 不切换:检查 VRRP 配置(vrrp_instance)和网络连接。

16.5 实践任务

  1. 使用 SecureCRT 登录 ZSLinux,安装 Keepalived 并配置虚拟 IP 192.168.1.100。
  2. 测试 Keepalived 故障转移。
  3. 安装 Pacemaker 和 Corosync,设置集群 node1 和 node2。
  4. 创建虚拟 IP 资源并验证集群状态。

16.6 自测问题

  • 问题:如何配置 Keepalived 虚拟 IP?
    • 答案:编辑 /etc/keepalived/keepalived.conf,设置 virtual_ipaddress { 192.168.1.100 },然后 systemctl enable --now keepalived
  • 问题:如何设置 Pacemaker 集群?
    • 答案pcs cluster setup cluster_name node1 node2,然后 pcs cluster start --all
  • 问题:如何创建 Pacemaker 虚拟 IP 资源?
    • 答案pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s

Released under the MIT License.