对于LVM快照是如何存储和工作的,我有点困惑。我了解到,当您使用LVM创建快照时,它不会占用任何空间,但是当您对系统上的文件进行更改时,LVM快照卷的大小将增加。如果它们的大小超过分区的大小,它们将被“丢弃”并消失,这就是为什么它不是一个好的备份解决方案的原因(除了它在同一个物理系统上的事实之外)。
LVM快照存储是否像下图那样工作?
我试图展示一个场景,其中根文件系统分区大部分是空的,只有少量的数据以紫色显示。我创建了一个名为“快照1”的快照分区,当我对原始文件进行更改时,这个分区会逐渐填满,尽管我非常确定LVM是基于块的而不是基于文件的。
这是否意味着如果我有一个仅存储20 GB数据的100 GB根分区,那么如果我给它一个21 GB的大小,我就不需要担心快照分区溢出了吗?或者快照分区必须与根分区一样大或更大,因为它还记录了未使用空间的差异(0‘S块)?
发布于 2017-09-13 14:13:39
不幸的是,存储需求并不是那么直接:
当指定大小时,将创建COW快照。大小是从VG中的空间中分配的,是在写入原点或快照时可用于保存COW块的空间数量。所选择的大小应取决于预期的写入量;通常20%的起始LV就足够了。如果COW空间较低,则可以使用extend进行扩展(lvreduce也允许收缩)。只使用少量的牛快照LV大小来跟踪牛块位置,因此对于牛数据块无法使用完整的大小。使用lvs检查使用了多少空间,并查看-监视器自动扩展大小,以避免空间耗尽。-人类创造
请注意,手册页没有提到任何细节:
...often 20%的原始LV是足够的.使用少量的牛快照LV大小.
我由此得出的结论是,没有具体的方法来计算快照LV需要的大小,以确保它不会耗尽空间。
本质上,由于快照LV在被更改之前存储原始块,为了使它永远不会耗尽空间,它必须足够大来容纳原始LV,再加上更多,这样它就可以跟踪奶牛块位置。
https://unix.stackexchange.com/questions/391998
复制相似问题