Skip to content

《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 第四部分习题答案