注意
本文档适用于 Ceph 的开发版本。
RBD 导出与导入
这是 RBD 镜像或快照的文件格式。它是完整镜像的稀疏格式。文件中包含三个记录部分。
头文件。
元数据。
差异。
头文件
“rbd image v2\n”
元数据记录
每条记录都有一个字节的“标签”来标识记录类型,后面跟着数据长度,然后再跟着一些其他数据。
元数据记录位于镜像的第一部分。顺序并不重要,只要所有元数据记录都在数据记录之前即可。
在 v2 中,每个部分都有以下元数据:(1 字节)标签。(8 字节)长度。(n 字节)数据。
通过这种方式,我们可以跳过无法识别的标签。
镜像顺序
u8: ‘O’
le64: 追加数据长度 (8)
le64: 镜像顺序
镜像格式
u8: ‘F’
le64: 追加数据长度 (8)
le64: 镜像格式
镜像特性
u8: ‘T’
le64: 追加数据长度 (8)
le64: 镜像特性
镜像条带单元
u8: ‘U’
le64: 追加数据长度 (8)
le64: 镜像条带单元
镜像条带计数
u8: ‘C’
le64: 追加数据长度 (8)
le64: 镜像条带计数
ImageMeta 键和值
u8: ‘M’
le64: 追加数据长度(键长度 + 值长度 + 4 * 2)
string: image-meta key
string: image-meta value
最终记录
结束
u8: ‘E’
差异记录
记录此部分中的所有快照和 HEAD。
快照保护状态
如果 --export-format=2,则记录快照的保护状态。 - u8: ‘p’ - le64: 追加数据长度 (8) - u8: 快照保护状态(0 为 false,1 为 true)
其他
le64: 差异数量
差异 ...
详细信息请参考 rbd-diff.rst