Object Difference Between RBD Format1 and Format2
syndicated
Lets take a look how rbd object are store on rados and the difference between format 1 and format 2.
Format 1
$ rbd create myrbd --size=10
$ rados ls -p rbd
myrbd.rbd
rbd_directory
$ rbd map myrbd
$ dd if=/dev/zero of=/dev/rbd/rbd/myrbd
$ rados ls -p rbd
myrbd.rbd
rb.0.1286.74b0dc51.000000000000
rb.0.1286.74b0dc51.000000000001
rb.0.1286.74b0dc51.000000000002
rbd_directory
- $image_name.rbd : Contain the id of the image ( rb.0.1286.74b0dc51 )
- $rbd_id.$fragment : Raw data image
- rbd_directory : Rbd image list for the current pool
Format 2
$ rbd create myrbd --size=10 --image-format=2
$ rados ls -p rbd
rbd_directory
rbd_header.134a74b0dc51
rbd_id.myrbd
$ rbd map myrbd
$ dd if=/dev/zero of=/dev/rbd/rbd/myrbd
$ rados ls -p rbd
rbd_data.134a74b0dc51.0000000000000000
rbd_data.134a74b0dc51.0000000000000001
rbd_data.134a74b0dc51.0000000000000002
rbd_directory
rbd_header.134a74b0dc51
rbd_id.myrbd
- rbd_data.$rbd_id.$fragment : Raw data image
- rbd_directory : Rbd image list for the current pool
- rbd_header.$rbd_id : Metadata about the image
- rbd_id.$image_name : Contain the id of the image ( 134a74b0dc51 )