多台服务器要读写同一份数据时,本地磁盘很快会成为瓶颈。阿里云NFS(文件存储 NAS)提供标准 NFS 协议的共享存储,多台 ECS、容器和计算节点挂载后,访问的是同一个目录。一台机器写入的文件,其他机器马上能读到,不用再手动同步。下面几类场景,用阿里云NFS通常比自建 NFS 服务省心:

- 多节点共享静态资源,例如网站图片、视频和模板文件。
- 容器持久化存储,Pod 重建后数据还在。
- 日志集中归档,多台应用服务器写入同一个目录,排查时只需看一处。
- 机器学习训练数据共享,多个训练节点读取同一份数据集。
控制台目前提供通用型 NAS 和极速型 NAS 等规格。通用型能满足大多数业务,极速型更适合对延迟敏感的场景。选规格前,先看清业务的读写模式和并发量。
二、三步完成挂载
挂载前要确认两件事:ECS 和 NAS 挂载点必须位于同一个 VPC,安全组还要放行 NFS 端口(默认 2049)。两项中只要有一项不满足,挂载就会超时。
- 创建文件系统和挂载点:在控制台选择与 ECS 相同的地域和 VPC,创建后获取挂载点域名,格式类似 文件系统ID.地域.nas.aliyuncs.com。
- 安装客户端并创建目录:CentOS 系列安装 nfs-utils,Ubuntu 系列安装 nfs-common。然后执行 mkdir -p /mnt/nas 创建挂载目录。
- 手动挂载,验证后写入 fstab:执行 mount -t nfs -o vers=4.0,noresvport 挂载点域名:/ /mnt/nas,确认能正常读写。验证通过后,把同样的参数写入 /etc/fstab,重启后会自动挂载。
挂载参数里的 noresvport 可以在高并发下避免端口占用问题。这一项在实际部署中很容易漏掉。
三、案例一:电商商品图片的多节点共享
某中型电商团队原先把商品图片存在一台文件服务器上,三台应用服务器通过 rsync 定时同步。大促期间同步有延迟,新上架的商品图片偶尔显示为空白,运维得频繁手动排查。
改造很简单。三台应用服务器挂载同一个阿里云NFS目录,上传服务只写这一个路径。图片上传完成后,所有节点立即可见。rsync 任务随之删除,同步相关的故障工单基本消失。大促前后图片量波动较大,团队借助 NAS 的容量自动扩展能力应对,不必再提前预购磁盘。
四、案例二:容器应用的数据持久化
一个内容审核平台把审核日志和模型缓存放在容器本地目录里。节点升级或 Pod 漂移后,缓存丢失,服务冷启动要超过十分钟。
团队通过 CSI 插件把阿里云NFS挂载为 PersistentVolume,并以 ReadWriteMany 模式供多个 Pod 共享。Pod 重建后数据会自动重新挂载,冷启动时间降到一分钟以内。注意一点:多个 Pod 同时写同一个文件时,并发控制要由应用层自己做。NFS 不提供数据库那样的事务能力。
五、五个优化建议
- 选对协议版本:优先使用 NFSv4.0 或更高版本。v4 在状态管理和安全性上比 v3 更好,新部署没有理由继续用 v3。
- 调整读写块大小:通过 rsize 和 wsize 适当增大块大小。大文件顺序读写时,吞吐会更稳定。调整后要用实际文件大小测一遍,块设得过大对小文件没有帮助。
- 避免小文件风暴:海量小文件会放大元数据操作的开销。可以在业务侧先打包,或在本地做一层缓存,减少对 NAS 的直接访问。
- 配置生命周期策略:长期不访问的数据迁移到低频存储,能有效降低存储成本。迁移前先确认哪些目录确实没有读取记录。
- 开启监控告警:重点关注容量、延迟和挂载状态,在云监控中设置阈值。阈值设好后,问题能在用户感知前暴露出来。
六、常见问题排查
挂载超时通常由网络或安全组引起。先用 telnet 挂载点域名 2049 检查端口是否连通。提示权限被拒绝时,检查权限组规则是否允许该 ECS 的 IP 段访问。写入性能突然下降时,先确认是否有大量小文件操作,再查看监控中的 IOPS 和延迟曲线。
七、落地前的建议
如果业务正被文件同步或容器数据丢失困扰,可以先选一套非核心服务做试点。挂载参数、VPC 和安全组配置都按上面的步骤走一遍,跑一段时间,确认读写延迟和稳定性符合预期,再推广到全部节点。