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
10 <images></images> (no-eol)
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
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
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
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
50 $ rbd children foo@snap
51 $ rbd children bar@snap
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.
58 \tsize 1024 MB in 256 objects (esc)
59 \torder 22 (4096 kB objects) (esc)
62 $ rbd info foo --format json | python -mjson.tool | sed 's/,$/, /'
64 "block_name_prefix": "rb.0.*", (glob)
67 "object_size": 4194304,
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'
77 <size>1073741824</size>
78 <objects>256</objects>
80 <object_size>4194304</object_size>
81 <block_name_prefix>rb.0.*</block_name_prefix> (glob)
86 \tsize 1024 MB in 256 objects (esc)
87 \torder 22 (4096 kB objects) (esc)
90 \tprotected: False (esc)
91 $ rbd info foo@snap --format json | python -mjson.tool | sed 's/,$/, /'
93 "block_name_prefix": "rb.0.*", (glob)
96 "object_size": 4194304,
102 $ rbd info foo@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
105 <size>1073741824</size>
106 <objects>256</objects>
108 <object_size>4194304</object_size>
109 <block_name_prefix>rb.0*</block_name_prefix> (glob)
111 <protected>false</protected>
115 \tsize 1024 MB in 256 objects (esc)
116 \torder 22 (4096 kB objects) (esc)
119 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
121 \tcreate_timestamp:* (glob)
122 $ rbd info bar --format json | python -mjson.tool | sed 's/,$/, /'
124 "block_name_prefix": "rbd_data.*", (glob)
125 "create_timestamp": "*", (glob)
136 "object_size": 4194304,
141 $ rbd info bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
144 <size>1073741824</size>
145 <objects>256</objects>
147 <object_size>4194304</object_size>
148 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
151 <feature>layering</feature>
152 <feature>exclusive-lock</feature>
153 <feature>object-map</feature>
154 <feature>fast-diff</feature>
155 <feature>deep-flatten</feature>
158 <create_timestamp>*</create_timestamp> (glob)
162 \tsize 512 MB in 128 objects (esc)
163 \torder 22 (4096 kB objects) (esc)
166 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
168 \tcreate_timestamp:* (glob)
169 \tprotected: True (esc)
170 $ rbd info bar@snap --format json | python -mjson.tool | sed 's/,$/, /'
172 "block_name_prefix": "rbd_data.*", (glob)
173 "create_timestamp": "*", (glob)
184 "object_size": 4194304,
190 $ rbd info bar@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
193 <size>536870912</size>
194 <objects>128</objects>
196 <object_size>4194304</object_size>
197 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
200 <feature>layering</feature>
201 <feature>exclusive-lock</feature>
202 <feature>object-map</feature>
203 <feature>fast-diff</feature>
204 <feature>deep-flatten</feature>
207 <create_timestamp>*</create_timestamp> (glob)
208 <protected>true</protected>
212 \tsize 1024 MB in 256 objects (esc)
213 \torder 22 (4096 kB objects) (esc)
216 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
218 \tcreate_timestamp:* (glob)
219 \tprotected: False (esc)
220 $ rbd info bar@snap2 --format json | python -mjson.tool | sed 's/,$/, /'
222 "block_name_prefix": "rbd_data.*", (glob)
223 "create_timestamp": "*", (glob)
234 "object_size": 4194304,
237 "protected": "false",
240 $ rbd info bar@snap2 --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
243 <size>1073741824</size>
244 <objects>256</objects>
246 <object_size>4194304</object_size>
247 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
250 <feature>layering</feature>
251 <feature>exclusive-lock</feature>
252 <feature>object-map</feature>
253 <feature>fast-diff</feature>
254 <feature>deep-flatten</feature>
257 <create_timestamp>*</create_timestamp> (glob)
258 <protected>false</protected>
262 \tsize 2048 MB in 512 objects (esc)
263 \torder 22 (4096 kB objects) (esc)
266 \tfeatures: layering (esc)
268 \tcreate_timestamp:* (glob)
269 $ rbd info baz --format json | python -mjson.tool | sed 's/,$/, /'
271 "block_name_prefix": "rbd_data.*", (glob)
272 "create_timestamp": "*", (glob)
279 "object_size": 4194304,
284 $ rbd info baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
287 <size>2147483648</size>
288 <objects>512</objects>
290 <object_size>4194304</object_size>
291 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
294 <feature>layering</feature>
297 <create_timestamp>*</create_timestamp> (glob)
301 \tsize 1024 kB in 1 objects (esc)
302 \torder 22 (4096 kB objects) (esc)
305 $ rbd info quux --format json | python -mjson.tool | sed 's/,$/, /'
307 "block_name_prefix": "rb.0.*", (glob)
310 "object_size": 4194304,
315 $ rbd info quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
321 <object_size>4194304</object_size>
322 <block_name_prefix>rb.0.*</block_name_prefix> (glob)
325 $ rbd info rbd_other/child
327 \tsize 512 MB in 128 objects (esc)
328 \torder 22 (4096 kB objects) (esc)
331 \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
333 \tcreate_timestamp:* (glob)
334 $ rbd info rbd_other/child --format json | python -mjson.tool | sed 's/,$/, /'
336 "block_name_prefix": "rbd_data.*", (glob)
337 "create_timestamp": "*", (glob)
347 "object_size": 4194304,
352 $ rbd info rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
355 <size>536870912</size>
356 <objects>128</objects>
358 <object_size>4194304</object_size>
359 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
362 <feature>layering</feature>
363 <feature>exclusive-lock</feature>
364 <feature>object-map</feature>
365 <feature>fast-diff</feature>
368 <create_timestamp>*</create_timestamp> (glob)
370 $ rbd info rbd_other/child@snap
372 \tsize 512 MB in 128 objects (esc)
373 \torder 22 (4096 kB objects) (esc)
376 \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
378 \tcreate_timestamp:* (glob)
379 \tprotected: False (esc)
380 \tparent: rbd/bar@snap (esc)
381 \toverlap: 512 MB (esc)
382 $ rbd info rbd_other/child@snap --format json | python -mjson.tool | sed 's/,$/, /'
384 "block_name_prefix": "rbd_data.*", (glob)
385 "create_timestamp": "*", (glob)
395 "object_size": 4194304,
400 "overlap": 536870912,
404 "protected": "false",
407 $ rbd info rbd_other/child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
410 <size>536870912</size>
411 <objects>128</objects>
413 <object_size>4194304</object_size>
414 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
417 <feature>layering</feature>
418 <feature>exclusive-lock</feature>
419 <feature>object-map</feature>
420 <feature>fast-diff</feature>
423 <create_timestamp>*</create_timestamp> (glob)
424 <protected>false</protected>
428 <snapshot>snap</snapshot>
429 <overlap>536870912</overlap>
432 $ rbd info rbd_other/deep-flatten-child
433 rbd image 'deep-flatten-child':
434 \tsize 512 MB in 128 objects (esc)
435 \torder 22 (4096 kB objects) (esc)
438 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
440 \tcreate_timestamp:* (glob)
441 $ rbd info rbd_other/deep-flatten-child --format json | python -mjson.tool | sed 's/,$/, /'
443 "block_name_prefix": "rbd_data.*", (glob)
444 "create_timestamp": "*", (glob)
454 "name": "deep-flatten-child",
455 "object_size": 4194304,
460 $ rbd info rbd_other/deep-flatten-child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
462 <name>deep-flatten-child</name>
463 <size>536870912</size>
464 <objects>128</objects>
466 <object_size>4194304</object_size>
467 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
470 <feature>layering</feature>
471 <feature>exclusive-lock</feature>
472 <feature>object-map</feature>
473 <feature>fast-diff</feature>
474 <feature>deep-flatten</feature>
477 <create_timestamp>*</create_timestamp> (glob)
479 $ rbd info rbd_other/deep-flatten-child@snap
480 rbd image 'deep-flatten-child':
481 \tsize 512 MB in 128 objects (esc)
482 \torder 22 (4096 kB objects) (esc)
485 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
487 \tcreate_timestamp:* (glob)
488 \tprotected: False (esc)
489 $ rbd info rbd_other/deep-flatten-child@snap --format json | python -mjson.tool | sed 's/,$/, /'
491 "block_name_prefix": "rbd_data.*", (glob)
492 "create_timestamp": "*", (glob)
502 "name": "deep-flatten-child",
503 "object_size": 4194304,
506 "protected": "false",
509 $ rbd info rbd_other/deep-flatten-child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
511 <name>deep-flatten-child</name>
512 <size>536870912</size>
513 <objects>128</objects>
515 <object_size>4194304</object_size>
516 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
519 <feature>layering</feature>
520 <feature>exclusive-lock</feature>
521 <feature>object-map</feature>
522 <feature>fast-diff</feature>
523 <feature>deep-flatten</feature>
526 <create_timestamp>*</create_timestamp> (glob)
527 <protected>false</protected>
535 $ rbd list --format json | python -mjson.tool | sed 's/,$/, /'
543 $ rbd list --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
552 NAME SIZE PARENT FMT PROT LOCK
561 $ rbd list -l --format json | python -mjson.tool | sed 's/,$/, /'
571 "protected": "false",
578 "lock_type": "exclusive",
596 "protected": "false",
603 "lock_type": "shared",
612 $ rbd list -l --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
616 <size>1073741824</size>
621 <snapshot>snap</snapshot>
622 <size>1073741824</size>
624 <protected>false</protected>
630 <lock_type>exclusive</lock_type>
634 <size>1073741824</size>
639 <snapshot>snap</snapshot>
640 <size>536870912</size>
642 <protected>true</protected>
646 <snapshot>snap2</snapshot>
647 <size>1073741824</size>
649 <protected>false</protected>
653 <size>2147483648</size>
655 <lock_type>shared</lock_type>
659 <size>2147483648</size>
666 $ rbd list rbd_other --format json | python -mjson.tool | sed 's/,$/, /'
671 $ rbd list rbd_other --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
674 <name>deep-flatten-child</name>
676 $ rbd list rbd_other -l
677 NAME SIZE PARENT FMT PROT LOCK
679 child@snap 512M rbd/bar@snap 2
680 deep-flatten-child 512M 2
681 deep-flatten-child@snap 512M 2
682 $ rbd list rbd_other -l --format json | python -mjson.tool | sed 's/,$/, /'
697 "protected": "false",
703 "image": "deep-flatten-child",
708 "image": "deep-flatten-child",
709 "protected": "false",
714 $ rbd list rbd_other -l --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
718 <size>536870912</size>
723 <snapshot>snap</snapshot>
724 <size>536870912</size>
728 <snapshot>snap</snapshot>
731 <protected>false</protected>
734 <image>deep-flatten-child</image>
735 <size>536870912</size>
739 <image>deep-flatten-child</image>
740 <snapshot>snap</snapshot>
741 <size>536870912</size>
743 <protected>false</protected>
747 $ rbd lock list foo --format json | python -mjson.tool | sed 's/,$/, /'
749 $ rbd lock list foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
752 There is 1 exclusive lock on this image.
753 Locker*ID*Address* (glob)
755 $ rbd lock list quux --format json | python -mjson.tool | sed 's/,$/, /'
758 "address": "*", (glob)
759 "locker": "client.*" (glob)
762 $ rbd lock list quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
765 <locker>client.*</locker> (glob)
766 <address>*</address> (glob)
770 There are 3 shared locks on this image.
772 Locker*ID*Address* (glob)
773 client.*id[123].* (re)
774 client.*id[123].* (re)
775 client.*id[123].* (re)
776 $ rbd lock list baz --format json | python -mjson.tool | sed 's/,$/, /'
779 "address": "*", (glob)
780 "locker": "client.*" (glob)
783 "address": "*", (glob)
784 "locker": "client.*" (glob)
787 "address": "*", (glob)
788 "locker": "client.*" (glob)
791 $ rbd lock list baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
794 <locker>client.*</locker> (glob)
795 <address>*</address> (glob)
798 <locker>client.*</locker> (glob)
799 <address>*</address> (glob)
802 <locker>client.*</locker> (glob)
803 <address>*</address> (glob)
807 SNAPID NAME SIZE TIMESTAMP
808 *snap*1024*MB* (glob)
809 $ rbd snap list foo --format json | python -mjson.tool | sed 's/,$/, /'
818 $ rbd snap list foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
823 <size>1073741824</size>
824 <timestamp></timestamp>
828 SNAPID NAME SIZE TIMESTAMP
830 *snap2*1024*MB* (glob)
831 $ rbd snap list bar --format json | python -mjson.tool | sed 's/,$/, /'
837 "timestamp": * (glob)
843 "timestamp": * (glob)
846 $ rbd snap list bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
851 <size>536870912</size>
852 <timestamp>*</timestamp> (glob)
857 <size>1073741824</size>
858 <timestamp>*</timestamp> (glob)
862 $ rbd snap list baz --format json | python -mjson.tool | sed 's/,$/, /'
864 $ rbd snap list baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
865 <snapshots></snapshots>
866 $ rbd snap list rbd_other/child
867 SNAPID NAME SIZE TIMESTAMP
869 $ rbd snap list rbd_other/child --format json | python -mjson.tool | sed 's/,$/, /'
875 "timestamp": * (glob)
878 $ rbd snap list rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
883 <size>536870912</size>
884 <timestamp>*</timestamp> (glob)
887 $ rbd disk-usage --pool rbd_other 2>/dev/null
888 NAME PROVISIONED USED
891 deep-flatten-child@snap 512M 0
892 deep-flatten-child 512M 0
894 $ rbd disk-usage --pool rbd_other --format json | python -mjson.tool | sed 's/,$/, /'
899 "provisioned_size": 536870912,
905 "provisioned_size": 536870912,
909 "name": "deep-flatten-child",
910 "provisioned_size": 536870912,
915 "name": "deep-flatten-child",
916 "provisioned_size": 536870912,
920 "total_provisioned_size": 1073741824,
921 "total_used_size": 4194304
923 $ rbd disk-usage --pool rbd_other --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
928 <snapshot>snap</snapshot>
929 <provisioned_size>536870912</provisioned_size>
930 <used_size>0</used_size>
934 <provisioned_size>536870912</provisioned_size>
935 <used_size>4194304</used_size>
938 <name>deep-flatten-child</name>
939 <snapshot>snap</snapshot>
940 <provisioned_size>536870912</provisioned_size>
941 <used_size>0</used_size>
944 <name>deep-flatten-child</name>
945 <provisioned_size>536870912</provisioned_size>
946 <used_size>0</used_size>
949 <total_provisioned_size>1073741824</total_provisioned_size>
950 <total_used_size>4194304</total_used_size>
954 $ rbd snap remove --no-progress rbd_other/deep-flatten-child@snap
955 $ rbd snap remove --no-progress rbd_other/child@snap
956 $ rbd snap unprotect bar@snap
957 $ rbd snap purge bar 2> /dev/null
958 $ rbd snap purge foo 2> /dev/null
959 $ rbd rm rbd_other/deep-flatten-child 2> /dev/null
960 $ rbd rm rbd_other/child 2> /dev/null
961 $ rbd rm foo 2> /dev/null
962 $ rbd rm bar 2> /dev/null
963 $ rbd rm quux 2> /dev/null
964 $ rbd rm quuy 2> /dev/null
965 $ rbd rm baz 2> /dev/null
966 $ ceph osd pool delete rbd_other rbd_other --yes-i-really-really-mean-it
967 pool 'rbd_other' removed