📋 前言

在生产环境中,高可用(High Availability) 是保障业务连续性的关键。本文分享了我在实际工作中实施的三个高可用架构优化方案,涵盖了日志服务、老化测试网络和软件部署服务,希望能给大家一些参考。


一、Log 服务器高可用架构优化

1.1 问题背景

在生产环境中,日志服务器承担着收集和分析所有产线设备日志的重要任务。我们遇到了以下问题:

  • 单点故障风险:原有架构无法实现 log 服务器的高可用,单台服务器故障会导致整个日志系统瘫痪
  • 磁盘性能瓶颈:单台服务器的磁盘读性能持续告警,磁盘读请求响应时间偏高,影响日志查询效率
  • 扩展性差:随着产线规模扩大,单台服务器已无法满足日益增长的日志处理需求

1.2 解决方案

采用 双 FTP 节点 + DFS(分布式文件系统)+ Nginx 的高可用架构:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
┌─────────────┐      ┌─────────────┐
│  FTP Node 1 │◄────►│  FTP Node 2 │
│  (Active)   │  DFS │  (Standby)  │
└──────┬──────┘      └──────┬──────┘
       │                    │
       └────────┬───────────┘
         ┌──────▼──────┐
         │    Nginx    │
         │ (Load Balancer)│
         └──────┬──────┘
         ┌──────▼──────┐
         │   Clients   │
         │  (产线设备)  │
         └─────────────┘

架构优势:

  1. 高可用:两个 FTP 节点配置相同,通过 DFS 实现文件实时同步,单节点故障不影响服务
  2. 负载均衡:Nginx 作为前端负载均衡器,分发客户端请求到两个节点
  3. 性能提升:双节点分担磁盘 IO 压力,解决单点性能瓶颈
  4. 易扩展:后续可根据需要增加更多节点

1.3 实施要点

  • DFS 配置:配置 DFS 复制组,确保两个节点的文件实时同步
  • Nginx 配置:配置 upstream 和 health check,实现自动故障转移
  • 权限管理:统一两个节点的文件权限,避免 DFS 同步失败
  • 监控告警:添加 DFS 复制状态监控,及时发现同步异常

二、Burn-in 网络架构优化

2.1 原有架构问题

Burn-in(老化测试)是产品出厂前的重要环节。原有架构存在以下问题:

架构规划:

  • 每条线 3 个子网,每个子网搭配 1 台服务器 + 1 台备用服务器
  • 3 条线总共需要 12 台服务器(9 台在线 + 3 台备用)
  • 每个子网设计最大 agent 700 台(H 客户需求 1000 台)

存在的问题:

  1. 备用服务器故障率高

    • 3 台备用服务器来自收购的 W 公司,已使用 5 年以上
    • 故障率极高,存在电源、内存、SSD 等多种故障
    • 无有效售后,维修成本高
  2. 手动切换效率低

    • online 服务器故障时,需要手动切换备份服务器
    • 切换时间长,影响生产进度
    • 需要 IT 人员现场操作
  3. 资源利用率低

    • 备用服务器长期闲置,资源浪费
    • 在线服务器负载不均衡

2.2 优化方案

根据老化架的不同特性,采用分层次的优化方案:

L1 区域(集中老化架)

方案:保留原有架构

  • 3 个子网分别控制 7、7、6 个老化架
  • agent 数量:616、616、528
  • 使用唯一维修好的服务器作为备份

原因:L1 是集中老化架,负载会集中在某一台服务器上,保持原有方案更稳定。

L2 区域(分散老化架)

方案:2+1 负载均衡架构

  • 2 台服务器做负载均衡 + 1 台备份
  • 总共控制 13 个老化架
  • 平均每台服务器负责 agent:1144/2 = 572 台

优势

  • 正常运行时,2 台服务器分担负载
  • 单台故障时,另一台自动接管,无需手动切换
  • 备份服务器作为最后保障

L3 区域(大规模老化架)

方案:2+1 负载均衡架构

  • 2 台服务器做负载均衡 + 1 台备份
  • 总共控制 56 个老化架
  • 平均每台服务器负责 agent:1400/2 = 700 台

优势:同 L2,有效提高服务器瞬时使用率。

2.3 实施细则

已实现功能:

  • ✅ 网络中继:同一台服务器给不同子网分配 DHCP
  • ✅ DHCP 负载均衡:多台服务器同时提供 DHCP 服务
  • ✅ Log DFS 同步:日志文件实时同步到备份服务器
  • ✅ 备份服务器 DFS 设定完成

IT 建议:

  • DHCP 故障转移不建议 2+1 架构
  • 建议备份服务器 DHCP 配置但不启用
  • 出现异常时,IT 手动启用备份服务器 DHCP

2.4 改善效果

指标 优化前 优化后
服务器数量 12 台 9 台
故障切换 手动(10-30 分钟) 自动(秒级)
资源利用率 25%(备用闲置) 67%(负载均衡)
维护成本 高(频繁维修) 低(减少备用机)
稳定性 低(备用机故障率高) 高(自动故障转移)

三、Keepalived 实现 SWDL 高可用

3.1 项目背景

SWDL(Software Download)是为老化测试机台提供 PXE 启动和系统安装服务的关键系统。

