nfs mv 的操作是原子的么? A 节点 move, B 节点要么完全可见,要么完全不可见?

3 月 24 日
 weishao666

比如机器 A 、B 的/data 挂载了同一个 nfs 挂载点,A 机器/data 目录下有一个文件夹 a 下有 10000 个文件,我把/data/a 移动到/data/b ,对于机器 B 而言,如果节点 A 上已经看到 move 完成了,那么节点 B 上由于 nfs 异步延迟的存储,可能前几秒看不到这个移动的操作,过几秒之后可以看到/data/a 变成了/data/b ,那么存不存在一个中间状态,我能看到/data/b ,但是/data/b 下只有比如 2000 个文件

2496 次点击
所在节点    Linux
1 条回复
silverwzw
3 月 24 日
我的理解是,nfs 的 rename 应该是原子的。因为 RFC 1813 (即 NFS v3 标准)的 3.3.14 节( Procedure 14: RENAME - Rename a File or Directory ) DESCRIPTION 部分是这么说的 "The operation is required to be atomic to the client."

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1200802

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX