]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | |
2 | Setup | |
3 | ===== | |
4 | ||
5 | $ rbd create --size 1 img | |
6 | $ rbd snap create img@snap | |
7 | $ rbd create --size 1 anotherimg | |
8 | $ ceph osd pool create custom 8 >/dev/null 2>&1 | |
9 | $ rbd create --size 1 custom/img | |
10 | $ rbd snap create custom/img@snap | |
11 | $ rbd snap create custom/img@anothersnap | |
12 | ||
13 | Spell out device instead of using $DEV - sfdisk is not a joke. | |
14 | ||
15 | $ DEV=$(sudo rbd map img) | |
16 | $ cat <<EOF | sudo sfdisk /dev/rbd[01] >/dev/null 2>&1 | |
17 | > unit: sectors | |
18 | > /dev/rbd0p1 : start= 2, size= 2, Id=83 | |
19 | > /dev/rbd0p2 : start= 5, size= 2043, Id= 5 | |
20 | > /dev/rbd0p3 : start= 0, size= 0, Id= 0 | |
21 | > /dev/rbd0p4 : start= 0, size= 0, Id= 0 | |
22 | > /dev/rbd0p5 : start= 7, size= 2, Id=83 | |
23 | > EOF | |
24 | ||
25 | ||
26 | Unmap by device | |
27 | =============== | |
28 | ||
29 | Unmap by device (img is already mapped): | |
30 | ||
31 | $ rbd showmapped | |
32 | id pool image snap device | |
33 | ? rbd img - /dev/rbd? (glob) | |
34 | $ sudo rbd unmap $DEV | |
35 | $ rbd showmapped | |
36 | ||
37 | Unmap by device partition: | |
38 | ||
39 | $ DEV=$(sudo rbd map img) | |
40 | $ rbd showmapped | |
41 | id pool image snap device | |
42 | ? rbd img - /dev/rbd? (glob) | |
43 | $ sudo rbd unmap ${DEV}p1 | |
44 | $ rbd showmapped | |
45 | ||
46 | $ DEV=$(sudo rbd map img) | |
47 | $ rbd showmapped | |
48 | id pool image snap device | |
49 | ? rbd img - /dev/rbd? (glob) | |
50 | $ sudo rbd unmap ${DEV}p5 | |
51 | $ rbd showmapped | |
52 | ||
53 | Not a block device - random junk prefixed with /dev/ (so it's not | |
54 | interpreted as a spec): | |
55 | ||
56 | $ sudo rbd unmap /dev/foobar | |
57 | rbd: '/dev/foobar' is not a block device | |
58 | rbd: unmap failed: (22) Invalid argument | |
59 | [22] | |
60 | ||
61 | Not a block device - device that's just been unmapped: | |
62 | ||
63 | $ DEV=$(sudo rbd map img) | |
64 | $ sudo rbd unmap $DEV | |
65 | $ sudo rbd unmap $DEV | |
66 | rbd: '/dev/rbd?' is not a block device (glob) | |
67 | rbd: unmap failed: (22) Invalid argument | |
68 | [22] | |
69 | ||
70 | A block device, but not rbd: | |
71 | ||
72 | $ sudo rbd unmap /dev/[sv]da | |
73 | rbd: '/dev/?da' is not an rbd device (glob) | |
74 | rbd: unmap failed: (22) Invalid argument | |
75 | [22] | |
76 | ||
77 | ||
78 | Unmap by spec | |
79 | ============= | |
80 | ||
81 | img: | |
82 | ||
83 | $ sudo rbd map img | |
84 | /dev/rbd? (glob) | |
85 | $ rbd showmapped | |
86 | id pool image snap device | |
87 | ? rbd img - /dev/rbd? (glob) | |
88 | $ sudo rbd unmap img | |
89 | $ rbd showmapped | |
90 | ||
91 | $ sudo rbd map img | |
92 | /dev/rbd? (glob) | |
93 | $ rbd showmapped | |
94 | id pool image snap device | |
95 | ? rbd img - /dev/rbd? (glob) | |
96 | $ sudo rbd --image img unmap | |
97 | $ rbd showmapped | |
98 | ||
99 | img@snap: | |
100 | ||
101 | $ sudo rbd map img@snap | |
102 | /dev/rbd? (glob) | |
103 | $ rbd showmapped | |
104 | id pool image snap device | |
105 | ? rbd img snap /dev/rbd? (glob) | |
106 | $ sudo rbd unmap img@snap | |
107 | $ rbd showmapped | |
108 | ||
109 | $ sudo rbd map img@snap | |
110 | /dev/rbd? (glob) | |
111 | $ rbd showmapped | |
112 | id pool image snap device | |
113 | ? rbd img snap /dev/rbd? (glob) | |
114 | $ sudo rbd --snap snap unmap img | |
115 | $ rbd showmapped | |
116 | ||
117 | $ sudo rbd map img@snap | |
118 | /dev/rbd? (glob) | |
119 | $ rbd showmapped | |
120 | id pool image snap device | |
121 | ? rbd img snap /dev/rbd? (glob) | |
122 | $ sudo rbd --image img --snap snap unmap | |
123 | $ rbd showmapped | |
124 | ||
125 | pool/img@snap, default pool: | |
126 | ||
127 | $ sudo rbd map rbd/img@snap | |
128 | /dev/rbd? (glob) | |
129 | $ rbd showmapped | |
130 | id pool image snap device | |
131 | ? rbd img snap /dev/rbd? (glob) | |
132 | $ sudo rbd unmap rbd/img@snap | |
133 | $ rbd showmapped | |
134 | ||
135 | $ sudo rbd map rbd/img@snap | |
136 | /dev/rbd? (glob) | |
137 | $ rbd showmapped | |
138 | id pool image snap device | |
139 | ? rbd img snap /dev/rbd? (glob) | |
140 | $ sudo rbd --pool rbd unmap img@snap | |
141 | $ rbd showmapped | |
142 | ||
143 | $ sudo rbd map rbd/img@snap | |
144 | /dev/rbd? (glob) | |
145 | $ rbd showmapped | |
146 | id pool image snap device | |
147 | ? rbd img snap /dev/rbd? (glob) | |
148 | $ sudo rbd --pool rbd --snap snap unmap img | |
149 | $ rbd showmapped | |
150 | ||
151 | $ sudo rbd map rbd/img@snap | |
152 | /dev/rbd? (glob) | |
153 | $ rbd showmapped | |
154 | id pool image snap device | |
155 | ? rbd img snap /dev/rbd? (glob) | |
156 | $ sudo rbd --pool rbd --image img --snap snap unmap | |
157 | $ rbd showmapped | |
158 | ||
159 | pool/img@snap, custom pool: | |
160 | ||
161 | $ sudo rbd map custom/img@snap | |
162 | /dev/rbd? (glob) | |
163 | $ rbd showmapped | |
164 | id pool image snap device | |
165 | ? custom img snap /dev/rbd? (glob) | |
166 | $ sudo rbd unmap custom/img@snap | |
167 | $ rbd showmapped | |
168 | ||
169 | $ sudo rbd map custom/img@snap | |
170 | /dev/rbd? (glob) | |
171 | $ rbd showmapped | |
172 | id pool image snap device | |
173 | ? custom img snap /dev/rbd? (glob) | |
174 | $ sudo rbd --pool custom unmap img@snap | |
175 | $ rbd showmapped | |
176 | ||
177 | $ sudo rbd map custom/img@snap | |
178 | /dev/rbd? (glob) | |
179 | $ rbd showmapped | |
180 | id pool image snap device | |
181 | ? custom img snap /dev/rbd? (glob) | |
182 | $ sudo rbd --pool custom --snap snap unmap img | |
183 | $ rbd showmapped | |
184 | ||
185 | $ sudo rbd map custom/img@snap | |
186 | /dev/rbd? (glob) | |
187 | $ rbd showmapped | |
188 | id pool image snap device | |
189 | ? custom img snap /dev/rbd? (glob) | |
190 | $ sudo rbd --pool custom --image img --snap snap unmap | |
191 | $ rbd showmapped | |
192 | ||
193 | Not a mapped spec - random junk (which gets interpreted as a spec): | |
194 | ||
195 | $ sudo rbd unmap foobar | |
196 | rbd: rbd/foobar@-: not a mapped image or snapshot | |
197 | rbd: unmap failed: (22) Invalid argument | |
198 | [22] | |
199 | ||
200 | $ sudo rbd --image foobar unmap | |
201 | rbd: rbd/foobar@-: not a mapped image or snapshot | |
202 | rbd: unmap failed: (22) Invalid argument | |
203 | [22] | |
204 | ||
205 | Not a mapped spec - spec that's just been unmapped: | |
206 | ||
207 | $ sudo rbd map img | |
208 | /dev/rbd? (glob) | |
209 | $ sudo rbd unmap img | |
210 | $ sudo rbd unmap img | |
211 | rbd: rbd/img@-: not a mapped image or snapshot | |
212 | rbd: unmap failed: (22) Invalid argument | |
213 | [22] | |
214 | ||
215 | $ sudo rbd map img@snap | |
216 | /dev/rbd? (glob) | |
217 | $ sudo rbd unmap img@snap | |
218 | $ sudo rbd unmap img@snap | |
219 | rbd: rbd/img@snap: not a mapped image or snapshot | |
220 | rbd: unmap failed: (22) Invalid argument | |
221 | [22] | |
222 | ||
223 | Need an arg: | |
224 | ||
225 | $ sudo rbd unmap | |
226 | rbd: unmap requires either image name or device path | |
227 | [22] | |
228 | ||
229 | ||
230 | Two images | |
231 | ========== | |
232 | ||
233 | Unmap img first: | |
234 | ||
235 | $ sudo rbd map img | |
236 | /dev/rbd? (glob) | |
237 | $ sudo rbd map anotherimg | |
238 | /dev/rbd? (glob) | |
239 | $ rbd showmapped | |
240 | id pool image snap device | |
241 | ? rbd img - /dev/rbd? (glob) | |
242 | ? rbd anotherimg - /dev/rbd? (glob) | |
243 | $ sudo rbd unmap img | |
244 | $ rbd showmapped | |
245 | id pool image snap device | |
246 | ? rbd anotherimg - /dev/rbd? (glob) | |
247 | $ sudo rbd unmap anotherimg | |
248 | $ rbd showmapped | |
249 | ||
250 | Unmap anotherimg first: | |
251 | ||
252 | $ sudo rbd map img | |
253 | /dev/rbd? (glob) | |
254 | $ sudo rbd map anotherimg | |
255 | /dev/rbd? (glob) | |
256 | $ rbd showmapped | |
257 | id pool image snap device | |
258 | ? rbd img - /dev/rbd? (glob) | |
259 | ? rbd anotherimg - /dev/rbd? (glob) | |
260 | $ sudo rbd unmap anotherimg | |
261 | $ rbd showmapped | |
262 | id pool image snap device | |
263 | ? rbd img - /dev/rbd? (glob) | |
264 | $ sudo rbd unmap img | |
265 | $ rbd showmapped | |
266 | ||
267 | ||
268 | Image and its snap | |
269 | ================== | |
270 | ||
271 | Unmap the image first: | |
272 | ||
273 | $ sudo rbd map img | |
274 | /dev/rbd? (glob) | |
275 | $ sudo rbd map img@snap | |
276 | /dev/rbd? (glob) | |
277 | $ rbd showmapped | |
278 | id pool image snap device | |
279 | ? rbd img - /dev/rbd? (glob) | |
280 | ? rbd img snap /dev/rbd? (glob) | |
281 | $ sudo rbd unmap img | |
282 | $ rbd showmapped | |
283 | id pool image snap device | |
284 | ? rbd img snap /dev/rbd? (glob) | |
285 | $ sudo rbd unmap img@snap | |
286 | $ rbd showmapped | |
287 | ||
288 | Unmap the snap first: | |
289 | ||
290 | $ sudo rbd map img | |
291 | /dev/rbd? (glob) | |
292 | $ sudo rbd map img@snap | |
293 | /dev/rbd? (glob) | |
294 | $ rbd showmapped | |
295 | id pool image snap device | |
296 | ? rbd img - /dev/rbd? (glob) | |
297 | ? rbd img snap /dev/rbd? (glob) | |
298 | $ sudo rbd unmap img@snap | |
299 | $ rbd showmapped | |
300 | id pool image snap device | |
301 | ? rbd img - /dev/rbd? (glob) | |
302 | $ sudo rbd unmap img | |
303 | $ rbd showmapped | |
304 | ||
305 | ||
306 | Two snaps of the same image | |
307 | =========================== | |
308 | ||
309 | Unmap snap first: | |
310 | ||
311 | $ sudo rbd map custom/img@snap | |
312 | /dev/rbd? (glob) | |
313 | $ sudo rbd map custom/img@anothersnap | |
314 | /dev/rbd? (glob) | |
315 | $ rbd showmapped | |
316 | id pool image snap device | |
317 | ? custom img snap /dev/rbd? (glob) | |
318 | ? custom img anothersnap /dev/rbd? (glob) | |
319 | $ sudo rbd unmap custom/img@snap | |
320 | $ rbd showmapped | |
321 | id pool image snap device | |
322 | ? custom img anothersnap /dev/rbd? (glob) | |
323 | $ sudo rbd unmap custom/img@anothersnap | |
324 | $ rbd showmapped | |
325 | ||
326 | Unmap anothersnap first: | |
327 | ||
328 | $ sudo rbd map custom/img@snap | |
329 | /dev/rbd? (glob) | |
330 | $ sudo rbd map custom/img@anothersnap | |
331 | /dev/rbd? (glob) | |
332 | $ rbd showmapped | |
333 | id pool image snap device | |
334 | ? custom img snap /dev/rbd? (glob) | |
335 | ? custom img anothersnap /dev/rbd? (glob) | |
336 | $ sudo rbd unmap custom/img@anothersnap | |
337 | $ rbd showmapped | |
338 | id pool image snap device | |
339 | ? custom img snap /dev/rbd? (glob) | |
340 | $ sudo rbd unmap custom/img@snap | |
341 | $ rbd showmapped | |
342 | ||
343 | ||
344 | Same img and snap in different pools | |
345 | ==================================== | |
346 | ||
347 | img: | |
348 | ||
349 | $ sudo rbd map img | |
350 | /dev/rbd? (glob) | |
351 | $ sudo rbd map custom/img | |
352 | /dev/rbd? (glob) | |
353 | $ rbd showmapped | |
354 | id pool image snap device | |
355 | ? rbd img - /dev/rbd? (glob) | |
356 | ? custom img - /dev/rbd? (glob) | |
357 | $ sudo rbd unmap img | |
358 | $ rbd showmapped | |
359 | id pool image snap device | |
360 | ? custom img - /dev/rbd? (glob) | |
361 | $ sudo rbd unmap custom/img | |
362 | $ rbd showmapped | |
363 | ||
364 | img@snap: | |
365 | ||
366 | $ sudo rbd map img@snap | |
367 | /dev/rbd? (glob) | |
368 | $ sudo rbd map custom/img@snap | |
369 | /dev/rbd? (glob) | |
370 | $ rbd showmapped | |
371 | id pool image snap device | |
372 | ? rbd img snap /dev/rbd? (glob) | |
373 | ? custom img snap /dev/rbd? (glob) | |
374 | $ sudo rbd unmap custom/img@snap | |
375 | $ rbd showmapped | |
376 | id pool image snap device | |
377 | ? rbd img snap /dev/rbd? (glob) | |
378 | $ sudo rbd unmap img@snap | |
379 | $ rbd showmapped | |
380 | ||
381 | ||
382 | Same spec mapped twice | |
383 | ====================== | |
384 | ||
385 | img: | |
386 | ||
387 | $ sudo rbd map img | |
388 | /dev/rbd? (glob) | |
389 | $ sudo rbd map img | |
390 | /dev/rbd? (glob) | |
391 | $ rbd showmapped | |
392 | id pool image snap device | |
393 | ? rbd img - /dev/rbd? (glob) | |
394 | ? rbd img - /dev/rbd? (glob) | |
395 | $ sudo rbd unmap img | |
396 | rbd: rbd/img@-: mapped more than once, unmapping /dev/rbd? only (glob) | |
397 | $ rbd showmapped | |
398 | id pool image snap device | |
399 | ? rbd img - /dev/rbd? (glob) | |
400 | $ sudo rbd unmap img | |
401 | $ rbd showmapped | |
402 | ||
403 | img@snap: | |
404 | ||
405 | $ sudo rbd map img@snap | |
406 | /dev/rbd? (glob) | |
407 | $ sudo rbd map img@snap | |
408 | /dev/rbd? (glob) | |
409 | $ rbd showmapped | |
410 | id pool image snap device | |
411 | ? rbd img snap /dev/rbd? (glob) | |
412 | ? rbd img snap /dev/rbd? (glob) | |
413 | $ sudo rbd unmap img@snap | |
414 | rbd: rbd/img@snap: mapped more than once, unmapping /dev/rbd? only (glob) | |
415 | $ rbd showmapped | |
416 | id pool image snap device | |
417 | ? rbd img snap /dev/rbd? (glob) | |
418 | $ sudo rbd unmap img@snap | |
419 | $ rbd showmapped | |
420 | ||
421 | pool/img@snap, default pool: | |
422 | ||
423 | $ sudo rbd map rbd/img@snap | |
424 | /dev/rbd? (glob) | |
425 | $ sudo rbd map rbd/img@snap | |
426 | /dev/rbd? (glob) | |
427 | $ rbd showmapped | |
428 | id pool image snap device | |
429 | ? rbd img snap /dev/rbd? (glob) | |
430 | ? rbd img snap /dev/rbd? (glob) | |
431 | $ sudo rbd unmap rbd/img@snap | |
432 | rbd: rbd/img@snap: mapped more than once, unmapping /dev/rbd? only (glob) | |
433 | $ rbd showmapped | |
434 | id pool image snap device | |
435 | ? rbd img snap /dev/rbd? (glob) | |
436 | $ sudo rbd unmap rbd/img@snap | |
437 | $ rbd showmapped | |
438 | ||
439 | pool/img@snap, custom pool: | |
440 | ||
441 | $ sudo rbd map custom/img@snap | |
442 | /dev/rbd? (glob) | |
443 | $ sudo rbd map custom/img@snap | |
444 | /dev/rbd? (glob) | |
445 | $ rbd showmapped | |
446 | id pool image snap device | |
447 | ? custom img snap /dev/rbd? (glob) | |
448 | ? custom img snap /dev/rbd? (glob) | |
449 | $ sudo rbd unmap custom/img@snap | |
450 | rbd: custom/img@snap: mapped more than once, unmapping /dev/rbd? only (glob) | |
451 | $ rbd showmapped | |
452 | id pool image snap device | |
453 | ? custom img snap /dev/rbd? (glob) | |
454 | $ sudo rbd unmap custom/img@snap | |
455 | $ rbd showmapped | |
456 | ||
457 | ||
458 | Teardown | |
459 | ======== | |
460 | ||
461 | $ ceph osd pool delete custom custom --yes-i-really-really-mean-it >/dev/null 2>&1 | |
462 | $ rbd snap purge anotherimg >/dev/null 2>&1 | |
463 | $ rbd rm anotherimg >/dev/null 2>&1 | |
464 | $ rbd snap purge img >/dev/null 2>&1 | |
465 | $ rbd rm img >/dev/null 2>&1 | |
466 |