如何在libvirt中创建瞬态域?

rey*_*mer 7 virtualization kvm qemu 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相关的答案都将受到高度赞赏!

ner*_*ert 5

使用virsh

如果您正在使用virsh,则有命令:

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

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

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

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

    • 如果没有定义,域启动现在是一个瞬态域(它在被销毁,关闭等时消失).

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

C功能

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

笔记:

  • 名称可能有点令人困惑,但由于向后兼容性,它可以保持Xen时间.

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