【发布时间】:2017-02-24 08:52:26
【问题描述】:
我的全文搜索引擎将索引数据存储在 NFS 存储上。 由于经常读/写ioes,我想为每个表文件预先分配巨大的连续磁盘空间,因此求助于posix_fallocate。 在 NFS 卷上,我的小演示失败,“EOPNOTSUPP”响应 posix_fallocate。 NFS 协议/规范是否包含 posix_fallocate 场景?
【问题讨论】:
-
fallocate 为文件系统提供了一个机会,可以更有效地分配空间,而不是仅仅将零写入文件。如果底层文件系统不支持它,你能做的最好的就是打开文件并写入多个零字节直到所需的文件大小。在大多数情况下,这不会比使用
fallocate()效率低。 -
什么版本的 NFS?您为 NFS 客户端和服务器运行的操作系统版本是什么?你可以发布你的代码吗? Google search 的讨论似乎表明 glibc 应该在 NFS 上模拟
posix_fallocate(),但模拟似乎有一些错误。
标签: c linux filesystems nfs