On Fri, Nov 22, 2013 at 08:20:23PM -0700, Eric Blake wrote: > We support gluster volumes in domain XML, so we also ought to > support them as a storage pool. Besides, a future patch will > want to take advantage of libgfapi to handle the case of a > gluster device holding qcow2 rather than raw storage, and for > that to work, we need a storage backend that can read gluster > storage volume contents. This sets up the framework. > > Note that the new pool is named 'gluster' to match a > <disk type='network'><source protocol='gluster'> image source > already supported in a <domain>; it does NOT match the > <pool type='netfs'><source><target type='glusterfs'>, > since that uses a FUSE mount to a local file name rather than > a network name. > > This and subsequent patches have been tested against glusterfs > 3.4.1 (available on Fedora 19); there are likely bugs in older > versions that may prevent decent use of gfapi, so this patch > enforces the minimum version tested. A future patch may lower > the minimum. On the other hand, I hit at least two bugs in > 3.4.1 that will be fixed in 3.5/3.4.2, where it might be worth > raising the minimum: glfs_readdir is nicer to use than > glfs_readdir_r [1], and glfs_fini should only return failure on > an actual failure [2]. > > [1] http://lists.gnu.org/archive/html/gluster-devel/2013-10/msg00085.html > [2] http://lists.gnu.org/archive/html/gluster-devel/2013-10/msg00086.html > > * configure.ac (WITH_STORAGE_GLUSTER): New conditional. > * m4/virt-gluster.m4: new file. > * libvirt.spec.in (BuildRequires): Support gluster in spec file. > * src/conf/storage_conf.h (VIR_STORAGE_POOL_GLUSTER): New pool > type. > * src/conf/storage_conf.c (poolTypeInfo): Treat similar to > sheepdog and rbd. > (virStoragePoolDefFormat): Don't output target for gluster. > * src/storage/storage_backend_gluster.h: New file. > * src/storage/storage_backend_gluster.c: Likewise. > * po/POTFILES.in: Add new file. > * src/storage/storage_backend.c (backends): Register new type. > * src/Makefile.am (STORAGE_DRIVER_GLUSTER_SOURCES): Build new files. > * src/storage/storage_backend.h (_virStorageBackend): Documet > assumption. > > Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> > --- > configure.ac | 21 ++++++++++++++++ > libvirt.spec.in | 15 ++++++++++++ > m4/virt-gluster.m4 | 28 +++++++++++++++++++++ > po/POTFILES.in | 1 + > src/Makefile.am | 10 ++++++++ > src/conf/storage_conf.c | 26 +++++++++++++++++--- > src/conf/storage_conf.h | 3 ++- > src/storage/storage_backend.c | 6 +++++ > src/storage/storage_backend.h | 6 +++-- > src/storage/storage_backend_gluster.c | 46 +++++++++++++++++++++++++++++++++++ > src/storage/storage_backend_gluster.h | 29 ++++++++++++++++++++++ > 11 files changed, 184 insertions(+), 7 deletions(-) > create mode 100644 m4/virt-gluster.m4 > create mode 100644 src/storage/storage_backend_gluster.c > create mode 100644 src/storage/storage_backend_gluster.h ACK Daniel -- |: 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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list