diff options
author | M. Mohan Kumar <mohan@in.ibm.com> | 2012-11-29 21:46:05 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2012-11-29 09:35:20 -0800 |
commit | ee968619cf936f0e25299beb1996abc27ed3dc72 (patch) | |
tree | 746bba7ee5bc04a367ee0eb949cff1870f8c0fed /configure.ac | |
parent | b90b2c17b6b678e5aa1440a62b7588f8b7c52947 (diff) |
xlators: Add Block Device(BD) backend translator
Add a new server storage xlator 'bd mapper'. Intention of this xlator is
to add block device backend support to gluster. It exports block devices
as regular files to the gluster client.
The immediate goal of this translator is to use logical volumes to
store VM images and expose them as files to QEMU/KVM.
Given Volume group is represented as directory and its logical
volumes as files.
By exporting LUNs/LVs as regular files, it becomes possible to:
* Associate each VM to a LV/LUN
* Use file system commands like cp to take copy of VM images
* Create linked clones of VM by doing LV snapshot at server
side
* Implement thin provisioning by developing a qcow2 translator
As of now this patchset maps only logical volumes. BD Mapper volume
file specifies which Volume group to export to the client. BD xlator
exports the volume group as a directory and all logical volumes under that
as regular files.
BD xlator uses lvm2-devel APIs for getting the list of Volume Groups
and Logical Volumes in the system.
The eventual goal of this work is to support thin provisioning,
snapshot, copy etc of VM images seamlessly in glusterfs storage environment
BUG: 805138
Change-Id: I13b69d39d7fd199c101c8e9e4f2cf10772bdc3dd
Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Reviewed-on: http://review.gluster.org/3551
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 48 |
1 files changed, 38 insertions, 10 deletions
diff --git a/configure.ac b/configure.ac index 4e638d56315..9640c9d504f 100644 --- a/configure.ac +++ b/configure.ac @@ -51,6 +51,8 @@ AC_CONFIG_FILES([Makefile xlators/storage/Makefile xlators/storage/posix/Makefile xlators/storage/posix/src/Makefile + xlators/storage/bd_map/Makefile + xlators/storage/bd_map/src/Makefile xlators/cluster/Makefile xlators/cluster/afr/Makefile xlators/cluster/afr/src/Makefile @@ -262,6 +264,31 @@ if test "x$enable_fuse_client" != "xno"; then BUILD_FUSE_CLIENT="yes" fi +AC_ARG_ENABLE([bd-xlator], + AC_HELP_STRING([--enable-bd-xlator], + [Build BD xlator])) + +if test "x$enable_bd_xlator" != "xno"; then + AC_CHECK_LIB([lvm2app], + [lvm_init], + [HAVE_BD_LIB="yes"], + [HAVE_BD_LIB="no"]) +fi + +if test "x$enable_bd_xlator" = "xyes" -a "x$HAVE_BD_LIB" = "xno"; then + echo "BD xlator requested but required lvm2 development library not found." + exit 1 +fi + +BUILD_BD_XLATOR=no +if test "x${enable_bd_xlator}" != "xno" -a "x${HAVE_BD_LIB}" = "xyes"; then + BUILD_BD_XLATOR=yes + AC_DEFINE(HAVE_BD_XLATOR, 1, [define if lvm2app library found and bd + xlator enabled]) +fi + +AM_CONDITIONAL([ENABLE_BD_XLATOR], [test x$BUILD_BD_XLATOR = xyes]) + AC_SUBST(FUSE_CLIENT_SUBDIR) # end FUSE section @@ -617,14 +644,15 @@ AC_OUTPUT echo echo "GlusterFS configure summary" echo "===========================" -echo "FUSE client : $BUILD_FUSE_CLIENT" -echo "Infiniband verbs : $BUILD_IBVERBS" -echo "epoll IO multiplex : $BUILD_EPOLL" -echo "argp-standalone : $BUILD_ARGP_STANDALONE" -echo "fusermount : $BUILD_FUSERMOUNT" -echo "readline : $BUILD_READLINE" -echo "georeplication : $BUILD_SYNCDAEMON" -echo "Linux-AIO : $BUILD_LIBAIO" -echo "Enable Debug : $DEBUG" -echo "systemtap : $BUILD_SYSTEMTAP" +echo "FUSE client : $BUILD_FUSE_CLIENT" +echo "Infiniband verbs : $BUILD_IBVERBS" +echo "epoll IO multiplex : $BUILD_EPOLL" +echo "argp-standalone : $BUILD_ARGP_STANDALONE" +echo "fusermount : $BUILD_FUSERMOUNT" +echo "readline : $BUILD_READLINE" +echo "georeplication : $BUILD_SYNCDAEMON" +echo "Linux-AIO : $BUILD_LIBAIO" +echo "Enable Debug : $DEBUG" +echo "systemtap : $BUILD_SYSTEMTAP" +echo "Block Device backend : $BUILD_BD_XLATOR" echo |