2026/1/25 3:47:14
网站建设
项目流程
中山做网站好的公司,视频网站开发工程师,微信分销佣金是什么,自己买一台服务器做自己的网站好的#xff0c;我将把关于 RBD 克隆和快照删除/回收机制的两个教程合并#xff0c;创建一个带有详细命令、操作步骤和底层原理的综合指南。#x1f4d6; RBD 进阶操作#xff1a;克隆与空间管理指南本指南涵盖了 RBD 镜像的 克隆创建 及其父子链的管理#xff0c;以及在 …好的我将把关于RBD 克隆和快照删除/回收机制的两个教程合并创建一个带有详细命令、操作步骤和底层原理的综合指南。 RBD 进阶操作克隆与空间管理指南本指南涵盖了 RBD 镜像的克隆创建及其父子链的管理以及在快照删除时存储空间是如何被释放的关键原理。第一部分基于快照创建克隆镜像CoW 原理克隆Clone是一种写时复制CoW子镜像它与父快照共享数据块可以实现极速部署。步骤 1创建父镜像和快照这是创建克隆的起点。动作命令示例原理/解释创建快照rbd snap create poolname/base_vminitial_state瞬时操作该操作仅记录当前镜像数据块的 RADOS 对象 ID 集合并将快照设置为指向这个只读集合的指针。不会复制任何数据因此速度极快。确认快照rbd snap ls poolname/base_vm验证快照元数据已成功创建。步骤 2保护快照建立依赖命令rbd snap protect poolname/base_vminitial_state原理依赖链锁定保护操作设置了一个元数据标志表明该快照现在是“被依赖”的。强制安全被保护的快照无法被删除。这确保了作为子镜像数据源的父快照不会意外丢失维护了数据完整性。步骤 3创建克隆镜像CoW 触发命令rbd clone poolname/base_vminitial_state target_pool/vm01_disk原理元数据链接创建vm01_disk的元数据其中包含一个明确指向父快照的指针。数据共享Read客户端尝试读取vm01_disk数据时如果该块尚未被修改RBD 驱动会透明地沿着指针从父快照读取共享数据。写时复制Write客户端首次尝试写入某个块时才会触发 CoW 机制。旧块复制父快照中的原始数据块被复制到新的 RADOS 对象中。新块写入客户端的新数据写入到这个新的对象位置。空间效率克隆镜像只记录它与父快照的差异数据因此刚创建时它几乎不占用额外空间。第二部分快照删除与空间回收消除依赖删除快照的关键在于如果它有子镜像依赖必须先消除依赖。步骤 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_vminitial_state依赖计数为零后取消保护。如果仍有依赖该操作会失败。删除快照rbd snap rm poolname/base_vminitial_state触发垃圾回收快照被删除后该快照所独有的、并且不再被链条中任何其他快照或镜像引用的数据块会被 Ceph 的RADOS 垃圾回收机制标记并异步删除。查看回收需等待 OSD 运行OSDs 会在后台释放对应的 RADOS 对象。从命令执行到存储池容量统计ceph df下降会存在一定延迟尤其是在集群负载较高时。