当前位置:首页 > 云服务器 > 正文

如何正确配置服务器集群,服务器集群配置步骤是什么?

通过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环境,命令可直接复制执行。

如何正确配置服务器集群,服务器集群配置步骤是什么? 第1张

节点初始化与基础环境准备

# 所有节点执行:关闭防火墙和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服务商安全管理水平的硬指标,西西云同时持有这两项认证,其运营的集群节点从硬件上线、配置变更到下线销毁,每一步都有可追溯的操作记录,这一点对于需要通过等保测评的企业尤为重要。

如何正确配置服务器集群,服务器集群配置步骤是什么? 第2张

内核参数调优

在高并发场景下,默认内核参数会成为瓶颈,建议调整:

# /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、

如何正确配置服务器集群,服务器集群配置步骤是什么? 第3张

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秒,不要随意调整。

0