首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使NFS支持posix_fallocate?

如何使NFS支持posix_fallocate?
EN

Stack Overflow用户
提问于 2017-02-24 08:52:26
回答 1查看 2.3K关注 0票数 3

我的全文搜索引擎存储NFS存储的索引数据。由于频繁的读/写索引,我希望为每个表文件预先分配巨大的连续磁盘空间,因此使用posix_fallocate。在NFS卷上,我的小演示失败了,因为"EOPNOTSUPP“响应了posix_fallocate。NFS协议/规范是否包括posix_fallocate场景?

EN

回答 1

Stack Overflow用户

发布于 2017-11-03 07:08:12

(问题的标题提到了posix_fallocate不是错误代码,它将返回。。很有可能发问者实际上是在使用EOPNOTSUPP)

NFS可以支持Linux上的fallocate (http://wiki.linux-nfs.org/wiki/index.php/Fallocate ),但是:

  1. 您的客户端和服务器必须使用NFS 4.2或更高版本。
  2. NFS 4.2+服务器不必实现fallocate它是可选的(请参阅libc邮件列表线程中的falllocate64回退码[BZ#15661] )。

Re posix_fallocate,您可以在没有仔细观察或事先手动检查的情况下进行呼叫是真实的或模拟的 (例如,通过进行平台原生fallocate调用并检查它是否失败或不受支持),如果您执行了本机调用,为什么需要posix_fallocate调用?此外,不同的平台对本机fallocate有不同的调用(或者完全缺乏它),因此如果要关注非Linux平台的可移植性,则需要为每个平台编写适当的本机fallocate包装器。如果您必须进行预分配,即使在下面没有支持的调用时,您将不得不回到手工操作中(例如,通过漂亮的、笨重的写作或者像glibc的posix_fallocate.)。

注意:当能够进行真正的预分配(例如通过fallocate)时,它可能比完成完全写入的速度快得多,因为文件系统可以通过设置适当的元数据来完成它。

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

https://stackoverflow.com/questions/42434351

复制
相关文章

相似问题

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