lago
lago copied to clipboard
RFE: Move to persistent libvirt domains
Today we use transient domains - every time we run, we create a domain, then destroy it. I'm pretty sure a small change can make the domain persistent. The advantage is that they can run outside the Lago framework, and hopefully the execution is a bit faster. To do so we need:
- Convert the creation to definition of domains. Should be a fairly straightforward change, as definition is from the same XML.
- Add code that checks if we need to either define a domain if it's not defined (via the method defined in 1), or edit it if there's a new definition of it (edit could be delete + define).
- Start a defined domain - create today does definition+start.
- Add a 'delete domain' ('undefine' in libvirt) verb to Lago.
See https://wiki.libvirt.org/page/VM_lifecycle#Transient_guest_domains_vs_Persistent_guest_domains
This change will help us to improve snapshots: https://github.com/lago-project/lago/issues/716