nfs rfc
https://www.rfc-editor.org/rfc/rfc8881.html
状态恢复,分布式锁,缓存策略
v3 vs v4 的差别
[!NOTE] 参考神奇海螺的意见,有待验证
NFSv3 更适合“最小用户态 server”
- v3 是无状态协议,核心就是一组独立 RPC:LOOKUP/GETATTR/READ/WRITE/CREATE/REMOVE。
- 只要再补一个 mountd 的 MNT,Linux client 就能拿到 root file handle,然后开始发 NFS 请求。
- 不需要实现 open/close 状态机、lease、clientid、sequence、compound op 这些东西。
- 对“研究 NFS 基本 IO 路径”来说,v3 足够清楚。
NFSv4 不适合这个最小目标
- v4 把 mount 协议合并进 NFS 本身,但代价是协议复杂很多。
- Linux client 挂载 v4 时会走 COMPOUND 请求,需要支持 PUTROOTFH/LOOKUP/GETFH/GETATTR/OPEN/READ/WRITE/CLOSE/REMOVE/CREATE 等一串操
作。
- v4 有 stateful open、stateid、clientid、lease、reclaim、sequence/session 相关语义。哪怕“假实现”,也要骗过 Linux client 的状态检
查。
- 如果只想支持基本 io/remove/create,v4 的前置机制会占掉大部分实现量。
问题
- nfs 可以基于 tcp ,也可以基于 udp 啊
如果 server 退出,client 卡住了,如何解决
sudo umount -f -l /tmp/user-nfsd-mnt
-f -l : 延迟退出
本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。