NFS 相关

  • 973 字
  • 次阅读

只考虑 NFSv4,NFSv4 强制要求 TCP

参考资料

https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html

fsc

本地缓存,需要另一个软件支持

hard

行为:当 NFS 服务器不可达时,客户端会无限期不断重试 I/O 请求,直到服务器恢复正常为止。程序会“停住”不动,等待恢复后继续正常运行。

常与 intr 或其替代选项一起使用,使挂载操作可中断(尤其在老内核中),避免客户端彻底卡死。(但是 intr 在 内核 2.6.25 开始废弃,2008 年,RHEL6 开始)

通常 如果 nfs 挂载的是重要数据盘,一般是 hard。硬挂载将保持数据一致性

soft

客户端在发起 I/O 请求后,如果在一定重试次数或超时时间内未收到服务器响应,就会返回错误给应用程序,而不是一直等下去。

可设置 timeo(超时时间),retrans(最大重发次数),让挂载更具灵活性

一般建议是只读挂载才使用软挂载。

async & sync

async 会先进内存,有比较好的性能,但是断电会有问题,sync 不进内存,但是性能会有比较严重的问题。Gemini 是说 zfs 有写缓存的情况下强烈建议使用 sync。

这个参数同时在客户端和服务端都可以配置,且只影响被配置的机子,async 在客户端配置则只影响客户端是否落盘

timeo & retrans

硬挂载一般使用默认值就可以,软挂载特别是 timeo 可能需要设短一点,否则会产生超长时间的卡顿后才报错。

而硬挂载,因为会不断重试,本身就会一直卡顿。

另外需要注意的是,早期 NFS 是使用 UDP 的,很多教程会与混淆,而在 NFSv4 中,只是用 TCP,需要考虑 TCP 自身的 timeout 情况。

NFS Server 命令

  • exportfs -ra nfs server 刷新配置而不用重启
  • exportfs -v 查看客户端挂载参数

NFS Server 端参数

wdelay & no_wdelay

配置 async 的时候没法使用 no_wdelay,高并发写入时不建议开 wdelay,no_wdelay建议配合 sync 使用

打赏
打赏提示信息
分享
分享提示信息