Skip to content

第 20 章 生产环境最佳实践

20.1 网络设计建议

专用网络

  • 管理网络:用于 SSH 和集群管理
  • 业务网络:用于 NFS 客户端访问
  • 复制网络:用于 GlusterFS brick 间数据同步

网络带宽

  • 千兆网络是起步要求
  • 万兆网络可显著提升复制性能
  • 避免跨数据中心部署复制卷

网卡绑定

关键节点建议使用 NIC bonding(如 LACP)提升冗余和带宽:

bash
nmcli connection add type bond ifname bond0 mode 802.3ad
nmcli connection add type ethernet ifname eth0 master bond0
nmcli connection add type ethernet ifname eth1 master bond0

20.2 硬件选型建议

组件建议
CPU每节点 4 核及以上
内存每节点 8GB 及以上,大缓存场景 16GB+
磁盘企业级 SATA/SAS/SSD,推荐 RAID 10 或独立盘
网络双万兆网卡绑定
电源双电源冗余

20.3 命名规范与文档化

命名规范

对象命名示例
节点nfs-prod-01, nfs-prod-02, nfs-prod-03
prod-share-01, backup-share-01
VIP10.0.0.100
数据盘挂载点/data/brick1

文档化

维护以下文档:

  • 架构图
  • IP 地址分配表
  • 硬件清单
  • 配置变更记录
  • 运维手册
  • 应急预案

20.4 变更管理流程

生产环境任何变更都应遵循:

  1. 变更前在测试环境验证
  2. 制定变更方案和回滚方案
  3. 选择业务低峰期执行
  4. 变更前备份配置
  5. 变更后验证服务正常
  6. 记录变更内容

20.5 应急预案模板

场景 1:单节点故障

  1. 确认故障节点
  2. 检查 VIP 是否已漂移
  3. 检查卷状态是否健康
  4. 修复或更换故障节点
  5. 重新加入集群并触发 heal

场景 2:VIP 无法访问

  1. 检查所有节点 Keepalived 状态
  2. 检查 Ganesha 是否运行
  3. 手动切换 VIP 到健康节点
  4. 排查网络问题

场景 3:数据误删除

  1. 立即停止相关写入
  2. 从快照或备份恢复
  3. 验证恢复数据完整性
  4. 分析原因并加强权限控制

20.6 本章小结

  • 网络设计应分离管理、业务、复制流量
  • 硬件选型要预留性能和冗余空间
  • 良好的命名规范和文档化是运维基础
  • 变更管理流程降低生产事故风险
  • 应急预案要提前准备并定期演练

练习题

  1. 为什么建议将 GlusterFS 复制流量和业务流量分离?
  2. 生产环境节点内存建议至少多少?
  3. 变更管理流程应包含哪些步骤?
  4. 为你的环境制定一份应急预案。