一、红帽高可用集群架构全景
1.1 核心组件交互逻辑
graph TD
A[节点1] -->|Corosync 心跳| B[节点2]
A -->|Pacemaker 资源管理| C[共享存储]
B --> C
D[Fencing设备] -->|STONITH| A
D -->|STONITH| B
C -->|GFS2锁管理| A
C -->|GFS2锁管理| B
1.2 集群服务层次模型
层级 | 组件 | 关键功能 |
---|---|---|
消息层 | Corosync | 节点间心跳与仲裁 |
资源层 | Pacemaker | 资源调度与故障转移 |
存储层 | GFS2/CLVM | 集群感知文件系统与卷管理 |
隔离层 | Fencing Agents | 节点隔离防脑裂 |
二、集群基础环境部署
2.1 网络与存储准备
# 配置冗余网络(节点间)
nmcli con add type team con-name team0 ifname team0 \
config '{"runner": {"name": "activebackup"}}'
nmcli con add type team-slave con-name team0-port1 ifname eth1 master team0
nmcli con add type team-slave con-name team0-port2 ifname eth2 master team0
# 创建共享LUN(SAN环境)
targetcli /backstores/block create name=shared_lun dev=/dev/sdb
targetcli /iscsi create iqn.2024-08.com.example:ha-cluster
targetcli /iscsi/iqn.2024-08.com.example:ha-cluster/tpg1/luns create /backstores/block/shared_lun
2.2 Pacemaker集群初始化
# 所有节点安装集群组件
yum install -y pcs pacemaker corosync fence-agents-all
# 配置集群认证
pcs host auth node1 node2 -u hacluster -p MySecurePass123!
# 创建并启动集群
pcs cluster setup --name web_cluster node1 node2
pcs cluster start --all
pcs cluster enable --all
三、高级资源配置与管理
3.1 复合资源定义
# 创建VIP资源
pcs resource create ClusterVIP ocf:heartbeat:IPaddr2 \
ip=192.168.1.100 cidr_netmask=24 \
op monitor interval=30s
# 创建Apache服务资源
pcs resource create WebService systemd:httpd \
op start timeout=90s \
op stop timeout=100s \
op monitor interval=60s
# 配置资源组约束
pcs constraint colocation add WebService with ClusterVIP INFINITY
pcs constraint order ClusterVIP then WebService
3.2 GFS2集群文件系统配置
# 创建集群LVM卷
pvcreate /dev/sdb
vgcreate -cy cluster_vg /dev/sdb
lvcreate -L 20G -n web_data cluster_vg
# 格式化GFS2文件系统
mkfs.gfs2 -p lock_dlm -j 3 -t web_cluster:web_fs /dev/cluster_vg/web_data
# 挂载配置
pcs resource create WebFS Filesystem \
device="/dev/cluster_vg/web_data" \
directory="/var/www/html" \
fstype="gfs2" \
--group WebGroup
四、集群监控与故障诊断
4.1实时状态监控命令
# 查看集群整体状态
pcs status --full
# 显示资源操作历史
pcs resource history WebService
# 跟踪资源迁移过程
crm_mon -frR
4.2 日志分析要点
日志文件 | 关键信息 | 分析命令 |
---|---|---|
/var/log/cluster/corosync.log | 节点间通信状态 | grep -i "totem" |
/var/log/pacemaker.log | 资源调度决策记录 | tail -f /var/log/pacemaker.log |
/var/log/messages | fencing操作记录 | journalctl -u pcsd |
五、实验环境搭建指南
5.1 最小化实验拓扑
graph LR
A[节点1] -->|心跳网络| B[节点2]
A -->|存储网络| C[SAN存储]
B --> C
D[管理PC] -->|SSH| A
D -->|SSH| B
5.2 典型实验场景
场景一:Web服务自动故障转移
模拟节点故障验证VIP切换
测试会话保持机制
场景二:存储脑裂防护
手动触发fencing操作
分析GFS2锁日志
场景三:滚动升级演练
不中断服务完成内核升级
验证资源组迁移过程
欢迎在评论区提交您的集群配置案例或技术疑问!