使用云服务商提供的NFS需要注意对单个文件的并发写入问题

460 阅读1分钟

目前各大云服务商都提供基于NFS协议的网络存储,不如AWS EFS阿里云 文件存储 NASAzure Files等。这些基于NFS协议的分布式文件存储系统可以被多个客户端同时读写,但是要注意一点就是多个客户端不能同时写同一个文件,多个客户端只能同时并行的修改不同的文件,如果没有做好写同步措施的话可能会导致并发修改问题,进而导致数据损坏。这是因为文件存储 NAS(Apsara File Storage NAS)为多客户端提供了统一名字空间的文件共享读写能力,但在多进程/多客户端并发写同一个文件的场景中(典型的例如并发写同一个日志文件),各进程分别维护了独立的文件描述符及写入位置等上下文信息,而NFS协议本身并没有提供Atomic Append语义的支持,因此可能会出现写覆盖、交叉、串行等异常现象。

下图是AWS EFS被多个EC2并行访问的示意图,处于不同可用区的EC2都可以访问同一个EFS卷,从而实现多个程序间的数据共享。 EFS-Security.jpg

参考