目前,我专门为存储大小配额制作虚拟磁盘。我可以制作一个10 as的磁盘,例如:
touch myShare-10G
truncate -s 10G myShare-10G
mke2fs -t ext4 -F myShare-10G
fallocate -l 10G myShare-10Gls -s myShare-10G --block-size=G将其显示为使用了11 as。
在复制了5GB的数据之后,文件大小仍然保持在11 5GB。
。
我如何保持虚拟磁盘的“厚”配置(也就是说,无论里面的内容如何,文件大小都是固定的)?
发布于 2020-02-29 09:21:50
一个简单的方法是使支持装置不可丢弃.通过HDD支持的LVM卷并将这些卷用作VM的虚拟磁盘驱动器,您可以免费获得这些磁盘。使用原始块设备也是获得最佳性能的共同建议:
https://www.linux-kvm.org/page/Tuning_KVM QEMU支持多种存储格式和后端。最容易使用的是raw和qcow2格式,但为了获得最佳性能,最好使用原始分区。您可以创建逻辑卷或分区...。
然而,一旦您移动到SSD存储,自然会再次丢弃。同样的情况也会发生在LVM薄供应卷上,即使它是HDD (man lvmthin)。
在这种情况下,您只需告诉VM不允许这样做。对于qemu/KVM,这可以使用discard=ignore参数来完成。我假设其他虚拟化解决方案也有类似的设置。
来自qemu手册:
"discard=discard"
discard is one of "ignore" (or "off") or "unmap" (or "on")
and controls whether "discard" (also known as "trim" or
"unmap") requests are ignored or passed to the filesystem.
Some machine types may not support discard requests.为了明确的意图,即使在您的配置中当前不可能丢弃,也不需要指定。
在sidenote上,您的安装命令可以更短:
# create a new allocated file
fallocate -l 10G myShare-10G
# format it without discarding it
mke2fs -t ext4 -E nodiscard myShare-10G这将给出与上面的4条命令链相同的结果。
只有在覆盖现有文件系统且不需要提示符的情况下,才需要-F。对于一个新文件,它不应该是必要的。
https://unix.stackexchange.com/questions/570335
复制相似问题