LVM系统快照为何能直接在快照上写数据而不会对原系统产生影响?

发布于 2022-09-01 05:09:16 字数 582 浏览 12 评论 0

鸟哥书中有张图介绍了LVM的原理(原本的LV为vbirdlv,快照LV为vbirdss):
snapshot.gif

对于此图我的理解是:
快照区=vbirdss+vbirdlv中未变动的PE
所以我认为实际上LVM系统快照还是要依赖真实的系统文件的

但鸟哥又说可以直接在vbirdss上胡作非为,到时候把快照vbirdss删掉就行了:

我们将原本的 vbirdlv 当作备份数据,然后将 vbirdss
当作实际在运作中的数据,任何测试的动作都在vbirdss这个快照区当中测试,那么当测试完毕要将测试的数据删除时,只要将快照区删除即可,然后复制一个vbirdlv的系统,再做另一个快照区即可。

我猜:
由于在快照上的操作不能影响到真实系统,所以对快照区的更改只能限于图中左边的vbirdss中,也就是说,如果vbirdss容量为100MB,那么更改的数据量就不能超过这个100MB,对吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心清如水 2022-09-08 05:09:16

打个比方啊,不一定准确,有点像PhotoShop里面图层的概念,真实系统文件就像是最底层图层,快照就相当于上面的图层,在上面图层上修过,不影响下面图层的内容。即,如果上层图层(快照)有修改,那么以此为准,如果没有修过,,就以最底层图层(真实系统文件)为准了。

海未深 2022-09-08 05:09:16

....刚看到这个(隔离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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文