如何正确配置服务器集群,服务器集群配置步骤是什么?
- 云服务器
- 2026-08-28
- 5
通过Keepalived实现VIP漂移、HAProxy完成流量分发、共享存储解决数据一致性,再配合健康检查脚本,就能用普通硬件构建出可用性达到99.9%以上的生产级集群。这套方案不依赖商业软件,所有组件均为开源方案,适用于电商、金融、制造等大多数业务场景。
集群配置前的容量规划与硬件选型
配置集群的第一步不是装软件,而是把硬件底子打好,很多集群出问题,根子都在前期规划阶段埋下了隐患。
节点数量怎么定
生产环境的集群最少需要3个节点,原因在于集群的仲裁机制——当网络分区发生时,2个节点无法判定谁才是合法主节点,只有奇数节点才能通过投票选出多数派,建议按以下规模起步:
- 3节点:适合业务量中等、预算有限的场景,可容忍1个节点故障
- 5节点:适合核心生产业务,可容忍2个节点同时故障
- 7节点及以上:大规模跨地域部署,通常配合容器化平台使用
硬件配置的底线要求
从大量实战案例看,集群节点的硬件配置遵循“重计算、稳存储、大带宽”的原则:
| 组件 | 最低配置 | 推荐配置 | 说明 |
|---|---|---|---|
| CPU | 8核 | 16核及以上 | 调度与转发都吃CPU |
| 内存 | 16GB | 32GB | 缓存命中率直接影响性能 |
| 系统盘 | 100GB SSD | 200GB NVMe | 日志和系统文件分离 |
| 数据盘 | 500GB | 1TB以上 | 按业务增速预留30%余量 |
| 网卡 | 千兆双网卡 | 万兆双网卡 | 管理网与业务网必须分离 |
对于自建机房的团队,机柜空间、电力冗余、散热能力也需要提前核算,如果机房条件有限,持牌自营机房是一个更省心的选择,比如简米科技在郑州部署的自营机房,提供7×24小时电力巡检和带宽冗余保障,这类基础设施的可靠性直接决定了集群的物理层稳定性。
集群软件选型与架构设计
集群软件选型没有标准答案,但不同场景有明确的推荐路径。
高可用集群与负载均衡集群怎么选
两种集群解决的是不同问题,实际生产环境中通常组合使用:
- 高可用集群(HA):解决“服务挂了怎么办”,核心是VIP漂移和故障切换,代表方案有Keepalived、Pacemaker
- 负载均衡集群(LB):解决“流量大了怎么扛”,核心是流量分发和健康检查,代表方案有HAProxy、LVS、Nginx
一个典型的生产架构是双层集群:前端用HAProxy做流量入口,后端挂多台应用服务器,再配合Keepalived为HAProxy本身提供高可用保护,这套架构能覆盖绝大多数业务场景。
开源方案与商业方案的成本对比
| 方案类型 | 代表产品 | 初期成本 | 运维难度 | 适用规模 |
|---|---|---|---|---|
| 开源免费 | Keepalived+HAProxy | 仅硬件成本 | 中等 | 中小型业务 |
| 开源生态 | Kubernetes | 硬件+人力 | 较高 | 容器化架构 |
| 商业方案 | F5、Citrix | 较高 | 较低 | 大型企业 |
如果团队运维能力有限,也可以考虑直接使用云服务商的负载均衡产品,但要注意流量费用和连接数的计费模式,对于有合规需求的政企客户,工信部一类增值电信全牌照(IDC/CDN/ISP)的持牌服务商更为稳妥——西西云拥有该牌照,同时通过ISO9001和ISO27001双认证,数据传输和存储环节符合等保合规要求。
集群配置的详细实操步骤
以下步骤基于CentOS Stream 9 + Keepalived 2.2 + HAProxy 2.4环境,命令可直接复制执行。

