快照原理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2007-2010 Copyright WiseFly Technology All Right Reserved
两个或多个快照流程
活动元数据
快照1
1
某时刻的状态如图所示,已经生成了一 份快照,并且重定向了A’和 C’。
A
B
C
D
C’ A’
拷贝
活动元数据
快照1
快照2
2
当前活动文件系统的B被更新为B’,则 直接将B’重定向写出去。然后系统又出发了 一份快照,系统将所有IO暂挂。复制出来一 份与当前活动元数据完全相同的数据。可以 看到D被三套元数据链共享指向。
3
i1 A
i2 B C D
i1 A
i2 B C D
i1 A
i2 B C D
i1’ A’
初始状态: 数据不断的被读 取或写入。Super Block指向两个一 级间接inode,i1 和i2又分别指向 了两个实体数据 块ABCD,此时无 论ABCD的内容怎 么变化,i1和i2 的内容却不变。
某时刻,系统触发了一份 快照,此时只需要将Super block 复制保存即可。
A
B
C
共享数据块
活动FS数据块
快照FS数据块
Write(CoFW) Copy On First Write(CoFW)写前拷贝模式
2007-2010 Copyright WiseFly Technology All Right Reserved
CoFW快照流程
活动元数据
快照
3
D C
A
B
C’
之后某时刻,应用程序要更改当前活动文件系统中 的C数据块为C’,属于首次覆盖写,根据规则,需要将C 数据块复制出来,然后再写入C’数据块。之后再快照元 数据中将原来指向C块地址的指针该为指向被复制出来的 C块得新地址上。
共享数据块 活动FS数据块
A
B
C
D
C’ A’ B’
RoFW模式为例 RoFW模式为例
快照FS数据块
2007-2010 Copyright WiseFly Technology All Right Reserved
两个或多个快照流程
活动元数据
快照1
快照2
3
A”
A
B
C
D
C’ A’ B’
之后某时刻,A’被更改为A”,对于快 照1来说,A’已经被重定向出去了,就不需要 重定向写。对于快照2,A”覆盖A’则属首次 覆盖,需要重定向写出去。同时看到,A’对 于快照1和活动文件系统已经没有用了(不指 向它了),它是快照2时刻所对应的历史版本。
快照原理
WiseFly Technology Corporation Boris Wang
wangzhengbing@wisefly.cn
目录
什么是元数据 两种快照实现方式 CoFW快照流程 RoFW快照流程 做两份或多份快照流程 基于Super Block 的快照流程 讨论
注:本文参照《大话存储2》
4
活动元数据
快照
同理,之后某时刻A被覆盖为A’,系统同样将 A复制出来并改变元数据链中的指针。而数据C’被 更改为C”时,因为不是首次覆盖写,所以不做后 台复制工作,直接覆盖了。
A’
B
C”
D
C
A
共享数据块
活动FS数据块
快照FS数据块
Write(CoFW) Copy On First Write(CoFW)写前拷贝模式
4
活动元数据 Super Blcok
Super
快照 Blcok
5
i1 A
i2 B C D
i1’ A’ B’
i1 A
i2 B C D
i1’
i2’
A’ B’ C’
随后,数据块B发生了变更, 由于RoFW的作用,新数据B’需 要重定向到一个新的位置上,并 修改i1中的指针指向,由于之前 i1’被做了RoW,所以本次i1’ 中将B的指针指向B’新地址即可, 这一步后,i1块及其下挂的数据 块AB都被快照所使用,而i2及其 下挂的数据块CD仍为活动文件系 统和快照所共享。
两个或多个快照流程
活动元数据
快照1
快照2
5
A” D’ C” B”
A
B
C
D
C’ A’ B’
在这一步中,B’被更改为B”,C’被更改为B”,B”和C”同样被重定向 出去了,并修改当前活动文件系统元数据链指向。可以看到D数据块依然被两 个快照共享,而当前文件数据块已经全部被重定向出去了。
共享数据块 活动FS数据块
2007-2010 Copyright WiseFly Technology All Right Reserved
RoFW快照流程
活动元数据
1
源文件系统初始状态:数据不断地被读取或写入,实际 数据块(文件块,如A、B、C、D)以及元数据链也在不断变化。
A B C D
拷贝
活动元数据
快照
2
之后某时刻,系统被触发了一份快照。系统将所有写IO暂 挂,然后立即开始将整个文件系统的元数据复制一份存放,复 制完成后立即解除暂挂。被复制出来的元数据以及其指向底层 数据块是相同的;
2007-2010 Copyright WiseFly Technology All Right Reserved
CoFW快照流程 5
活动元数据
B被改为B’,B同样被拷出。同时, 应用程序对当前文件系统做了一个追加 写动作,产生了一个新分配的数据块E, 由于快照时刻没有这个数据,所以后台 不会进行复制操作,快照系统也不会做 任何操作。
随后,C发生变更,执行和 之前相同的操作
共享数据块 活动FS数据块 快照FS数据块
只拷贝Super Block的RoFW文件系统快照示意图 只拷贝Super Block的RoFW文件系统快照示意图
2007-2010 Copyright WiseFly Technology All Right Reserved
基于Super block的RoFW快照实现
活动元数据 Super Blcok 快照 Super Blcok
快照
A’ B’ C”
E
D
C
A
B
6
活动元数据
快照
A’ B” C” D’ E
C
A
B
D
当源文件系统内所有数据 块都被覆盖了写了一遍后,系统 内将有两套完成的文件系统数据 集,一套是当前活动文件系统, 另一套是所对应的历史快照时的 数据版本。
共享数据块
活动FS数据块
快照FS数据块
Write(CoFW) Copy On First Write(CoFW)写前拷贝模式
快照
3
D C’
A
B
C
之后某时刻应用程序要更改当前活动文件系统中 的C数据块为C’,属于首次覆盖写,根据RoFW规则, 直接将C’数据块重定向写入道某剩余空间内,随后 将当前活动文件系统元数据链中原本指向C块地址的 指针改为指向被重定向写出去的C’块的新地址上。
4
活动元数据
快照
同理,之后某时刻A被覆盖为A’,系统同样将 A’重定向写出,并修改当前活动文件系统元数据 中的指针。
2007-2010 Copyright WiseFly Technology All Right Reserved
CoFW快照流程
活动元数据
1
源文件系统初始状态:数据不断地被读取或写入,实际 数据块(文件块,如A、B、C、D)以及元数据链也在不断变化。
Aຫໍສະໝຸດ Baidu
B
C
D
拷贝
活动元数据
快照
2
D
之后某时刻,系统被触发了一份快照。系统将所有写IO暂 挂,然后立即开始将整个文件系统的元数据复制一份存放,复 制完成后立即解除暂挂。被复制出来的元数据以及其指向底层 数据块是相同的;
RoFW模式为例 RoFW模式为例
快照FS数据块
2007-2010 Copyright WiseFly Technology All Right Reserved
基于Super block的RoFW快照实现 问题:
在面对一个海量庞大文件系统的时候,其元数据量可能达到上GB甚至上百GB,这 都是有可能的。而此时如果这个文件系统做快照,首次的元数据复制所耗费的时间将是 不可接受的。
A B C D
共享数据块
活动FS数据块
快照FS数据块
Write(RoFW)重定向写模式 Redirect On First Write(RoFW)重定向写模式
2007-2010 Copyright WiseFly Technology All Right Reserved
RoFW快照流程
活动元数据
5
活动元数据
快照
A
B
C
D
C” A’ B’ E
活动元数据
快照
6
C” A’ B” D’ E
当源文件系统被覆盖写了一 遍后,就形成了两套完整的文件 数据集,一套是当前活动文件系 统,另一套则是这个文件系统所 对应的历史数据版本。
A
B
C
D
共享数据块
活动FS数据块
快照FS数据块
Write(RoFW)重定向写模式 Redirect On First Write(RoFW)重定向写模式
2007-2010 Copyright WiseFly Technology All Right Reserved
两种快照实现方式
• RoFW Redirect of First Write 首次覆盖写时重定向 元数据复制完成之后所有针对源文件系统的更改文件块均将其重定 向到一块空余的空间存放,并且在源文件系统元数据更改相应的指 针信息。 • CoFW Copy on First Write 首次覆盖写时复制 元数据复制完成之后,所有针对源文件系统中文件的覆盖写操作均 照常进行,但是在覆盖对应的数据块之前,需要将被覆盖的数据复 制出来,存放在一个额外的空间里,并更新指针信息。
2007-2010 Copyright WiseFly Technology All Right Reserved
基于Super block的RoFW快照实现
拷贝
活动元数据 Super Blcok
1
活动元数据 Super Blcok
快照 Super Blcok
2
活动元数据 Super Blcok
快照 Super Blcok
A
B
C
D
C’ A’
共享数据块
活动FS数据块
快照FS数据块
Write(RoFW)重定向写模式 Redirect On First Write(RoFW)重定向写模式
2007-2010 Copyright WiseFly Technology All Right Reserved
RoFW快照流程
B被更改为B’,同样被重定向。 同时应用程序对当前活动文件系统做 了追加写动作,由于快照那一刻没有 改数据块,所以系统不做后台重定向 动作,快照系统不做任何处理。同时C’ 变成C”,由于重定向过一次,所以直 接覆盖C’,无须任何处理。
共享数据块 活动FS数据块 快照FS数据块
随后,数据块A发生内容变更, 由于RoFW的作用,新数据块A’需要 重定向到一个新位置上,并且修改指 针指向,也就是修改i1块中的指针指 向A’的位置,这是i1的内容发生了 变化,变成了i1’,同样需要将i1’ 重定向写入到一个新位置,牵一发而 动全身,Super block中针对原本i1 的指针也需要指向i1’的新地址。
2007-2010 Copyright WiseFly Technology All Right Reserved
知识扩展—元数据
• 文件系统基于元数据(Metadata)管理思想 1 降低管理规模。将物理扇区组合成大的逻辑块(Block),如NTFS 每个块可以到8个扇区,即4KB; 2 创建位图文件,快速定位。位图文件中每个位代表卷上的一个物 理扇区,如果这个扇区被使用,这个扇区所在位图用1表示,否则 为0; 3 映射链,文件系统还保存一份文件和其所对应族(Block)号的映 射链。重要的元数据必须有一个固定入口(inode),用来让文件 系统读入并遍历所有文件系统元数据。通常初始入口地址成为 root inode; • 正因为文件系统只是根据它的元数据来管理文件的,才使得基于 文件的快照成为可能。
同理,D被更新为D’, 系统将D’重定向写出去, 并修改当前活动元数据链 指向,D这个数据块依然 保留,快照1和快照2共同 指向它。
活动元数据
快照1
快照2
4
A” D’
A
B
C
D
C’ A’ B’
共享数据块 活动FS数据块
RoFW模式为例 RoFW模式为例
快照FS数据块
2007-2010 Copyright WiseFly Technology All Right Reserved
有没有办法降低复制量?
根入口(Super Block),这个块的地址在底层空间商是绝对恒定的,他体 内存放有指向下一级的元数据链块指针,操作系统每次载入元数据都要从这个地 址读入Super Block,从而根据其中的指针一层层的向下遍历。 如果只复制超级块Super Block,那么其下级的所有元数据链自身的变更,也会走 CoFW和RoFW流程。
相关文档
最新文档