Eric Blake wrote:
On 10/31/2013 03:23 AM, Daniel P. Berrange wrote:
>> My next task - figuring out the use of glfs_open() to read metadata
>> from a file and determine backing chains.
>>
> NB, we don't want the src/util code to gain a dependancy on glusterfs
> RPMs. It is a very heavy weight package chain which cloud folks don't
> want us to pull in by default, hence my recent changes to RPM deps.
>
Indeed; which is why I'm thinking that the src/util code has to call
into the storage driver to ask if any registered backends can handle a
network file name. Because we are modular, the ONLY use of glfs.h will
be in the backend; if the correct rpm is installed to provide the
gluster backend, then the network file can be decoded; if the rpm is not
installed, then src/util has no choice but to treat the file as raw.
I don't know if that means the libvirt-daemon-driver-storage needs to be
further split into multiple .so files across multiple sub-rpms, so that
a user can pick and choose which .so backends to install rather than
dragging in all dependencies for all backends.
Just earlier this week I considered this approach while investigating an
internal issue. In an older base product, we don't support rbd (and
hence the rbd backend), but an add-on product does support rbd. We
discussed a "libvirt-daemon-driver-storage-backend-rbd" subpackage that
could included and used by the add-on product without affecting the base
product.
Regards,
Jim