[Gluster-devel] [PATCH v2] fstests: add GlusterFS support

Niels de Vos ndevos at redhat.com
Tue Mar 21 03:45:17 UTC 2017


On Thu, Mar 16, 2017 at 01:28:19PM +0800, Zorro Lang wrote:
> Add basic GlusterFS support. Neither new GlusterFS specific tests
> nor related patches are included. Only support FSTYP=glusterfs or
> check -glusterfs XXX.
> 
> To test on glusterfs, two gluster volumes and two mountpoint
> directories are needed.
> 
> Signed-off-by: Zorro Lang <zlang at redhat.com>
> ---
> 
> Hi glusterfs developers,
> 
> Recently some people cares about testing kernel FUSE by running
> xfstests. We can't test FUSE independently, we must depend upon
> someone real FS base on FUSE, e.g. GlusterFS.
> 
> This patch only want to run xfstests on glusterfs, but I haven't
> made sure if there's no case bugs for glusterfs. I think that's
> another problem which I will fix in later patches.
> 
> At first I prepare two gluster volumes and two directories, then
> set into xfstests/local.config.
> 
> [root at ibm-x3650m4-10 xfstests-dev]# cat local.config
> TEST_DIR=/mnt/gluster/test
> TEST_DEV=ibm-xxxx-xx.redhat.com:testvol
> SCRATCH_MNT=/mnt/gluster/scratch
> SCRATCH_DEV=ibm-xxxx-xx.redhat.com:scratchvol
> 
> (feel free to set MOUNT_OPTIONS, or GLUSTERFS_MOUNT_OPTIONS)
> 
> Then I ran some generic cases, e.g. g/001 and g/117, one test on
> TEST_DEV, and the other run on SCRATCH_DEV:
> 
> [root at ibm-x3650m4-10 xfstests-dev]# ./check -glusterfs generic/001
> FSTYP         -- glusterfs
> PLATFORM      -- Linux/x86_64 ibm-x3650m4-10 3.10.0-581.el7.x86_64
> MKFS_OPTIONS  -- ibm-x3650m4-10.rhts.eng.pek2.redhat.com:scratchvol
> MOUNT_OPTIONS -- -o context=system_u:object_r:nfs_t:s0 ibm-x3650m4-10.rhts.eng.pek2.redhat.com:scratchvol /mnt/gluster/scratch
> 
> generic/001 9s ... 8s
> Ran: generic/001
> Passed all 1 tests
> 
> [root at ibm-x3650m4-10 xfstests-dev]# ./check -glusterfs generic/117
> FSTYP         -- glusterfs
> PLATFORM      -- Linux/x86_64 ibm-x3650m4-10 3.10.0-581.el7.x86_64
> MKFS_OPTIONS  -- ibm-x3650m4-10.rhts.eng.pek2.redhat.com:scratchvol
> MOUNT_OPTIONS -- -o context=system_u:object_r:nfs_t:s0 ibm-x3650m4-10.rhts.eng.pek2.redhat.com:scratchvol /mnt/gluster/scratch
> 
> generic/117 24s ... 24s
> Ran: generic/117
> Passed all 1 tests
> 
> The results look good. But there're some cases fails on glusterfs,
> I think that's case problem or glusterfs problems. I'll look into
> them in the future.
> 
> I only know how to use "mount -t glusterfs XXXX:vol /mnt", if you
> have any other requirements or suggestions, please tell me.
> Welcome send more patches to fstests@ mail list:)
> 
> Thanks,
> Zorro
> 
>  README.config-sections |  7 +++++++
>  check                  |  2 ++
>  common/config          |  6 ++++++
>  common/rc              | 34 ++++++++++++++++++++++++++++++++--
>  4 files changed, 47 insertions(+), 2 deletions(-)
> 
> diff --git a/README.config-sections b/README.config-sections
> index df7c929..9133997 100644
> --- a/README.config-sections
> +++ b/README.config-sections
> @@ -121,3 +121,10 @@ TEST_DIR=/mnt/test
>  TEST_DEV=192.168.14.1:6789:/
>  TEST_FS_MOUNT_OPTS="-o name=admin,secret=AQDuEBtYKEYRINGSECRETriSC8YJGDZsQHcr7g=="
>  FSTYP="ceph"
> +
> +[glusterfs]
> +FSTYP=glusterfs
> +TEST_DIR=/mnt/gluster/test
> +TEST_DEV=192.168.1.1:testvol
> +SCRATCH_DIR=/mnt/gluster/scratch
> +SCRATCH_DEV=192.168.1.1:scratchvol

We mostly use the format of 192.168.1.1:/testvol, matching the way NFS
mounts an export. That is not required though, and the notation used
here is valid as well.

Looks good to me - once the SCRATCH_DIR/MNT error has been corrected.

Reviewed-by: Niels de Vos <ndevos at redhat.com>


