[libvirt] [PATCHv4 1/8] storage: initial support for linking with libgfapi
Daniel P. Berrange
berrange at redhat.com
Mon Nov 25 15:39:55 UTC 2013
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 at redhat.com>
> ---
> 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 :|
More information about the libvir-list
mailing list