NFS(EFS)未遵循close-to-open(CTO)一致性规则求助
AWS EFS Close-to-Open一致性不符合预期的问题
环境说明
- 两台EC2实例挂载同一份AWS Elastic File System(EFS)
- EFS基于NFSv4实现,官方明确支持close-to-open(CTO)一致性:
无论EFS客户端缓存状态如何,打开文件时都会向应用呈现最新数据(此处的“最新数据”特指已通过成功调用
close()完成的写入操作,详见NFS协议文档第8节)
问题场景与现象
- VM A编译项目生成库文件,完成写入并调用
close()后,VM B尝试读取该文件 - 按照CTO一致性规则,VM B在
open()文件时应该立即获取到最新版本,但实际需要等待数十秒才能看到更新后的内容 - 测试发现:如果禁用VM B的NFS客户端缓存,文件立即可见——这直接说明NFS客户端的缓存没有在
open()触发时自动失效
有没有人遇到过类似的NFS分布式存储一致性问题?求经验分享。
内容的提问来源于stack exchange,提问作者DRL DRL
相关产品推荐
相关产品推荐

