主题
第 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 bond020.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 |
| VIP | 10.0.0.100 |
| 数据盘挂载点 | /data/brick1 |
文档化
维护以下文档:
- 架构图
- IP 地址分配表
- 硬件清单
- 配置变更记录
- 运维手册
- 应急预案
20.4 变更管理流程
生产环境任何变更都应遵循:
- 变更前在测试环境验证
- 制定变更方案和回滚方案
- 选择业务低峰期执行
- 变更前备份配置
- 变更后验证服务正常
- 记录变更内容
20.5 应急预案模板
场景 1:单节点故障
- 确认故障节点
- 检查 VIP 是否已漂移
- 检查卷状态是否健康
- 修复或更换故障节点
- 重新加入集群并触发 heal
场景 2:VIP 无法访问
- 检查所有节点 Keepalived 状态
- 检查 Ganesha 是否运行
- 手动切换 VIP 到健康节点
- 排查网络问题
场景 3:数据误删除
- 立即停止相关写入
- 从快照或备份恢复
- 验证恢复数据完整性
- 分析原因并加强权限控制
20.6 本章小结
- 网络设计应分离管理、业务、复制流量
- 硬件选型要预留性能和冗余空间
- 良好的命名规范和文档化是运维基础
- 变更管理流程降低生产事故风险
- 应急预案要提前准备并定期演练
练习题
- 为什么建议将 GlusterFS 复制流量和业务流量分离?
- 生产环境节点内存建议至少多少?
- 变更管理流程应包含哪些步骤?
- 为你的环境制定一份应急预案。