Libvirt guest destroyed after shutdown

5,303

You created your guest with virsh create (or its equivalent). This creates transient domains, which are deleted when they power off.

To create persistent domains, use virsh define instead. These remain defined after they are powered off or destroyed, and can be started again at any time.

Share:
5,303

Related videos on Youtube

Mustafa
Author by

Mustafa

Co-founder at Resmo.

Updated on September 18, 2022

Comments

  • Mustafa
    Mustafa almost 2 years

    I have created a VM withLibvirt and when I shut it down whether forcefully or with ACPI, it gets deleted. I create it:

    <domain type='kvm'>
        <name>deneme2</name>
        <memory>2097152</memory>
        <vcpu>1</vcpu>
        <os>
            <type>hvm</type>
            <boot dev="hd" />
        </os>
        <features>
           <acpi/>
        </features>
        <on_poweroff>preserve</on_poweroff>
        <on_reboot>restart</on_reboot>
        <on_crash>restart</on_crash>
        <on_lockfailure>poweroff</on_lockfailure>
        <devices>
            <graphics type='vnc' port='-1'/>
            <disk type='file' device='disk'>
                <driver name='qemu' type='qcow2'/>
                <source file='/home/mustafa/buki/vms/deneme2/disk0.img'/>
                <target dev='vda' bus='virtio'/>
            </disk>
            <disk type='file' device='disk'>
                <source file='/home/mustafa/buki/vms/deneme2/cloud-init.img'/>
                <target dev='vdb' bus="virtio"/>
            </disk>
            <interface type='network'>
                <source network='br0-bridge'/>
                <mac address='00:16:3e:5a:41:9c'/>
                <model type="virtio" />
            </interface>
    
        </devices>
    

    However although I use on_poweroff event properly, it gets deleted immediately.

    $ virsh dumpxml deneme2 | grep "on_poweroff"
      <on_poweroff>preserve</on_poweroff>
    
    $ virsh shutdown deneme2 --mode acpi
    Domain deneme2 is being shutdown
    
    $ virsh list --all
     Id    Name                           State
    ----------------------------------------------------
    

    What is the reason of this?

  • h0tw1r3
    h0tw1r3 over 8 years
    Perhaps mention <on_poweroff>preserve</on_poweroff> does not do what one might assume.
  • Mustafa
    Mustafa over 8 years
    You are right, I am using a libvirt go library I had used DomainCreateXMLinstead of DomainDefineXML , much appreciated. @h0tw1r3 what does preserve does than?
  • Michael Hampton
    Michael Hampton over 8 years
    I have no idea what preserve is supposed to preserve. It's not very well documented. And it's not necessary for normal operation anyway.