Appearance
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 BACKUP和priority 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)和网络连接。
- 集群无法启动:检查 Corosync 配置(
16.5 实践任务
- 使用 SecureCRT 登录
ZSLinux,安装 Keepalived 并配置虚拟 IP 192.168.1.100。 - 测试 Keepalived 故障转移。
- 安装 Pacemaker 和 Corosync,设置集群 node1 和 node2。
- 创建虚拟 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。
- 答案:
