LVM 快照与文件系统快照

LVM 快照与文件系统快照

据我所知,LVM 可以对卷进行快照。还有许多文件系统(ZFS、Btrfs、reiserfs 等)支持快照。

但是,我一直不明白 LVM 快照和文件系统快照之间的区别。如果可以使用 LVM 进行快照,为什么有人要花时间在文件系统中实现它?

编辑:在某些情况下,它们中的任何一个都是首选吗?为什么?

答案1

这些快照大部分都是写时复制快照,在很少更新的系统上,这种快照非常快,而且存储成本非常低。LVM 快照是 COW 快照,ZFS/BTRFS 都具有用于快照的 COW 模式,reiserfs 本身没有快照,Novell 的 NSS 文件系统也是 COW,Windows NTFS 卷的卷影复制卷也是如此。

写时复制快照将目标卷的元数据复制到快照池中。然后,根据所使用的 COW 模式,它们将将被新写入覆盖的数据复制到快照池,然后再写入新数据。

ZFS 和(如果尚未实现的话)BTRFS 具有完整快照功能,这对于快照到单独的介质上非常有用,而这对于使用可移动介质的 sneakernet 备份系统来说又非常方便。不过 ZFS 并不将其称为“快照”,它们利用 ZFS 的功能通过网络使用zfs send和复制卷和快照到远程主机(或本地阵列)。zfs recv

与 LVM 相比,我更喜欢文件系统级快照功能,因为我更相信文件系统本身能够干净利落地处理该过程。然而,由于缺乏直接文件系统支持,LVM 在大多数情况下应该可以正常工作。

如果您需要非常快速地进行时间点备份以满足短期恢复需求,那么 COW 快照是不错的选择。例如,每天进行一次快照,或每天进行 4 次快照,并保存一周。如果您需要恢复用户意外删除的文件,或者需要将整个系统回滚到更新前的配置,那么 COW 快照就很方便。某些备份系统还可以将它们用作完全静止的文件系统,因此所做的备份快照卷不必担心打开的文件会妨碍操作。要记住的关键一点是,快照卷将与主卷位于同一存储中,因此如果阵列发生故障,则不会给您任何东西。

如果将完整快照保存到某种可移动或远程媒体上,则效果会很好。如果您有网络存储,目标可能是与主存储托管的 iSCSI 或光纤通道阵列不同的阵列。这为您提供了一些针对某些故障的阵列外保护。如果使用可移动媒体(例如 3TB ESATA 驱动器),您甚至可以将其用作简单的磁盘备份系统。这些快照可以位于与 COW 兄弟不同的硬件上,因此对于灾难恢复非常有用。


关于完整快照与 COW 快照。

多年来,“快照”一词的含义发生了一些变化。今年,我确信它的意思是“使用块重定位对原始数据进行写时复制”。根据这个定义,上面介绍的“完整”快照实际上不是快照,而是复制。一些存储供应商过去使用过不同的“快照”定义来描述他们执行的各种块级操作。令人困惑的是使用快照作为复制过程一部分的系统。

答案2

LVM 需要预先规划。我倾向于不使用它,因为它也是另一个抽象层,在我需要它时很少可用。不过,还有其他选项可以在文件系统级别(在 Linux 中)克隆,而无需 LVM。您可以使用R1Soft 的热门复制来实现这一点。这是一个内核模块,但可以让您即时添加此功能。

答案3

非常明确的问题:LVM 的快照不能保证有一致的 FS爵因LVM 对正在加载的 FS 一无所知

已编辑(参见评论): — 除非 FS 支持,否则为真.freeze_fs,否则它应该由 FS 妥善处理。

答案4

作为对其他答案的补充。在 FS 快照中,您可以受益于所有快照中的 FS 功能,例如压缩和重复数据删除。

相关内容