rbd快照

好的,我将把关于 RBD 克隆快照删除/回收机制 的两个教程合并,创建一个带有详细命令、操作步骤和底层原理的综合指南


📖 RBD 进阶操作:克隆与空间管理指南本指南涵盖了 RBD 镜像的 克隆创建 及其父子链的管理,以及在 快照删除 时存储空间是如何被释放的关键原理。

第一部分:基于快照创建克隆镜像(CoW 原理)克隆(Clone)是一种写时复制(CoW)子镜像,它与父快照共享数据块,可以实现极速部署。

步骤 1:创建父镜像和快照这是创建克隆的起点。

动作 命令示例 原理/解释
创建快照 rbd snap create poolname/base_vm@initial_state 瞬时操作: 该操作仅记录当前镜像数据块的 RADOS 对象 ID 集合,并将快照设置为指向这个只读集合的指针。不会复制任何数据,因此速度极快。
确认快照 rbd snap ls poolname/base_vm 验证快照元数据已成功创建。

步骤 2:保护快照(建立依赖)命令: rbd snap protect poolname/base_vm@initial_state

原理:

  • 依赖链锁定: 保护操作设置了一个元数据标志,表明该快照现在是"被依赖"的。
  • 强制安全: 被保护的快照无法被删除。这确保了作为子镜像数据源的父快照不会意外丢失,维护了数据完整性。

步骤 3:创建克隆镜像(CoW 触发)命令: rbd clone poolname/base_vm@initial_state target_pool/vm01_disk

原理:

  1. 元数据链接: 创建 vm01_disk 的元数据,其中包含一个明确指向父快照的指针。
  2. 数据共享(Read): 客户端尝试读取 vm01_disk 数据时,如果该块尚未被修改,RBD 驱动会透明地沿着指针从父快照读取共享数据。
  3. 写时复制(Write): 客户端首次尝试写入某个块时,才会触发 CoW 机制。
  • 旧块复制: 父快照中的原始数据块被复制到新的 RADOS 对象中。
  • 新块写入: 客户端的新数据写入到这个新的对象位置。

  1. 空间效率: 克隆镜像只记录它与父快照的差异数据,因此刚创建时,它几乎不占用额外空间。

第二部分:快照删除与空间回收(消除依赖)删除快照的关键在于:如果它有子镜像依赖,必须先消除依赖。

步骤 4:解除依赖链(处理克隆镜像)要删除一个被保护且被克隆引用的快照,您必须先处理所有依赖它的克隆镜像。

选项 A:删除克隆(如果不再需要)| 动作 | 命令示例 | 原理/解释 |

| --- | --- | --- |

| 删除克隆 | rbd rm target_pool/vm01_disk | 直接消除依赖: 一旦克隆镜像被删除,它对父快照的依赖关系即刻消失。该克隆所独有的数据块会被标记为可回收。 |

选项 B:扁平化克隆(如果仍需保留克隆)| 动作 | 命令示例 | 原理/解释 |

| --- | --- | --- |

| 扁平化 | rbd flatten target_pool/vm01_disk | 消除共享,数据独立: 这是强制数据复制的操作。系统会将父快照中所有被 vm01_disk 共享的数据块复制vm01_disk 自身的存储空间中。 |

| 空间变化 | 无专门命令,需观察 rbd du | 克隆镜像的物理占用空间会显著增加 ,因为共享数据现在变为独占数据。操作完成后,vm01_disk 成为一个独立镜像,不再依赖父快照。 |

步骤 5:最终删除快照与空间回收在所有依赖该快照的克隆都被处理(删除或扁平化)后,才能执行删除操作。

动作 命令示例 原理/解释
取消保护 rbd snap unprotect poolname/base_vm@initial_state 依赖计数为零后,取消保护。如果仍有依赖,该操作会失败。
删除快照 rbd snap rm poolname/base_vm@initial_state 触发垃圾回收: 快照被删除后,该快照所独有的、并且不再被链条中任何其他快照或镜像引用的数据块,会被 Ceph 的 RADOS 垃圾回收机制 标记并异步删除。
查看回收 需等待 OSD 运行 OSDs 会在后台释放对应的 RADOS 对象。从命令执行到存储池容量统计(ceph df)下降会存在一定延迟,尤其是在集群负载较高时。
相关推荐
lisanmengmeng10 天前
ceph 中的OSD
ceph
lisanmengmeng11 天前
CEPH的基本结构
ceph
lisanmengmeng14 天前
ceph一些命令
ceph
lisanmengmeng23 天前
cephadm 17.2.5安装部署 (二)
linux·运维·服务器·ceph
only_Klein23 天前
kubernetes集群下的分布式存储方案-ceph
ceph·kubernetes·分布式存储
苦逼IT运维23 天前
Helm 实战指南(四):生产环境 Helm 部署 CVAT 全记录:Ceph 存储、GPU 节点污点调度与 HTTPS 指南
ceph·网络协议·https
大新新大浩浩24 天前
ceph平台-未及时移除故障osd导致根目录100%问题的故障记录
ceph
北亚数据恢复25 天前
分布式数据恢复—Ceph+TiDB数据恢复报告
分布式·ceph·数据恢复·tidb·服务器数据恢复·北亚数据恢复·存储数据恢复
lisanmengmeng1 个月前
添加ceph节点
linux·服务器·ceph
张小凡vip1 个月前
Kubernetes---存储方案:Rook自动结合Ceph
ceph·容器·kubernetes