知识卡片

RBD克隆靠CopyUp延迟复制父镜像数据

专业/工作 · 236.e.2

内容

[[快照与克隆基于Copy-on-Write的关系|RBD 克隆]]创建时并不真正复制父镜像的任何数据对象,克隆卷的大多数底层对象一开始根本不存在。当克隆卷发生写操作、且目标对象在自己这边不存在但存在父镜像时,才触发 CopyUp:先读出父镜像对应的对象数据,再基于它完成本次写入,此后该对象才真正独立存在于克隆卷自己的命名空间下。这是”写时复制”在对象粒度上的具体落地——复制的时机不是克隆那一刻,而是首次被写命中的那一刻,代价被摊到了真正需要修改数据的操作上,而不是一次性预付。

参考来源

《Ceph源码分析》第5章《Ceph客户端》