最近忙着存储方面的事情,结果被快照、镜像、复制搞的头大。特别是快照,网上都说什么快照是指针,好久都没搞懂。
经过详细查找总算对快照有了一个概念,大致如下:
(注:蓝色块表示源数据卷的存储块,绿色块表示快照管理用的存储块,红色块表示快照的存储块)
1、建立快照前
2、开始建立快照时暂停对源数据卷的写入操作,等待快照建立完毕,快照建立完毕后快照中保存的不是原始数据的拷贝,而是指向数据的指针,因此快照建立的时间很短,立即就可以完成。并且快照建立后,快照中的指针的指向位置会根据源数据卷的写入不断进行修改。
3、源卷准备更新数据,黄色表示将覆盖源数据卷相应块中的数据。
4、新的数据写入源数据卷前,首先将源数据块中被覆盖的数据被保存至快照管理的中间块中(如果这些中间块使用完毕则会根据快照的相应设置分配新空间或覆盖旧的空间)。然后对快照中相应的指针的指向进行修改。最后新数据覆盖到源数据卷上。