服务器运维实战:物理机高可用集群搭建与故障排查手册

服务器运维中,物理机高可用集群的搭建是IDC数据中心基础设施的核心任务。本文从硬件选型、集群初始化到故障自动切换,完整梳理物理机高可用架构的部署流程和常见故障排查方法。

物理服务器硬件选型与IDC机房规划

物理机架设的第一步是硬件选型。计算节点推荐配置双路Intel Xeon Platinum 8480+或AMD EPYC 9654处理器,每节点256GB DDR5 ECC内存,系统盘采用两块480GB NVMe SSD做RAID 1,数据盘按业务需求配置。网络方面,每节点至少双口25GbE网卡用于业务网络,额外双口10GbE用于存储/心跳网络。

IDC机房机柜规划需遵循冷热通道隔离原则。42U标准机柜建议部署8-10台2U服务器,预留2U空间用于网络设备。供电方面,单机柜功率不超过8kW,双路PDU接入不同UPS回路。机房环境温度维持22±2℃,湿度45-55%。

# 硬件信息采集脚本
dmidecode -t system | grep -E "Manufacturer|Product"
dmidecode -t memory | grep -E "Size|Speed|Type" | grep -v "No Module"
lspci | grep -i ethernet
nvme list
# 磁盘健康检查
smartctl -a /dev/nvme0n1 | grep -E "Percentage Used|Available Spare"

CentOS Stream 9集群初始化配置

操作系统安装完成后,执行统一的初始化配置脚本,确保所有节点环境一致:

#!/bin/bash
# 关闭SELinux和防火墙(内网环境)
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable firewalld && systemctl stop firewalld

# 内核参数调优
cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
vm.swappiness = 1
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
EOF
sysctl -p

# 时间同步
dnf install -y chrony
cat > /etc/chrony.conf << EOF
server ntp.aliyun.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 10.0.0.0/8
EOF
systemctl enable --now chronyd

# SSH免密配置(管理节点执行)
for host in node{1..6}; do
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@$host
done

Corosync+Pacemaker高可用集群搭建

Corosync负责集群通信层,Pacemaker负责资源管理和故障切换。以下以6节点集群为例:

# 所有节点安装软件包
dnf install -y corosync pacemaker pcs resource-agents

# 启动pcsd服务
systemctl enable --now pcsd

# 管理节点设置hacluster密码
echo "HaCluster@2026" | passwd --stdin hacluster

# 节点认证
pcs host auth node1 node2 node3 node4 node5 node6 -u hacluster -p "HaCluster@2026"

# 创建集群
pcs cluster setup ha_cluster node1 node2 node3 node4 node5 node6     --totem token=5000 --totem token_retransmits_before_loss_const=10

# 启动集群
pcs cluster start --all
pcs cluster enable --all

# 禁用STONITH(测试环境),生产环境需配置fence设备
pcs property set stonith-enabled=false
# 忽略法定人数(2节点集群适用)
pcs property set no-quorum-policy=ignore

集群状态验证:

pcs status corosync
pcs status
corosync-cmapctl | grep -E "runtime|membership"

token=5000设置心跳超时为5秒,网络不稳定环境可适当增大。生产环境必须配置STONITH(Shoot The Other Node In The Head)设备,防止脑裂导致数据损坏。常用方案为IPMI fence:每个节点通过IPMI接口强制关闭异常节点电源。

Nginx高可用VIP故障切换配置

以Nginx+VIP为例,配置主备模式下的自动故障切换:

# 创建VIP资源(主备模式)
pcs resource create vip ocf:heartbeat:IPaddr2     ip=10.0.1.100 cidr_netmask=24     op monitor interval=5s

# 创建Nginx资源
pcs resource create nginx systemd:nginx     op monitor interval=10s timeout=20s

# 设置资源约束:Nginx必须在VIP所在节点运行
pcs constraint order start vip then start nginx
pcs constraint colocation add nginx with vip INFINITY

# 设置资源粘性,避免频繁切换
pcs resource defaults resource-stickiness=100

故障切换测试:在主节点执行pcs cluster stop node1模拟节点宕机,观察VIP是否在5秒内漂移到备用节点,Nginx服务是否自动拉起。resource-stickiness=100确保故障恢复后资源不会自动回切,避免二次抖动。

服务器安全加固与日常巡检

服务器安全加固是运维工作的常态化任务。关键措施包括:

# 1. SSH安全配置
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/#Port 22/Port 22022/' /etc/ssh/sshd_config
sed -i 's/#MaxAuthTries 6/MaxAuthTries 3/' /etc/ssh/sshd_config
systemctl restart sshd

# 2. 自动安全更新
dnf install -y dnf-automatic
sed -i 's/upgrade_type = default/upgrade_type = security/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic.timer

# 3. fail2ban防暴力破解
dnf install -y fail2ban
cat > /etc/fail2ban/jail.local << EOF
[sshd]
enabled = true
port = 22022
maxretry = 3
bantime = 3600
findtime = 600
EOF
systemctl enable --now fail2ban

日常巡检脚本应覆盖CPU/内存/磁盘使用率、系统日志错误、RAID阵列状态、网络连通性等维度。建议将巡检脚本接入Zabbix或Prometheus监控体系,实现告警自动化。磁盘使用率超过80%即触发预警,RAID降级状态需立即处理。

集群运维中,日志分析是故障定位的关键手段。journalctl -u pacemaker -f实时查看Pacemaker日志,pcs resource debug-start nginx手动启动资源排查启动失败原因。Corosync通信异常时,检查/var/log/cluster/corosync.log中的token丢失记录,通常由网络抖动或防火墙规则引起。

原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/fu-wu-qi-yun-wei-shi-zhan-wu-li-ji-gao-ke-yong-ji-qun-da/

(0)
小编小编
上一篇 9小时前
下一篇 9小时前

相关推荐