glusterfs

Форк
0
/
namespace.t 
131 строка · 4.2 Кб
1
#!/bin/bash
2

3
. $(dirname $0)/../include.rc
4
. $(dirname $0)/../volume.rc
5
. $(dirname $0)/../nfs.rc
6

7
#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST
8

9
# These hashes are a result of calling SuperFastHash
10
# on the corresponding folder names.
11
NAMESPACE_HASH=28153613
12
NAMESPACE2_HASH=3926991974
13
NAMESPACE3_HASH=3493960770
14

15
function check_brick_multiplex() {
16
        local ret=$($CLI volume info|grep "cluster.brick-multiplex"|cut -d" " -f2)
17
        local cnt="$(ls /var/log/glusterfs/bricks|wc -l)"
18
        local bcnt="$(brick_count)"
19

20
        if [ $bcnt -ne 1 ]; then
21
           if [ -z $ret ]; then
22
              ret="no"
23
           fi
24

25
           if [ $ret = "on" ] || [ $cnt -eq 1 ]; then
26
              echo "Y"
27
           else
28
              echo "N"
29
           fi
30
        else
31
           echo "N"
32
        fi
33
}
34

35
function check_samples() {
36
        local FOP_TYPE=$1
37
        local NS_HASH=$2
38
        local FILE=$3
39
        local BRICK=$4
40
        local GFID="$(getfattr -n trusted.gfid -e text --only-values $B0/$BRICK$FILE | xxd -p)"
41
        local val="$(check_brick_multiplex)"
42

43
        if [ $val = "Y" ]; then
44
           BRICK="${V0}0"
45
        fi
46

47
        grep -i "ns_$OP" /var/log/glusterfs/bricks/d-backends-$BRICK.log |
48
             grep -- $NS_HASH | sed 's/\-//g' | grep -- $GFID
49
        if [ $? -eq 0 ]; then
50
          echo "Y"
51
         else
52
          echo "N"
53
        fi
54
}
55

56
cleanup;
57

58
TEST mkdir -p $B0/${V0}{0,1,2,3,4,5,6,7,8,9}
59

60
TEST glusterd
61
TEST pidof glusterd
62
TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{0,1,2,3,4,5,6,7,8}
63
TEST $CLI volume set $V0 nfs.disable off
64
TEST $CLI volume set $V0 performance.stat-prefetch off
65
TEST $CLI volume set $V0 performance.nfs.stat-prefetch off
66
TEST $CLI volume set $V0 cluster.read-subvolume-index 0
67
TEST $CLI volume set $V0 diagnostics.brick-log-level DEBUG
68
TEST $CLI volume set $V0 features.tag-namespaces on
69
TEST $CLI volume set $V0 storage.build-pgfid on
70
TEST $CLI volume start $V0
71

72
sleep 2
73

74
TEST mount_nfs $H0:/$V0 $N0 nolock;
75

76
################################
77
# Paths in the samples #
78
################################
79

80
mkdir -p $N0/namespace
81

82
# subvol_1 = bar, subvol_2 = foo, subvol_3 = hey
83
# Test create, write (tagged by loc, fd respectively).
84
touch $N0/namespace/{bar,foo,hey}
85
echo "garbage" > $N0/namespace/bar
86
echo "garbage" > $N0/namespace/foo
87
echo "garbage" > $N0/namespace/hey
88
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE_HASH /namespace/bar patchy0
89
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE_HASH /namespace/foo patchy3
90
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE_HASH /namespace/hey patchy6
91
EXPECT_WITHIN 10 "Y" check_samples WRITEV $NAMESPACE_HASH /namespace/bar patchy0
92
EXPECT_WITHIN 10 "Y" check_samples WRITEV $NAMESPACE_HASH /namespace/foo patchy3
93
EXPECT_WITHIN 10 "Y" check_samples WRITEV $NAMESPACE_HASH /namespace/hey patchy6
94

95
# Test stat (tagged by loc)
96
stat $N0/namespace/bar &> /dev/null
97
stat $N0/namespace/foo &> /dev/null
98
stat $N0/namespace/hey &> /dev/null
99
EXPECT_WITHIN 10 "Y" check_samples STAT $NAMESPACE_HASH /namespace/bar patchy0
100
EXPECT_WITHIN 10 "Y" check_samples STAT $NAMESPACE_HASH /namespace/foo patchy3
101
EXPECT_WITHIN 10 "Y" check_samples STAT $NAMESPACE_HASH /namespace/hey patchy6
102

103
EXPECT_WITHIN 10 "Y" umount_nfs $N0;
104
sleep 1
105
TEST mount_nfs $H0:/$V0 $N0 nolock;
106

107
cat $N0/namespace/bar &> /dev/null
108
EXPECT_WITHIN 10 "Y" check_samples READ $NAMESPACE_HASH /namespace/bar patchy0
109

110
dir $N0/namespace &> /dev/null
111
EXPECT_WITHIN 10 "Y" check_samples LOOKUP $NAMESPACE_HASH /namespace patchy0
112

113
mkdir -p $N0/namespace{2,3}
114
EXPECT_WITHIN 10 "Y" check_samples MKDIR $NAMESPACE2_HASH /namespace2 patchy0
115
EXPECT_WITHIN 10 "Y" check_samples MKDIR $NAMESPACE3_HASH /namespace3 patchy0
116

117
touch $N0/namespace2/file
118
touch $N0/namespace3/file
119
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE2_HASH /namespace2/file patchy0
120
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE3_HASH /namespace3/file patchy0
121

122
truncate -s 0 $N0/namespace/bar
123
EXPECT_WITHIN 10 "Y" check_samples TRUNCATE $NAMESPACE_HASH /namespace/bar patchy0
124

125
ln -s $N0/namespace/foo $N0/namespace/foo_link
126
EXPECT_WITHIN 10 "Y" check_samples SYMLINK $NAMESPACE_HASH /namespace/foo patchy3
127

128
open $N0/namespace/hey
129
EXPECT_WITHIN 10 "Y" check_samples OPEN $NAMESPACE_HASH /namespace/hey patchy6
130

131
cleanup;
132

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

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

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

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