如何无损保留GlusterFS live卷数据,将两个1*(2+1)仲裁卷合并为2*(2+1)结构
仲裁卷合并操作指引(保留live卷数据场景)
前置准备
- 先暂停所有对live卷的写入业务,或临时开启业务只读模式,避免合并过程中数据变更引发一致性问题
- 对live卷全量做一次快照备份,同时额外备份一份核心元数据到离线存储介质,避免操作失误导致数据损坏
- 停掉当前每日运行的rsync同步任务,避免同步过程干扰后续操作
- 确认standby卷所有业务流量已经全部切断,没有进程读写standby卷数据
操作步骤
- 先卸载standby卷所有节点的挂载,删除原有standby卷的仲裁集群配置,清空所有standby节点的磁盘分区表和文件系统签名,命令参考:
wipefs -a /dev/对应仲裁卷磁盘设备名 - 在live卷的现有3节点集群中,执行集群节点扩容操作,将3台standby节点依次加入live集群,加入过程中指定这些节点为新的冗余组节点,和原live节点组成2个独立的(2+1)冗余组,扩容过程中全程监控live卷的状态,确认live卷数据全程在线、无损坏
- 节点全部加入完成后,触发集群数据均衡,将数据按照新的2组(2+1)冗余策略重新分布,等待均衡完成后验证数据完整性,对比原有备份的元数据哈希值确认没有偏差
- 验证集群仲裁功能正常,分别模拟单节点、单冗余组故障场景,确认集群可以正常提供服务、数据无丢失
- 恢复业务写入权限,确认业务运行正常后操作完成
注意事项
- 所有操作前必须确认节点所属的集群分组,避免误操作live卷节点的磁盘
- 扩容过程中不要强制中断集群任务,避免引发集群元数据损坏
- 数据均衡期间可以适当调低均衡带宽,避免对前端业务性能产生影响
内容的提问来源于stack exchange,提问作者Jaco le Grange
相关产品推荐
相关产品推荐

