首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用mke2fs / fallocate创建厚配置的虚拟磁盘文件?

如何使用mke2fs / fallocate创建厚配置的虚拟磁盘文件?
EN

Unix & Linux用户
提问于 2020-02-28 23:16:00
回答 1查看 411关注 0票数 2

目前,我专门为存储大小配额制作虚拟磁盘。我可以制作一个10 as的磁盘,例如:

代码语言:javascript
复制
touch myShare-10G
truncate -s 10G myShare-10G
mke2fs -t ext4 -F myShare-10G
fallocate -l 10G myShare-10G
代码语言:javascript
复制
ls -s myShare-10G --block-size=G

将其显示为使用了11 as。

在复制了5GB的数据之后,文件大小仍然保持在11 5GB。

我的问题是,在删除了5GB的数据后,文件大小下降到了6GB,而不是保持在11 5GB的大小.

我如何保持虚拟磁盘的“厚”配置(也就是说,无论里面的内容如何,文件大小都是固定的)?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 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手册:

代码语言:javascript
复制
           "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上,您的安装命令可以更短:

代码语言:javascript
复制
# create a new allocated file
fallocate -l 10G myShare-10G
# format it without discarding it
mke2fs -t ext4 -E nodiscard myShare-10G

这将给出与上面的4条命令链相同的结果。

只有在覆盖现有文件系统且不需要提示符的情况下,才需要-F。对于一个新文件,它不应该是必要的。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/570335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档