原有架构:

  • 22 个老化架,每个 88 个老化位,共 1936 个老化位
  • 分为 3 个子网,每个子网 1 台服务器 + 1 台备用,共 4 台服务器
  • 每台服务器独立运行 DHCP、WDS(Windows Deployment Services)
  • 服务器故障时需要手动切换备用服务器

痛点:

  • 手动切换耗时长,影响生产
  • 备用服务器长期闲置
  • 配置复杂,容易出错

3.2 高可用方案设计

参考了多个 AI 助手的建议,最终采用 Keepalived + DHCP 负载均衡 + WDS + DFS 方案:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
                    ┌─────────────────┐
                    │   Virtual IP    │
                    │    (VIP)        │
                    └────────┬────────┘
              ┌──────────────┼──────────────┐
              │              │              │
       ┌──────▼──────┐ ┌─────▼─────┐ ┌──────▼──────┐
       │  Server 1   │ │  Server 2 │ │   Backup    │
       │  (Master)   │ │ (Backup)  │ │  (Standby)  │
       │  Keepalived │ │ Keepalived│ │   Manual    │
       │   DHCP      │ │  DHCP     │ │   Enable    │
       │   WDS       │ │  WDS      │ │   Only      │
       │   DFS       │ │  DFS      │ │   If Needed │
       └──────┬──────┘ └─────┬─────┘ └──────┬──────┘
              │              │              │
              └──────────────┼──────────────┘
                    ┌────────▼────────┐
                    │  Aging Racks    │
                    │   (1936 位)     │
                    └─────────────────┘

3.3 实施细节

3.3.1 Keepalived 配置

Master 节点配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    
    virtual_ipaddress {
        192.168.1.100/24  # VIP
    }
    
    track_script {
        check_dhcp
        check_wds
    }
}

Backup 节点配置:

1
2
3
4
5
6
7
8
9
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    
    # ... 其他配置相同
}

3.3.2 DHCP 负载均衡

  • 两台服务器都配置 DHCP 服务
  • 使用 DHCP failover 协议或分割作用域
  • 客户端随机获取任意一台服务器的 IP 分配

3.3.3 WDS 配置

  • 两台服务器都部署 WDS 服务
  • 镜像文件通过 DFS 同步
  • 客户端通过 VIP 访问 WDS 服务

3.3.4 DFS 文件同步

同步内容:

  • Windows 安装镜像(WIM 文件)
  • 驱动程序包
  • 日志文件
  • 配置文件

同步策略:

  • 实时同步:镜像文件和驱动
  • 定时同步:日志文件(5 分钟)
  • 手动同步:配置文件

3.4 测试结果

测试项目 结果 说明
DHCP 负载均衡 ✅ OK 两台服务器正常分担 DHCP 请求
WDS 服务 ✅ OK 两台服务器都可提供 PXE 启动
DFS 镜像同步 ✅ OK 镜像文件 5 分钟内同步完成
DFS Log 同步 ⚠️ FAIL 文件权限问题,需设置 Everyone 可读写
自动故障转移 ✅ OK Master 故障后,Backup 自动接管 VIP
故障恢复 ✅ OK Master 恢复后,自动抢回 VIP

3.5 DFS 复制监控与故障排除

监控方法

  1. DFS 管理控制台

    • 查看复制组健康状态
    • 监控复制延迟和错误
    • 查看复制伙伴状态
  2. 事件查看器

    • 检查 DFS-R 相关日志
    • 诊断复制问题
    • 追踪文件同步错误

常见故障排除

问题 1:复制延迟

  • 检查网络带宽
  • 检查文件大小和数量
  • 调整复制调度设置
  • 确保网络连接畅通

问题 2:文件冲突

  • 检查是否有文件同时被修改
  • 使用"冲突和删除文件夹"功能处理
  • 规范文件修改流程

问题 3:复制错误

  • 查看事件查看器中的 DFS-R 错误事件
  • 根据错误代码诊断问题
  • 常见错误:权限不足、磁盘空间不足、网络中断

四、总结与展望

4.1 实施效果

通过这三个高可用架构优化项目,我们取得了显著成效:

经济效益:

  • 减少备用服务器采购:3 台 × 2 万元 = 6 万元
  • 降低维护成本:年节省约 2 万元
  • 提高生产效率:减少停机时间约 80%

技术效益:

  • 实现关键服务自动故障转移
  • 提高资源利用率(从 25% 提升到 67%)
  • 建立完善的监控和告警体系
  • 积累高可用架构实施经验

管理效益:

  • 减少人工干预,降低人为错误
  • 标准化运维流程
  • 提升团队技术水平

4.2 经验教训

成功经验:

  1. 充分测试:在生产环境部署前,进行充分的测试验证
  2. 渐进式实施:分阶段实施,降低风险
  3. 文档完善:详细记录配置和实施过程
  4. 监控先行:先建立监控,再进行切换

待改进点:

  1. DFS 文件权限同步问题需要更细致的配置
  2. DHCP 故障转移可以进一步自动化
  3. 监控告警可以更加智能化

4.3 未来规划

  1. 自动化运维:引入 Ansible 等工具,实现配置自动化
  2. 容器化改造:评估将部分服务容器化的可行性
  3. 云原生架构:探索混合云架构,提高弹性
  4. AI 运维:引入 AI 技术,实现预测性维护

📚 参考资料


本文基于实际生产环境实施经验总结,具体配置需根据实际情况调整。

最后更新:2026-03-13