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

Zorro Lang zlang at redhat.com
Tue Mar 21 04:04:05 UTC 2017


On Mon, Mar 20, 2017 at 11:45:17PM -0400, Niels de Vos wrote:
> 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

Hi Niels,

I limit the DEVICE name format should match "\w:\w", when mount -t glusterfs.
That means there's not "/" beside the ":". Do you think I should change
this regular expression?

I think you only use "192.168.1.1:/testvol", when you do mount -t nfs,
right?

Thanks,
Zorro

> 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