glusterfs
84 строки · 2.2 Кб
1#!/bin/bash
2
3. $(dirname $0)/../../include.rc4. $(dirname $0)/../../dht.rc5
6cleanup;7
8function layout_compare()9{
10res=011
12if [ "$1" == "$2" ]13then14res=115fi16if [ "$1" == "$3" ]17then18res=119fi20if [ "$2" == "$3" ]21then22res=123fi24
25echo $res26}
27
28function get_layout()29{
30layout1=`getfattr -n trusted.glusterfs.dht -e hex $1 2>&1|grep dht |cut -d = -f2`31layout2=`getfattr -n trusted.glusterfs.dht -e hex $2 2>&1|grep dht |cut -d = -f2`32layout3=`getfattr -n trusted.glusterfs.dht -e hex $3 2>&1|grep dht |cut -d = -f2`33
34ret=$(layout_compare $layout1 $layout2 $layout3)35
36if [ $ret -ne 0 ]37then38echo 139else40echo 041fi42
43}
44
45BRICK_COUNT=346
47TEST glusterd
48TEST pidof glusterd
49
50TEST $CLI volume create $V0 $H0:$B0/${V0}0 $H0:$B0/${V0}151## set subvols-per-dir option
52TEST $CLI volume set $V0 subvols-per-directory 253TEST $CLI volume start $V054
55## Mount FUSE
56TEST glusterfs -s $H0 --volfile-id $V0 $M0;57
58TEST mkdir $M0/dir{1..10} 2>/dev/null;59
60## Add-brick n run rebalance to force re-write of layout
61TEST $CLI volume add-brick $V0 $H0:$B0/${V0}262sleep 5;63
64## trigger dir self heal on client
65TEST ls -l $M0 2>/dev/null;66
67TEST $CLI volume rebalance $V0 start force68
69EXPECT_WITHIN $REBALANCE_TIMEOUT "0" rebalance_completed70
71## check for layout overlaps.
72EXPECT "0" get_layout $B0/${V0}0 $B0/${V0}1 $B0/${V0}273EXPECT "0" get_layout $B0/${V0}0/dir1 $B0/${V0}1/dir1 $B0/${V0}2/dir174EXPECT "0" get_layout $B0/${V0}0/dir2 $B0/${V0}1/dir2 $B0/${V0}2/dir275EXPECT "0" get_layout $B0/${V0}0/dir3 $B0/${V0}1/dir3 $B0/${V0}2/dir376EXPECT "0" get_layout $B0/${V0}0/dir4 $B0/${V0}1/dir4 $B0/${V0}2/dir477EXPECT "0" get_layout $B0/${V0}0/dir5 $B0/${V0}1/dir5 $B0/${V0}2/dir578EXPECT "0" get_layout $B0/${V0}0/dir6 $B0/${V0}1/dir6 $B0/${V0}2/dir679EXPECT "0" get_layout $B0/${V0}0/dir7 $B0/${V0}1/dir7 $B0/${V0}2/dir780EXPECT "0" get_layout $B0/${V0}0/dir8 $B0/${V0}1/dir8 $B0/${V0}2/dir881EXPECT "0" get_layout $B0/${V0}0/dir9 $B0/${V0}1/dir9 $B0/${V0}2/dir982EXPECT "0" get_layout $B0/${V0}0/dir10 $B0/${V0}1/dir10 $B0/${V0}2/dir1083
84cleanup;85