[libvirt] RFC: APIs for managing a subset of a domain's disks
Daniel P. Berrange
berrange at redhat.com
Mon May 9 08:58:31 UTC 2011
On Mon, May 02, 2011 at 05:31:00PM -0600, Eric Blake wrote:
> Consider the case of a guest that has multiple virtual disks, some
> residing on shared storage (such as the OS proper) and some on local
> storage (scratch space, where the OS has faster response if the virtual
> disk does not have to go over the network, and possibly one where the
> guest can still work even if the disk is hot-unplugged). During
> migration, you'd want different handling of the two disks (the
> destination can already see the shared disk, but must either copy the
> contents or recreate a blank scratch volume for the local disk).
I don't really see that use case being practical. Even if it is just
a scratch disk, I don't see how a guest OS/app can use the scratch
disk if the data can be arbitrarily reset under its feat without any
warning / notification.
> Or, consider the case where a guest has one disk as qcow2 (it is not
> modified frequently, and benefits from sharing a common backing file
> with other guests), while another disk is raw (for better read-write
> performance). Right now, 'virsh snapshot' fails, because it only works
> if all disks are qcow2; and in fact it may be the case that it is
> desirable to only take a snapshot of a subset of the domain's disks.
Snapshotting seems interesting, but I think the alternative design
for the snapshot API[1] which is disk based already copes with this
use case. eg, the
virDomainQuiesceStorage($dom)
foreach disk
virStorageVolCreate($volsnapshotxml);
virDomainUpdateDevice($dom, $diskxml);
virDomainUnquiesceStorage($dom);
> So, I think we need some way to request an operation on a subset of VM
> disks, in a manner that can be shared between migration and volume
> management APIs. And I'm not sure it makes sense to add two more
> parameters to migration commands (an array of disks, and the size of
> that array), nor to modify the snapshot XML to describe which disks
> belong to the snapshot.
>
> So I'm thinking we need some sort of API set to manage a stateful set of
> disk operations. Maybe the trick is to define that every VM has a
> (possibly empty) set of selected disks, with APIs to manage moving a
> single disk in or out of the set, an API for listing the entire set,
> then a single flag to migration that states that live block migration is
> attempted for all disks currently in the VMs selected disk set.
I'm not really seeing a clear need for this API yet.
Regards,
Daniel
[1] http://www.redhat.com/archives/libvir-list/2011-January/msg00351.html
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list