Snapshot基础知识---形象解释

Snapshot基础知识

Because each Snapshot contains only pointers and blocks that have changed, the size of the Snapshot is very small compared to the complete  system it represents.

下面的图很好地讲述了Netapp Snapshot的实现原理。

1、 文件系统写block  A, B, C,  D 到磁盘并且用指针指向它们(元数据)

clip_image002

2、 这个时候创建一个快照-snapshot1,没有读写数据或copy数据到磁盘,这个snapshot仅仅是指向目前的位置

clip_image004

3、文件系统修改block C,并且写C‘到磁盘中,而原来的block C没有任何变化。因此现有的文件系统指向C’而不是指向C。而步骤1中创建的snapshot1仍然指向C。

clip_image006

4、文件系统此时再做snapshot2用于指向现有的块,没有数据被读、写、或copy到磁盘,因此没有性能影响。

clip_image008

5、如果文件系统还有变化,那么文件系统继续写到新的block中。

clip_image010

 以上就是Netapp snapshot的实现机制,图形化解释非常形象,也易于理解。下篇会做一个快照实验,结合实验就能更好地理解了。 

 分布式文件系统MooseFS也有mfsmakesnapshot命令,可以对文件或文件夹做快照,并且能支持多个源文件采用append方式将快照追加到同一个快照文件中。下面是摘自MooseFS中的一段话,由此可见,实现原理都是类似的。

mfsmakesnapshot prepares a copy of the whole file (or files) in one operation. Furthermore, until modification of any of the files takes place, the copy does not take up any additional space.)

你可能感兴趣的:(snapshot,基础知识,形象,Snapshot基础知识)