Skip to content

Building GlusterFS

aborkar-ibm edited this page Sep 25, 2019 · 38 revisions

Building GlusterFS

Below versions of GlusterFS are available in respective distributions at the time of creation of these build instructions:

  • RHEL 8.0 - 3.12.2
  • Ubuntu 16.04 - 3.7.6
  • Ubuntu 18.04 - 3.13.2
  • Ubuntu 19.04 - 5.3

The instructions provided below specify the steps to build GlusterFS 6.5 on Linux on IBM Z for following distributions:

  • RHEL (7.5, 7.6, 7.7, 8.0)
  • SLES (12 SP4, 15, 15 SP1)
  • Ubuntu (16.04, 18.04, 19.04)

General Notes:

  • When following the steps below please use a super user unless otherwise specified
  • A directory /<source root>/ will be referred to in these instructions, this is a temporary writable directory anywhere you'd like to place it

Building and Installing GlusterFS

Step 1: Build using script

If you want to build GlusterFS using manual steps, go to Step 2.

Use the following commands to build GlusterFS using the build script. Please make sure you have wget installed.

wget -q https://raw.githubusercontent.com/linux-on-ibm-z/scripts/master/GlusterFS/6.5/build_glusterfs.sh
# Build GlusterFS
bash build_glusterfs.sh   [Provide -t option for executing build with tests]

If the build completes successfully, go to STEP 5. In case of error, check logs for more details or go to STEP 2 to follow manual build steps.

Step 2: Install the dependencies

export SOURCE_ROOT=/<source_root>/
  • RHEL (7.5, 7.6, 7.7)

    yum install -y autoconf automake bison bzip2 flex fuse-devel gcc git glib2-devel libacl-devel libaio-devel libibverbs-devel librdmacm-devel libtool libxml2-devel libuuid-devel lvm2 make openssl-devel pkgconfig python readline-devel wget zlib-devel
    • Building urcu

      cd $SOURCE_ROOT
      wget https://lttng.org/files/urcu/userspace-rcu-0.10.2.tar.bz2
      tar xvjf userspace-rcu-0.10.2.tar.bz2
      cd userspace-rcu-0.10.2
      ./configure --prefix=/usr --libdir=/usr/lib64
      make
      make install
  • RHEL 8

    yum install -y autoconf automake bison bzip2 flex fuse-devel gcc git glib2-devel libacl-devel libaio-devel libibverbs-devel librdmacm-devel libtool libxml2-devel libuuid-devel lvm2 make openssl-devel pkgconfig python3 readline-devel wget zlib-devel wget tar gzip libtirpc-devel
    • Building urcu

      cd $SOURCE_ROOT
      wget https://lttng.org/files/urcu/userspace-rcu-0.10.2.tar.bz2
      tar xvjf userspace-rcu-0.10.2.tar.bz2
      cd userspace-rcu-0.10.2
      ./configure --prefix=/usr --libdir=/usr/lib64
      make
      make install
    • Building rpcsvc

      cd $SOURCE_ROOT
      wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
      tar xzvf rpcsvc-proto-1.4.tar.gz
      cd rpcsvc-proto-1.4
      ./configure
      make && make install
  • SLES (12 SP4)

    zypper install -y autoconf automake bison cmake flex fuse-devel gcc git glib2-devel libacl-devel libaio-devel librdmacm1 libopenssl-devel libtool liburcu-devel libuuid-devel libxml2-devel lvm2 make pkg-config python2 rdma-core-devel readline-devel zlib-devel which
  • SLES (15, 15 SP1)

    zypper install -y autoconf automake bison cmake flex fuse-devel gcc git glib2-devel libacl-devel libaio-devel librdmacm1 libopenssl-devel libtool liburcu-devel libuuid-devel libxml2-devel lvm2 make pkg-config python3 rdma-core-devel readline-devel zlib-devel
  • Ubuntu (16.04, 18.04, 19.04)

    apt-get update
    apt-get install -y autoconf automake bison flex gcc git libacl1-dev libaio-dev libfuse-dev libglib2.0-dev libibverbs-dev librdmacm-dev libreadline-dev libssl-dev libtool liburcu-dev libxml2-dev lvm2 make openssl pkg-config python3 uuid-dev zlib1g-dev