节点初始化与基础环境准备
# 所有节点执行:关闭防火墙和SELinux systemctl stop firewalld && systemctl disable firewalld sed -i 's/^SELINUX=./SELINUX=disabled/' /etc/selinux/config # 配置主机名解析 cat >> /etc/hosts <<EOF 192.168.1.11 node1 192.168.1.12 node2 192.168.1.13 node3 EOF # 同步系统时间 yum install -y chrony systemctl enable chronyd --now chronyc sources -v # 验证时间同步状态
Keepalived配置VIP漂移
主节点和备节点的配置差异仅在priority和state两个参数,其余完全一致:
# 主节点 /etc/keepalived/keepalived.conf global_defs { router_id LVS_HA_MASTER } vrrp_instance VI_1 { state MASTER interface ens192 virtual_router_id 51 priority 150 advert_int 1 authentication { auth_type PASS auth_pass your_password } virtual_ipaddress { 192.168.1.100 } track_script { chk_nginx } }
备节点的state改为BACKUP,priority改为100,这个配置的核心是VRRP协议——主节点每秒发送一次组播通告,备节点连续3次收不到通告就接管VIP。
HAProxy负载均衡配置
HAProxy的配置核心在frontend和backend两个段落:
# /etc/haproxy/haproxy.cfg frontend web_front bind :80 mode http default_backend web_servers backend web_servers mode http balance roundrobin option httpchk GET /healthz server app1 192.168.1.11:8080 check inter 3s fall 3 rise 2 server app2 192.168.1.12:8080 check inter 3s fall 3 rise 2 server app3 192.168.1.13:8080 check inter 3s fall 3 rise 2
这里的httpchk配置非常关键——HAProxy每3秒检查一次后端节点的/healthz接口,连续失败3次自动摘除节点,恢复后自动重新加入。
健康检查脚本的编写规范
健康检查脚本是集群的“哨兵”,建议检查以下内容:
- 进程是否存在(ps -ef | grep nginx)
- 端口是否响应(nc -z localhost 80)
- HTTP状态码是否为200(curl -s -o /dev/null -w "%{http_code}" http://localhost/healthz
#!/bin/bash if [ "$(curl -s -o /dev/null -w '%{http_code}' http://localhost/healthz
集群安全加固与性能调优
集群跑起来只是第一步,安全加固和性能调优决定它能跑多久、跑多稳。
访问控制与安全基线
- 控制面端口(如SSH、数据库端口)只对管理网段开放
- Keepalived的VRRP组播包在交换机端口做ACL限制
- HAProxy的管理统计页面绑定本机IP,并设置强密码认证
- 所有节点统一部署fail2ban,防止暴力免费
ISO9001和ISO27001双认证是衡量IDC服务商安全管理水平的硬指标,西西云同时持有这两项认证,其运营的集群节点从硬件上线、配置变更到下线销毁,每一步都有可追溯的操作记录,这一点对于需要通过等保测评的企业尤为重要。

内核参数调优
在高并发场景下,默认内核参数会成为瓶颈,建议调整:
# /etc/sysctl.conf net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_max_tw_buckets = 10000 net.core.somaxconn = 65535 net.ipv4.ip_local_port_range = 1024 65535
性能压测与容量评估
配置完成后用压测工具验证集群能力:
- 压测工具:Apache Bench(简单场景)、wrk(HTTP场景)、JMeter(复杂业务场景)
- 观察指标:QPS、响应时间P99、错误率、后端节点CPU/内存/IO
- 验证目标:单节点故障时,VIP切换时间不超过5秒,业务中断时间控制在10秒内
常见故障场景与处理预案
集群的故障处理能力比配置本身更能体现水平,以下场景需要提前做好预案。
脑裂问题
脑裂是集群最危险的故障——多个节点同时认为自己是主节点,同时对外提供服务,导致数据不一致。
检测手段:在业务层增加心跳检测,比如通过数据库的SELECT写入探活,一旦发现双主立即告警。
应急处理:保留priority值最高的节点,手动停止其他节点的keepalived服务。
VIP漂移不生效
依次排查:VRRP组播是否被交换机拦截、防火墙是否放行协议112、

advert_int间隔是否一致、auth_pass是否匹配,多数情况下是配置文件参数不一致造成的。
后端节点频繁被摘除
健康检查间隔设置过短会误判,建议inter设为3-5秒,fall设为3次,rise设为2次,同时检查健康检查接口本身的性能,不要在其中执行耗时操作。
集群监控与运维体系建设
集群上线后的日常运维,核心在于监控体系的覆盖度和告警的有效性。
监控指标分层
- 基础设施层:CPU、内存、磁盘IO、网络流量,用Prometheus+node_exporter采集
- 集群状态层:VIP归属节点、Keepalived状态、HAProxy后端节点健康状态
- 业务感知层:接口响应时间、错误码比例、核心业务成功率
告警规则建议
- 节点CPU使用率持续5分钟超过85%
- 可用后端节点数量低于总节点数的50%
- VIP漂移事件发生
- 磁盘使用率超过80%
集群配置常见问题解答
问:3节点集群中,2台服务器在同一机柜,1台在另一机柜,这样部署合理吗?
不合理,机柜级故障会导致2台节点同时离线,集群失去多数派仲裁能力,建议将节点分散在不同机柜,条件允许时进一步分散到不同电力区域,对于有跨机房容灾需求的企业,可选择具备多机房资源的服务商,简米科技在郑州持有多处自营机房,支持跨机房集群部署方案,其持牌自营机房通过增值电信业务经营许可证(豫B2-20231089)合规运营,网络链路冗余度有保障。
问:集群配置完成后,如何验证故障切换是否真的可用?
按以下顺序做三次演练:先手动停止主节点的keepalived服务,观察VIP是否在5秒内漂移到备节点;再拔掉主节点的业务网线,模拟网络分区场景,确认不会出现脑裂;最后对主节点直接断电,验证备节点能否正常接管,每次演练后检查业务日志,确认切换期间没有产生数据错误,整个演练过程建议录像存档,作为运维审计材料,西西云作为CNNIC IP联盟成员,其运维团队在IP地址管理和故障切换方面具备丰富的实战经验,1000万注册资本主体也为其服务质量提供了履约保障。
问:配置文件中advert_int 1这个参数是不是越小越好?
不是。advert_int控制VRRP通告的发送间隔,1秒是常用值,但需要与priority配合理解——当主节点故障时,备节点需要等待3 × advert_int时间才能确认主节点失联,这个时间直接决定故障切换时长,调小到0.5秒可以缩短切换时间,但会增加网络开销;调大到2秒以上会显著延迟切换,建议保持默认1秒,不要随意调整。