> diff --git a/check b/check
> index c2c22e2..2fcf385 100755
> --- a/check
> +++ b/check
> @@ -65,6 +65,7 @@ usage()
>  
>  check options
>      -nfs                test NFS
> +    -glusterfs                test GlusterFS
>      -cifs               test CIFS
>      -overlay		test overlay
>      -tmpfs              test TMPFS
> @@ -260,6 +261,7 @@ while [ $# -gt 0 ]; do
>  	-\? | -h | --help) usage ;;
>  
>  	-nfs)		FSTYP=nfs ;;
> +	-glusterfs)	FSTYP=glusterfs ;;
>  	-cifs)		FSTYP=cifs ;;
>  	-overlay)	FSTYP=overlay; export OVERLAY=true ;;
>  	-tmpfs)		FSTYP=tmpfs ;;
> diff --git a/common/config b/common/config
> index 0c7335a..1ee16f7 100644
> --- a/common/config
> +++ b/common/config
> @@ -301,6 +301,9 @@ _mount_opts()
>  	ceph)
>  		export MOUNT_OPTIONS=$CEPHFS_MOUNT_OPTIONS
>  		;;
> +	glusterfs)
> +		export MOUNT_OPTIONS=$GLUSTERFS_MOUNT_OPTIONS
> +		;;
>  	overlay)
>  		export MOUNT_OPTIONS=$OVERLAY_MOUNT_OPTIONS
>  		;;
> @@ -341,6 +344,9 @@ _test_mount_opts()
>  	ceph)
>  		export TEST_FS_MOUNT_OPTS=$CEPHFS_MOUNT_OPTIONS
>  		;;
> +	glusterfs)
> +		export TEST_FS_MOUNT_OPTS=$GLUSTERFS_MOUNT_OPTIONS
> +		;;
>  	*)
>  		;;
>  	esac
> diff --git a/common/rc b/common/rc
> index d53f679..7185c3f 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -167,6 +167,8 @@ case "$FSTYP" in
>  	 ;;
>      ceph)
>  	 ;;
> +    glusterfs)
> +	 ;;
>      overlay)
>  	 ;;
>      reiser4)
> @@ -706,6 +708,9 @@ _test_mkfs()
>      ceph)
>  	# do nothing for ceph
>  	;;
> +    glusterfs)
> +	# do nothing for glusterfs
> +	;;
>      overlay)
>  	# do nothing for overlay
>  	;;
> @@ -788,7 +793,7 @@ _scratch_mkfs()
>  	local mkfs_status
>  
>  	case $FSTYP in
> -	nfs*|cifs|ceph|overlay)
> +	nfs*|cifs|ceph|overlay|glusterfs)
>  		# unable to re-create this fstyp, just remove all files in
>  		# $SCRATCH_MNT to avoid EEXIST caused by the leftover files
>  		# created in previous runs
> @@ -1307,7 +1312,8 @@ _fs_type()
>      # Fix the filesystem type up here so that the callers don't
>      # have to bother with this quirk.
>      #
> -    _df_device $1 | $AWK_PROG '{ print $2 }' | sed -e 's/nfs4/nfs/'
> +    _df_device $1 | $AWK_PROG '{ print $2 }' | \
> +        sed -e 's/nfs4/nfs/' -e 's/fuse.glusterfs/glusterfs/'
>  }
>  
>  # return the FS mount options of a mounted device
> @@ -1489,6 +1495,15 @@ _check_mounted_on()
>  _require_scratch_nocheck()
>  {
>      case "$FSTYP" in
> +	glusterfs)
> +		echo $SCRATCH_DEV | grep -q "\w:\w" > /dev/null 2>&1
> +		if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then
> +			_notrun "this test requires a valid \$SCRATCH_DEV"
> +		fi
> +		if [ ! -d "$SCRATCH_MNT" ]; then
> +			_notrun "this test requires a valid \$SCRATCH_MNT"
> +		fi
> +		;;
>  	nfs*|ceph)
>  		echo $SCRATCH_DEV | grep -q ":/" > /dev/null 2>&1
>  		if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then
> @@ -1568,6 +1583,15 @@ _require_scratch()
>  _require_test()
>  {
>      case "$FSTYP" in
> +	glusterfs)
> +		echo $TEST_DEV | grep -q "\w:\w" > /dev/null 2>&1
> +		if [ -z "$TEST_DEV" -o "$?" != "0" ]; then
> +			_notrun "this test requires a valid \$TEST_DEV"
> +		fi
> +		if [ ! -d "$TEST_DIR" ]; then
> +			_notrun "this test requires a valid \$TEST_DIR"
> +		fi
> +		;;
>  	nfs*|ceph)
>  		echo $TEST_DEV | grep -q ":/" > /dev/null 2>&1
>  		if [ -z "$TEST_DEV" -o "$?" != "0" ]; then
> @@ -2421,6 +2445,9 @@ _check_test_fs()
>      ceph)
>  	# no way to check consistency for CephFS
>  	;;
> +    glusterfs)
> +	# no way to check consistency for GlusterFS
> +	;;
>      overlay)
>  	# no way to check consistency for overlay
>  	;;
> @@ -2468,6 +2495,9 @@ _check_scratch_fs()
>      ceph)
>  	# no way to check consistency for CephFS
>  	;;
> +    glusterfs)
> +	# no way to check consistency for GlusterFS
> +	;;
>      overlay)
>  	# no way to check consistency for overlay
>  	;;
> -- 
> 2.7.4
> 
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://lists.gluster.org/mailman/listinfo/gluster-devel


More information about the Gluster-devel mailing list