glusterfs

Форк
0
/
volume-snapshot.t 
172 строки · 4.3 Кб
1
#!/bin/bash
2

3
. $(dirname $0)/../include.rc
4
. $(dirname $0)/../volume.rc
5
. $(dirname $0)/../cluster.rc
6
. $(dirname $0)/../snapshot.rc
7

8

9
V1="patchy2"
10

11
function create_volumes() {
12
        $CLI_1 volume create $V0 $H1:$L1 &
13
        PID_1=$!
14

15
        $CLI_2 volume create $V1 $H2:$L2 $H3:$L3 &
16
        PID_2=$!
17

18
        wait $PID_1 $PID_2
19
}
20

21
function create_snapshots() {
22
        $CLI_1 snapshot create ${V0}_snap ${V0} no-timestamp &
23
        PID_1=$!
24

25
        $CLI_1 snapshot create ${V1}_snap ${V1} no-timestamp &
26
        PID_2=$!
27

28
        wait $PID_1 $PID_2
29
}
30

31
function create_snapshots_with_timestamp() {
32
        $CLI_1 snapshot create ${V0}_snap1 ${V0}&
33
        PID_1=$!
34
        $CLI_1 snapshot create ${V1}_snap1 ${V1}&
35
        PID_2=$!
36

37
        wait $PID_1 $PID_2
38
}
39

40

41
function activate_snapshots() {
42
        $CLI_1 snapshot activate ${V0}_snap &
43
        PID_1=$!
44

45
        $CLI_1 snapshot activate ${V1}_snap &
46
        PID_2=$!
47

48
        wait $PID_1 $PID_2
49
}
50

51
function deactivate_snapshots() {
52
        $CLI_1 snapshot deactivate ${V0}_snap &
53
        PID_1=$!
54

55
        $CLI_1 snapshot deactivate ${V1}_snap &
56
        PID_2=$!
57

58
        wait $PID_1 $PID_2
59
}
60

61
function delete_snapshots() {
62
        $CLI_1 snapshot delete $1 &
63
        PID_1=$!
64

65
        $CLI_1 snapshot delete $2 &
66
        PID_2=$!
67

68
        wait $PID_1 $PID_2
69
}
70

71
function restore_snapshots() {
72
        $CLI_1 snapshot restore ${V0}_snap &
73
        PID_1=$!
74

75
        $CLI_1 snapshot restore ${V1}_snap &
76
        PID_2=$!
77

78
        wait $PID_1 $PID_2
79
}
80
cleanup;
81

82
TEST verify_lvm_version;
83
#Create cluster with 3 nodes
84
TEST launch_cluster 3;
85
TEST setup_lvm 3
86

87
TEST $CLI_1 peer probe $H2;
88
TEST $CLI_1 peer probe $H3;
89
EXPECT_WITHIN $PROBE_TIMEOUT 2 peer_count;
90

91
create_volumes
92
EXPECT 'Created' volinfo_field_1 $V0 'Status';
93
EXPECT 'Created' volinfo_field_1 $V1 'Status';
94

95
start_volumes 2
96
EXPECT 'Started' volinfo_field_1 $V0 'Status';
97
EXPECT 'Started' volinfo_field_1 $V1 'Status';
98

99
TEST $CLI_1 snapshot config activate-on-create enable
100

101
#Snapshot Operations
102
create_snapshots
103

104
EXPECT 'Started' snapshot_status ${V0}_snap;
105
EXPECT 'Started' snapshot_status ${V1}_snap;
106

107
EXPECT '1' volinfo_field_1 $V0 'Snapshot Count';
108
EXPECT '1' volinfo_field_1 $V1 'Snapshot Count';
109
EXPECT "1" get-cmd-field-xml "volume info $V0" "snapshotCount"
110
EXPECT "1" get-cmd-field-xml "volume info $V1" "snapshotCount"
111

112
deactivate_snapshots
113

114
EXPECT 'Stopped' snapshot_status ${V0}_snap;
115
EXPECT 'Stopped' snapshot_status ${V1}_snap;
116

117
activate_snapshots
118

119
EXPECT 'Started' snapshot_status ${V0}_snap;
120
EXPECT 'Started' snapshot_status ${V1}_snap;
121

122
deactivate_snapshots
123
activate_snapshots
124

125
TEST snapshot_exists 1 ${V0}_snap
126
TEST snapshot_exists 1 ${V1}_snap
127
TEST $CLI_1 snapshot config $V0 snap-max-hard-limit 100
128
TEST $CLI_1 snapshot config $V1 snap-max-hard-limit 100
129

130
TEST glusterfs -s $H1 --volfile-id=/snaps/${V0}_snap/${V0} $M0
131
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
132
TEST glusterfs -s $H2 --volfile-id=/snaps/${V1}_snap/${V1} $M0
133
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
134

135
#create timestamp appended snaps
136
create_snapshots_with_timestamp;
137
new_name1=`$CLI_1 snapshot list ${V0} | grep ${V0}_snap1`;
138
new_name2=`$CLI_1 snapshot list ${V1} | grep ${V1}_snap1`;
139

140
EXPECT '2' volinfo_field_1 $V0 'Snapshot Count';
141
EXPECT '2' volinfo_field_1 $V1 'Snapshot Count';
142
EXPECT "2" get-cmd-field-xml "volume info $V0" "snapshotCount"
143
EXPECT "2" get-cmd-field-xml "volume info $V1" "snapshotCount"
144

145
EXPECT_NOT "{V0}_snap1" echo $new_name1;
146
EXPECT_NOT "{V1}_snap1" echo $new_name1;
147
delete_snapshots $new_name1 $new_name2;
148

149
EXPECT '1' volinfo_field_1 $V0 'Snapshot Count';
150
EXPECT '1' volinfo_field_1 $V1 'Snapshot Count';
151
EXPECT "1" get-cmd-field-xml "volume info $V0" "snapshotCount"
152
EXPECT "1" get-cmd-field-xml "volume info $V1" "snapshotCount"
153

154
#Clean up
155
stop_force_volumes 2
156
EXPECT 'Stopped' volinfo_field_1 $V0 'Status';
157
EXPECT 'Stopped' volinfo_field_1 $V1 'Status';
158

159
restore_snapshots
160
TEST ! snapshot_exists 1 ${V0}_snap
161
TEST ! snapshot_exists 1 ${V1}_snap
162

163
EXPECT '0' volinfo_field_1 $V0 'Snapshot Count';
164
EXPECT '0' volinfo_field_1 $V1 'Snapshot Count';
165
EXPECT "0" get-cmd-field-xml "volume info $V0" "snapshotCount"
166
EXPECT "0" get-cmd-field-xml "volume info $V1" "snapshotCount"
167

168
delete_volumes 2
169
EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "N" volume_exists_1 $V0
170
EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "N" volume_exists_1 $V1
171

172
cleanup;
173

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

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

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

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