Google Summer of Code 2010/QMP: Difference between revisions
No edit summary |
|||
Line 38: | Line 38: | ||
=== do_savevm/do_loadvm === | === do_savevm/do_loadvm === | ||
TODO: | |||
* Work on do_info_snapshots() to display snapshot information of all devices. | |||
* Verify snapshot capabilities of all devices in do_savevm() before trying to save anything at all. | |||
* Update do_loadvm() do load a snapshot using an UUID. | |||
==== May 26 ==== | |||
* Got parent snapshot saving working. Using global variable, not sure if it is best option. | |||
* Updated bdrv_snapshot_dump() to properly show the UUID information. It looks really big. | |||
QEMU 0.12.50 monitor - type 'help' for more information | |||
(qemu) info snapshots | |||
Snapshot devices: ide0-hd0 | |||
Snapshot list (from ide0-hd0): | |||
ID TAG VM SIZE DATE VM CLOCK UUID PARENT UUID | |||
1 1.5M 2010-05-26 21:51:02 00:00:03.263 ce7cb390-f5d8-4633-9c83-e2c651d5aecf 00000000-0000-0000-0000-000000000000 | |||
2 1.5M 2010-05-26 21:51:09 00:00:08.844 1f80df59-470e-4de6-a0a1-cf6a2a721e0e ce7cb390-f5d8-4633-9c83-e2c651d5aecf | |||
3 1.5M 2010-05-26 21:51:24 00:00:23.274 63ce278d-26fe-4790-ab13-6643bf9ddf90 1f80df59-470e-4de6-a0a1-cf6a2a721e0e | |||
4 1.5M 2010-05-26 21:53:17 00:00:03.595 0199cdd9-1c8f-4c53-b711-684110078960 00000000-0000-0000-0000-000000000000 | |||
5 1.5M 2010-05-26 21:53:25 00:00:10.750 6b753c35-8939-477b-a7f5-10ff45e34e93 0199cdd9-1c8f-4c53-b711-684110078960 | |||
6 1.5M 2010-05-26 21:53:27 00:00:12.071 7a127832-7259-4b41-9400-64804b755b0c 6b753c35-8939-477b-a7f5-10ff45e34e93 | |||
* Fixed extra_data_size offset handling when loading a qcow2 image with an empty extra area. | |||
==== May 22 ==== | |||
I was actually not saving anything. After closing the VM the UUID information was not written to disk. After hours pulling some hair I figured it as a typo and a wrong offset calculation when saving the QCowSnapshotHeader to disk. | |||
==== May 21 ==== | ==== May 21 ==== |
Revision as of 02:20, 27 May 2010
Summary
qemu has many commands attached to the monitor interface that are currently inaccessible over QMP (QEMU Machine Protocol). I intend to give continuity to this effort, converting the remaining functions to the QObject API. While doing this conversion, the QObject API can be updated to improve its functionality when required.
More details about the protocol: http://www.linux-kvm.org/page/MonitorProtocol
Team
Student
- Name: Miguel Di Ciurcio Filho
- Email: miguel.filho@gmail.com
Mentor
- Name: Luiz Capitulino
- Email: lcapitulino@redhat.com
Subsystems being worked on
Handler | Status |
---|---|
do_info_netdevices | Sent v4 to qemu-devel on May 18, pending review. |
do_savevm/do_loadvm | Planning/Studding the code. |
do_info_qdm | Need to confirm libvirt's needs/priority about this. |
do_info_netdevices
We were struggling to get the output of 'info network' exactly the same and juggling to work around the lack of a pattern when formatting VLANClientState.info_str. So we decided to add a new and clean command, and leave 'info network' as it is.
This is the latest patch:
http://lists.gnu.org/archive/html/qemu-devel/2010-05/msg01567.html
do_savevm/do_loadvm
TODO:
- Work on do_info_snapshots() to display snapshot information of all devices.
- Verify snapshot capabilities of all devices in do_savevm() before trying to save anything at all.
- Update do_loadvm() do load a snapshot using an UUID.
May 26
- Got parent snapshot saving working. Using global variable, not sure if it is best option.
- Updated bdrv_snapshot_dump() to properly show the UUID information. It looks really big.
QEMU 0.12.50 monitor - type 'help' for more information (qemu) info snapshots Snapshot devices: ide0-hd0 Snapshot list (from ide0-hd0): ID TAG VM SIZE DATE VM CLOCK UUID PARENT UUID 1 1.5M 2010-05-26 21:51:02 00:00:03.263 ce7cb390-f5d8-4633-9c83-e2c651d5aecf 00000000-0000-0000-0000-000000000000 2 1.5M 2010-05-26 21:51:09 00:00:08.844 1f80df59-470e-4de6-a0a1-cf6a2a721e0e ce7cb390-f5d8-4633-9c83-e2c651d5aecf 3 1.5M 2010-05-26 21:51:24 00:00:23.274 63ce278d-26fe-4790-ab13-6643bf9ddf90 1f80df59-470e-4de6-a0a1-cf6a2a721e0e 4 1.5M 2010-05-26 21:53:17 00:00:03.595 0199cdd9-1c8f-4c53-b711-684110078960 00000000-0000-0000-0000-000000000000 5 1.5M 2010-05-26 21:53:25 00:00:10.750 6b753c35-8939-477b-a7f5-10ff45e34e93 0199cdd9-1c8f-4c53-b711-684110078960 6 1.5M 2010-05-26 21:53:27 00:00:12.071 7a127832-7259-4b41-9400-64804b755b0c 6b753c35-8939-477b-a7f5-10ff45e34e93
- Fixed extra_data_size offset handling when loading a qcow2 image with an empty extra area.
May 22
I was actually not saving anything. After closing the VM the UUID information was not written to disk. After hours pulling some hair I figured it as a typo and a wrong offset calculation when saving the QCowSnapshotHeader to disk.
May 21
Got saving UUID information in a qcow2 file, using QCowSnapshot->extra_data_size and displaying it on 'info snapshots'. It seams we can have snapshot inheritance without breaking the file format or any old code. Now time to actually save the inheritance.
Helpful references:
- http://people.gnome.org/~markmc/qcow-image-format.html
- http://www.mail-archive.com/qemu-devel@nongnu.org/msg11663.html
May 19
After talking with Chris Lalancette from libvirt, we need snapshot inheritance in qemu, before converting do_savevm/do_loadvm to QMP. I've analyzed the code and I there is some hairy things to do. There are more people working on this code, so I will try to get a go before starting coding.
Source code
The working being done can be followed here: