「Ceph」- 块存储 克隆(Clone)

解决方案

Ceph 支持从 Snapshot 创建 Clone,其被称为快照分层(Snapshot Layering)。虽然 Snapshot 是只读的,但是 COW Clone 是可写的。

Ceph RBD Image 有两种:
1)format 1:默认 Image 格式;
2)format 2:COW 仅支持 Format 2 的 RDB Image;

配置案例

// 创建存储

# rbd create rbd2 --size 10240 --image-feature layering --name client.rbd
# rbd info --image rbd2 --name client.rbd

// 创建快照
// 并保护快照,否则破坏快照将导致其他克隆无法使用;

# rbd snap create rbd/rbd2@snapshot_for_cloning --name client.rbd
# rbd snap protect rbd/rbd2@snapshot_for_cloning --name client.rbd

// 创建克隆

# rbd clone <pool-name>/<parent-image-name>@<snap-name> <pool-name>/<child_image-name> --image-feature <feature-name>
# rbd clone rbd/rbd2@snapshot_for_cloning rbd/clone_rbd2 --image-feature layering --name client.rbd

// 查看信息
// 在镜像信息中,将包含父镜像相关的信息

# rbd info rbd/clone_rbd2 --name client.rbd

// 摆脱父镜像,实现完整克隆
// 之后,可以考虑移除父镜像

# rbd flatten rbd/clone_rbd2 --name client.rbd
# rbd info --image clone_rbd2 --name client.rbd

# rbd snap unprotect rbd/rbd2@snapshot_for_cloning --name client.rbd
# rbd snap rm rbd/rbd2@snapshot_for_cloning --name client.rbd