如何在libvirt中创建瞬态域?

时间:2013-11-30 03:57:48

标签: virtualization qemu kvm libvirt

如何使用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相关的答案都将受到高度赞赏!

1 个答案:

答案 0 :(得分:5)

使用virsh

如果您使用的是virsh,那么命令是:

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

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

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

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

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

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

C函数

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

注意:

  • 名称可能有点令人困惑,但由于向后兼容,因此不会出现Xen时间。

  • 大多数提及命令的参数可能会改变行为,这可能会导致使用不同的C函数。