首页/系统与基础设施/存储速查/存储快照原理与写时复制机制
数据保护(存储侧)50 条

存储快照原理与写时复制机制

写时复制快照创建时只登记元数据,数据在第一次被改写时才复制到保留区,因此空间占用取决于自创建以来的改写量而非快照个数;读性能基本不受影响,首写会多一次复制开销。它是变更保护、备份窗口配合与快速生成副本的基础机制,但不能替代独立备份。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌​‌‌‌​​‌‌​​​​‌​‌‌‌​​​​​‌‌‌​​‌‌​‌‌​‌​​​​‌‌​‌‌‌‌​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌‌​​​​​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​‌‌‌​‌‌‌​​‌​​‌‌​‌​​‌​‌‌‌​‌​​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​​​​​‌‌‌​​‌​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌​​‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

写时复制的核心机制

快照在逻辑上是某一时刻的完整数据视图,物理上却几乎不占空间:创建时只记录时间点与映射关系,不搬数据。真正的内容固化发生在第一次改写某个数据块时,机制先把原块复制到快照保留区,再让源卷写入新内容。此后快照读请求遇到未改写的块回落到源卷,遇到已改写的块则读保留区里的旧副本。

基本信息

创建代价只登记元数据,通常为秒级
初始占用接近零,随源卷改写逐步增长
读性能基本不受影响,未改写块直接从源卷读取
写性能首次改写需额外一次复制,随机写放大更明显

典型使用场景

  • 变更前保护点:改动生效前留一个可回退时间点
  • 备份窗口配合:备份系统读取稳定视图而不影响在线写入
  • 测试环境准备:以快照为基准快速生成可写副本
  • 数据修复:通过只读挂载取回历史版本文件
  • 容量评估:用改写量估算保护点带来的空间开销

三个阶段的资源变化

阶段数据流空间变化
创建瞬间仅写元数据与映射几乎不增长
首次改写旧块复制到保留区再写新块按该块大小增长
重复改写已复制的块不再重复搬运不再增长(该块)
快照读取按映射回源卷或保留区不产生新占用

机制时序理解

机制时序理解
# 时刻 T:创建快照,卷与快照共用全部数据块
# 时刻 T+1:卷要改块 A,先复制 A 到保留区,再覆盖 A
# 时刻 T+2:卷再改块 B,同样复制 B 到保留区
# 快照视图:块 A、B 读保留区副本,其余块读源卷当前位置
# 占用口径:等于自快照创建以来被改写过的数据量
快照依赖一个可写的保留区或池空间。空间耗尽时,不同产品的处理方式不同:有的让快照失效,有的把卷置为只读,有的暂停写入。上线前必须确认为哪一种,并给保留区设置水位告警。

易错点

  • 把快照理解成一份独立副本,实际它依赖源卷与保留区同时完好;源卷损坏时快照未必可用,长期保护仍需独立备份
  • 忽略保留区水位,改写量大时空间耗尽导致写入受限甚至快照失效;保留区配额与告警必须成对设置
  • 在应用未静默时创建快照,回滚后依赖文件系统日志或数据库自身恢复,恢复时间不可控;关键业务要走应用一致性流程
  • 认为创建快照无需评估时机,建立基准点瞬间在高写入负载下仍会带来可观测的延迟上升;重要快照安排在低峰创建

数据来源与参考

  • SNIA 存储术语词典(Snapshot、Copy-on-Write)
  • 存储厂商官方文档中的快照实现与保留区说明(以对应版本手册为准)
  • 主流文件系统与卷管理文档中的写时复制实现说明

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/snapshot-copy-on-write-principle.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌​‌‌‌​​‌‌​​​​‌​‌‌‌​​​​​‌‌‌​​‌‌​‌‌​‌​​​​‌‌​‌‌‌‌​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌‌​​​​​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​‌‌‌​‌‌‌​​‌​​‌‌​‌​​‌​‌‌‌​‌​​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​​​​​‌‌‌​​‌​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌​​‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​