From: Anthony Liguori <anthony@codemonkey.ws>
To: Eric Blake <eblake@redhat.com>
Cc: xen-devel@lists.xensource.com,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
jan.kiszka@siemens.com, qemu-devel@nongnu.org,
Luiz Capitulino <lcapitulino@redhat.com>,
avi@redhat.com
Subject: Re: [Qemu-devel] [PATCH v7 2/6] Introduce "save-devices-state"
Date: Fri, 16 Mar 2012 10:58:49 -0500 [thread overview]
Message-ID: <4F636339.3090101@codemonkey.ws> (raw)
In-Reply-To: <4F636123.5010901@redhat.com>
On 03/16/2012 10:49 AM, Eric Blake wrote:
> On 03/16/2012 06:13 AM, Stefano Stabellini wrote:
>> - add an "is_ram" flag to SaveStateEntry;
>>
>> - register_savevm_live sets is_ram for live_savevm devices;
>>
>> - introduce a "save-devices-state" QAPI command that can be used to save
>> the state of all devices, but not the RAM or the block devices of the
>> VM.
>>
>
>> +QEMU has code to load/save the state of the guest that it is running.
>> +These are two complementary operations. Saving the state just does
>> +that, saves the state for each device that the guest is running.
>> +
>> +These operations are normally used with migration (see migration.txt),
>> +however it is also possible to save the state of all devices to file,
>> +without saving the RAM or the block devices of the VM.
>> +
>> +This operation is called "save-devices-state" (see QMP/qmp-commands.txt)
>
> Is there a complimentary load-devices-state?
Maybe we should call this xen-save-devices-state.
As far as I'm concerned, this is a Xen specific interface, not an interface for
general consumption.
I would not expect libvirt to use this interface. If libvirt wants an interface
that only saves device state, I'd much rather do it properly through QMP such
that what was returned was well structured and in JSON.
Regards,
Anthony Liguori
>
> Just to make sure I'm clear, there are three things to save before you
> have a complete picture of a running VM:
>
> disk state (can be saved with 'savevm' to internal qcow2 snapshots, or
> with 'transaction' and 'blockdev-snapshot-sync' by creating external
> snapshots, or by 'migrate' to a file)
>
> RAM state (can be saved with 'savevm' to internal qcow2 snapshot, or
> with 'migrate' to a file; it is also possible to start qemu with a
> command line parameter telling which backing file tracks RAM state)
>
> device state (can be saved with 'savevm' to internal qcow2 snapshot, or
> with 'migrate' to a file, and now with 'save-devices-state')
>
> That is, 'migrate' does all three at once to an external file, 'savevm'
> does all three at once to an internal qcow2 snapshot, and you are now
> making it possible to do any one of the three independently to an
> external file while the VM continues to run.
>
> Is this something that libvirt should be exposing in the near future?
>
>> +SQMP
>> +save-devices-state
>> +-------
>> +
>> +Save the state of all devices to file. The RAM and the block devices
>> +of the VM are not saved by this command.
>> +
>> +Arguments:
>> +
>> +- "filename": the file to save the state of the devices to as binary
>> +data. See save-devices-state.txt for a description of the binary format.
>> +
>> +Example:
>> +
>> +-> { "execute": "save-devices-state", "arguments": { "filename": "/tmp/save" } }
>
> Can we at least reserve something for future extension to add things
> like 'fd:name' to refer to a named fd received earlier via 'getfd'? You
> could do that by documenting up front that if "filename" does not start
> with "/", then any pattern of letters followed by a ':' as the initial
> pattern of the filename is an error (and you avoid the error by using
> ./foo:... or an absolute path).
>
next prev parent reply other threads:[~2012-03-16 15:59 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-16 12:11 [Qemu-devel] [PATCH v7 0/6] save/restore on Xen Stefano Stabellini
2012-03-16 12:13 ` [Qemu-devel] [PATCH v7 1/6] cirrus_vga: do not reset videoram Stefano Stabellini
2012-03-16 12:13 ` [Qemu-devel] [PATCH v7 2/6] Introduce "save-devices-state" Stefano Stabellini
2012-03-16 15:49 ` Eric Blake
2012-03-16 15:58 ` Anthony Liguori [this message]
2012-03-16 16:03 ` Eric Blake
2012-03-19 11:48 ` Stefano Stabellini
2012-03-16 16:13 ` Stefano Stabellini
2012-03-16 17:28 ` Luiz Capitulino
2012-03-16 12:13 ` [Qemu-devel] [PATCH v7 3/6] Set runstate to INMIGRATE earlier Stefano Stabellini
2012-03-16 12:13 ` [Qemu-devel] [PATCH v7 4/6] xen: record physmap changes to xenstore Stefano Stabellini
2012-03-16 12:13 ` [Qemu-devel] [PATCH v7 5/6] xen mapcache: check if memory region has moved Stefano Stabellini
2012-03-16 12:13 ` [Qemu-devel] [PATCH v7 6/6] xen: do not allocate RAM during INMIGRATE runstate Stefano Stabellini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F636339.3090101@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=eblake@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=lcapitulino@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).