主题
《GlusterFS + NFS-Ganesha + Keepalived 高可用存储从入门到精通》
书籍定位
- 目标读者:存储运维工程师、系统管理员、云计算工程师、DevOps 工程师
- 预备知识:具备 Linux 基础命令操作能力
- 学习路径:理论基础 → 动手部署 → 性能优化 → 生产运维
- 配套环境:3 台 Linux 服务器(物理机/虚拟机均可),每节点至少 1 块独立数据盘
第一部分:基础篇
第 1 章 分布式存储与高可用概述
- 1.1 什么是存储高可用
- 1.2 传统 NAS 与分布式存储的区别
- 1.3 数据冗余策略:副本 vs 纠删码
- 1.4 CAP 定理与存储系统设计
- 1.5 常见高可用存储方案对比
- 1.6 本章小结
第 2 章 NFS 协议基础
- 2.1 NFS 协议发展历史(NFSv2/v3/v4/v4.1/pNFS)
- 2.2 NFS 工作原理与 RPC 机制
- 2.3 NFS 挂载选项详解
- 2.4 NFS 的高可用挑战
- 2.5 内核 NFS 与用户态 NFS(NFS-Ganesha)
- 2.6 本章小结
第 3 章 GlusterFS 核心概念
- 3.1 GlusterFS 是什么
- 3.2 GlusterFS 架构组件
- 3.3 Brick、Volume、Translator 概念
- 3.4 GlusterFS 卷类型总览
- 3.5 GlusterFS 数据分布与定位算法
- 3.6 GlusterFS 集群通信机制
- 3.7 本章小结
第 4 章 NFS-Ganesha 入门
- 4.1 为什么需要 NFS-Ganesha
- 4.2 NFS-Ganesha 架构与 FSAL
- 4.3 Ganesha 支持的导出后端
- 4.4 Ganesha 配置文件结构
- 4.5 Ganesha 与 GlusterFS 的集成原理
- 4.6 本章小结
第 5 章 Keepalived 与高可用 IP
- 5.1 VRRP 协议原理
- 5.2 Keepalived 核心组件
- 5.3 Master/Backup 选举机制
- 5.4 健康检查脚本设计
- 5.5 VIP 漂移与客户端无感知切换
- 5.6 本章小结
第二部分:部署篇
第 6 章 环境规划与前置准备
- 6.1 硬件与网络规划
- 6.2 操作系统选择与初始化
- 6.3 主机名、DNS、Hosts 配置
- 6.4 时间同步与 NTP/Chrony
- 6.5 防火墙与 SELinux 配置
- 6.6 数据盘分区、格式化与挂载
- 6.7 实验环境检查清单
- 6.8 本章小结
第 7 章 GlusterFS 三节点集群部署
- 7.1 GlusterFS 服务端安装
- 7.2 GlusterFS 服务启动与自启
- 7.3 Peer Probe 组建集群
- 7.4 集群状态检查与排错
- 7.5 GlusterFS 常用管理命令
- 7.6 本章小结
第 8 章 3 副本复制卷创建与管理
- 8.1 复制卷工作原理
- 8.2 创建 replica 3 卷
- 8.3 启动、停止、删除卷
- 8.4 卷扩容与缩容
- 8.5 卷参数调优
- 8.6 挂载 GlusterFS Native Client
- 8.7 本章小结
第 9 章 NFS-Ganesha 安装与配置
- 9.1 NFS-Ganesha 安装
- 9.2 配置文件详解
- 9.3 导出 GlusterFS 卷
- 9.4 启动与验证 NFS 导出
- 9.5 NFSv3 与 NFSv4 切换配置
- 9.6 多节点 Ganesha 一致性
- 9.7 本章小结
第 10 章 Keepalived VIP 配置
- 10.1 Keepalived 安装
- 10.2 单 VIP 配置
- 10.3 健康检查脚本(检测 Ganesha)
- 10.4 Master/Backup 优先级设计
- 10.5 VIP 漂移验证
- 10.6 多 VIP 与负载均衡进阶
- 10.7 本章小结
第 11 章 客户端挂载
- 11.1 Linux 客户端安装与挂载
- 11.2 /etc/fstab 持久化配置
- 11.3 挂载参数最佳实践
- 11.4 Kubernetes NFS 动态供给
- 11.5 多客户端并发访问测试
- 11.6 本章小结
第三部分:进阶篇
第 12 章 GlusterFS 卷类型深度解析
- 12.1 分布式卷(Distribute)
- 12.2 复制卷(Replica)
- 12.3 条带卷(Stripe)
- 12.4 分布式复制卷(Distributed-Replicate)
- 12.5 纠删码卷(Dispersed)
- 12.6 如何选择卷类型
- 12.7 本章小结
第 13 章 性能调优
- 13.1 性能瓶颈分析思路
- 13.2 GlusterFS 性能参数调优
- 13.3 NFS-Ganesha 性能参数
- 13.4 网络与内核参数优化
- 13.5 测试工具与基准测试
- 13.6 本章小结
第 14 章 数据自愈与一致性
- 14.1 GlusterFS 自愈机制
- 14.2 Split-Brain 脑裂问题
- 14.3 仲裁与信任池
- 14.4 手动触发 heal
- 14.5 脑裂检测与修复
- 14.6 本章小结
第 15 章 安全与访问控制
- 15.1 NFS 导出权限控制
- 15.2 IP 白名单与网络隔离
- 15.3 root_squash 与 no_root_squash
- 15.4 GlusterFS 认证机制
- 15.5 TLS/SSL 加密传输(可选)
- 15.6 本章小结
第 16 章 备份与灾难恢复
- 16.1 高可用不等于备份
- 16.2 GlusterFS 快照
- 16.3 rsync 异地备份方案
- 16.4 卷数据恢复流程
- 16.5 灾难恢复演练
- 16.6 本章小结
第四部分:运维篇
第 17 章 监控告警体系建设
- 17.1 监控指标体系设计
- 17.2 Prometheus + Grafana 架构
- 17.3 Node Exporter 部署
- 17.4 GlusterFS Exporter 部署
- 17.5 NFS-Ganesha 自定义 Exporter
- 17.6 告警规则与 Alertmanager
- 17.7 Grafana 仪表盘搭建
- 17.8 本章小结
第 18 章 日常运维与故障排查
- 18.1 巡检清单
- 18.2 日志分析指南
- 18.3 常见故障案例
- 18.4 性能问题定位
- 18.5 客户端挂载失败排查
- 18.6 VIP 不漂移排查
- 18.7 本章小结
第 19 章 升级与扩容
- 19.1 GlusterFS 版本升级
- 19.2 NFS-Ganesha 升级
- 19.3 增加新节点扩容
- 19.4 增加新磁盘扩容
- 19.5 在线迁移数据
- 19.6 本章小结
第 20 章 生产环境最佳实践
- 20.1 网络设计建议
- 20.2 硬件选型建议
- 20.3 命名规范与文档化
- 20.4 变更管理流程
- 20.5 应急预案模板
- 20.6 本章小结
附录
附录 A 常用命令速查
- A.1 Linux 基础命令
- A.2 GlusterFS 命令速查
- A.3 NFS 命令速查
- A.4 Keepalived 命令速查
附录 B 配置文件模板
- B.1 ganesha.conf 完整模板
- B.2 keepalived.conf 完整模板
- B.3 prometheus.yml 模板
- B.4 alert rules 模板
附录 C 故障案例库
- C.1 卷离线
- C.2 Brick 损坏
- C.3 Ganesha 无法导出
- C.4 VIP 漂移异常
- C.5 客户端 IO 卡住
附录 D 练习题答案
- D.1 第一部分习题答案
- D.2 第二部分习题答案
- D.3 第三部分习题答案
- D.4 第四部分习题答案