gpt4 book ai didi

virtualization - 如何在 libvirt 中创建临时域?

转载 作者:行者123 更新时间:2023-12-04 12:21:43 27 4
gpt4 key购买 nike

如何使用 libvirt 创建临时域? (使用 QEMU/KVM 作为后端)

该文档在此链接中讨论了 transient 域和持久域之间的区别:http://wiki.libvirt.org/page/VM_lifecycle#Transient_guest_domains_vs_Persistent_guest_domains

不过,我还没有找到任何具体的例子来说明如何创建一个。

我发现的唯一指针在这封电子邮件中:https://www.redhat.com/archives/libvirt-users/2011-August/msg00057.html ,维护者建议添加 <transient/> <disk> 中的标签XML 描述的字段。

当我尝试时,我得到了这个令人失望的答案:"libvirtError: unsupported configuration: transient disks not supported yet" .

这个功能真的“还不支持”,还是我错过了什么?该文档使我认为应该支持这一点。

任何与 C 或 Python 绑定(bind)、virsh 或 virt-manager 相关的答案将不胜感激!

最佳答案

使用 virsh

如果您使用 virsh , 比有命令:

  • define -- 此命令将 XML 文件作为参数,并使 libvirt 知道该域(您可以使用其名称或 UUID 来引用该域)。
  • start -- 该命令将域名或 UUID 作为其参数并启动(引导)域。
  • create -- 此命令将 XML 文件作为其参数,并使用该文件中描述的设置创建(启动)域。根据 libvirt 是否知道域(之前使用该 UUID 定义),它可能会导致两件事:
  • 如果它已经定义,则已知域被标记为已启动,它是持久域,但它是使用提供的设置而不是定义它的设置启动的)。
  • 如果未定义,则启动的域现在是一个临时域(当它被销毁、关闭等时它会消失)。
  • undefine -- 该命令采用域名或 UUID(或 ID,如果它已启动)并使其对 libvirt 未知,但如果该域正在运行,它不会破坏它,只是将其标记为暂时的。

  • C 函数

    在 C 语言中,virsh 用于这些命令的 API 是:
  • define -- virDomainDefineXML
  • start -- virDomainCreate
  • create -- virDomainCreateXML
  • undefine -- virDomainUndefine

  • 笔记:
  • 名称可能有点困惑,但由于向后兼容性,它从 Xen 时代开始保留。
  • 大多数提到的命令都有可能改变行为的参数,这些可能会导致使用不同的 C 函数。
  • 关于virtualization - 如何在 libvirt 中创建临时域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20296328/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com