]> git.proxmox.com Git - ceph.git/blame - ceph/qa/rbd/krbd_blkroset.t
Import ceph 15.2.8
[ceph.git] / ceph / qa / rbd / krbd_blkroset.t
CommitLineData
11fdf7f2
TL
1
2Setup
3=====
4
92f5a8d4 5 $ RO_KEY=$(ceph auth get-or-create-key client.ro mon 'profile rbd' mgr 'profile rbd' osd 'profile rbd-read-only')
11fdf7f2
TL
6 $ rbd create --size 10 img
7 $ rbd snap create img@snap
92f5a8d4
TL
8 $ rbd snap protect img@snap
9 $ rbd clone img@snap cloneimg
11fdf7f2
TL
10 $ rbd create --size 1 imgpart
11 $ DEV=$(sudo rbd map imgpart)
12 $ cat <<EOF | sudo sfdisk $DEV >/dev/null 2>&1
13 > unit: sectors
14 > /dev/rbd0p1 : start= 512, size= 512, Id=83
15 > /dev/rbd0p2 : start= 1024, size= 512, Id=83
16 > EOF
17 $ sudo rbd unmap $DEV
18 $ rbd snap create imgpart@snap
19
20
21Image HEAD
22==========
23
24R/W, unpartitioned:
25
26 $ DEV=$(sudo rbd map img)
27 $ blockdev --getro $DEV
28 0
29 $ dd if=/dev/urandom of=$DEV bs=1k seek=1 count=1 status=none
30 $ blkdiscard $DEV
31 $ blockdev --setro $DEV
32 .*BLKROSET: Permission denied (re)
33 [1]
34 $ sudo blockdev --setro $DEV
35 $ blockdev --getro $DEV
36 1
37 $ dd if=/dev/urandom of=$DEV bs=1k seek=1 count=1 status=none
38 dd: error writing '/dev/rbd?': Operation not permitted (glob)
39 [1]
40 $ blkdiscard $DEV
41 blkdiscard: /dev/rbd?: BLKDISCARD ioctl failed: Operation not permitted (glob)
42 [1]
43 $ blockdev --setrw $DEV
44 .*BLKROSET: Permission denied (re)
45 [1]
46 $ sudo blockdev --setrw $DEV
47 $ blockdev --getro $DEV
48 0
49 $ dd if=/dev/urandom of=$DEV bs=1k seek=1 count=1 status=none
50 $ blkdiscard $DEV
51 $ sudo rbd unmap $DEV
52
53R/W, partitioned:
54
55 $ DEV=$(sudo rbd map imgpart)
56 $ udevadm settle
57 $ blockdev --getro ${DEV}p1
58 0
59 $ blockdev --getro ${DEV}p2
60 0
61 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
62 $ blkdiscard ${DEV}p1
63 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
64 $ blkdiscard ${DEV}p2
65 $ blockdev --setro ${DEV}p1
66 .*BLKROSET: Permission denied (re)
67 [1]
68 $ sudo blockdev --setro ${DEV}p1
69 $ blockdev --getro ${DEV}p1
70 1
71 $ blockdev --getro ${DEV}p2
72 0
73 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
74 dd: error writing '/dev/rbd?p1': Operation not permitted (glob)
75 [1]
76 $ blkdiscard ${DEV}p1
77 blkdiscard: /dev/rbd?p1: BLKDISCARD ioctl failed: Operation not permitted (glob)
78 [1]
79 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
80 $ blkdiscard ${DEV}p2
81 $ blockdev --setrw ${DEV}p1
82 .*BLKROSET: Permission denied (re)
83 [1]
84 $ sudo blockdev --setrw ${DEV}p1
85 $ blockdev --getro ${DEV}p1
86 0
87 $ blockdev --getro ${DEV}p2
88 0
89 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
90 $ blkdiscard ${DEV}p1
91 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
92 $ blkdiscard ${DEV}p2
93 $ sudo rbd unmap $DEV
94
95 $ DEV=$(sudo rbd map imgpart)
96 $ udevadm settle
97 $ blockdev --getro ${DEV}p1
98 0
99 $ blockdev --getro ${DEV}p2
100 0
101 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
102 $ blkdiscard ${DEV}p1
103 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
104 $ blkdiscard ${DEV}p2
105 $ blockdev --setro ${DEV}p2
106 .*BLKROSET: Permission denied (re)
107 [1]
108 $ sudo blockdev --setro ${DEV}p2
109 $ blockdev --getro ${DEV}p1
110 0
111 $ blockdev --getro ${DEV}p2
112 1
113 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
114 $ blkdiscard ${DEV}p1
115 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
116 dd: error writing '/dev/rbd?p2': Operation not permitted (glob)
117 [1]
118 $ blkdiscard ${DEV}p2
119 blkdiscard: /dev/rbd?p2: BLKDISCARD ioctl failed: Operation not permitted (glob)
120 [1]
121 $ blockdev --setrw ${DEV}p2
122 .*BLKROSET: Permission denied (re)
123 [1]
124 $ sudo blockdev --setrw ${DEV}p2
125 $ blockdev --getro ${DEV}p1
126 0
127 $ blockdev --getro ${DEV}p2
128 0
129 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
130 $ blkdiscard ${DEV}p1
131 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
132 $ blkdiscard ${DEV}p2
133 $ sudo rbd unmap $DEV
134
135R/O, unpartitioned:
136
137 $ DEV=$(sudo rbd map --read-only img)
138 $ blockdev --getro $DEV
139 1
140 $ dd if=/dev/urandom of=$DEV bs=1k seek=1 count=1 status=none
141 dd: error writing '/dev/rbd?': Operation not permitted (glob)
142 [1]
143 $ blkdiscard $DEV
144 blkdiscard: /dev/rbd?: BLKDISCARD ioctl failed: Operation not permitted (glob)
145 [1]
146 $ blockdev --setrw $DEV
147 .*BLKROSET: Permission denied (re)
148 [1]
149 $ sudo blockdev --setrw $DEV
92f5a8d4
TL
150 .*BLKROSET: Read-only file system (re)
151 [1]
11fdf7f2 152 $ blockdev --getro $DEV
92f5a8d4 153 1
11fdf7f2 154 $ dd if=/dev/urandom of=$DEV bs=1k seek=1 count=1 status=none
92f5a8d4
TL
155 dd: error writing '/dev/rbd?': Operation not permitted (glob)
156 [1]
11fdf7f2 157 $ blkdiscard $DEV
92f5a8d4
TL
158 blkdiscard: /dev/rbd?: BLKDISCARD ioctl failed: Operation not permitted (glob)
159 [1]
11fdf7f2
TL
160 $ sudo rbd unmap $DEV
161
162R/O, partitioned:
163
164 $ DEV=$(sudo rbd map --read-only imgpart)
165 $ udevadm settle
166 $ blockdev --getro ${DEV}p1
167 1
168 $ blockdev --getro ${DEV}p2
169 1
170 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
171 dd: error writing '/dev/rbd?p1': Operation not permitted (glob)
172 [1]
173 $ blkdiscard ${DEV}p1
174 blkdiscard: /dev/rbd?p1: BLKDISCARD ioctl failed: Operation not permitted (glob)
175 [1]
176 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
177 dd: error writing '/dev/rbd?p2': Operation not permitted (glob)
178 [1]
179 $ blkdiscard ${DEV}p2
180 blkdiscard: /dev/rbd?p2: BLKDISCARD ioctl failed: Operation not permitted (glob)
181 [1]
182 $ blockdev --setrw ${DEV}p1
183 .*BLKROSET: Permission denied (re)
184 [1]
185 $ sudo blockdev --setrw ${DEV}p1
92f5a8d4
TL
186 .*BLKROSET: Read-only file system (re)
187 [1]
11fdf7f2
TL
188 $ blockdev --setrw ${DEV}p2
189 .*BLKROSET: Permission denied (re)
190 [1]
191 $ sudo blockdev --setrw ${DEV}p2
92f5a8d4
TL
192 .*BLKROSET: Read-only file system (re)
193 [1]
11fdf7f2 194 $ blockdev --getro ${DEV}p1
92f5a8d4 195 1
11fdf7f2 196 $ blockdev --getro ${DEV}p2
92f5a8d4 197 1
11fdf7f2 198 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
92f5a8d4
TL
199 dd: error writing '/dev/rbd?p1': Operation not permitted (glob)
200 [1]
11fdf7f2 201 $ blkdiscard ${DEV}p1
92f5a8d4
TL
202 blkdiscard: /dev/rbd?p1: BLKDISCARD ioctl failed: Operation not permitted (glob)
203 [1]
11fdf7f2 204 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
92f5a8d4
TL
205 dd: error writing '/dev/rbd?p2': Operation not permitted (glob)
206 [1]
11fdf7f2 207 $ blkdiscard ${DEV}p2
92f5a8d4
TL
208 blkdiscard: /dev/rbd?p2: BLKDISCARD ioctl failed: Operation not permitted (glob)
209 [1]
11fdf7f2
TL
210 $ sudo rbd unmap $DEV
211
212
213Image snapshot
214==============
215
216Unpartitioned:
217
218 $ DEV=$(sudo rbd map img@snap)
219 $ blockdev --getro $DEV
220 1
221 $ dd if=/dev/urandom of=$DEV bs=1k seek=1 count=1 status=none
222 dd: error writing '/dev/rbd?': Operation not permitted (glob)
223 [1]
224 $ blkdiscard $DEV
225 blkdiscard: /dev/rbd?: BLKDISCARD ioctl failed: Operation not permitted (glob)
226 [1]
227 $ blockdev --setrw $DEV
228 .*BLKROSET: Permission denied (re)
229 [1]
230 $ sudo blockdev --setrw $DEV
231 .*BLKROSET: Read-only file system (re)
232 [1]
233 $ blockdev --getro $DEV
234 1
235 $ dd if=/dev/urandom of=$DEV bs=1k seek=1 count=1 status=none
236 dd: error writing '/dev/rbd?': Operation not permitted (glob)
237 [1]
238 $ blkdiscard $DEV
239 blkdiscard: /dev/rbd?: BLKDISCARD ioctl failed: Operation not permitted (glob)
240 [1]
241 $ sudo rbd unmap $DEV
242
243Partitioned:
244
245 $ DEV=$(sudo rbd map imgpart@snap)
246 $ udevadm settle
247 $ blockdev --getro ${DEV}p1
248 1
249 $ blockdev --getro ${DEV}p2
250 1
251 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
252 dd: error writing '/dev/rbd?p1': Operation not permitted (glob)
253 [1]
254 $ blkdiscard ${DEV}p1
255 blkdiscard: /dev/rbd?p1: BLKDISCARD ioctl failed: Operation not permitted (glob)
256 [1]
257 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
258 dd: error writing '/dev/rbd?p2': Operation not permitted (glob)
259 [1]
260 $ blkdiscard ${DEV}p2
261 blkdiscard: /dev/rbd?p2: BLKDISCARD ioctl failed: Operation not permitted (glob)
262 [1]
263 $ blockdev --setrw ${DEV}p1
264 .*BLKROSET: Permission denied (re)
265 [1]
266 $ sudo blockdev --setrw ${DEV}p1
267 .*BLKROSET: Read-only file system (re)
268 [1]
269 $ blockdev --setrw ${DEV}p2
270 .*BLKROSET: Permission denied (re)
271 [1]
272 $ sudo blockdev --setrw ${DEV}p2
273 .*BLKROSET: Read-only file system (re)
274 [1]
275 $ blockdev --getro ${DEV}p1
276 1
277 $ blockdev --getro ${DEV}p2
278 1
279 $ dd if=/dev/urandom of=${DEV}p1 bs=1k seek=1 count=1 status=none
280 dd: error writing '/dev/rbd?p1': Operation not permitted (glob)
281 [1]
282 $ blkdiscard ${DEV}p1
283 blkdiscard: /dev/rbd?p1: BLKDISCARD ioctl failed: Operation not permitted (glob)
284 [1]
285 $ dd if=/dev/urandom of=${DEV}p2 bs=1k seek=1 count=1 status=none
286 dd: error writing '/dev/rbd?p2': Operation not permitted (glob)
287 [1]
288 $ blkdiscard ${DEV}p2
289 blkdiscard: /dev/rbd?p2: BLKDISCARD ioctl failed: Operation not permitted (glob)
290 [1]
291 $ sudo rbd unmap $DEV
292
293
92f5a8d4
TL
294read-only OSD caps
295==================
296
297R/W:
298
299 $ DEV=$(sudo rbd map --id ro --key $(echo $RO_KEY) img)
300 rbd: sysfs write failed
301 rbd: map failed: (1) Operation not permitted
302 [1]
303
304R/O:
305
306 $ DEV=$(sudo rbd map --id ro --key $(echo $RO_KEY) --read-only img)
307 $ blockdev --getro $DEV
308 1
309 $ sudo rbd unmap $DEV
310
311Snapshot:
312
313 $ DEV=$(sudo rbd map --id ro --key $(echo $RO_KEY) img@snap)
314 $ blockdev --getro $DEV
315 1
316 $ sudo rbd unmap $DEV
317
318R/W, clone:
319
320 $ DEV=$(sudo rbd map --id ro --key $(echo $RO_KEY) cloneimg)
321 rbd: sysfs write failed
322 rbd: map failed: (1) Operation not permitted
323 [1]
324
325R/O, clone:
326
327 $ DEV=$(sudo rbd map --id ro --key $(echo $RO_KEY) --read-only cloneimg)
328 $ blockdev --getro $DEV
329 1
330 $ sudo rbd unmap $DEV
331
332
11fdf7f2
TL
333rw -> ro with open_count > 0
334============================
335
336 $ DEV=$(sudo rbd map img)
337 $ { sleep 10; sudo blockdev --setro $DEV; } &
338 $ dd if=/dev/urandom of=$DEV bs=1k oflag=direct status=noxfer
339 dd: error writing '/dev/rbd?': Operation not permitted (glob)
340 [1-9]\d*\+0 records in (re)
341 [1-9]\d*\+0 records out (re)
342 [1]
343 $ sudo rbd unmap $DEV
344
345
f91f0fd5
TL
346"-o rw --read-only" should result in read-only mapping
347======================================================
348
349 $ DEV=$(sudo rbd map -o rw --read-only img)
350 $ blockdev --getro $DEV
351 1
352 $ sudo rbd unmap $DEV
353
354
11fdf7f2
TL
355Teardown
356========
357
358 $ rbd snap purge imgpart >/dev/null 2>&1
359 $ rbd rm imgpart >/dev/null 2>&1
92f5a8d4
TL
360 $ rbd rm cloneimg >/dev/null 2>&1
361 $ rbd snap unprotect img@snap
11fdf7f2
TL
362 $ rbd snap purge img >/dev/null 2>&1
363 $ rbd rm img >/dev/null 2>&1
364