CentOS 文件系统高可用实现路径
一、总体思路与方案选型
- 共享块存储 + 集群锁:使用 iSCSI/FC 提供共享块设备,配合 Pacemaker+Corosync 做资源管理与故障切换,块设备上用 LVM 管理卷,创建 GFS2 集群文件系统,实现多节点并发读写与自动故障转移。适合数据库、虚拟机镜像等需要 POSIX 一致性的场景。
- 主备复制 + 虚拟IP:用 DRBD 做块设备主备镜像,Keepalived 提供 VIP 与快速切换,上层导出 NFS 或 SMB。实现简单、切换快,适合文件共享与通用服务后端存储。
- 分布式/并行文件系统:部署 GlusterFS 或 MooseFS 等分布式文件系统,天然多副本/多活,横向扩展能力强,适合海量非结构化数据(图片、视频、日志归档等)。
- 应用层分布式文件系统:如 FastDFS,以 Tracker/Storage 多节点对等架构提供高可用与负载均衡,适合图片/视频等对象型存储需求。
二、共享块存储 GFS2 集群方案(iSCSI + Pacemaker/Corosync + CLVM + GFS2)
- 架构要点:后端 SAN/NAS/iSCSI Target 提供共享块;集群节点加入同一 Pacemaker/Corosync 集群;共享块通过 CLVM 做卷管理;在卷上创建 GFS2 文件系统并多节点同时挂载,由集群锁(DLM)保证一致性。
- 关键步骤(提纲)
- 准备共享块设备(如 iSCSI),各节点发现并登录;2) 安装集群栈(pacemaker/corosync)并配置 fencing/STONITH;3) 使用 CLVM 在共享块上创建 LV;4) 格式化 GFS2(如 mkfs.gfs2 -p lock_dlm -t :fsname /dev/vg/lv);5) 配置 Pacemaker 资源(集群卷组、文件系统、必要的服务);6) 各节点以 cluster 选项挂载 GFS2(mount -t gfs2 /dev/vg/lv /mnt);7) 验证故障切换与并发写入。该方案在 CentOS 7 环境中被广泛采用,具备稳定的生产可用性。
三、主备复制 NFS 方案(DRBD + Keepalived + NFS)
- 架构要点:两节点以 DRBD 形成块设备镜像(主/备),上层运行 NFS;通过 Keepalived 管理 VIP 与 VRRP 心跳,配合监控脚本实现主备切换与回切;故障时 VIP 漂移、DRBD 角色切换,保证服务连续性。
- 关键步骤(提纲)
- 配置 DRBD 资源(/dev/drbd0 对应后端磁盘),初始化并同步;2) 在 DRBD 主节点上创建 XFS/ext4 文件系统并挂载导出 NFS;3) 部署 Keepalived(state/priority/advert_int、virtual_ipaddress、track_script 检查 NFS/DRBD 状态);4) 编写监控脚本(检测 nfsd/drbd 角色,失败时降低优先级或关闭 keepalived 触发切换);5) 验证:停主节点服务或断网,观察 VIP 漂移、DRBD 降级、NFS 无感切换。该模式部署与运维简单,适合中小规模文件共享与通用后端存储。
四、分布式文件系统方案(GlusterFS 或 MooseFS)
- GlusterFS(多副本/纠删码,横向扩展)
- 架构要点:多台存储服务器组成 Trusted Storage Pool,以 卷(Replicated/Distributed/Dispersed) 形式对外提供共享目录;客户端通过 glusterfs/fuse 挂载,服务端以 glusterd 管理。
- 关键步骤(提纲):安装 glusterfs-server 与客户端;在节点间建立 peer probe;创建卷(如 replica 2 或 3);启动卷并客户端挂载;验证扩容、自愈与性能。适合海量非结构化数据与高并发读写的场景。
- MooseFS(MFS,Master/Chunk 架构)
- 架构要点:通过 MFS Master 管理元数据,Chunk Server 存放大块数据;为消除单点,可用 DRBD + Pacemaker/Corosync 对 Master 做主备高可用,客户端挂载 MFS 目录。
- 关键步骤(提纲):部署 MFS Master/Chunk;用 DRBD 镜像 Master 元数据目录;以 Pacemaker/Corosync 管理 VIP、DRBD 角色与 mfsmaster 服务;客户端挂载 mfs。适合已有 MFS 体系提升可用性的场景。
五、选型与落地建议
- 需要多节点并发写入与 POSIX 一致性:优先 GFS2 + Pacemaker/Corosync + CLVM + iSCSI/FC;注意配置 STONITH/fencing 与仲裁盘,避免脑裂。
- 以 NFS/SMB 为主、追求简洁与快速切换:选择 DRBD + Keepalived + NFS,配合健壮的监控脚本与回切策略(如 nopreempt 与权重/脚本联动)。
- 海量非结构化数据、强扩展与自愈:选择 GlusterFS;对成本/容量更敏感可考虑 MooseFS 并结合 DRBD 做元数据高可用。
- 对象型/图片视频类业务:选择 FastDFS 这类应用层分布式文件系统,配合多 Tracker/Storage 与负载均衡实现高可用与横向扩展。