
2010/3/31 Chris Lalancette <clalance@redhat.com>:
On 03/30/2010 08:14 PM, Matthias Bolte wrote:
2010/3/30 Chris Lalancette <clalance@redhat.com>:
Hello, After our discussions about the snapshot API last week, I went ahead and implemented quite a bit of the API. I also went back to the ESX, Virtualbox, and QEMU API's to try and make sure our API's matched up. What's below is my revised API based on that survey. Following my revised API are notes that I took regarding how the libvirt API matches up to the various API's, and some questions about semantics that I had while doing the survey. More comments and questions are welcome.
Mapping of our interface to various hypervisors: +-------------------------------+-----------------+-------------------+------------------------------+ | Libvirt | Qemu | Virtualbox | ESX | +-------------------------------+-----------------+-------------------+------------------------------+ | virDomainSnapshotCreateXML | monitor command | takeSnapshot | CreateSnapshot_task | | | "savevm"; if | Snapshots can | takes a name, description, | | | snapshot name | be taken on | memory (true/false) and | | | is already in | powered off, | quiesce (true/false). | | | use, replaces | saved, running, | What does "memory" mean? |
If memory is true, ESX snapshots the memory of the domain too, otherwise only a disk snapshot is created.
Creating a disk-only snapshot is nearly instant, while creating a memory snapshot also requires a notable amount of time to write the memory image to disk.
Sorry, I misread the documentation yesterday. That's fairly clear. What's less clear to me is what happens when you take a disk-only snapshot, and then try to RevertToSnapshot from a running VM. What happens in that case?
If the domain is running and you revert to a disk-only snapshot then the domain gets shutdown. Or rephrased: the power state associated with a disk-only snapshot is always powered-off, even if the domain was running while the disk-only snapshot was created.
| | the previous | or paused VMs. | Should we model "quiesce" |
The vSphere API docs give a good description what the quiesce option does:
"If TRUE and the virtual machine is powered on when the snapshot is taken, VMware Tools is used to quiesce the file system in the virtual machine. This assures that a disk snapshot represents a consistent state of the guest file systems. If the virtual machine is powered off or VMware Tools are not available, the quiesce flag is ignored."
I assume "quiesce the file system" means to flush write caches and stuff like that.
This option is important if you want to create a disk-only snapshot of a running domain.
Exactly. I'm not sure this is going to be possible in general (and I guess it's not even really possible in ESX unless you install VMware Tools inside the guest). I'm inclined not to model it at the moment, although I could be convinced otherwise.
Yes, quiesce requires VMware Tools to be installed in the guest. Matthias