On 01/23/2013 10:24 AM, Osier Yang wrote: > On 2013年01月23日 22:58, Daniel P. Berrange wrote: >> On Wed, Jan 23, 2013 at 10:55:25PM +0800, Osier Yang wrote: >>> On 2013年01月23日 22:18, Daniel P. Berrange wrote: >>>> On Wed, Jan 23, 2013 at 07:04:35PM +0800, Osier Yang wrote: >>>>> With this patch, one can specify the disk source using storage >>>>> pool/volume like: >>>>> >>>>> <disk type='file' device='disk'> >>>>> <driver name='qemu' type='raw' cache='none'/> >>>>> <source type='pool'> >>>>> <volume key='/var/lib/libvirt/images/foo.img'/> >>>>> <seclabel relabel='no'/> >>>>> </source> >>>>> <target dev='vdb' bus='virtio'/> >>>>> </disk> >>>>> >>>>> <disk type='file' device='disk'> >>>>> <driver name='qemu' type='raw' cache='none'/> >>>>> <source type='pool'> >>>>> <volume path='/var/lib/libvirt/images/foo.img'/> >>>>> <seclabel relabel='no'/> >>>>> </source> >>>>> <target dev='vdb' bus='virtio'/> >>>>> </disk> >>>>> >>>>> <disk type='file' device='disk'> >>>>> <driver name='qemu' type='raw' cache='none'/> >>>>> <source type='pool'> >>>>> <pool uuid|name="$var"/> >>>>> <volume name='foo.img'/> >>>>> <seclabel relabel='no'/> >>>>> </source> >>>>> <target dev='vdb' bus='virtio'/> >>>>> </disk> >>>> >>>> >>>> If you're going to introduce new schema for<source>, >>>> then you must introduce a new disk type value.ie a >>>> <disk type='file'> must always use the<source file='...'/> >>>> XML syntax, otherwise you cause backwards compatibility >>>> problems for applications >>> >>> Oh, yes. I need a v2. >>> >>>> >>>> What you need here is a<disk type='volume'/> for your >>>> new schema. >>>> >>> >>> But before I make up the v2, do you see other design problem >>> on the set? Thanks. >> >> I'm wondering if it is really requires to allow so many different >> options for specifyin the pool& volume. For<interface type='network'> >> we were fine simply using the 'name' and ignoring UUID. I cna't help >> thinking that for storage we can similarly just use the pool name and >> volume name >> > > This was my hesitating too when on the half road. But to post the RFC > earlier, and considering it's at least not a bad thing, as we provide > all the interfaces, so I went on with it. > > I think it makes no big difference if we simply use pool name and > volume name, but what I'm not sure is if the users will want the uuid > for pool, and path/key for volume (using path/key is convenient > as the pool is not even neccessary). (Keep in mind this is coming from a non-storage guy, so there may be some flaws in my logic :-) Too many ways of describing the same thing is bad, as it leads to confusion. Also, since the point of making this abstraction is to isolate the host-specific details of the device from the domain's configuration, I think allowing the file path to be specified is counter-productive (since it could be different from host to host, depending on where an NFS share is mounted, for example). Of course this is a bit of a different situation than network devices, since the pool/volume must end up pointing to the same bits from all hosts (either the exact same bits via a different access path, or a new copy of the bits migrated over to a different type of storage), but in the end it should be possible for the disk image to be in a local directory on one host, accessed by NFS on another, and maybe even via iscsi or lvm on another - those details should all be in the pool/volume definitions on each host, and the guest config should just say "this disk's image is in pool x, volume y". -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list