LVM2快照包含什么内容?

我读的所有东西都让我觉得lvm快照是被快照(ed)的逻辑卷的直接副本,但是如果快照一个90 g逻辑卷需要10秒钟的时间,这又是如何呢? 如果我在/ var上有一个KVM qcow2磁盘映像,并且/ var / volgroup1 / lv_var上的/ var为90 GB。 我做了一个lvcreate -L 90G -n var_snapped -s / dev / volgroup1 / lv_var,这是否意味着我可以删除var上的qcow2图像,然后挂载var_snapped逻辑卷并将其复制到那里,我将精细? 我不明白如何快速地发生1:1的副本。

要回答这个问题,我们需要确定LVM是如何工作的。 这是它的要点;

卷组由多个物理卷或pvs 。 他们又分为不同的范围。 每个盘区占用物理卷上的固定数量的空间 – 在创build卷组时指定(或使用默认值)。

当你创build一个逻辑卷时,你可以指定你想要的大小。 这将分配需要访问指定数量磁盘空间的卷组中的盘区数量。

现在,你可能会开始使用这个音量来做点什么。 当您创build卷的快照时,您可以指定快照的大小小于“复制”的大小。 这是因为快照卷引用了第一个卷的所有扩展区,并且只使用新分配的扩展区来存储两者之间的差异。 您可以知道有多less快照与lvs -command一起使用。

因此,拍摄快照需要非常短的时间,因为LVM仅创build对第一个卷的范围的引用 – 并且根本不复制任何数据。

作为一个副作用,如果差异大于分配的扩展数量 – 快照是无效的 – 并且您将在dmesg中看到很多错误消息(这对第一个卷是无害的)。

我希望这有帮助。

快照的目的是作为一个副本,但没有实际上复制一切。 只有创build快照修改的数据才会被复制。 初始读取快照是通过读取原点来满足的。 写入快照得到存储在快照空间,未来读取到的数据是从那里取代原来的。 写入原点会导致将被覆盖的数据复制到快照,将来从快照设备读取该数据将使用快照存储中的副本。

所以是的,如果你创build一个快照,然后从原点删除一个文件,它仍然会在快照中(反之亦然)。

在LVM2中,快照是默认读/写的。 读取/写入快照像只读快照一样工作,另外一个特点是,如果数据写入快照,那么该块在所使用的例外表中被标记,并且永远不会从原始卷中复制。 这为LVM1的只读快照带来了许多新的可能性。 一个例子是快照卷,安装快照,并尝试一个实验程序,更改该卷上的文件。 如果您不喜欢它所做的,则可以卸载快照,将其删除,然后将原始文件系统安装到位。 这对创build用于Xen的卷也很有用。 您可以创build磁盘映像,然后将其快照并修改特定domU实例的快照。 然后,您可以创build原始卷的另一个快照,并为其他domU实例修改该快照。 由于快照所使用的唯一存储区是源或快照上已更改的块,因此大部分卷都由domU共享。

http://tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html

LVM手册是一件奇妙的事情:

http://tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html