使用 LVM 快照进行 KVM 虚拟机克隆

使用 LVM 快照进行 KVM 虚拟机克隆

所以,我现在有一个非常棒的 KVM 设置正在运行,主机和来宾域上是 CentOS5.5,libvirt 管理所有配置等。来宾域文件系统存储在硬件 RAID5 卷顶部的 LVM 中,因此我可以灵活地进行备份和低级数据冗余。

我今天测试了 virt-clone,它运行得非常好,只是需要大约 30 分钟才能将 24G 数据从暂停域的 LVM 磁盘复制到新虚拟机的新 LVM 卷。

我的问题是:我不能只使用 LVM 快照来创建新的 VM 的根磁盘吗?例如: lvcreate -s guest1_root -n guest2_root -L 8G raid_vg

现在,我对 LVM 快照的理解是,快照存储对原始块所做更改的反向增量,因此快照占用的实际空间很小,即使在原始卷被写入后也可以读出原始块。LVM2 添加了读写快照,这开启了这种有趣的可能性。

确实,LVM 操作指南甚至建议将此功能与 Xen 结合使用:

这开启了许多 LVM1 的只读快照无法实现的新可能性。(...) 它还可用于创建用于 Xen 的卷。您可以创建磁盘映像,然后对其进行快照,并针对特定 domU 实例修改快照。然后,您可以创建原始卷的另一个快照,并针对不同的 domU 实例修改该快照。由于快照使用的唯一存储是原点或快照上已更改的块,因此卷的大部分由 domU 共享。

这似乎是一个非常强大的工具,我想知道是否有人在他们的生产虚拟化环境中尝试过它,能想到任何采用这种方法的供应商(Citrix、VMWare),或者能想到这个想法的任何严重问题。我能想到以下潜在问题:

  • 如果“原始”客户端在快照时运行,则可能会出现文件系统问题。
  • 主机域 LVM 性能随着“反向增量”和“写入块”日志的附加而变化。它可能非常快,但我不知道,这似乎是一个奇怪的想法,因此需要进行测试和基准测试。
  • 一个篮子里有多个鸡蛋:如果“原始”LVM 卷损坏,则快照卷也会损坏。当然,RAID5 可以缓解磁盘损坏,但值得注意。
  • 你能拍张快照吗?我想是的。

作为可能比我拥有更多虚拟化经验的人,是否有什么东西让你想从这样的设置中尖叫着逃跑?

答案1

这样做完全没问题。你该做什么不是想要同时使用快照的父级(原始快照、源快照或任何您想称呼它的名称),因为它会导致 IO 倍增(Hubert 对此是正确的,只需通过不一直使用源卷就可以轻松防止这种情况发生)。

如果您在 LVM 上安装了一个主操作系统,并对其进行了四次快照,那么您就不会有太多的 IO 损失,因为您只是在向各个快照卷写入数据。当然,这不是免费的,但在其他文件系统或虚拟磁盘上进行其他形式的快照也不是免费的。总会有成本的。

Hubert 的另一点说对了,那就是你必须考虑快照的大小。你需要确保快照卷能够继续写入。满的快照卷会严重破坏东西。防止这种情况发生的一个安全方法是使快照卷的大小与源卷相同(或更大)。不过,这样你就失去了使用较少磁盘空间的好处。

您知道 qemu 图像也具有快照功能吗?

答案2

虽然我没有尝试使用 LVM 进行 KVM 存储,但我确实将其用于 samba 的影子卷功能,我可以告诉你一件事:性能非常糟糕。

每个快照都需要进行额外的写入。如果您有一个基本快照卷和 4 个快照,则写入基本卷时写入驱动器的量将乘以 5。

至于您的具体问题:

  • LVM 在快照发生时冻结文件系统(停止写入、刷新缓存、执行快照、恢复写入)
  • 正如我所说,它非常慢
  • 是的,损坏的基础卷会导致所有快照无法使用,而且,如果分配给快照增量的空间不足,快照也会被破坏
  • 是的,你可以快照

不幸的是,据我所知,只有 3 个系统可以很好地支持快照:NetApp WAFL、ZFS 和 btrfs。如果系统不是特别重要,btrfs 值得一试。

答案3

在 2019 年,精简配置 LVM 应该被视为这种情况下的首选。

薄型 LV 性能良好,并且它们像单独的卷一样运行,因此一旦创建快照,您不必担心原始卷的维护和完整性(它可以被损坏、删除等,而不会影响快照)。

原帖作者担心的是“快照占用的实际空间很小”传统 LVM 无法真正满足这一要求,因为必须以整体方式为每个快照预先分配空间。但精简 LV 的分配方式与稀疏文件类似,实际上占用的空间很小。

精简配置的缺点是必须像文件系统一样监控精简池中的可用空间,以免将其填满。Linux 发行版通常有守护进程来监控这一点,并在精简池达到接近满状态时发送警告或采取行动。

答案4

我甚至可以说 ZFS 值得一试,它可以相当轻松地设置基于 Nexenta 的系统,该系统由某种磁盘(光纤、iscsi 等)支持,并且性能相当不错。如果性能不是绝对关键,我建议使用这种方法而不是本地存储,因为如果您的虚拟化服务器出现故障,这将为您提供一个简单的恢复方案。

相关内容