glusterfs

Форк
0
84 строки · 2.2 Кб
1
#!/bin/bash
2

3
. $(dirname $0)/../../include.rc
4
. $(dirname $0)/../../dht.rc
5

6
cleanup;
7

8
function layout_compare()
9
{
10
        res=0
11

12
        if [ "$1" == "$2" ]
13
        then
14
                res=1
15
        fi
16
        if [ "$1" == "$3" ]
17
        then
18
                res=1
19
        fi
20
        if [ "$2" == "$3" ]
21
        then
22
                res=1
23
        fi
24

25
        echo $res
26
}
27

28
function get_layout()
29
{
30
        layout1=`getfattr -n trusted.glusterfs.dht -e hex $1 2>&1|grep dht |cut -d = -f2`
31
        layout2=`getfattr -n trusted.glusterfs.dht -e hex $2 2>&1|grep dht |cut -d = -f2`
32
        layout3=`getfattr -n trusted.glusterfs.dht -e hex $3 2>&1|grep dht |cut -d = -f2`
33

34
        ret=$(layout_compare $layout1 $layout2 $layout3)
35

36
        if [ $ret -ne 0 ]
37
        then
38
                echo 1
39
        else
40
                echo 0
41
        fi
42

43
}
44

45
BRICK_COUNT=3
46

47
TEST glusterd
48
TEST pidof glusterd
49

50
TEST $CLI volume create $V0 $H0:$B0/${V0}0 $H0:$B0/${V0}1
51
## set subvols-per-dir option
52
TEST $CLI volume set $V0 subvols-per-directory 2
53
TEST $CLI volume start $V0
54

55
## Mount FUSE
56
TEST glusterfs -s $H0 --volfile-id $V0 $M0;
57

58
TEST mkdir $M0/dir{1..10} 2>/dev/null;
59

60
## Add-brick n run rebalance to force re-write of layout
61
TEST $CLI volume add-brick $V0 $H0:$B0/${V0}2
62
sleep 5;
63

64
## trigger dir self heal on client
65
TEST ls -l $M0 2>/dev/null;
66

67
TEST $CLI volume rebalance $V0 start force
68

69
EXPECT_WITHIN $REBALANCE_TIMEOUT "0" rebalance_completed
70

71
## check for layout overlaps.
72
EXPECT "0" get_layout $B0/${V0}0 $B0/${V0}1 $B0/${V0}2
73
EXPECT "0" get_layout $B0/${V0}0/dir1 $B0/${V0}1/dir1 $B0/${V0}2/dir1
74
EXPECT "0" get_layout $B0/${V0}0/dir2 $B0/${V0}1/dir2 $B0/${V0}2/dir2
75
EXPECT "0" get_layout $B0/${V0}0/dir3 $B0/${V0}1/dir3 $B0/${V0}2/dir3
76
EXPECT "0" get_layout $B0/${V0}0/dir4 $B0/${V0}1/dir4 $B0/${V0}2/dir4
77
EXPECT "0" get_layout $B0/${V0}0/dir5 $B0/${V0}1/dir5 $B0/${V0}2/dir5
78
EXPECT "0" get_layout $B0/${V0}0/dir6 $B0/${V0}1/dir6 $B0/${V0}2/dir6
79
EXPECT "0" get_layout $B0/${V0}0/dir7 $B0/${V0}1/dir7 $B0/${V0}2/dir7
80
EXPECT "0" get_layout $B0/${V0}0/dir8 $B0/${V0}1/dir8 $B0/${V0}2/dir8
81
EXPECT "0" get_layout $B0/${V0}0/dir9 $B0/${V0}1/dir9 $B0/${V0}2/dir9
82
EXPECT "0" get_layout $B0/${V0}0/dir10 $B0/${V0}1/dir10 $B0/${V0}2/dir10
83

84
cleanup;
85

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.