RBD 格式 1 和格式 2 之间的对象差异

转载

让我们看看 rbd 对象如何在 rados 上存储,以及格式 1 和格式 2 之间的区别。

格式 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
  1. $image_name.rbd:包含图像的 ID(rb.0.1286.74b0dc51)
  2. $rbd_id.$fragment:原始数据图像
  3. rbd_directory:当前池的 Rbd 图像列表

格式 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
  1. rbd_data.$rbd_id.$fragment:原始数据图像
  2. rbd_directory:当前池的 Rbd 图像列表
  3. rbd_header.$rbd_id:关于图像的元数据
  4. rbd_id.$image_name:包含图像的 ID(134a74b0dc51)