LVM快照卷挂载后显示容量与原卷相同的容量来源疑问
LVM快照卷挂载后显示容量与原卷相同的容量来源疑问
嘿,这个问题其实是对LVM快照工作原理的常见误解,我来给你掰扯清楚~
首先得明确:你创建快照时用的lvcreate --size 100M --snapshot --name snap /dev/cl/home里的100M,不是快照卷的“总容量”,而是LVM为快照分配的***预留存储空间***——专门用来保存原卷(/dev/cl/home)中被修改的数据块的。
那为什么挂载快照后,df -h显示它和原卷一样是1.5T?这是因为LVM快照本质是原卷在创建快照那一刻的***只读镜像视图***(默认是只读,除非你加了可写参数)。它会模拟出和原卷完全相同的逻辑结构,包括容量大小,但实际上它并没有真的复制原卷的1.5T数据:
- 对于原卷中没被修改的块,快照直接指向原卷的物理块,不额外占用空间;
- 只有当原卷的某个块被修改时,LVM会先把这个块的旧数据拷贝到快照的100M预留空间里,之后快照访问这个块时就会读取预留空间里的旧数据,原卷则使用新数据。
至于你担心的物理空间问题:你的卷组(vg-cl)总容量是1.95T,原卷home占1.5T,root70G、swap8G,再加上快照的100M预留空间,总占用大概是1.5+0.07+0.008+0.1≈1.678T,远小于1.95T的卷组容量,完全没问题。你看到的1.5T是快照的***逻辑容量***,不是它实际占用的物理空间,实际占用只会随着原卷数据的修改慢慢增加,直到用完那100M预留空间(这时候快照就会失效,无法再使用了)。
举个接地气的例子:就像你给一本厚书拍了张高清照片,照片看起来和书一样厚,但它只是一张薄纸的大小——只有当书里的页面被涂改时,你才需要把原来的页面内容抄到照片的空白处,而照片本身始终“看起来”和原来的书一样完整。
备注:内容来源于stack exchange,提问作者Samuel Zhen
相关产品推荐
相关产品推荐

