mdadm 是否保证(并且通过经验可信赖)仅使用 xfs_freeze 即可安全地拍摄快照?我遇到过关于 mdadm 仍在后台工作的模糊警告,因此如果不先拆卸 RAID,快照将不安全,但如果可能的话,我宁愿避免进行拆卸/重新组装。
快照是通过 EBS 进行块级别的,但我并不太关心快照过程,我更关心的是拍摄快照时正确的数据是否一致。
如果 mdadm 以外的选项能够使流程更加可靠,那么我们欢迎这些选项——我们过去使用 LVM 条带化,但由于跨磁盘快照不可靠的报告,我们专门切换到了 mdadm。我们还在研究某种组合,例如使用 mdadm 进行条带化,使用 LVM 层进行快照。
理想的解决方案是避免停止 RAID(在本例中为 Mongo)上运行的服务,并采用原始数据格式,以便新服务器可以附加已恢复快照的阵列,而无需执行其他步骤来将数据调整到位。(我们已经有可以将快照重新组装到新服务器的代码 - 我们只需可靠地创建这些快照。)
答案1
尽管这个问题已经很老了,但我想简短地回答一下对 EBS-RAID 进行快照是否安全的问题。我们正在使用 PIOPS EBS-RAID0,并按照以下步骤定期备份此 RAID:
- 停止服务(本例中为 DB)
- fsfreeze RAID 的挂载点(我们使用的是 ext4,但这应该适用于所有能够冻结的 fs)
- 调用 EC2-API 对 RAID 中的设备进行快照
- 等待快照的回调(您不需要等到快照完成 - API 的回调就足够了)
- 解冻 RAID
- 启动服务
在我们的案例中,整个过程大约需要 1-2 分钟。
我们最近经常更改实例和系统,我们总是使用这些快照将数据复制到新实例(并在那里重建 RAID),以减少副本之间的同步时间。我们从未遇到过数据损坏的问题 - 快照工作正常!
希望这能帮助正在寻找答案的人。