Step 3: Download, Configure and Build GlusterFS

  • Download and configure source

    cd $SOURCE_ROOT
    git clone -b v6.5 https://github.com/gluster/glusterfs
    cd glusterfs
    ./autogen.sh
    ./configure --enable-gnfs                                              # For RHEL, SLES 15, SLES 15 SP1 and Ubuntu
    PYTHON=`which python2` ./configure --enable-gnfs --disable-events      # For SLES 12 SP4
  • Create a patch file patch_io-threads.diff with the following contents: (For RHEL 8.0, SLES and Ubuntu only)

    diff --git a/xlators/performance/io-threads/src/io-threads.h b/xlators/performance/io-threads/src/io-threads.h
    index f54d2f4..1d9c22e 100644
    --- a/xlators/performance/io-threads/src/io-threads.h
    +++ b/xlators/performance/io-threads/src/io-threads.h
    @@ -34,7 +34,7 @@ struct iot_conf;
     #define IOT_DEFAULT_THREADS 16
     #define IOT_MAX_THREADS 64
    
    -#define IOT_THREAD_STACK_SIZE ((size_t)(256 * 1024))
    +#define IOT_THREAD_STACK_SIZE ((size_t)(512 * 1024))
    
     typedef struct {
         struct list_head clients;

    Apply the patch using the command below:

    git apply patch_io-threads.diff
  • Build and install

    make
    make install
    ldconfig

Step 4: Run the test cases (optional)

4.1) Install the testing dependencies

  • RHEL (7.5, 7.6, 7.7)

    yum install -y acl attr bc bind-utils boost-devel docbook-style-xsl expat-devel gcc-c++ gdb net-tools nfs-utils psmisc pyxattr vim xfsprogs yajl
  • RHEL 8.0

    yum install -y acl attr bc bind-utils boost-devel docbook-style-xsl expat-devel gcc-c++ gdb net-tools nfs-utils psmisc vim xfsprogs yajl redhat-rpm-config python3-pip python3-devel perl-Test-Harness
  • SLES 12 SP4

    zypper install -y acl attr bc bind-utils boost-devel gcc-c++ gdb libexpat-devel libxml2-tools net-tools nfs-utils psmisc vim xfsprogs python-xattr
  • SLES (15, 15 SP1)

    zypper install -y acl attr bc bind-utils gdb libxml2-tools net-tools-deprecated nfs-utils psmisc thin-provisioning-tools vim xfsprogs python3-xattr
  • Ubuntu (16.04, 18.04, 19.04)

    apt-get install -y acl attr bc dbench dnsutils libxml2-utils net-tools nfs-common psmisc python3-pyxattr thin-provisioning-tools vim xfsprogs yajl-tools rpm2cpio gdb
  • Install gstack command (Ubuntu only)

    cd $SOURCE_ROOT
    wget http://rpmfind.net/linux/opensuse/update/leap/42.1/oss/x86_64/gdb-7.11.1-16.1.x86_64.rpm
    rpm2cpio gdb-7.11.1-16.1.x86_64.rpm | cpio -idmv
    mv ./usr/bin/gstack /usr/bin/
    rm -r ./etc ./usr
    rm gdb-7.11.1-16.1.x86_64.rpm
  • Install pyxattr (RHEL 8.0 only)

    ln -s /usr/bin/gcc /usr/bin/s390x-linux-gnu-gcc
    pip3 install pyxattr
  • Building DBENCH (For RHEL and SLES only)

    cd $SOURCE_ROOT
    git clone https://github.com/sahlberg/dbench
    cd dbench
    ./autogen.sh
    ./configure
    make
    make install
  • Building thin-provisioning-tools (For RHEL and SLES 12 SP4 only)

    cd $SOURCE_ROOT
    git clone https://github.com/jthornber/thin-provisioning-tools
    cd thin-provisioning-tools
    git checkout v0.7.6
    autoreconf
    ./configure
    make
    make install
  • Building YAJL (For SLES only)

    cd $SOURCE_ROOT
    git clone https://github.com/lloyd/yajl
    cd yajl
    git checkout 2.1.0
    ./configure
    make install

