5 function expect_false
()
8 if "$@"; then return 1; else return 0; fi
14 ceph osd crush rule dump
15 ceph osd crush rule
ls
16 ceph osd crush rule list
18 ceph osd crush rule create-simple foo default
host
19 ceph osd crush rule create-simple foo default
host
20 ceph osd crush rule create-simple bar default
host
22 # make sure we're at luminous+ before using crush device classes
23 ceph osd require-osd-release luminous
24 ceph osd crush rm-device-class all
25 ceph osd crush set-device-class ssd osd
.0
26 ceph osd crush set-device-class hdd osd
.1
27 ceph osd crush rule create-replicated foo-ssd default
host ssd
28 ceph osd crush rule create-replicated foo-hdd default
host hdd
29 ceph osd crush rule ls-by-class ssd |
grep 'foo-ssd'
30 ceph osd crush rule ls-by-class ssd | expect_false
grep 'foo-hdd'
31 ceph osd crush rule ls-by-class hdd |
grep 'foo-hdd'
32 ceph osd crush rule ls-by-class hdd | expect_false
grep 'foo-ssd'
34 ceph osd erasure-code-profile
set ec-foo-ssd crush-device-class
=ssd m
=2 k
=2
35 ceph osd pool create ec-foo
2 erasure ec-foo-ssd
36 ceph osd pool
rm ec-foo ec-foo
--yes-i-really-really-mean-it
38 ceph osd crush rule
ls |
grep foo
40 ceph osd crush rule rename foo foo-asdf
41 ceph osd crush rule rename bar bar-asdf
42 ceph osd crush rule
ls |
grep 'foo-asdf'
43 ceph osd crush rule
ls |
grep 'bar-asdf'
44 ceph osd crush rule
rm foo
2>&1 |
grep 'does not exist'
45 ceph osd crush rule
rm bar
2>&1 |
grep 'does not exist'
46 ceph osd crush rule rename foo-asdf foo
47 ceph osd crush rule rename bar-asdf bar
48 ceph osd crush rule
ls | expect_false
grep 'foo-asdf'
49 ceph osd crush rule
ls | expect_false
grep 'bar-asdf'
50 ceph osd crush rule
rm foo
51 ceph osd crush rule
rm foo
# idempotent
52 ceph osd crush rule
rm bar
54 # can't delete in-use rules, tho:
55 ceph osd pool create pinning_pool
1
56 expect_false ceph osd crush rule
rm replicated_rule
57 ceph osd pool
rm pinning_pool pinning_pool
--yes-i-really-really-mean-it
60 expect_false ceph osd crush add-bucket foo osd
61 ceph osd crush add-bucket foo root
64 ceph osd crush add
$o1 1 host=host1 root
=foo
65 ceph osd crush add
$o1 1 host=host1 root
=foo
# idemptoent
66 ceph osd crush add
$o2 1 host=host2 root
=foo
67 ceph osd crush add
$o2 1 host=host2 root
=foo
# idempotent
68 ceph osd crush add-bucket bar root
69 ceph osd crush add-bucket bar root
# idempotent
70 ceph osd crush link host1 root
=bar
71 ceph osd crush link host1 root
=bar
# idempotent
72 ceph osd crush link host2 root
=bar
73 ceph osd crush link host2 root
=bar
# idempotent
75 ceph osd tree |
grep -c osd.
$o1 |
grep -q 2
76 ceph osd tree |
grep -c host1 |
grep -q 2
77 ceph osd tree |
grep -c osd.
$o2 |
grep -q 2
78 ceph osd tree |
grep -c host2 |
grep -q 2
79 expect_false ceph osd crush
rm host1 foo
# not empty
80 ceph osd crush unlink host1 foo
81 ceph osd crush unlink host1 foo
82 ceph osd tree |
grep -c host1 |
grep -q 1
84 expect_false ceph osd crush
rm foo
# not empty
85 expect_false ceph osd crush
rm bar
# not empty
86 ceph osd crush unlink host1 bar
87 ceph osd tree |
grep -c host1 |
grep -q 1 # now an orphan
88 ceph osd crush
rm osd.
$o1 host1
89 ceph osd crush
rm host1
90 ceph osd tree |
grep -c host1 |
grep -q 0
92 expect_false ceph osd crush
rm bar
# not empty
93 ceph osd crush unlink host2
95 # reference foo and bar with a rule
96 ceph osd crush rule create-simple foo-rule foo
host firstn
97 expect_false ceph osd crush
rm foo
98 ceph osd crush rule
rm foo-rule
100 ceph osd crush
rm bar
101 ceph osd crush
rm foo
102 ceph osd crush
rm osd.
$o2 host2
103 ceph osd crush
rm host2
105 ceph osd crush add-bucket foo
host
106 ceph osd crush move foo root
=default rack
=localrack
108 ceph osd crush create-or-move osd.
$o1 1.0 root
=default
109 ceph osd crush move osd.
$o1 host=foo
110 ceph osd
find osd.
$o1 |
grep host |
grep foo
112 ceph osd crush
rm osd.
$o1
113 ceph osd crush
rm osd.
$o2
115 ceph osd crush
rm foo
119 ceph osd crush add
$o3 123 root
=default
120 ceph osd tree |
grep osd.
$o3 |
grep 123
121 ceph osd crush reweight osd.
$o3 113
122 expect_false ceph osd crush reweight osd.
$o3 123456
123 ceph osd tree |
grep osd.
$o3 |
grep 113
124 ceph osd crush
rm osd.
$o3
127 # test reweight-subtree
130 ceph osd crush add
$o4 123 root
=default
host=foobaz
131 ceph osd crush add
$o5 123 root
=default
host=foobaz
132 ceph osd tree |
grep osd.
$o4 |
grep 123
133 ceph osd tree |
grep osd.
$o5 |
grep 123
134 ceph osd crush reweight-subtree foobaz
155
135 expect_false ceph osd crush reweight-subtree foobaz
123456
136 ceph osd tree |
grep osd.
$o4 |
grep 155
137 ceph osd tree |
grep osd.
$o5 |
grep 155
138 ceph osd crush
rm osd.
$o4
139 ceph osd crush
rm osd.
$o5
144 # make sure we require luminous before testing weight-sets
145 ceph osd set-require-min-compat-client luminous
146 ceph osd crush weight-set dump
147 ceph osd crush weight-set
ls
148 expect_false ceph osd crush weight-set reweight fooset osd
.0 .9
149 ceph osd pool create fooset
8
150 ceph osd pool create barset
8
151 ceph osd pool
set barset size
3
152 expect_false ceph osd crush weight-set reweight fooset osd
.0 .9
153 ceph osd crush weight-set create fooset flat
154 ceph osd crush weight-set create barset positional
155 ceph osd crush weight-set
ls |
grep fooset
156 ceph osd crush weight-set
ls |
grep barset
157 ceph osd crush weight-set dump
158 ceph osd crush weight-set reweight fooset osd
.0 .9
159 expect_false ceph osd crush weight-set reweight fooset osd
.0 .9 .9
160 expect_false ceph osd crush weight-set reweight barset osd
.0 .9
161 ceph osd crush weight-set reweight barset osd
.0 .9 .9 .9
162 ceph osd crush weight-set
ls |
grep -c fooset |
grep -q 1
163 ceph osd crush weight-set
rm fooset
164 ceph osd crush weight-set
ls |
grep -c fooset |
grep -q 0
165 ceph osd crush weight-set
ls |
grep barset
166 ceph osd crush weight-set
rm barset
167 ceph osd crush weight-set
ls |
grep -c barset |
grep -q 0
168 ceph osd crush weight-set create-compat
169 ceph osd crush weight-set
ls |
grep '(compat)'
170 ceph osd crush weight-set rm-compat
172 # weight set vs device classes
173 ceph osd pool create cool
2
174 ceph osd pool create cold
2
175 ceph osd pool
set cold size
2
176 ceph osd crush weight-set create-compat
177 ceph osd crush weight-set create cool flat
178 ceph osd crush weight-set create cold positional
179 ceph osd crush rm-device-class osd
.0
180 ceph osd crush weight-set reweight-compat osd
.0 10.5
181 ceph osd crush weight-set reweight cool osd
.0 11.5
182 ceph osd crush weight-set reweight cold osd
.0 12.5 12.4
183 ceph osd crush set-device-class fish osd
.0
184 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep fish |
grep 10\\.
185 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep fish |
grep 11\\.
186 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep fish |
grep 12\\.
187 ceph osd crush rm-device-class osd
.0
188 ceph osd crush set-device-class globster osd
.0
189 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep globster |
grep 10\\.
190 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep globster |
grep 11\\.
191 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep globster |
grep 12\\.
192 ceph osd crush weight-set reweight-compat osd
.0 7.5
193 ceph osd crush weight-set reweight cool osd
.0 8.5
194 ceph osd crush weight-set reweight cold osd
.0 6.5 6.6
195 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep globster |
grep 7\\.
196 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep globster |
grep 8\\.
197 ceph osd crush tree
--show-shadow |
grep osd
\\.0 |
grep globster |
grep 6\\.
198 ceph osd crush rm-device-class osd
.0
199 ceph osd pool
rm cool cool
--yes-i-really-really-mean-it
200 ceph osd pool
rm cold cold
--yes-i-really-really-mean-it
201 ceph osd crush weight-set rm-compat