既然说LVM快照是通过把文件系统的改变记录到一个快照分区,而不是对这个分区做镜像。且对快照区的任何操作不会影响源分区。
那么问题:1:我们在快照分区中修改一个已存在的文件时,系统是不是先把这个文件拷贝到快照区,然后进行修改?
2:我们在快照分区中删除一个文件时,只是删除保存在快照区的节点信息?
既然说LVM快照是通过把文件系统的改变记录到一个快照分区,而不是对这个分区做镜像。且对快照区的任何操作不会影响源分区。
那么问题:1:我们在快照分区中修改一个已存在的文件时,系统是不是先把这个文件拷贝到快照区,然后进行修改?
2:我们在快照分区中删除一个文件时,只是删除保存在快照区的节点信息?
以下回答为本人猜测
注意看图,我觉得最关键的注意点就是快照区与原本的LV共用A~I
,也就是说A~I只有一份
,而非快照区一份+原LV一份=2份互相独立的区块
这种情况.
正常情况下,快照区是用来记录原本LV区域中改动内容的作用存在的,这点看图就能明白.
但有一种特殊情况是鸟哥487页说的用快照区当作测试区,这种情况下用户主动掌控的快照区只有最左面3个空白块,也就是说用户往快照区写的东西只会限定在左侧3块空白处,鸟哥没说要是写入的改动内容大小超过3个空白区块的容量会怎样,我个人估计要是内容超过这个量就会失效
好吧以上内容很难说清楚,鸟哥自己也没讲清,不过我觉得我的理解应该没有漏洞,我都是依据A~I的PE为共用区域
这句话推断出来的
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答800 阅读✓ 已解决
2 回答3.2k 阅读
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 ("block ... never gets copied from the original volume")
LVM-HOWTO
感谢MadHatter