Как создать временный домен в libvirt?

как создать переходный домен с помощью libvirt? (Используя QEMU/KVM в качестве back-end)

в документации рассматривается разница между переходными и постоянными доменами по этой ссылке: 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, virsh или virt-manager будет высоко оценен!

1 ответов


помощью virsh

если вы используете virsh, чем есть команды:

  • define -- эта команда принимает XML-файл в качестве параметра и делает домен известным libvirt (вы можете ссылаться на этот домен, используя его имя или UUID).

  • start -- эта команда принимает имя домена или UUID в качестве параметра и запускает (загружает) домен.

  • create -- эта команда принимает XML-файл в качестве параметра и создает (запускает) домен с параметрами, описанными в этом файле. В зависимости от того, известен ли домен libvirt (ранее определенный с этим UUID), это может привести к двум вещам:

    • если он уже определен, известный домен помечается как запущенный, это постоянный домен, но он запускается с предоставленными настройками, а не с теми, с которыми он был определен).

    • в случае, если он не определен, домен started теперь является переходным доменом (он исчезает, когда он уничтожается,выключается и т. д.).

  • undefine -- эта команда принимает доменное имя или UUID (или ID, если он запущен) и делает его неизвестным libvirt, но если этот домен запущен, он не уничтожает его, просто помечает его переходным.

функции C

в C API, которые virsh использует для этих команд являются:

Примечания:

  • имена могут быть немного запутанными, но из-за обратной совместимости он хранится от Xen раз.

  • большинство из этих команд упоминания имеют параметры, которые могут изменить поведение, это может привести к использованию различных функций C для этой цели.