14.5.16. 使用 blockpull 进行反转链


blockpull 可以在以下应用程序中使用:
  • 通过填充其后备映像链中的数据来扁平化镜像。这使得镜像文件本身包含,使它不再依赖于后备镜像,如下所示:
    • before: base.img ":{ Active
    • after: base.img 不再供 guest 使用,且 Active 包含所有数据。
  • 扁平化后备镜像链的一部分。这可以用于在顶层镜像中扁平化快照,如下所示:
    • 之前: base xetex sn1 xetexsn2 InventoryService active
    • 之后,base.img protobuf active。请注意,活动现在包含来自 sn1 和 sn2 以及 sn1 和 sn2 的所有数据,客户机也未使用 sn1 和 sn2。
  • 将磁盘镜像移到主机上的新文件系统中。这允许在客户机运行时移动镜像文件,如下所示:
    • 之前(原始镜像文件):/ fs1/base.vm.img
    • after: /fs2/active.vm.qcow2 现在是新文件系统和 /fs1/base.vm.img 不再被使用。
  • 在通过复制后存储迁移进行实时迁移中非常有用。实时迁移完成后,磁盘镜像从源主机复制到目标主机。
    简而言之,会出现什么情况:/source-host/base.vm.img After:/destination-host/active.vm.qcow2.qcow2 ./source-host/base.vm.img 不再使用。

过程 14.3. 使用 blockpull 进行反转链

  1. 在运行 blockpull 前运行这个命令可能会有帮助:
    # virsh snapshot-create-as $dom $name - disk-only
  2. 如果链类似如下: base InventoryService snap1 mcm snap2 active,运行以下命令:
    # virsh blockpull $dom $disk snap1
    此命令使 'snap1' 后备文件从 snap2 拉取到 active,从而产生:base snap1 occurs active。
  3. 完成 blockpull 后,在链中创建额外镜像的快照的 libvirt 跟踪不再有用。使用这个命令删除过期快照的跟踪:
    # virsh snapshot-delete $dom $name - metadata
blockpull 的其他应用程序可按照如下所示进行:
  • 要扁平化单个镜像,并使用其后备镜像链中的数据进行填充:# virsh blockpull example-domain vda - wait
  • 后备镜像链的 flatten 部分:# virsh blockpull example-domain vda - base /path/to/base.img - wait
  • 要将磁盘镜像移到主机上的新文件系统中:# virsh snapshot-create example-domaine - xmlfile /path/to/new.xml - disk-only,后跟 # virsh blockpull example-domain vda - wait
  • 将实时迁移用于复制后存储迁移:
    • 在目的地运行时:
       # qemu-img create -f qcow2 -o backing_file=/source-host/vm.img /destination-host/vm.qcow2
    • 在源运行时:
      # virsh migrate example-domain
    • 在目的地运行时:
      # virsh blockpull example-domain vda - wait
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.