1 ls on empty pool never containing images
2 ========================================
3 $ ceph osd pool create rbd_other 8
4 pool 'rbd_other' created
5 $ rbd pool init rbd_other
6 $ rados -p rbd rm rbd_directory >/dev/null 2>&1 || true
15 $ rbd create -s 1024 --image-format 1 foo
16 rbd: image format 1 is deprecated
17 $ rbd create -s 512 --image-format 2 bar
18 $ rbd create -s 2048 --image-format 2 --image-feature layering baz
19 $ rbd create -s 1 --image-format 1 quux
20 rbd: image format 1 is deprecated
21 $ rbd create -s 1G --image-format 2 quuy
25 $ rbd snap create bar@snap
26 $ rbd resize -s 1024 --no-progress bar
27 $ rbd resize -s 2G --no-progress quuy
28 $ rbd snap create bar@snap2
29 $ rbd snap create foo@snap
33 $ rbd snap protect bar@snap
34 $ rbd clone --image-feature layering,exclusive-lock,object-map,fast-diff bar@snap rbd_other/child
35 $ rbd snap create rbd_other/child@snap
36 $ rbd flatten rbd_other/child 2> /dev/null
37 $ rbd bench rbd_other/child --io-type write --io-pattern seq --io-total 1B > /dev/null 2>&1
38 $ rbd clone bar@snap rbd_other/deep-flatten-child
39 $ rbd snap create rbd_other/deep-flatten-child@snap
40 $ rbd flatten rbd_other/deep-flatten-child 2> /dev/null
44 $ rbd lock add quux id
45 $ rbd lock add baz id1 --shared tag
46 $ rbd lock add baz id2 --shared tag
47 $ rbd lock add baz id3 --shared tag
51 $ rbd children foo@snap
52 $ rbd children bar@snap
54 $ rbd children bar@snap2
55 TODO: figure out why .* does not match the block_name_prefix line in rbd info.
56 For now, use a more inclusive regex.
59 \tsize 1024 MB in 256 objects (esc)
60 \torder 22 (4096 kB objects) (esc)
63 $ rbd info foo --format json | python -mjson.tool | sed 's/,$/, /'
65 "block_name_prefix": "rb.0.*", (glob)
68 "object_size": 4194304,
73 The version of xml_pp included in ubuntu precise always prints a 'warning'
74 whenever it is run. grep -v to ignore it, but still work on other distros.
75 $ rbd info foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
78 <size>1073741824</size>
79 <objects>256</objects>
81 <object_size>4194304</object_size>
82 <block_name_prefix>rb.0.*</block_name_prefix> (glob)
87 \tsize 1024 MB in 256 objects (esc)
88 \torder 22 (4096 kB objects) (esc)
91 \tprotected: False (esc)
92 $ rbd info foo@snap --format json | python -mjson.tool | sed 's/,$/, /'
94 "block_name_prefix": "rb.0.*", (glob)
97 "object_size": 4194304,
100 "protected": "false",
103 $ rbd info foo@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
106 <size>1073741824</size>
107 <objects>256</objects>
109 <object_size>4194304</object_size>
110 <block_name_prefix>rb.0*</block_name_prefix> (glob)
112 <protected>false</protected>
116 \tsize 1024 MB in 256 objects (esc)
117 \torder 22 (4096 kB objects) (esc)
120 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
122 \tcreate_timestamp:* (glob)
123 $ rbd info bar --format json | python -mjson.tool | sed 's/,$/, /'
125 "block_name_prefix": "rbd_data.*", (glob)
126 "create_timestamp": "*", (glob)
137 "object_size": 4194304,
142 $ rbd info bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
145 <size>1073741824</size>
146 <objects>256</objects>
148 <object_size>4194304</object_size>
149 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
152 <feature>layering</feature>
153 <feature>exclusive-lock</feature>
154 <feature>object-map</feature>
155 <feature>fast-diff</feature>
156 <feature>deep-flatten</feature>
159 <create_timestamp>*</create_timestamp> (glob)
163 \tsize 512 MB in 128 objects (esc)
164 \torder 22 (4096 kB objects) (esc)
167 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
169 \tcreate_timestamp:* (glob)
170 \tprotected: True (esc)
171 $ rbd info bar@snap --format json | python -mjson.tool | sed 's/,$/, /'
173 "block_name_prefix": "rbd_data.*", (glob)
174 "create_timestamp": "*", (glob)
185 "object_size": 4194304,
191 $ rbd info bar@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
194 <size>536870912</size>
195 <objects>128</objects>
197 <object_size>4194304</object_size>
198 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
201 <feature>layering</feature>
202 <feature>exclusive-lock</feature>
203 <feature>object-map</feature>
204 <feature>fast-diff</feature>
205 <feature>deep-flatten</feature>
208 <create_timestamp>*</create_timestamp> (glob)
209 <protected>true</protected>
213 \tsize 1024 MB in 256 objects (esc)
214 \torder 22 (4096 kB objects) (esc)
217 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
219 \tcreate_timestamp:* (glob)
220 \tprotected: False (esc)
221 $ rbd info bar@snap2 --format json | python -mjson.tool | sed 's/,$/, /'
223 "block_name_prefix": "rbd_data.*", (glob)
224 "create_timestamp": "*", (glob)
235 "object_size": 4194304,
238 "protected": "false",
241 $ rbd info bar@snap2 --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
244 <size>1073741824</size>
245 <objects>256</objects>
247 <object_size>4194304</object_size>
248 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
251 <feature>layering</feature>
252 <feature>exclusive-lock</feature>
253 <feature>object-map</feature>
254 <feature>fast-diff</feature>
255 <feature>deep-flatten</feature>
258 <create_timestamp>*</create_timestamp> (glob)
259 <protected>false</protected>
263 \tsize 2048 MB in 512 objects (esc)
264 \torder 22 (4096 kB objects) (esc)
267 \tfeatures: layering (esc)
269 \tcreate_timestamp:* (glob)
270 $ rbd info baz --format json | python -mjson.tool | sed 's/,$/, /'
272 "block_name_prefix": "rbd_data.*", (glob)
273 "create_timestamp": "*", (glob)
280 "object_size": 4194304,
285 $ rbd info baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
288 <size>2147483648</size>
289 <objects>512</objects>
291 <object_size>4194304</object_size>
292 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
295 <feature>layering</feature>
298 <create_timestamp>*</create_timestamp> (glob)
302 \tsize 1024 kB in 1 objects (esc)
303 \torder 22 (4096 kB objects) (esc)
306 $ rbd info quux --format json | python -mjson.tool | sed 's/,$/, /'
308 "block_name_prefix": "rb.0.*", (glob)
311 "object_size": 4194304,
316 $ rbd info quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
322 <object_size>4194304</object_size>
323 <block_name_prefix>rb.0.*</block_name_prefix> (glob)
326 $ rbd info rbd_other/child
328 \tsize 512 MB in 128 objects (esc)
329 \torder 22 (4096 kB objects) (esc)
332 \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
334 \tcreate_timestamp:* (glob)
335 $ rbd info rbd_other/child --format json | python -mjson.tool | sed 's/,$/, /'
337 "block_name_prefix": "rbd_data.*", (glob)
338 "create_timestamp": "*", (glob)
348 "object_size": 4194304,
353 $ rbd info rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
356 <size>536870912</size>
357 <objects>128</objects>
359 <object_size>4194304</object_size>
360 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
363 <feature>layering</feature>
364 <feature>exclusive-lock</feature>
365 <feature>object-map</feature>
366 <feature>fast-diff</feature>
369 <create_timestamp>*</create_timestamp> (glob)
371 $ rbd info rbd_other/child@snap
373 \tsize 512 MB in 128 objects (esc)
374 \torder 22 (4096 kB objects) (esc)
377 \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
379 \tcreate_timestamp:* (glob)
380 \tprotected: False (esc)
381 \tparent: rbd/bar@snap (esc)
382 \toverlap: 512 MB (esc)
383 $ rbd info rbd_other/child@snap --format json | python -mjson.tool | sed 's/,$/, /'
385 "block_name_prefix": "rbd_data.*", (glob)
386 "create_timestamp": "*", (glob)
396 "object_size": 4194304,
401 "overlap": 536870912,
405 "protected": "false",
408 $ rbd info rbd_other/child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
411 <size>536870912</size>
412 <objects>128</objects>
414 <object_size>4194304</object_size>
415 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
418 <feature>layering</feature>
419 <feature>exclusive-lock</feature>
420 <feature>object-map</feature>
421 <feature>fast-diff</feature>
424 <create_timestamp>*</create_timestamp> (glob)
425 <protected>false</protected>
429 <snapshot>snap</snapshot>
430 <overlap>536870912</overlap>
433 $ rbd info rbd_other/deep-flatten-child
434 rbd image 'deep-flatten-child':
435 \tsize 512 MB in 128 objects (esc)
436 \torder 22 (4096 kB objects) (esc)
439 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
441 \tcreate_timestamp:* (glob)
442 $ rbd info rbd_other/deep-flatten-child --format json | python -mjson.tool | sed 's/,$/, /'
444 "block_name_prefix": "rbd_data.*", (glob)
445 "create_timestamp": "*", (glob)
455 "name": "deep-flatten-child",
456 "object_size": 4194304,
461 $ rbd info rbd_other/deep-flatten-child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
463 <name>deep-flatten-child</name>
464 <size>536870912</size>
465 <objects>128</objects>
467 <object_size>4194304</object_size>
468 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
471 <feature>layering</feature>
472 <feature>exclusive-lock</feature>
473 <feature>object-map</feature>
474 <feature>fast-diff</feature>
475 <feature>deep-flatten</feature>
478 <create_timestamp>*</create_timestamp> (glob)
480 $ rbd info rbd_other/deep-flatten-child@snap
481 rbd image 'deep-flatten-child':
482 \tsize 512 MB in 128 objects (esc)
483 \torder 22 (4096 kB objects) (esc)
486 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
488 \tcreate_timestamp:* (glob)
489 \tprotected: False (esc)
490 $ rbd info rbd_other/deep-flatten-child@snap --format json | python -mjson.tool | sed 's/,$/, /'
492 "block_name_prefix": "rbd_data.*", (glob)
493 "create_timestamp": "*", (glob)
503 "name": "deep-flatten-child",
504 "object_size": 4194304,
507 "protected": "false",
510 $ rbd info rbd_other/deep-flatten-child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
512 <name>deep-flatten-child</name>
513 <size>536870912</size>
514 <objects>128</objects>
516 <object_size>4194304</object_size>
517 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
520 <feature>layering</feature>
521 <feature>exclusive-lock</feature>
522 <feature>object-map</feature>
523 <feature>fast-diff</feature>
524 <feature>deep-flatten</feature>
527 <create_timestamp>*</create_timestamp> (glob)
528 <protected>false</protected>
536 $ rbd list --format json | python -mjson.tool | sed 's/,$/, /'
544 $ rbd list --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
553 NAME SIZE PARENT FMT PROT LOCK
562 $ rbd list -l --format json | python -mjson.tool | sed 's/,$/, /'
572 "protected": "false",
579 "lock_type": "exclusive",
597 "protected": "false",
604 "lock_type": "shared",
613 $ rbd list -l --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
617 <size>1073741824</size>
622 <snapshot>snap</snapshot>
623 <size>1073741824</size>
625 <protected>false</protected>
631 <lock_type>exclusive</lock_type>
635 <size>1073741824</size>
640 <snapshot>snap</snapshot>
641 <size>536870912</size>
643 <protected>true</protected>
647 <snapshot>snap2</snapshot>
648 <size>1073741824</size>
650 <protected>false</protected>
654 <size>2147483648</size>
656 <lock_type>shared</lock_type>
660 <size>2147483648</size>
667 $ rbd list rbd_other --format json | python -mjson.tool | sed 's/,$/, /'
672 $ rbd list rbd_other --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
675 <name>deep-flatten-child</name>
677 $ rbd list rbd_other -l
678 NAME SIZE PARENT FMT PROT LOCK
680 child@snap 512M rbd/bar@snap 2
681 deep-flatten-child 512M 2
682 deep-flatten-child@snap 512M 2
683 $ rbd list rbd_other -l --format json | python -mjson.tool | sed 's/,$/, /'
698 "protected": "false",
704 "image": "deep-flatten-child",
709 "image": "deep-flatten-child",
710 "protected": "false",
715 $ rbd list rbd_other -l --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
719 <size>536870912</size>
724 <snapshot>snap</snapshot>
725 <size>536870912</size>
729 <snapshot>snap</snapshot>
732 <protected>false</protected>
735 <image>deep-flatten-child</image>
736 <size>536870912</size>
740 <image>deep-flatten-child</image>
741 <snapshot>snap</snapshot>
742 <size>536870912</size>
744 <protected>false</protected>
748 $ rbd lock list foo --format json | python -mjson.tool | sed 's/,$/, /'
750 $ rbd lock list foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
753 There is 1 exclusive lock on this image.
754 Locker*ID*Address* (glob)
756 $ rbd lock list quux --format json | python -mjson.tool | sed 's/,$/, /'
759 "address": "*", (glob)
760 "locker": "client.*" (glob)
763 $ rbd lock list quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
766 <locker>client.*</locker> (glob)
767 <address>*</address> (glob)
771 There are 3 shared locks on this image.
773 Locker*ID*Address* (glob)
774 client.*id[123].* (re)
775 client.*id[123].* (re)
776 client.*id[123].* (re)
777 $ rbd lock list baz --format json | python -mjson.tool | sed 's/,$/, /'
780 "address": "*", (glob)
781 "locker": "client.*" (glob)
784 "address": "*", (glob)
785 "locker": "client.*" (glob)
788 "address": "*", (glob)
789 "locker": "client.*" (glob)
792 $ rbd lock list baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
795 <locker>client.*</locker> (glob)
796 <address>*</address> (glob)
799 <locker>client.*</locker> (glob)
800 <address>*</address> (glob)
803 <locker>client.*</locker> (glob)
804 <address>*</address> (glob)
808 SNAPID NAME SIZE TIMESTAMP
809 *snap*1024*MB* (glob)
810 $ rbd snap list foo --format json | python -mjson.tool | sed 's/,$/, /'
819 $ rbd snap list foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
824 <size>1073741824</size>
825 <timestamp></timestamp>
829 SNAPID NAME SIZE TIMESTAMP
831 *snap2*1024*MB* (glob)
832 $ rbd snap list bar --format json | python -mjson.tool | sed 's/,$/, /'
838 "timestamp": * (glob)
844 "timestamp": * (glob)
847 $ rbd snap list bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
852 <size>536870912</size>
853 <timestamp>*</timestamp> (glob)
858 <size>1073741824</size>
859 <timestamp>*</timestamp> (glob)
863 $ rbd snap list baz --format json | python -mjson.tool | sed 's/,$/, /'
865 $ rbd snap list baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
866 <snapshots></snapshots>
867 $ rbd snap list rbd_other/child
868 SNAPID NAME SIZE TIMESTAMP
870 $ rbd snap list rbd_other/child --format json | python -mjson.tool | sed 's/,$/, /'
876 "timestamp": * (glob)
879 $ rbd snap list rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
884 <size>536870912</size>
885 <timestamp>*</timestamp> (glob)
888 $ rbd disk-usage --pool rbd_other 2>/dev/null
889 NAME PROVISIONED USED
892 deep-flatten-child@snap 512M 0
893 deep-flatten-child 512M 0
895 $ rbd disk-usage --pool rbd_other --format json | python -mjson.tool | sed 's/,$/, /'
900 "provisioned_size": 536870912,
906 "provisioned_size": 536870912,
910 "name": "deep-flatten-child",
911 "provisioned_size": 536870912,
916 "name": "deep-flatten-child",
917 "provisioned_size": 536870912,
921 "total_provisioned_size": 1073741824,
922 "total_used_size": 4194304
924 $ rbd disk-usage --pool rbd_other --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
929 <snapshot>snap</snapshot>
930 <provisioned_size>536870912</provisioned_size>
931 <used_size>0</used_size>
935 <provisioned_size>536870912</provisioned_size>
936 <used_size>4194304</used_size>
939 <name>deep-flatten-child</name>
940 <snapshot>snap</snapshot>
941 <provisioned_size>536870912</provisioned_size>
942 <used_size>0</used_size>
945 <name>deep-flatten-child</name>
946 <provisioned_size>536870912</provisioned_size>
947 <used_size>0</used_size>
950 <total_provisioned_size>1073741824</total_provisioned_size>
951 <total_used_size>4194304</total_used_size>
955 $ rbd snap remove --no-progress rbd_other/deep-flatten-child@snap
956 $ rbd snap remove --no-progress rbd_other/child@snap
957 $ rbd snap unprotect bar@snap
958 $ rbd snap purge bar 2> /dev/null
959 $ rbd snap purge foo 2> /dev/null
960 $ rbd rm rbd_other/deep-flatten-child 2> /dev/null
961 $ rbd rm rbd_other/child 2> /dev/null
962 $ rbd rm foo 2> /dev/null
963 $ rbd rm bar 2> /dev/null
964 $ rbd rm quux 2> /dev/null
965 $ rbd rm quuy 2> /dev/null
966 $ rbd rm baz 2> /dev/null
967 $ ceph osd pool delete rbd_other rbd_other --yes-i-really-really-mean-it
968 pool 'rbd_other' removed