]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | ls on empty pool never containing images |
2 | ======================================== | |
3 | $ ceph osd pool create rbd_other 8 | |
4 | pool 'rbd_other' created | |
5 | $ rados -p rbd rm rbd_directory >/dev/null 2>&1 || true | |
6 | $ rbd ls | |
7 | $ rbd ls --format json | |
8 | [] (no-eol) | |
9 | $ rbd ls --format xml | |
10 | <images></images> (no-eol) | |
11 | ||
12 | create | |
13 | ======= | |
14 | $ rbd create -s 1024 --image-format 1 foo | |
15 | rbd: image format 1 is deprecated | |
16 | $ rbd create -s 512 --image-format 2 bar | |
17 | $ rbd create -s 2048 --image-format 2 --image-feature layering baz | |
18 | $ rbd create -s 1 --image-format 1 quux | |
19 | rbd: image format 1 is deprecated | |
20 | $ rbd create -s 1G --image-format 2 quuy | |
21 | ||
22 | snapshot | |
23 | ======== | |
24 | $ rbd snap create bar@snap | |
25 | $ rbd resize -s 1024 --no-progress bar | |
26 | $ rbd resize -s 2G --no-progress quuy | |
27 | $ rbd snap create bar@snap2 | |
28 | $ rbd snap create foo@snap | |
29 | ||
30 | clone | |
31 | ===== | |
32 | $ rbd snap protect bar@snap | |
33 | $ rbd clone --image-feature layering,exclusive-lock,object-map,fast-diff bar@snap rbd_other/child | |
34 | $ rbd snap create rbd_other/child@snap | |
35 | $ rbd flatten rbd_other/child 2> /dev/null | |
36 | $ rbd bench rbd_other/child --io-type write --io-pattern seq --io-total 1B > /dev/null 2>&1 | |
37 | $ rbd clone bar@snap rbd_other/deep-flatten-child | |
38 | $ rbd snap create rbd_other/deep-flatten-child@snap | |
39 | $ rbd flatten rbd_other/deep-flatten-child 2> /dev/null | |
40 | ||
41 | lock | |
42 | ==== | |
43 | $ rbd lock add quux id | |
44 | $ rbd lock add baz id1 --shared tag | |
45 | $ rbd lock add baz id2 --shared tag | |
46 | $ rbd lock add baz id3 --shared tag | |
47 | ||
48 | test formatting | |
49 | =============== | |
50 | $ rbd children foo@snap | |
51 | $ rbd children bar@snap | |
52 | rbd_other/child | |
53 | $ rbd children bar@snap2 | |
54 | TODO: figure out why .* does not match the block_name_prefix line in rbd info. | |
55 | For now, use a more inclusive regex. | |
56 | $ rbd info foo | |
57 | rbd image 'foo': | |
58 | \tsize 1024 MB in 256 objects (esc) | |
59 | \torder 22 (4096 kB objects) (esc) | |
60 | [^^]+ (re) | |
61 | \tformat: 1 (esc) | |
62 | $ rbd info foo --format json | python -mjson.tool | sed 's/,$/, /' | |
63 | { | |
64 | "block_name_prefix": "rb.0.*", (glob) | |
65 | "format": 1, | |
66 | "name": "foo", | |
67 | "object_size": 4194304, | |
68 | "objects": 256, | |
69 | "order": 22, | |
70 | "size": 1073741824 | |
71 | } | |
72 | The version of xml_pp included in ubuntu precise always prints a 'warning' | |
73 | whenever it is run. grep -v to ignore it, but still work on other distros. | |
74 | $ rbd info foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
75 | <image> | |
76 | <name>foo</name> | |
77 | <size>1073741824</size> | |
78 | <objects>256</objects> | |
79 | <order>22</order> | |
80 | <object_size>4194304</object_size> | |
81 | <block_name_prefix>rb.0.*</block_name_prefix> (glob) | |
82 | <format>1</format> | |
83 | </image> | |
84 | $ rbd info foo@snap | |
85 | rbd image 'foo': | |
86 | \tsize 1024 MB in 256 objects (esc) | |
87 | \torder 22 (4096 kB objects) (esc) | |
88 | [^^]+ (re) | |
89 | \tformat: 1 (esc) | |
90 | \tprotected: False (esc) | |
91 | $ rbd info foo@snap --format json | python -mjson.tool | sed 's/,$/, /' | |
92 | { | |
93 | "block_name_prefix": "rb.0.*", (glob) | |
94 | "format": 1, | |
95 | "name": "foo", | |
96 | "object_size": 4194304, | |
97 | "objects": 256, | |
98 | "order": 22, | |
99 | "protected": "false", | |
100 | "size": 1073741824 | |
101 | } | |
102 | $ rbd info foo@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
103 | <image> | |
104 | <name>foo</name> | |
105 | <size>1073741824</size> | |
106 | <objects>256</objects> | |
107 | <order>22</order> | |
108 | <object_size>4194304</object_size> | |
109 | <block_name_prefix>rb.0*</block_name_prefix> (glob) | |
110 | <format>1</format> | |
111 | <protected>false</protected> | |
112 | </image> | |
113 | $ rbd info bar | |
114 | rbd image 'bar': | |
115 | \tsize 1024 MB in 256 objects (esc) | |
116 | \torder 22 (4096 kB objects) (esc) | |
117 | [^^]+ (re) | |
118 | \tformat: 2 (esc) | |
119 | \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc) | |
120 | \tflags: (esc) | |
121 | $ rbd info bar --format json | python -mjson.tool | sed 's/,$/, /' | |
122 | { | |
123 | "block_name_prefix": "rbd_data.*", (glob) | |
124 | "features": [ | |
125 | "layering", | |
126 | "exclusive-lock", | |
127 | "object-map", | |
128 | "fast-diff", | |
129 | "deep-flatten" | |
130 | ], | |
131 | "flags": [], | |
132 | "format": 2, | |
133 | "name": "bar", | |
134 | "object_size": 4194304, | |
135 | "objects": 256, | |
136 | "order": 22, | |
137 | "size": 1073741824 | |
138 | } | |
139 | $ rbd info bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
140 | <image> | |
141 | <name>bar</name> | |
142 | <size>1073741824</size> | |
143 | <objects>256</objects> | |
144 | <order>22</order> | |
145 | <object_size>4194304</object_size> | |
146 | <block_name_prefix>rbd_data.*</block_name_prefix> (glob) | |
147 | <format>2</format> | |
148 | <features> | |
149 | <feature>layering</feature> | |
150 | <feature>exclusive-lock</feature> | |
151 | <feature>object-map</feature> | |
152 | <feature>fast-diff</feature> | |
153 | <feature>deep-flatten</feature> | |
154 | </features> | |
155 | <flags></flags> | |
156 | </image> | |
157 | $ rbd info bar@snap | |
158 | rbd image 'bar': | |
159 | \tsize 512 MB in 128 objects (esc) | |
160 | \torder 22 (4096 kB objects) (esc) | |
161 | [^^]+ (re) | |
162 | \tformat: 2 (esc) | |
163 | \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc) | |
164 | \tflags: (esc) | |
165 | \tprotected: True (esc) | |
166 | $ rbd info bar@snap --format json | python -mjson.tool | sed 's/,$/, /' | |
167 | { | |
168 | "block_name_prefix": "rbd_data.*", (glob) | |
169 | "features": [ | |
170 | "layering", | |
171 | "exclusive-lock", | |
172 | "object-map", | |
173 | "fast-diff", | |
174 | "deep-flatten" | |
175 | ], | |
176 | "flags": [], | |
177 | "format": 2, | |
178 | "name": "bar", | |
179 | "object_size": 4194304, | |
180 | "objects": 128, | |
181 | "order": 22, | |
182 | "protected": "true", | |
183 | "size": 536870912 | |
184 | } | |
185 | $ rbd info bar@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
186 | <image> | |
187 | <name>bar</name> | |
188 | <size>536870912</size> | |
189 | <objects>128</objects> | |
190 | <order>22</order> | |
191 | <object_size>4194304</object_size> | |
192 | <block_name_prefix>rbd_data.*</block_name_prefix> (glob) | |
193 | <format>2</format> | |
194 | <features> | |
195 | <feature>layering</feature> | |
196 | <feature>exclusive-lock</feature> | |
197 | <feature>object-map</feature> | |
198 | <feature>fast-diff</feature> | |
199 | <feature>deep-flatten</feature> | |
200 | </features> | |
201 | <flags></flags> | |
202 | <protected>true</protected> | |
203 | </image> | |
204 | $ rbd info bar@snap2 | |
205 | rbd image 'bar': | |
206 | \tsize 1024 MB in 256 objects (esc) | |
207 | \torder 22 (4096 kB objects) (esc) | |
208 | [^^]+ (re) | |
209 | \tformat: 2 (esc) | |
210 | \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc) | |
211 | \tflags: (esc) | |
212 | \tprotected: False (esc) | |
213 | $ rbd info bar@snap2 --format json | python -mjson.tool | sed 's/,$/, /' | |
214 | { | |
215 | "block_name_prefix": "rbd_data.*", (glob) | |
216 | "features": [ | |
217 | "layering", | |
218 | "exclusive-lock", | |
219 | "object-map", | |
220 | "fast-diff", | |
221 | "deep-flatten" | |
222 | ], | |
223 | "flags": [], | |
224 | "format": 2, | |
225 | "name": "bar", | |
226 | "object_size": 4194304, | |
227 | "objects": 256, | |
228 | "order": 22, | |
229 | "protected": "false", | |
230 | "size": 1073741824 | |
231 | } | |
232 | $ rbd info bar@snap2 --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
233 | <image> | |
234 | <name>bar</name> | |
235 | <size>1073741824</size> | |
236 | <objects>256</objects> | |
237 | <order>22</order> | |
238 | <object_size>4194304</object_size> | |
239 | <block_name_prefix>rbd_data.*</block_name_prefix> (glob) | |
240 | <format>2</format> | |
241 | <features> | |
242 | <feature>layering</feature> | |
243 | <feature>exclusive-lock</feature> | |
244 | <feature>object-map</feature> | |
245 | <feature>fast-diff</feature> | |
246 | <feature>deep-flatten</feature> | |
247 | </features> | |
248 | <flags></flags> | |
249 | <protected>false</protected> | |
250 | </image> | |
251 | $ rbd info baz | |
252 | rbd image 'baz': | |
253 | \tsize 2048 MB in 512 objects (esc) | |
254 | \torder 22 (4096 kB objects) (esc) | |
255 | [^^]+ (re) | |
256 | \tformat: 2 (esc) | |
257 | \tfeatures: layering (esc) | |
258 | \tflags: (esc) | |
259 | $ rbd info baz --format json | python -mjson.tool | sed 's/,$/, /' | |
260 | { | |
261 | "block_name_prefix": "rbd_data.*", (glob) | |
262 | "features": [ | |
263 | "layering" | |
264 | ], | |
265 | "flags": [], | |
266 | "format": 2, | |
267 | "name": "baz", | |
268 | "object_size": 4194304, | |
269 | "objects": 512, | |
270 | "order": 22, | |
271 | "size": 2147483648 | |
272 | } | |
273 | $ rbd info baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
274 | <image> | |
275 | <name>baz</name> | |
276 | <size>2147483648</size> | |
277 | <objects>512</objects> | |
278 | <order>22</order> | |
279 | <object_size>4194304</object_size> | |
280 | <block_name_prefix>rbd_data.*</block_name_prefix> (glob) | |
281 | <format>2</format> | |
282 | <features> | |
283 | <feature>layering</feature> | |
284 | </features> | |
285 | <flags></flags> | |
286 | </image> | |
287 | $ rbd info quux | |
288 | rbd image 'quux': | |
289 | \tsize 1024 kB in 1 objects (esc) | |
290 | \torder 22 (4096 kB objects) (esc) | |
291 | [^^]+ (re) | |
292 | \tformat: 1 (esc) | |
293 | $ rbd info quux --format json | python -mjson.tool | sed 's/,$/, /' | |
294 | { | |
295 | "block_name_prefix": "rb.0.*", (glob) | |
296 | "format": 1, | |
297 | "name": "quux", | |
298 | "object_size": 4194304, | |
299 | "objects": 1, | |
300 | "order": 22, | |
301 | "size": 1048576 | |
302 | } | |
303 | $ rbd info quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
304 | <image> | |
305 | <name>quux</name> | |
306 | <size>1048576</size> | |
307 | <objects>1</objects> | |
308 | <order>22</order> | |
309 | <object_size>4194304</object_size> | |
310 | <block_name_prefix>rb.0.*</block_name_prefix> (glob) | |
311 | <format>1</format> | |
312 | </image> | |
313 | $ rbd info rbd_other/child | |
314 | rbd image 'child': | |
315 | \tsize 512 MB in 128 objects (esc) | |
316 | \torder 22 (4096 kB objects) (esc) | |
317 | [^^]+ (re) | |
318 | \tformat: 2 (esc) | |
319 | \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc) | |
320 | \tflags: (esc) | |
321 | $ rbd info rbd_other/child --format json | python -mjson.tool | sed 's/,$/, /' | |
322 | { | |
323 | "block_name_prefix": "rbd_data.*", (glob) | |
324 | "features": [ | |
325 | "layering", | |
326 | "exclusive-lock", | |
327 | "object-map", | |
328 | "fast-diff" | |
329 | ], | |
330 | "flags": [], | |
331 | "format": 2, | |
332 | "name": "child", | |
333 | "object_size": 4194304, | |
334 | "objects": 128, | |
335 | "order": 22, | |
336 | "size": 536870912 | |
337 | } | |
338 | $ rbd info rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
339 | <image> | |
340 | <name>child</name> | |
341 | <size>536870912</size> | |
342 | <objects>128</objects> | |
343 | <order>22</order> | |
344 | <object_size>4194304</object_size> | |
345 | <block_name_prefix>rbd_data.*</block_name_prefix> (glob) | |
346 | <format>2</format> | |
347 | <features> | |
348 | <feature>layering</feature> | |
349 | <feature>exclusive-lock</feature> | |
350 | <feature>object-map</feature> | |
351 | <feature>fast-diff</feature> | |
352 | </features> | |
353 | <flags></flags> | |
354 | </image> | |
355 | $ rbd info rbd_other/child@snap | |
356 | rbd image 'child': | |
357 | \tsize 512 MB in 128 objects (esc) | |
358 | \torder 22 (4096 kB objects) (esc) | |
359 | [^^]+ (re) | |
360 | \tformat: 2 (esc) | |
361 | \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc) | |
362 | \tflags: (esc) | |
363 | \tprotected: False (esc) | |
364 | \tparent: rbd/bar@snap (esc) | |
365 | \toverlap: 512 MB (esc) | |
366 | $ rbd info rbd_other/child@snap --format json | python -mjson.tool | sed 's/,$/, /' | |
367 | { | |
368 | "block_name_prefix": "rbd_data.*", (glob) | |
369 | "features": [ | |
370 | "layering", | |
371 | "exclusive-lock", | |
372 | "object-map", | |
373 | "fast-diff" | |
374 | ], | |
375 | "flags": [], | |
376 | "format": 2, | |
377 | "name": "child", | |
378 | "object_size": 4194304, | |
379 | "objects": 128, | |
380 | "order": 22, | |
381 | "parent": { | |
382 | "image": "bar", | |
383 | "overlap": 536870912, | |
384 | "pool": "rbd", | |
385 | "snapshot": "snap" | |
386 | }, | |
387 | "protected": "false", | |
388 | "size": 536870912 | |
389 | } | |
390 | $ rbd info rbd_other/child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
391 | <image> | |
392 | <name>child</name> | |
393 | <size>536870912</size> | |
394 | <objects>128</objects> | |
395 | <order>22</order> | |
396 | <object_size>4194304</object_size> | |
397 | <block_name_prefix>rbd_data.*</block_name_prefix> (glob) | |
398 | <format>2</format> | |
399 | <features> | |
400 | <feature>layering</feature> | |
401 | <feature>exclusive-lock</feature> | |
402 | <feature>object-map</feature> | |
403 | <feature>fast-diff</feature> | |
404 | </features> | |
405 | <flags></flags> | |
406 | <protected>false</protected> | |
407 | <parent> | |
408 | <pool>rbd</pool> | |
409 | <image>bar</image> | |
410 | <snapshot>snap</snapshot> | |
411 | <overlap>536870912</overlap> | |
412 | </parent> | |
413 | </image> | |
414 | $ rbd info rbd_other/deep-flatten-child | |
415 | rbd image 'deep-flatten-child': | |
416 | \tsize 512 MB in 128 objects (esc) | |
417 | \torder 22 (4096 kB objects) (esc) | |
418 | [^^]+ (re) | |
419 | \tformat: 2 (esc) | |
420 | \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc) | |
421 | \tflags: (esc) | |
422 | $ rbd info rbd_other/deep-flatten-child --format json | python -mjson.tool | sed 's/,$/, /' | |
423 | { | |
424 | "block_name_prefix": "rbd_data.*", (glob) | |
425 | "features": [ | |
426 | "layering", | |
427 | "exclusive-lock", | |
428 | "object-map", | |
429 | "fast-diff", | |
430 | "deep-flatten" | |
431 | ], | |
432 | "flags": [], | |
433 | "format": 2, | |
434 | "name": "deep-flatten-child", | |
435 | "object_size": 4194304, | |
436 | "objects": 128, | |
437 | "order": 22, | |
438 | "size": 536870912 | |
439 | } | |
440 | $ rbd info rbd_other/deep-flatten-child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
441 | <image> | |
442 | <name>deep-flatten-child</name> | |
443 | <size>536870912</size> | |
444 | <objects>128</objects> | |
445 | <order>22</order> | |
446 | <object_size>4194304</object_size> | |
447 | <block_name_prefix>rbd_data.*</block_name_prefix> (glob) | |
448 | <format>2</format> | |
449 | <features> | |
450 | <feature>layering</feature> | |
451 | <feature>exclusive-lock</feature> | |
452 | <feature>object-map</feature> | |
453 | <feature>fast-diff</feature> | |
454 | <feature>deep-flatten</feature> | |
455 | </features> | |
456 | <flags></flags> | |
457 | </image> | |
458 | $ rbd info rbd_other/deep-flatten-child@snap | |
459 | rbd image 'deep-flatten-child': | |
460 | \tsize 512 MB in 128 objects (esc) | |
461 | \torder 22 (4096 kB objects) (esc) | |
462 | [^^]+ (re) | |
463 | \tformat: 2 (esc) | |
464 | \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc) | |
465 | \tflags: (esc) | |
466 | \tprotected: False (esc) | |
467 | $ rbd info rbd_other/deep-flatten-child@snap --format json | python -mjson.tool | sed 's/,$/, /' | |
468 | { | |
469 | "block_name_prefix": "rbd_data.*", (glob) | |
470 | "features": [ | |
471 | "layering", | |
472 | "exclusive-lock", | |
473 | "object-map", | |
474 | "fast-diff", | |
475 | "deep-flatten" | |
476 | ], | |
477 | "flags": [], | |
478 | "format": 2, | |
479 | "name": "deep-flatten-child", | |
480 | "object_size": 4194304, | |
481 | "objects": 128, | |
482 | "order": 22, | |
483 | "protected": "false", | |
484 | "size": 536870912 | |
485 | } | |
486 | $ rbd info rbd_other/deep-flatten-child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
487 | <image> | |
488 | <name>deep-flatten-child</name> | |
489 | <size>536870912</size> | |
490 | <objects>128</objects> | |
491 | <order>22</order> | |
492 | <object_size>4194304</object_size> | |
493 | <block_name_prefix>rbd_data.*</block_name_prefix> (glob) | |
494 | <format>2</format> | |
495 | <features> | |
496 | <feature>layering</feature> | |
497 | <feature>exclusive-lock</feature> | |
498 | <feature>object-map</feature> | |
499 | <feature>fast-diff</feature> | |
500 | <feature>deep-flatten</feature> | |
501 | </features> | |
502 | <flags></flags> | |
503 | <protected>false</protected> | |
504 | </image> | |
505 | $ rbd list | |
506 | foo | |
507 | quux | |
508 | bar | |
509 | baz | |
510 | quuy | |
511 | $ rbd list --format json | python -mjson.tool | sed 's/,$/, /' | |
512 | [ | |
513 | "foo", | |
514 | "quux", | |
515 | "bar", | |
516 | "baz", | |
517 | "quuy" | |
518 | ] | |
519 | $ rbd list --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
520 | <images> | |
521 | <name>foo</name> | |
522 | <name>quux</name> | |
523 | <name>bar</name> | |
524 | <name>baz</name> | |
525 | <name>quuy</name> | |
526 | </images> | |
527 | $ rbd list -l | |
528 | NAME SIZE PARENT FMT PROT LOCK | |
529 | foo 1024M 1 | |
530 | foo@snap 1024M 1 | |
531 | quux 1024k 1 excl | |
532 | bar 1024M 2 | |
533 | bar@snap 512M 2 yes | |
534 | bar@snap2 1024M 2 | |
535 | baz 2048M 2 shr | |
536 | quuy 2048M 2 | |
537 | $ rbd list -l --format json | python -mjson.tool | sed 's/,$/, /' | |
538 | [ | |
539 | { | |
540 | "format": 1, | |
541 | "image": "foo", | |
542 | "size": 1073741824 | |
543 | }, | |
544 | { | |
545 | "format": 1, | |
546 | "image": "foo", | |
547 | "protected": "false", | |
548 | "size": 1073741824, | |
549 | "snapshot": "snap" | |
550 | }, | |
551 | { | |
552 | "format": 1, | |
553 | "image": "quux", | |
554 | "lock_type": "exclusive", | |
555 | "size": 1048576 | |
556 | }, | |
557 | { | |
558 | "format": 2, | |
559 | "image": "bar", | |
560 | "size": 1073741824 | |
561 | }, | |
562 | { | |
563 | "format": 2, | |
564 | "image": "bar", | |
565 | "protected": "true", | |
566 | "size": 536870912, | |
567 | "snapshot": "snap" | |
568 | }, | |
569 | { | |
570 | "format": 2, | |
571 | "image": "bar", | |
572 | "protected": "false", | |
573 | "size": 1073741824, | |
574 | "snapshot": "snap2" | |
575 | }, | |
576 | { | |
577 | "format": 2, | |
578 | "image": "baz", | |
579 | "lock_type": "shared", | |
580 | "size": 2147483648 | |
581 | }, | |
582 | { | |
583 | "format": 2, | |
584 | "image": "quuy", | |
585 | "size": 2147483648 | |
586 | } | |
587 | ] | |
588 | $ rbd list -l --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
589 | <images> | |
590 | <image> | |
591 | <image>foo</image> | |
592 | <size>1073741824</size> | |
593 | <format>1</format> | |
594 | </image> | |
595 | <snapshot> | |
596 | <image>foo</image> | |
597 | <snapshot>snap</snapshot> | |
598 | <size>1073741824</size> | |
599 | <format>1</format> | |
600 | <protected>false</protected> | |
601 | </snapshot> | |
602 | <image> | |
603 | <image>quux</image> | |
604 | <size>1048576</size> | |
605 | <format>1</format> | |
606 | <lock_type>exclusive</lock_type> | |
607 | </image> | |
608 | <image> | |
609 | <image>bar</image> | |
610 | <size>1073741824</size> | |
611 | <format>2</format> | |
612 | </image> | |
613 | <snapshot> | |
614 | <image>bar</image> | |
615 | <snapshot>snap</snapshot> | |
616 | <size>536870912</size> | |
617 | <format>2</format> | |
618 | <protected>true</protected> | |
619 | </snapshot> | |
620 | <snapshot> | |
621 | <image>bar</image> | |
622 | <snapshot>snap2</snapshot> | |
623 | <size>1073741824</size> | |
624 | <format>2</format> | |
625 | <protected>false</protected> | |
626 | </snapshot> | |
627 | <image> | |
628 | <image>baz</image> | |
629 | <size>2147483648</size> | |
630 | <format>2</format> | |
631 | <lock_type>shared</lock_type> | |
632 | </image> | |
633 | <image> | |
634 | <image>quuy</image> | |
635 | <size>2147483648</size> | |
636 | <format>2</format> | |
637 | </image> | |
638 | </images> | |
639 | $ rbd list rbd_other | |
640 | child | |
641 | deep-flatten-child | |
642 | $ rbd list rbd_other --format json | python -mjson.tool | sed 's/,$/, /' | |
643 | [ | |
644 | "child", | |
645 | "deep-flatten-child" | |
646 | ] | |
647 | $ rbd list rbd_other --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
648 | <images> | |
649 | <name>child</name> | |
650 | <name>deep-flatten-child</name> | |
651 | </images> | |
652 | $ rbd list rbd_other -l | |
653 | NAME SIZE PARENT FMT PROT LOCK | |
654 | child 512M 2 | |
655 | child@snap 512M rbd/bar@snap 2 | |
656 | deep-flatten-child 512M 2 | |
657 | deep-flatten-child@snap 512M 2 | |
658 | $ rbd list rbd_other -l --format json | python -mjson.tool | sed 's/,$/, /' | |
659 | [ | |
660 | { | |
661 | "format": 2, | |
662 | "image": "child", | |
663 | "size": 536870912 | |
664 | }, | |
665 | { | |
666 | "format": 2, | |
667 | "image": "child", | |
668 | "parent": { | |
669 | "image": "bar", | |
670 | "pool": "rbd", | |
671 | "snapshot": "snap" | |
672 | }, | |
673 | "protected": "false", | |
674 | "size": 536870912, | |
675 | "snapshot": "snap" | |
676 | }, | |
677 | { | |
678 | "format": 2, | |
679 | "image": "deep-flatten-child", | |
680 | "size": 536870912 | |
681 | }, | |
682 | { | |
683 | "format": 2, | |
684 | "image": "deep-flatten-child", | |
685 | "protected": "false", | |
686 | "size": 536870912, | |
687 | "snapshot": "snap" | |
688 | } | |
689 | ] | |
690 | $ rbd list rbd_other -l --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
691 | <images> | |
692 | <image> | |
693 | <image>child</image> | |
694 | <size>536870912</size> | |
695 | <format>2</format> | |
696 | </image> | |
697 | <snapshot> | |
698 | <image>child</image> | |
699 | <snapshot>snap</snapshot> | |
700 | <size>536870912</size> | |
701 | <parent> | |
702 | <pool>rbd</pool> | |
703 | <image>bar</image> | |
704 | <snapshot>snap</snapshot> | |
705 | </parent> | |
706 | <format>2</format> | |
707 | <protected>false</protected> | |
708 | </snapshot> | |
709 | <image> | |
710 | <image>deep-flatten-child</image> | |
711 | <size>536870912</size> | |
712 | <format>2</format> | |
713 | </image> | |
714 | <snapshot> | |
715 | <image>deep-flatten-child</image> | |
716 | <snapshot>snap</snapshot> | |
717 | <size>536870912</size> | |
718 | <format>2</format> | |
719 | <protected>false</protected> | |
720 | </snapshot> | |
721 | </images> | |
722 | $ rbd lock list foo | |
723 | $ rbd lock list foo --format json | python -mjson.tool | sed 's/,$/, /' | |
724 | {} | |
725 | $ rbd lock list foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
726 | <locks></locks> | |
727 | $ rbd lock list quux | |
728 | There is 1 exclusive lock on this image. | |
729 | Locker*ID*Address* (glob) | |
730 | client.* id * (glob) | |
731 | $ rbd lock list quux --format json | python -mjson.tool | sed 's/,$/, /' | |
732 | { | |
733 | "id": { | |
734 | "address": "*", (glob) | |
735 | "locker": "client.*" (glob) | |
736 | } | |
737 | } | |
738 | $ rbd lock list quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
739 | <locks> | |
740 | <id> | |
741 | <locker>client.*</locker> (glob) | |
742 | <address>*</address> (glob) | |
743 | </id> | |
744 | </locks> | |
745 | $ rbd lock list baz | |
746 | There are 3 shared locks on this image. | |
747 | Lock tag: tag | |
748 | Locker*ID*Address* (glob) | |
749 | client.*id[123].* (re) | |
750 | client.*id[123].* (re) | |
751 | client.*id[123].* (re) | |
752 | $ rbd lock list baz --format json | python -mjson.tool | sed 's/,$/, /' | |
753 | { | |
754 | "id1": { | |
755 | "address": "*", (glob) | |
756 | "locker": "client.*" (glob) | |
757 | }, | |
758 | "id2": { | |
759 | "address": "*", (glob) | |
760 | "locker": "client.*" (glob) | |
761 | }, | |
762 | "id3": { | |
763 | "address": "*", (glob) | |
764 | "locker": "client.*" (glob) | |
765 | } | |
766 | } | |
767 | $ rbd lock list baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
768 | <locks> | |
769 | <id*> (glob) | |
770 | <locker>client.*</locker> (glob) | |
771 | <address>*</address> (glob) | |
772 | </id*> (glob) | |
773 | <id*> (glob) | |
774 | <locker>client.*</locker> (glob) | |
775 | <address>*</address> (glob) | |
776 | </id*> (glob) | |
777 | <id*> (glob) | |
778 | <locker>client.*</locker> (glob) | |
779 | <address>*</address> (glob) | |
780 | </id*> (glob) | |
781 | </locks> | |
782 | $ rbd snap list foo | |
783 | SNAPID NAME SIZE TIMESTAMP | |
784 | *snap*1024*MB* (glob) | |
785 | $ rbd snap list foo --format json | python -mjson.tool | sed 's/,$/, /' | |
786 | [ | |
787 | { | |
788 | "id": *, (glob) | |
789 | "name": "snap", | |
790 | "size": 1073741824, | |
791 | "timestamp": "" | |
792 | } | |
793 | ] | |
794 | $ rbd snap list foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
795 | <snapshots> | |
796 | <snapshot> | |
797 | <id>*</id> (glob) | |
798 | <name>snap</name> | |
799 | <size>1073741824</size> | |
800 | <timestamp></timestamp> | |
801 | </snapshot> | |
802 | </snapshots> | |
803 | $ rbd snap list bar | |
804 | SNAPID NAME SIZE TIMESTAMP | |
805 | *snap*512*MB* (glob) | |
806 | *snap2*1024*MB* (glob) | |
807 | $ rbd snap list bar --format json | python -mjson.tool | sed 's/,$/, /' | |
808 | [ | |
809 | { | |
810 | "id": *, (glob) | |
811 | "name": "snap", | |
812 | "size": 536870912, | |
813 | "timestamp": * (glob) | |
814 | }, | |
815 | { | |
816 | "id": *, (glob) | |
817 | "name": "snap2", | |
818 | "size": 1073741824, | |
819 | "timestamp": * (glob) | |
820 | } | |
821 | ] | |
822 | $ rbd snap list bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
823 | <snapshots> | |
824 | <snapshot> | |
825 | <id>*</id> (glob) | |
826 | <name>snap</name> | |
827 | <size>536870912</size> | |
828 | <timestamp>*</timestamp> (glob) | |
829 | </snapshot> | |
830 | <snapshot> | |
831 | <id>*</id> (glob) | |
832 | <name>snap2</name> | |
833 | <size>1073741824</size> | |
834 | <timestamp>*</timestamp> (glob) | |
835 | </snapshot> | |
836 | </snapshots> | |
837 | $ rbd snap list baz | |
838 | $ rbd snap list baz --format json | python -mjson.tool | sed 's/,$/, /' | |
839 | [] | |
840 | $ rbd snap list baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
841 | <snapshots></snapshots> | |
842 | $ rbd snap list rbd_other/child | |
843 | SNAPID NAME SIZE TIMESTAMP | |
844 | *snap*512*MB* (glob) | |
845 | $ rbd snap list rbd_other/child --format json | python -mjson.tool | sed 's/,$/, /' | |
846 | [ | |
847 | { | |
848 | "id": *, (glob) | |
849 | "name": "snap", | |
850 | "size": 536870912, | |
851 | "timestamp": * (glob) | |
852 | } | |
853 | ] | |
854 | $ rbd snap list rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
855 | <snapshots> | |
856 | <snapshot> | |
857 | <id>*</id> (glob) | |
858 | <name>snap</name> | |
859 | <size>536870912</size> | |
860 | <timestamp>*</timestamp> (glob) | |
861 | </snapshot> | |
862 | </snapshots> | |
863 | $ rbd disk-usage --pool rbd_other 2>/dev/null | |
864 | NAME PROVISIONED USED | |
865 | child@snap 512M 0 | |
866 | child 512M 4096k | |
867 | deep-flatten-child@snap 512M 0 | |
868 | deep-flatten-child 512M 0 | |
869 | <TOTAL> 1024M 4096k | |
870 | $ rbd disk-usage --pool rbd_other --format json | python -mjson.tool | sed 's/,$/, /' | |
871 | { | |
872 | "images": [ | |
873 | { | |
874 | "name": "child", | |
875 | "provisioned_size": 536870912, | |
876 | "snapshot": "snap", | |
877 | "used_size": 0 | |
878 | }, | |
879 | { | |
880 | "name": "child", | |
881 | "provisioned_size": 536870912, | |
882 | "used_size": 4194304 | |
883 | }, | |
884 | { | |
885 | "name": "deep-flatten-child", | |
886 | "provisioned_size": 536870912, | |
887 | "snapshot": "snap", | |
888 | "used_size": 0 | |
889 | }, | |
890 | { | |
891 | "name": "deep-flatten-child", | |
892 | "provisioned_size": 536870912, | |
893 | "used_size": 0 | |
894 | } | |
895 | ], | |
896 | "total_provisioned_size": 1073741824, | |
897 | "total_used_size": 4194304 | |
898 | } | |
899 | $ rbd disk-usage --pool rbd_other --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp' | |
900 | <stats> | |
901 | <images> | |
902 | <image> | |
903 | <name>child</name> | |
904 | <snapshot>snap</snapshot> | |
905 | <provisioned_size>536870912</provisioned_size> | |
906 | <used_size>0</used_size> | |
907 | </image> | |
908 | <image> | |
909 | <name>child</name> | |
910 | <provisioned_size>536870912</provisioned_size> | |
911 | <used_size>4194304</used_size> | |
912 | </image> | |
913 | <image> | |
914 | <name>deep-flatten-child</name> | |
915 | <snapshot>snap</snapshot> | |
916 | <provisioned_size>536870912</provisioned_size> | |
917 | <used_size>0</used_size> | |
918 | </image> | |
919 | <image> | |
920 | <name>deep-flatten-child</name> | |
921 | <provisioned_size>536870912</provisioned_size> | |
922 | <used_size>0</used_size> | |
923 | </image> | |
924 | </images> | |
925 | <total_provisioned_size>1073741824</total_provisioned_size> | |
926 | <total_used_size>4194304</total_used_size> | |
927 | </stats> | |
928 | ||
929 | # cleanup | |
930 | $ rbd snap remove --no-progress rbd_other/deep-flatten-child@snap | |
931 | $ rbd snap remove --no-progress rbd_other/child@snap | |
932 | $ rbd snap unprotect bar@snap | |
933 | $ rbd snap purge bar 2> /dev/null | |
934 | $ rbd snap purge foo 2> /dev/null | |
935 | $ rbd rm rbd_other/deep-flatten-child 2> /dev/null | |
936 | $ rbd rm rbd_other/child 2> /dev/null | |
937 | $ rbd rm foo 2> /dev/null | |
938 | $ rbd rm bar 2> /dev/null | |
939 | $ rbd rm quux 2> /dev/null | |
940 | $ rbd rm quuy 2> /dev/null | |
941 | $ rbd rm baz 2> /dev/null | |
942 | $ ceph osd pool delete rbd_other rbd_other --yes-i-really-really-mean-it | |
943 | pool 'rbd_other' removed |