LVM系统快照为何能直接在快照上写数据而不会对原系统产生影响?
鸟哥书中有张图介绍了LVM的原理(原本的LV为vbirdlv,快照LV为vbirdss):
对于此图我的理解是:
快照区=vbirdss+vbirdlv中未变动的PE
所以我认为实际上LVM系统快照还是要依赖真实的系统文件的
但鸟哥又说可以直接在vbirdss上胡作非为,到时候把快照vbirdss删掉就行了:
我们将原本的 vbirdlv 当作备份数据,然后将 vbirdss
当作实际在运作中的数据,任何测试的动作都在vbirdss这个快照区当中测试,那么当测试完毕要将测试的数据删除时,只要将快照区删除即可,然后复制一个vbirdlv的系统,再做另一个快照区即可。
我猜:
由于在快照上的操作不能影响到真实系统,所以对快照区的更改只能限于图中左边的vbirdss中,也就是说,如果vbirdss容量为100MB,那么更改的数据量就不能超过这个100MB,对吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
打个比方啊,不一定准确,有点像PhotoShop里面图层的概念,真实系统文件就像是最底层图层,快照就相当于上面的图层,在上面图层上修过,不影响下面图层的内容。即,如果上层图层(快照)有修改,那么以此为准,如果没有修过,,就以最底层图层(真实系统文件)为准了。
....刚看到这个(隔离23天,找到答案没有?)
我想如果我今天的提问
我们在快照分区(快照)中修改一个已存在的文件时,系统是不是先把这个文件拷贝到快照区,然后进行修改(快照区中的文件)
成立的话,应该可以解答你的问题。
大兄弟,找到答案了
under LVM2, once the file in the snapshot has been modified, an entry to that effect is made in the exception table, and when the (modified, in-snapshot) file is accessed, the blocks read are the modified snapshot blocks, not those from the original volume
LVM-HOWTO