mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-04 03:55:20 +00:00
318ea3cb77
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@redhat.com> |
||
---|---|---|
.. | ||
capabilities.c | ||
capabilities.h | ||
cpu_conf.c | ||
cpu_conf.h | ||
device_conf.c | ||
device_conf.h | ||
domain_audit.c | ||
domain_audit.h | ||
domain_conf.c | ||
domain_conf.h | ||
domain_event.c | ||
domain_event.h | ||
domain_nwfilter.c | ||
domain_nwfilter.h | ||
interface_conf.c | ||
interface_conf.h | ||
netdev_bandwidth_conf.c | ||
netdev_bandwidth_conf.h | ||
netdev_vlan_conf.c | ||
netdev_vlan_conf.h | ||
netdev_vport_profile_conf.c | ||
netdev_vport_profile_conf.h | ||
network_conf.c | ||
network_conf.h | ||
node_device_conf.c | ||
node_device_conf.h | ||
nwfilter_conf.c | ||
nwfilter_conf.h | ||
nwfilter_ipaddrmap.c | ||
nwfilter_ipaddrmap.h | ||
nwfilter_params.c | ||
nwfilter_params.h | ||
secret_conf.c | ||
secret_conf.h | ||
snapshot_conf.c | ||
snapshot_conf.h | ||
storage_conf.c | ||
storage_conf.h | ||
storage_encryption_conf.c | ||
storage_encryption_conf.h | ||
virchrdev.c | ||
virchrdev.h |