存储快照笔记

3,109 阅读2分钟

快照即为源数据做备份,方便数据的"回滚"和"前滚",保证数据安全.

保证备份的一致性

在做快照之前,程序必须将所有缓存中的数据刷到磁盘.

步骤:

1.快照进程发出”准备快照”通知

2.快照代理要求”停止写并刷新缓存”

3.程序缓存被冲刷到存储设备

4.程序缓存管理回复”缓存已刷新”

5.快照代理报告”快照准备完毕”

快照的实现方式

常用的有:写前复制,写时转向和拆分镜像等.

写前复制(copy with write)

指的是在第一次对源卷进行写操作之前,将源卷中对应的数据块复制到快照卷,而后续对原卷中该数据块的写操作可以直接进行.

在写源卷之前,首先查找快照映射表.映射了源卷块跟快照卷块的关系.

在未命中的情况下,将该数据块从源卷复制到快照卷中,并在快照映射表中追加记录,最后才能将数据写到源卷上. 如果能命中的情况下,直接写到源卷.

在需要获取某时刻的数据时,即获取某个快照卷的数据.

步骤如下:

查看快照映射表,若能命中则向快照卷获取,若不能命中则向源卷获取.

写时转向

做快照后,快照指向源卷的文件,当有数据块要修改时,它的内容被写到新的位置,数据块的父亲也必须被修改以指向它的位置,如图中,A数据块被修改.优点是,写操作只需要一次.

拆分镜像

同一数据的两个副本分别保存在由源数据卷和镜像卷组成.在快照时间点到来时,镜像操作被停止,镜像卷转化为快照卷,获得一份数据快照.

快照卷在完成数据备份等应用后,将于源数据卷重新同步,重新成为镜像卷.镜像分裂快照能够在最短时间内生成完整的物理副本.