3.8. 快照

LVM 提供的一个非常棒的功能是“快照”。这允许管理员创建一个新的块设备,该设备呈现逻辑卷的精确副本,并在某个时间点冻结。通常,这会在需要对逻辑卷执行某些批处理(例如备份)时使用,但您不希望停止正在更改数据的实时系统。当快照设备使用完毕后,系统管理员可以将其删除。此功能确实要求在逻辑卷上的数据处于一致状态时创建快照 - LVM1 的 VFS-lock 补丁确保某些文件系统在创建快照时自动执行此操作,并且 2.6 内核中的许多文件系统在创建快照而无需补丁时自动执行此操作。

Warning完整快照自动禁用
 

如果快照逻辑卷已满,它将被丢弃(变得不可用),因此分配足够的空间至关重要。所需的空间量取决于快照的使用情况,因此没有固定的方法可循。如果快照大小等于原始大小,则永远不会溢出。

LVM1 具有只读快照。只读快照的工作原理是创建一个异常表,该表用于跟踪哪些块已被更改。如果要更改原始卷上的块,则首先将其复制到快照,在异常表中标记为已复制,然后将新数据写入原始卷。

在 LVM2 中,快照默认是可读/写的。读/写快照的工作方式类似于只读快照,但附加功能是,如果数据写入快照,则该块在异常表中标记为已使用,并且永远不会从原始卷复制。这开辟了许多使用 LVM1 的只读快照不可能实现的新可能性。一个例子是快照一个卷,挂载快照,并尝试一个实验性程序来更改该卷上的文件。如果您不喜欢它的结果,您可以卸载快照,删除它,并在其位置挂载原始文件系统。它对于创建用于 Xen 的卷也很有用。您可以创建一个磁盘映像,然后对其进行快照并修改快照以用于特定的 domU 实例。然后,您可以创建原始卷的另一个快照,并修改该快照以用于不同的 domU 实例。由于快照使用的唯一存储是原始卷或快照上已更改的块,因此卷的大部分由 domU 共享。

Note

使用当前的 LVM2/device-mapper 代码,可以扩展原始卷,但不能缩小。使用 LVM1,您无法调整原始卷的大小。

WarningLVM 1 -> LVM 2 升级信息
 

在从 LVM 1 升级到 LVM 2 之前,请务必删除快照 LV。(请参阅 第 4.1 节