glusterfs

Форк
0
/
br-state-check.t 
96 строк · 2.9 Кб
1
#!/bin/bash
2

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

7
cleanup;
8

9
function gluster_client_list_bitd_status () {
10
	gluster volume status $V0 client-list | sed -n '/bitd/'p | wc -l
11
}
12

13
function gluster_client_list_scrub_status () {
14
	gluster volume status $V0 client-list | sed -n '/scrub/'p | wc -l
15
}
16

17
SCRIPT_TIMEOUT=350
18

19
TEST glusterd
20
TEST pidof glusterd
21

22
## Create a distribute volume
23
TEST $CLI volume create $V0 $H0:$B0/${V0}1 $H0:$B0/${V0}2 $H0:$B0/${V0}3;
24
TEST $CLI volume start $V0;
25

26
## Enable bitrot on volume $V0
27
TEST $CLI volume bitrot $V0 enable
28

29
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" get_bitd_count
30
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" get_scrubd_count
31

32
## Check status client-list to verify that bitd and scrubd figure in it
33
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" gluster_client_list_bitd_status
34
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" gluster_client_list_scrub_status
35

36
## perform a series of scrub related state change tests. As of now, there'
37
## no way to check if a given change has been correctly acknowledged by
38
## the scrub process as there isn't an _interface_ to check scrub internal
39
## state (yet). What's been verified here is scrub state machine execution
40
## w.r.t. locking and faults.
41

42
## 0x0: verify scrub rescheduling
43
TEST $CLI volume bitrot $V0 scrub-frequency monthly
44
TEST $CLI volume bitrot $V0 scrub-frequency daily
45
TEST $CLI volume bitrot $V0 scrub-frequency hourly
46

47
## 0x1: test reschedule after pause/resume
48
TEST $CLI volume bitrot $V0 scrub pause
49
TEST $CLI volume bitrot $V0 scrub-frequency daily
50
TEST $CLI volume bitrot $V0 scrub resume
51

52
## 0x2: test reschedule w/ an offline brick
53
TEST kill_brick $V0 $H0 $B0/${V0}1
54

55
TEST $CLI volume bitrot $V0 scrub-frequency hourly
56
TEST $CLI volume bitrot $V0 scrub-throttle aggressive
57

58
## 0x3: test pause/resume w/ an offline brick
59
TEST $CLI volume bitrot $V0 scrub pause
60
TEST $CLI volume bitrot $V0 scrub-frequency monthly
61
TEST $CLI volume bitrot $V0 scrub resume
62

63
## 0x4: test "start" from a paused scrub state
64

65
TEST $CLI volume bitrot $V0 scrub pause
66
TEST $CLI volume start $V0 force
67

68
## 0x4a: try pausing an already paused scrub
69
TEST ! $CLI volume bitrot $V0 scrub pause
70

71
## 0x4b: perform configuration changes
72
TEST $CLI volume bitrot $V0 scrub-frequency hourly
73
TEST $CLI volume bitrot $V0 scrub-throttle lazy
74
TEST $CLI volume bitrot $V0 scrub resume
75

76
## 0x5: test cleanup upon brick going offline
77
TEST kill_brick $V0 $H0 $B0/${V0}1
78
TEST kill_brick $V0 $H0 $B0/${V0}2
79
TEST kill_brick $V0 $H0 $B0/${V0}3
80

81
## 0x6: test cleanup upon brick going offline when srubber is paused
82
##      (initially paused and otherwise)
83

84
## 0x6a: initially paused case
85
TEST $CLI volume bitrot $V0 scrub pause
86
TEST $CLI volume start $V0 force
87
TEST kill_brick $V0 $H0 $B0/${V0}3
88
TEST $CLI volume bitrot $V0 scrub resume
89

90
## 0x6b: paused _after_ execution
91
TEST $CLI volume start $V0 force
92
TEST $CLI volume bitrot $V0 scrub pause
93
TEST kill_brick $V0 $H0 $B0/${V0}2
94

95
cleanup;
96
#G_TESTDEF_TEST_STATUS_NETBSD7=KNOWN_ISSUE,BUG=1332473
97

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

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

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

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