[Libvir] Re: Next features and target for development
Anthony Liguori
anthony at codemonkey.ws
Wed Jul 11 14:26:38 UTC 2007
Daniel P. Berrange wrote:
> On Wed, Jul 11, 2007 at 08:59:08AM -0500, Anthony Liguori wrote:
>
>> Till Maas wrote:
>>
>>> On Mi Juli 11 2007, Richard W.M. Jones wrote:
>>>
>>>
>>>> I'm interested to know how VirtualBox / VMWare deal with disk storage.
>>>> Do they provide their own storage subsystems which support this or do
>>>> they interact with things like LVM?
>>>>
>>> The use their own subsystem. VMWare uses .vmdk files to store the harddisk
>>> contents. When a snapshot is created, it creates a new one that depends on
>>> the old one and stores every change in the new one. When the machine is
>>> running during the snapshot, the complete state of the machine is stored,
>>> too. I guess VirtualBox does it similiar.
>>>
>>> Qemu also provides this feature, except that afaik it is only possible to
>>> savely create snapshots of powered off machines with the qcow2 image type.
>>>
>> This is not correct. QEMU has supported (for a very long time) the
>> ability to save/restore snapshots of running machines. In QEMU 0.9.0,
>> instead of saving snapshots to an external file, snapshots are saved
>> along with disk snapshots to the actual disk file. This of course
>> requires that the disk format support this and currently qcow2 is the
>> only format that does.
>>
>
> Which makes it rather useless - pretty much all my guests are either LVM
> or partitions, and sometimes raw files. I understand why this was done
> because it lets you do incremental checkpointing & restore. I think it'd
> be usefult to also add back support for saving to external files. I was
> looking at the code & think it would be really very easy to do, without
> impacting current code.
>
My plan was to make the migrate URI flexible such that an unknown URI
called out to an external program. Somehow, an fd to a monitor would be
passed so that the program could decide whether to "pause" before doing
the save or to do the save live.
This would allow you to write a "lvm" script that knew how to checkpoint
LVM and could redirect the saved state to an external file using some
sort of common naming convention. That way, "savevm lvm://foo" would
result in the lvm volumes being checkpointed and the state being saved
to /var/run/qemu/foo.state or something like that.
The goal is to eliminate the distinction between savevm/migrate since
they are really the same thing (savevm just pauses the VM first).
Regards,
Anthony Liguori
> Dan.
>
More information about the libvir-list
mailing list