14.5.18. 使用实时块复制进行磁盘镜像管理
注意
实时块副本是一个 Red Hat Enterprise Linux 提供的 KVM 版本不支持的功能。Red Hat Virtualization 提供的 KVM 版本提供实时块副本。此版本的 KVM 必须在您的物理主机计算机上运行,才能支持该功能。请联系红帽代表以了解更多详细信息。
实时块复制允许您使用客户机磁盘镜像复制到目标镜像,并在客户机运行时将客户机磁盘镜像切换到目标客户机镜像。当实时迁移移动主机内存和 registry 状态时,客户机将保存在共享存储中。实时块复制允许您在客户机运行时实时将整个 guest 内容移动到另一台主机。实时块复制也可用于实时迁移,而无需永久共享存储。在此方法中,磁盘镜像在迁移后复制到目标主机,但当客户机正在运行时。
实时块复制对以下应用程序特别有用:
- 将客户机镜像从本地存储移动到中央位置
- 当需要维护时,虚拟机可以转移到其他位置,而不会丢失性能
- 允许管理客户机镜像以加快速度和效率
- 镜像格式的转换可以在不需要关闭客户机的情况下完成
例 14.1. 使用 live block copy 的示例
本例显示了执行 live 块副本时会发生什么。示例有一个在来源和目的地之间共享的后备文件(base)。它还有两个覆盖(sn1 和 sn2),它们仅存在于源上且必须复制。
- 备份文件链的开头如下:base sn1 xetex sn2组件如下:
- Base - 原始磁盘镜像
- sn1 - 获取基本磁盘镜像的第一个快照
- sn2 - 最新快照
- Active - 磁盘副本
- 当将镜像副本作为 sn2 上的新镜像创建时,结果如下:base sn1 xetex sn2 active
- 此时,读取权限都按正确顺序排列,并会自动设置。为确保正确设置了写入权限,镜像机制会将所有写入操作重定向到 sn2 和 active,使得 sn2 随时读取相同(并且这种镜像机制是实时块复制和镜像流之间的基本区别)。
- 对所有集群执行循环的后台任务。对于每个集群,有以下可能的情况和操作:
- 集群已经处于激活状态,没有什么操作。
- 使用 bdrv_is_allocated() 来遵循后备文件链。如果集群是从基础读取(共享),则没有什么操作。
- 如果 bdrv_is_allocated() 变体不可行,请重获镜像,并将读取数据与基础中的写入数据进行比较,以决定是否需要副本。
- 在所有其他情况下,将集群复制到
活跃的
- 复制完成后,active 的后备文件切换到基础(similar 改为 rebase)