4.2) Patch and run tests

  • Create a patch file patch_tests.diff with the following contents:

    diff --git a/tests/basic/distribute/throttle-rebal.t b/tests/basic/distribute/throttle-rebal.t
    index f4823cf..1cc3cac 100644
    --- a/tests/basic/distribute/throttle-rebal.t
    +++ b/tests/basic/distribute/throttle-rebal.t
    @@ -17,7 +17,7 @@ function set_throttle {
     }
    
     #Determine number of cores
    -cores=$(cat /proc/cpuinfo | grep processor | wc -l)
    +cores=$(cat /proc/cpuinfo | grep -w processor | wc -l)
     if [ "$cores" == "" ]; then
             echo "Could not get number of cores available"
     fi
    diff --git a/tests/bugs/distribute/bug-1161311.t b/tests/bugs/distribute/bug-1161311.t
    index c52c69b..45b4c7b 100755
    --- a/tests/bugs/distribute/bug-1161311.t
    +++ b/tests/bugs/distribute/bug-1161311.t
    @@ -89,6 +89,7 @@ done
     ## FILE1 and FILE2 hashes are, 678b1c4a e22c1ada, so they fall
     ## into separate bricks when brick count is 3
     TEST mv $M0/dir1/FILE2 $M0/dir1/FILE1
    +brick_loc=$(get_backend_paths $M0/dir1/FILE1)
    
     # unmount and remount the volume
     EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
    @@ -99,7 +100,7 @@ TEST $CLI volume rebalance $V0 start force
    
     # Wait for FILE to get the sticky bit on, so that file is under
     # active rebalance, before creating the links
    -TEST checksticky $B0/${V0}3/dir1/FILE1
    +TEST checksticky $brick_loc
    
     # Create the links
     ## FILE3 FILE5 FILE7 have hashes, c8c91469 566d26ce 22ce7eba
    @@ -120,7 +121,7 @@ cd /
    
     # Ideally for this test to have done its job, the file should still be
     # under migration, so check the sticky bit again
    -TEST checksticky $B0/${V0}3/dir1/FILE1
    +TEST checksticky $brick_loc
    
     # Wait for rebalance to complete
     EXPECT_WITHIN $REBALANCE_TIMEOUT "completed" rebalance_status_field $V0
    diff --git a/tests/bugs/distribute/bug-1193636.t b/tests/bugs/distribute/bug-1193636.t
    index ccde02e..e97d705 100644
    --- a/tests/bugs/distribute/bug-1193636.t
    +++ b/tests/bugs/distribute/bug-1193636.t
    @@ -40,12 +40,13 @@ dd if=/dev/zero of=$M0/dir1/FILE2 bs=64k count=10240
     # Rename the file to create a linkto, for rebalance to
     # act on the file
     TEST mv $M0/dir1/FILE2 $M0/dir1/FILE1
    +brick_loc=$(get_backend_paths $M0/dir1/FILE1)
    
     build_tester $(dirname $0)/bug-1193636.c
    
     TEST $CLI volume rebalance $V0 start force
    
    -TEST checksticky $B0/${V0}3/dir1/FILE1
    +TEST checksticky $brick_loc
    
     TEST setfattr -n "user.test1" -v "test1" $M0/dir1/FILE1
     TEST setfattr -n "user.test2" -v "test1" $M0/dir1/FILE1
    diff --git a/tests/bugs/nfs/bug-847622.t b/tests/bugs/nfs/bug-847622.t
    index 5ccee72..20d5ec5 100755
    --- a/tests/bugs/nfs/bug-847622.t
    +++ b/tests/bugs/nfs/bug-847622.t
    @@ -30,7 +30,7 @@ cd $N0
    
     # simple getfacl setfacl commands
     TEST touch testfile
    -TEST setfacl -m u:14:r testfile
    +TEST setfacl -m u:14:r $B0/brick0/testfile
     TEST getfacl testfile
    
     cd
    diff --git a/tests/basic/posix/shared-statfs.t b/tests/basic/posix/shared-statfs.t
    index 3343956..7776b44 100644
    --- a/tests/basic/posix/shared-statfs.t
    +++ b/tests/basic/posix/shared-statfs.t
    @@ -28,7 +28,7 @@ TEST $GFS --volfile-server=$H0 --volfile-id=$V0 $M0
     total_space=$(df -P $M0 | tail -1 | awk '{ print $2}')
     # Keeping the size less than 200M mainly because XFS will use
     # some storage in brick to keep its own metadata.
    -TEST [ $total_space -gt 194000 -a $total_space -lt 200000 ]
    +TEST [ $total_space -gt 193000 -a $total_space -lt 200000 ]
    
    
     TEST force_umount $M0
    diff --git a/tests/bugs/glusterd/bug-1242875-do-not-pass-volinfo-quota.t b/tests/bugs/glusterd/  bug-1242875-do-not-pass-volinfo-quota.t
    index c229d43..79539ed 100644
    --- a/tests/bugs/glusterd/bug-1242875-do-not-pass-volinfo-quota.t
    +++ b/tests/bugs/glusterd/bug-1242875-do-not-pass-volinfo-quota.t
    @@ -24,6 +24,7 @@ EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" get_quotad_count
    
     ## Killing all gluster process
     pkill gluster;
    +sleep 5;
    
     ## there should not be any quota daemon running after killing quota process
     EXPECT_WITHIN $PROCESS_UP_TIMEOUT "0" get_quotad_count
    diff --git a/tests/bugs/quota/bug-1293601.t b/tests/bugs/quota/bug-1293601.t
    index 741758b..688299f 100644
    --- a/tests/bugs/quota/bug-1293601.t
    +++ b/tests/bugs/quota/bug-1293601.t
    @@ -28,6 +28,6 @@ EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "1.0MB" quotausage "/"
     TEST $CLI volume quota $V0 disable
     TEST $CLI volume quota $V0 enable
    
    -EXPECT_WITHIN 60 "1.0MB" quotausage "/"
    +EXPECT_WITHIN 180 "1.0MB" quotausage "/"
    
     cleanup;
    diff --git a/tests/bugs/shard/bug-1251824.t b/tests/bugs/shard/bug-1251824.t
    index d81685d..502613b 100644
    --- a/tests/bugs/shard/bug-1251824.t
    +++ b/tests/bugs/shard/bug-1251824.t
    @@ -14,7 +14,7 @@ TEST $CLI volume set $V0 features.shard-block-size 4MB
     TEST $CLI volume start $V0
    
     TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 $M0
    -TEST useradd -M test_user 2>/dev/null
    +TEST useradd -UM test_user 2>/dev/null
    
     # Create 3 files as root.
     TEST touch $M0/foo
    diff --git a/tests/bugs/shard/bug-1468483.t b/tests/bugs/shard/bug-1468483.t
    index e462b8d..e2d2ee1 100644
    --- a/tests/bugs/shard/bug-1468483.t
    +++ b/tests/bugs/shard/bug-1468483.t
    @@ -35,7 +35,7 @@ TEST stat $B0/${V0}0/.shard/$gfid_foo.6
    
     EXPECT "7" echo `$CLI volume profile $V0 info incremental | grep -w FSYNC | awk '{print $8}'`
    
    -useradd -M test_user 2>/dev/null
    +useradd -UM test_user 2>/dev/null
    
     TEST touch $M0/bar
    
    diff --git a/tests/basic/distribute/dir-heal.t b/tests/basic/distribute/dir-heal.t
    index 851f765..23e1070 100644
    --- a/tests/basic/distribute/dir-heal.t
    +++ b/tests/basic/distribute/dir-heal.t
    @@ -30,8 +30,8 @@ TEST glusterfs --entry-timeout=0 --attribute-timeout=0 -s $H0 --volfile-id $V0 $
     ls $M0/
     cd $M0
    
    -TEST kill_brick $V0 $H0 $B0/$V0-1
    -EXPECT_WITHIN $PROCESS_UP_TIMEOUT "0" brick_up_status $V0 $H0 $B0/$V0-1
    +TEST kill_brick $V0 $H0 $B0/$V0-2
    +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "0" brick_up_status $V0 $H0 $B0/$V0-2
    
     TEST mkdir dir{1..4}
    
    @@ -51,7 +51,7 @@ TEST setfattr -n "user.test" -v "test" $M0/dir4
     # Start all bricks
    
     TEST $CLI volume start $V0 force
    -EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" brick_up_status $V0 $H0 $B0/$V0-1
    +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" brick_up_status $V0 $H0 $B0/$V0-2
    
     #$CLI volume status
    
    @@ -62,18 +62,18 @@ stat $M0/dir* > /dev/null
    
     # Check that directories have been created on the brick that was killed
    
    -TEST ls $B0/$V0-1/dir1
    +TEST ls $B0/$V0-2/dir1
    
    -TEST ls $B0/$V0-1/dir2
    -EXPECT "777" stat -c "%a" $B0/$V0-1/dir2
    +TEST ls $B0/$V0-2/dir2
    +EXPECT "777" stat -c "%a" $B0/$V0-2/dir2
    
    -TEST ls $B0/$V0-1/dir3
    -EXPECT "test" getfattr -n "user.test" --absolute-names --only-values $B0/$V0-1/dir3
    +TEST ls $B0/$V0-2/dir3
    +EXPECT "test" getfattr -n "user.test" --absolute-names --only-values $B0/$V0-2/dir3
    
    
    -TEST ls $B0/$V0-1/dir4
    -EXPECT "777" stat -c "%a" $B0/$V0-1/dir4
    -EXPECT "test" getfattr -n "user.test" --absolute-names --only-values $B0/$V0-1/dir4
    +TEST ls $B0/$V0-2/dir4
    +EXPECT "777" stat -c "%a" $B0/$V0-2/dir4
    +EXPECT "test" getfattr -n "user.test" --absolute-names --only-values $B0/$V0-2/dir4
    
    
     TEST rm -rf $M0/*
    @@ -97,8 +97,8 @@ ls $M0/
     cd $M0
     TEST mkdir dir{1..4}
    
    -TEST kill_brick $V0 $H0 $B0/$V0-1
    -EXPECT_WITHIN $PROCESS_UP_TIMEOUT "0" brick_up_status $V0 $H0 $B0/$V0-1
    +TEST kill_brick $V0 $H0 $B0/$V0-2
    +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "0" brick_up_status $V0 $H0 $B0/$V0-2
    
     # No change for dir1
     # Change permissions for dir2
    @@ -116,7 +116,7 @@ TEST setfattr -n "user.test" -v "test" $M0/dir4
     # Start all bricks
    
     TEST $CLI volume start $V0 force
    -EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" brick_up_status $V0 $H0 $B0/$V0-1
    +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" brick_up_status $V0 $H0 $B0/$V0-2
    
     #$CLI volume status
    
    @@ -127,16 +127,16 @@ stat $M0/dir* > /dev/null
    
     # Check directories on the brick that was killed
    
    -TEST ls $B0/$V0-1/dir2
    -EXPECT "777" stat -c "%a" $B0/$V0-1/dir2
    +TEST ls $B0/$V0-2/dir2
    +EXPECT "777" stat -c "%a" $B0/$V0-2/dir2
    
    -TEST ls $B0/$V0-1/dir3
    -EXPECT "test" getfattr -n "user.test" --absolute-names --only-values $B0/$V0-1/dir3
    +TEST ls $B0/$V0-2/dir3
    +EXPECT "test" getfattr -n "user.test" --absolute-names --only-values $B0/$V0-2/dir3
    
    
    -TEST ls $B0/$V0-1/dir4
    -EXPECT "777" stat -c "%a" $B0/$V0-1/dir4
    -EXPECT "test" getfattr -n "user.test" --absolute-names --only-values $B0/$V0-1/dir4
    +TEST ls $B0/$V0-2/dir4
    +EXPECT "777" stat -c "%a" $B0/$V0-2/dir4
    +EXPECT "test" getfattr -n "user.test" --absolute-names --only-values $B0/$V0-2/dir4
     cd
    
    
    diff --git a/tests/basic/fops-sanity.c b/tests/basic/fops-sanity.c
    index aff72d8..8245414 100644
    --- a/tests/basic/fops-sanity.c
    +++ b/tests/basic/fops-sanity.c
    @@ -21,6 +21,7 @@
     #include <fcntl.h>
     #include <unistd.h>
     #include <sys/types.h>
    +#include <sys/sysmacros.h>
     #include <sys/stat.h>
     #include <sys/xattr.h>
     #include <errno.h>

    Apply the patch using the command below:

    git apply patch_tests.diff
  • Create a patch file patch_dbench-tests.diff with the following content (Only for RHEL and SLES):

    diff --git a/tests/bugs/rpc/bug-847624.t b/tests/bugs/rpc/bug-847624.t
    index fe8fc9828..cd48a7b5f 100755
    --- a/tests/bugs/rpc/bug-847624.t
    +++ b/tests/bugs/rpc/bug-847624.t
    @@ -20,7 +20,7 @@ EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available;
     TEST mount_nfs $H0:/$V0 $N0 nolock
     cd $N0
     #7
    -TEST dbench -t 10 10
    +TEST dbench -c/usr/local/share/doc/loadfiles/client.txt -Bfileio -t 10 10
     TEST rm -rf $N0/*
     cd
     EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0
  • Create a patch file patch_run-tests.diff with the following contents: (Only for Ubuntu 16.04 and SLES 12 SP4, reference to the issue.)

    diff --git a/run-tests.sh b/run-tests.sh
    index 5683b21..f2e8950 100755
    --- a/run-tests.sh
    +++ b/run-tests.sh
    @@ -128,10 +128,10 @@ function check_dependencies()
         fi
    
         # Check for netstat
    -    env netstat --version > /dev/null 2>&1
    -    if [ $? -ne 0 ]; then
    -        MISSING="$MISSING netstat"
    -    fi
    +    # env netstat --version > /dev/null 2>&1
    +    # if [ $? -ne 0 ]; then
    +    #     MISSING="$MISSING netstat"
    +    # fi
    
         # Check for the Perl Test Harness
         env prove --version > /dev/null 2>&1
    @@ -165,10 +165,10 @@ function check_dependencies()
         fi
    
         # Check for netstat
    -    env netstat --version > /dev/null 2>&1
    -    if [ $? -ne 0 ]; then
    -        MISSING="$MISSING netstat"
    -    fi
    +    # env netstat --version > /dev/null 2>&1
    +    # if [ $? -ne 0 ]; then
    +    #    MISSING="$MISSING netstat"
    +    # fi
    
         # check for psutil python package
         test `uname -s` == "Darwin" || test `uname -s` == "FreeBSD" && {

    Apply the patch using the command below:

    git apply patch_run-tests.diff
  • Run the test cases

    cd $SOURCE_ROOT/glusterfs
    ./run-tests.sh

Note:

  • If any of the tests fail with error volume create: patchy: failed: Host is not in 'Peer in Cluster' state, make changes to file /etc/hosts by copying the host details entry that is present in the beginning to the section IPv6 capable hosts and replace 0.0.0.0 with the IP address of the host. It should be similar to : 0.0.0.0 .xyz.com hostname

  • If you want to use the kernel NFS server or client on a Gluster storage server, make sure to disable the Gluster NFS server:

    gluster volume set <VOLUME> nfs.disable true
  • For geo-replication test case : Password-less SSH login has to be set up. Refer to the Setting Up the Environment for Geo-replication in the documentation.

  • The patch for io-threads.h will allow ./tests/features/weighted-rebalance.t test case to pass.

  • The is_nfs_export_available function from nfs.rc used in some tests may fail intermittently. You may try to enable rpcbind as that may fix some of the test cases. The community is aware this behaviour, refer here for more info.

  • The test failures below are observed on s390x due to the little endian/big endian specific hash values calculations. Refer to issue here for further info.
    ./tests/basic/changelog/changelog-rename.t
    ./tests/basic/namespace.t
    ./tests/bugs/glusterfs/bug-902610.t
    ./tests/bugs/posix/bug-1619720.t
    ./tests/bugs/replicate/bug-1655854-support-dist-to-rep3-arb-conversion.t

  • For ./tests/bitrot/bug-1207627-bitrot-scrub-status.t test case: This test failure is under investigation, refer to this issue for details.

  • For ./tests/features/ssl-ciphers.t test case: The test case is failing for both SLES 15 and Ubuntu 18.04. Changes have been made in master branch here.

  • For ./tests/bugs/glusterfs/bug-866459.t test case: This test is under investigation, refer to this issue for details.

  • For tests under ./tests/00-geo-rep/, the locale of the system must be UTF-8 for the test cases to pass.

  • For ./tests/bugs/glusterfs-server/bug-861542.t test case: If the hostname of the machine is long, the test case will fail. The hostname of the machine can be shortened temporarily to get the test case to pass.

  • For ./tests/bugs/posix/bug-990028.t test case: This test fails if the file system is of type ext4, changing the file system to xfs will fix this test.

  • These are failures that appear on x86_64 and s390x:

    • ./tests/basic/cloudsync-sanity.t
    • ./tests/basic/gfapi/gfapi-copy-file-range.t
    • ./tests/basic/playground/template-xlator-sanity.t
    • ./tests/bugs/cli/bug-1320388.t
    • ./tests/bugs/fuse/bug-985074.t
    • ./tests/bugs/glusterfs-server/bug-887145.t
    • ./tests/bugs/nfs/bug-1116503.t
    • ./tests/bugs/nfs/bug-1157223-symlink-mounting.t
    • ./tests/bugs/nfs/bug-974972.t
    • ./tests/bugs/rpc/bug-954057.t
    • ./tests/features/ssl-authz.t
    • ./tests/bugs/shard/bug-1272986.t
    • ./tests/bugs/shard/unlinks-and-renames.t
    • ./tests/bugs/snapshot/bug-1399598-uss-with-ssl.t
  • Additional information on the GlusterFS test framework can be found here.

Step 5: Run the GlusterFS Daemon (Optional)

glusterd

Step 6: Testing the GlusterFS volume (Optional)

Refer Documentation for instructions.

Reference

https://www.gluster.org/
https://github.com/gluster/glusterfs
http://docs.gluster.org/en/latest/Developer-guide/Building-GlusterFS/

Clone this wiki locally