8

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

该文档在此链接中讨论了瞬态域和持久域之间的区别: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 ,维护者建议在 XML 描述字段中添加<transient/>标记。<disk>

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

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

任何与 C 或 Python 绑定、virsh 或 virt-manager 相关的答案都将受到高度赞赏!

4

1 回答 1

5

使用 virsh

如果您使用的是virsh,则有以下命令:

  • define-- 该命令将一个 XML 文件作为其参数,并使 libvirt 知道该域(您可以使用其名称或 UUID 来引用该域)。

  • start -- 该命令将域名或 UUID 作为其参数并启动(引导)域。

  • create-- 此命令将 XML 文件作为其参数,并使用该文件中描述的设置创建(启动)域。根据 libvirt 是否知道域(之前使用该 UUID 定义),它可能会导致两件事:

    • 如果它已经定义,则已知域被标记为已启动,它是持久域,但它是使用提供的设置启动的,而不是使用它定义的设置)。

    • 如果未定义,则启动的域现在是一个临时域(当它被销毁、关闭等时它会消失)。

  • undefine-- 该命令采用域名或 UUID(或 ID,如果它已启动)并使其对 libvirt 未知,但如果该域正在运行,它不会破坏它,只是将其标记为暂时的。

C 函数

在 C 语言中,virsh 用于这些命令的 API 是:

笔记:

  • 这些名称可能有点令人困惑,但由于向后兼容性,它从 Xen 时代开始保留。

  • 大多数提到的命令都有可能改变行为的参数,这些可能会导致为此目的使用不同的 C 函数。

于 2013-12-04T11:02:24.987 回答