我正在努力替换一个不稳定的基于 btrfs 快照的备份系统。其中一个选择是使用 ZFS,但它不是内核原生支持的。10 年来,XFS 对我来说一直很可靠,但我的研究表明它无法单独执行快照,因此人们将它与 LVM 结合使用。
http://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/
现在我最大的问题是快照(子卷)需要一个固定大小,在我看来,当你给快照 1G 时(无论它是否需要那么多,它都会不必要地占用该空间)。
此外,如果快照大小太小或者 xfs 分区上的空间用完,我就会遇到各种各样的麻烦:
/dev/backup-vg/snap1: read failed after 0 of 4096 at 1073676288: Input/output error
/dev/backup-vg/snap1: read failed after 0 of 4096 at 1073733632: Input/output error
/dev/backup-vg/snap1: read failed after 0 of 4096 at 0: Input/output error
/dev/backup-vg/snap1: read failed after 0 of 4096 at 4096: Input/output error
/dev/backup-vg/snap2: read failed after 0 of 4096 at 1073676288: Input/output error
/dev/backup-vg/snap2: read failed after 0 of 4096 at 1073733632: Input/output error
/dev/backup-vg/snap2: read failed after 0 of 4096 at 0: Input/output error
/dev/backup-vg/snap2: read failed after 0 of 4096 at 4096: Input/output error
如何解决这个问题?有谁知道实施基于 LVM 的备份系统的良好案例研究/方法吗?
答案1
LVM 精简配置快照 - lvmthin(7)
- 是动态分配的,因此这可能是一个选项。在我自己的基准测试中,我发现 ext4+lvmthin 的性能对于我的备份应用程序来说比 btrfs 低得多。
尽管 XFS 没有本机快照(还没有?),但它现在具有 reflink 支持(尽管此功能仍标记为实验性的,但它已在主线内核中存在了一年多),因此您可能能够使用 reflink 副本将一些类似的效果放在一起(子目录配额也可能有帮助 - 取决于您的使用情况)以创建快速、节省空间的备份。