先说问题:多台服务器为什么要共用一个盘
单台 ECS 挂一块云盘,写到自家盘上,什么问题都没有。但只要业务一横向扩展,共享数据马上变成麻烦事:
- 用户上传的附件在 A 机器,B 机器读不到,只能靠 rsync 定时同步,同步间隔内的请求就是 404;
- 网站做了负载均衡(SLB)后面挂了两台 ECS,程序日志各写各的,出问题要登录两台机器来回 grep。
云盘 EBS 是块设备,同一时刻只能挂到一台 ECS 上。对象存储 OSS 又只提供 HTTP 接口,不是本地目录,老程序直接读写 /data/uploads 的路径一行都改不了。
文件存储 NAS 就是填这个缺口的:它是一个支持 POSIX 接口的分布式文件系统,同一个文件系统可以同时挂载到多台 ECS 上共享访问,程序按普通目录读写,不用改代码。这篇按实操路径把选型、挂载、开机自启和成本账一次讲清。
一、先分清 NAS、OSS、EBS 各自的位置
三者经常被混着问,用一张表定边界:
| 对比项 | NAS 文件存储 | OSS 对象存储 | EBS 云盘 |
|---|---|---|---|
| 接口形态 | POSIX 目录(NFS/SMB) | HTTP REST API | 块设备 |
| 能否多节点同时挂载 | 可以,数千节点共享 | 天然多端访问 | 单台(多数形态) |
| 最典型场景 | 多台 ECS 共享附件/日志/主目录 | 图床、备份、静态资源、冷数据 | 单机系统盘、数据盘 |
| 扩容方式 | 容量随写入自动弹性增长 | 无容量概念,按量计费 | 手动/在线扩容 |
| 计费粒度 | 实际存储容量(小时峰值) | 存储+请求+流量 | 容量+性能规格 |
一句话选型:要做"本地目录那样共享",只能选 NAS;要"投递和分发文件",选 OSS;单机独占的块设备,用 EBS。 三者不是替代关系,实际项目里常常组合使用。
如果打算把这套共享存储和 ECS 一起落地,产品入口在这:文件存储 NAS 产品页。
二、选型:五个规格怎么选
NAS 底下不是一种产品,而是一组规格,选错了要么性能不够,要么白花钱。当前提供通用容量型、通用高级型、通用性能型、极速标准型、极速高级型五类,另有一个面向 AI Agent 场景的 AgenticFS。存储单价(华东 1 杭州,量级供参考,以官方页面实时展示为准):
| 规格 | 存储单价 | 适用负载 |
|---|---|---|
| 通用容量型 | 约 0.35 元/GiB/月 | 数据库备份、日志存储、Linux home、成本敏感且不追求低时延 |
| 通用高级型 | 约 0.85 元/GiB/月 | 容器数据持久化、AI 训练数据、工业仿真等时延敏感业务 |
| 通用性能型 | 约 1.85 元/GiB/月 | 时延敏感型 Web 内容管理、基因计算、容器 PV |
| 极速标准型 / 极速高级型 | 按配置容量计费,价格另计 | CI/CD、高性能 Web、在线教育/游戏等强低时延场景 |
选型路径建议按「时延要求 → 协议 → 容量」三步走:
- 时延不敏感(备份、归档、日志、家目录)→ 通用容量型,最省钱;
- 要低时延但跑在通用 ECS 上(Web 内容、容器 PV)→ 通用性能型或高级型;
- 对延迟极度敏感、要用全闪网络架构(CI/CD 构建、高并发 Web)→ 极速型,注意极速型只支持 NFS v3,且必须手动添加挂载点。
协议就两个:Linux 用 NFS,Windows 用 SMB。通用型 NAS 两种都支持;极速型只有 NFS。
三、创建文件系统 + 挂载点 + 权限组
控制台路径:登录 NAS 控制台 → 概览页文件系统选型区 → 通用型 NAS 下方「创建」。关键参数只有四个:
- 地域 / 可用区:必须和要挂载的 ECS 在同一地域;
- 协议类型:Linux 选 NFS;
- 挂载点类型:选「专有网络」;
- VPC / 虚拟交换机:必须选和 ECS 相同的 VPC,否则网络不通。
这里有两个容易被忽略的默认行为:
- 每个阿里云账号会自动生成一个 VPC 默认权限组,规则是允许同一 VPC 下任意 IP 访问。生产环境建议自建权限组,按网段收敛,而不是放着默认规则不管;
- 通用型 NAS 创建时会自动生成一个挂载点并绑定 VPC 默认权限组;极速型 NAS 需要手动添加挂载点。
挂载点地址在控制台「文件系统列表 → 管理 → 挂载使用」里能看到,格式形如 xxxxx-xxxx.cn-hangzhou.nas.aliyuncs.com。这就是后面 mount 命令要用到的地址。
四、挂载实操:装客户端 + mount
1. 安装 NFS 客户端(每台机器执行一次)
# Alibaba Cloud Linux / CentOS / RedHat
sudo yum install nfs-utils
# Ubuntu / Debian
sudo apt-get update
sudo apt-get install nfs-common
2. 执行挂载
通用型 NAS 挂载命令如下,把 file-system-id.region.nas.aliyuncs.com:/ 换成自己的挂载点地址:
# NFS v3(推荐,性能最优)
sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport \
file-system-id.region.nas.aliyuncs.com:/ /mnt
# NFS v4.0(需要多台 ECS 同时改同一个文件时用,v4 才支持文件锁)
sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport \
file-system-id.region.nas.aliyuncs.com:/ /mnt
挂载参数不用背,记住几个关键的:
| 参数 | 建议值 | 作用 |
|---|---|---|
| vers | 3 或 4 | NFS 协议版本,多机同写同文件必须用 4 |
| rsize / wsize | 1048576 | 读写数据块大小,用最大值避免性能下降 |
| hard | 启用 | 不启用则 NAS 短暂不可用时客户端直接报错,有数据不一致风险 |
| timeo | 600 | 单位 0.1 秒,即等待 60 秒;要改建议 ≥150 |
| retrans | 2 | 重试次数 |
| noresvport | 启用 | 网络重连时用新 TCP 端口,保障故障恢复不中断 |
注意:本地挂载路径如果是非空目录,挂载成功后本地原有数据会被 NAS 数据遮住(不是删除,但看不见了)。所以建议用空目录挂载。
3. 验证
mount -l # 输出里能看到类型为 nfs4 / nfs 的那一行即挂载成功
df -h # 查看共享盘容量与已用
4. 控制台一键挂载(多台 ECS 批量场景)
如果要在几十台 ECS 上挂同一个文件系统,别一台台敲命令。控制台「文件系统列表 → 挂载」提供一键挂载,支持批量选择 ECS 实例,自动写好挂载路径和开机自动挂载配置。首次使用需要授权一个 NAS 一键挂载的服务关联角色。
五、开机自动挂载:写进 /etc/fstab
上面的 mount 命令重启后失效,要持久化就写 /etc/fstab:
# NFS v3
file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
# NFS v4.0
file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
三个要点:
- 务必先确认手动挂载成功再写 fstab,写错了可能导致 ECS 启动异常;
_netdev参数必加,防止客户端在网络就绪之前就去挂载;- 最后两个
0 0表示不做 dump 备份、启动时不跑 fsck,对 NAS 而言这是正确值。
配完用 reboot 验证,重启后一分钟内 df -h 看共享盘是否自动挂上了。
六、成本账:按量、资源包与生命周期
NAS 默认按量付费,通用型的计费口径是每小时存储容量峰值 × 小时单价,注意是"峰值"不是"平均",业务写入有尖峰的话要按峰值估。
如果存储量相对稳定,买资源包更划算。资源包按基准单价约 0.3 元/GiB/月折算,但对不同规格、不同存储类型有折算系数——高频数据要乘大于 1 的系数,低频/归档数据系数小于 1。官方例子:20 GiB 热数据 + 60 GiB 低频数据 + 20 GiB 归档数据,在容量型下折合基准容量仅 48.6 GiB,比全部按标准型存储省下一大半。
省钱的关键动作是开生命周期管理(仅通用型 NAS 支持):文件每月访问频率低于 2 次即可转低频,长期不动的转归档。但两个隐性成本要注意——转储过程中新旧两种存储类型会各留一份副本,会产生短时双份计费;归档文件不到 60 天就被删除或取回,按剩余天数补收费用,所以归档别拿来做"临时冷存"。
| 存储类型 | 单价量级 | 说明 |
|---|---|---|
| 标准型 | 容量型 0.35 元/GiB/月 | 默认 |
| 低频 | 约 0.15 元/GiB/月 | 自动转储,另收低频读写流量费 |
| 归档 | 约 0.05 元/GiB/月 | 最低存储时长 60 天,不足则补收 |
(以上单价与折算系数均为量级参考,以官方页面实时展示为准;资源包的抵扣系数随规格和地域变化,购买前在控制台按自己的数据构成算一遍。)
七、上线后要配的几件事
- 权限与配额:生产环境别用默认权限组,自建权限组按网段收敛;需要限制某个目录的容量或文件数量,用目录配额;
- 回收站:通用型 NAS 支持开启回收站,误删的文件连同 UID/GID/ACL 元数据一起暂存,可恢复;
- 加密:数据敏感就开服务端加密;跨公网传输记得开 NFS 传输加密(TLS);
- 备份:用云备份做定期备份策略,或配跨地域备份防单地域故障;
- 监控:在云监控里配容量和性能告警,容量快满时提前收到通知,而不是等写入失败。
八、避坑清单
- 文件系统、挂载点、ECS 必须同地域,跨地域轻则延迟高、重则不通;
- 挂载点所在 VPC 必须和 ECS 一致,否则网络不通;
- 默认权限组允许同 VPC 任意 IP,生产环境务必自建权限组收敛;
- 多台 ECS 同时改同一个文件,必须用 NFS v4.0(v3 无文件锁,会互相覆盖);
- 只追求性能就选 NFS v3,官方明确 v3 访问性能最优;
- 本地挂载路径用空目录,非空目录会被 NAS 数据遮住;
- fstab 里别漏
_netdev,且先手动挂成功再写 fstab; - 归档存储最低 60 天,别当临时冷存用,否则补收费用;
- 生命周期转储期间会有双份副本计费,账单短期上涨是正常的;
- 只开通服务、不创建文件系统不会扣费;但一旦创建就开始按量计费,不用了要删除文件系统才停止计费,删除后数据不可恢复。
小结
多台 ECS 共享一盘这件事,NAS 是目前最省事的解法:控制台建文件系统 → 装 NFS 客户端 → mount → 写 fstab,四步就能让一组服务器像访问本地目录一样共享数据。真正决定用得顺不顺的不是挂载本身,而是前面几个决策——选哪个规格、权限组怎么收、冷数据要不要靠生命周期管理降本。这几件事想清楚,后续运维几乎没有额外负担。