ECS 的系统盘通常不大。数据库文件、日志和业务上传的内容放在上面,很快就会写满。给实例加一块独立的数据盘,把业务数据单独放在一个目录里,系统和数据互不干扰,之后扩容和备份也更方便。下面以一台 Linux 实例为例,走一遍阿里云云盘挂载的流程,包括重启后仍能自动挂载的配置。

一、挂载前先确认三件事
动手前看一下这三点,能省去在控制台里找不到实例、或者挂到一半才发现问题的麻烦。
- 可用区要一致。云盘只能挂载到同一可用区的实例上。实例在可用区 A,云盘建在可用区 B,挂载时的实例列表里就不会出现它。
- 留意挂载数量上限。单台实例能挂载的数据盘数量由实例规格决定。到实例详情页查一下上限,如果已经接近上限,再加盘就可能挂不上。
- 有数据先做快照。挂载操作本身不会删除数据,但接下来的格式化会。云盘如果是从快照创建的,或盘上已经有文件,先打一个快照,出问题时还能回退。
二、在控制台挂载云盘
登录 ECS 管理控制台,进入“存储与快照”下的“云盘”页面,找到目标云盘。在操作列选择“挂载”,选中实例后确认。状态变为“使用中”,说明挂载关系已经建立。
多数情况下,运行中的实例也可以直接挂载。如果控制台提示需要先停机,就先停止实例再挂载,以页面提示为准。
三、确认系统识别到了新磁盘
通过 SSH 登录实例,执行以下命令查看磁盘列表:
lsblk
输出中会多出一个没有挂载点的设备,常见名称是 vdb 或 xvdb,大小与控制台里的云盘容量一致。设备名以 lsblk 的输出为准,不要凭印象猜。盘符写错,后面每一步都会跟着出错。
四、格式化与分区
容量在 2TB 以下的云盘,可以直接格式化成一个文件系统,省掉分区。下面以 100GB 的 vdb 为例,格式化为 ext4:
mkfs.ext4 /dev/vdb
注意:格式化会清空盘上的全部数据。这一步只适合确认为空的新盘。盘上如果有数据,先确认它不是需要保留的数据源,再动手。
超过 2TB 的云盘需要使用 GPT 分区表,否则无法用满全部容量。可以这样操作,分区后设备名会变成 vdb1,后面的挂载和 blkid 都要改用 vdb1:
parted -s /dev/vdb mklabel gpt mkpart primary 0% 100%
mkfs.ext4 /dev/vdb1
五、创建挂载点并挂载
创建一个目录作为挂载点,然后挂载并检查:
mkdir -p /data
mount /dev/vdb /data
df -h /data
如果 df 显示的容量接近 100GB,说明挂载成功。不过这只是临时挂载,实例一重启就会失效,下一节配置开机自动挂载。
六、配置开机自动挂载
直接把 /dev/vdb 写进 /etc/fstab 有风险。设备名由内核按探测顺序分配,增减磁盘之后可能变化,结果可能挂错盘,或者挂载失败。UUID 跟着文件系统走,不受设备顺序影响,所以用 UUID 更稳。先获取 UUID:
blkid /dev/vdb
复制输出中 UUID 的值,编辑 /etc/fstab,在末尾添加一行,把“替换为实际值”换成真实的 UUID:
UUID=替换为实际值 /data ext4 defaults,nofail 0 0
nofail 参数的作用是,即使这块盘挂不上,系统也照常启动。如果缺少这个参数,一块数据盘出问题就可能让实例卡在启动阶段,远程登录都会变得困难。
写完之后先不要直接重启。执行 mount -a,没有报错,并且 df -h /data 能看到挂载信息,再重启实例做最终验证。
七、案例:迁移 MySQL 数据目录
某电商小团队的一台 ECS 实例,系统盘 40GB,MySQL 数据目录一直放在系统盘上,磁盘使用率长期超过 90%。团队购买了一块 500GB 的 ESSD 云盘,按上述步骤挂载到 /data,然后依次操作:
- 停止 MySQL 服务,避免迁移过程中数据还在变化。
- 复制原数据目录:cp -a /var/lib/mysql /data/。-a 会保留权限和属主,复制完成后比对一下两个目录的大小是否一致。
- 修改 MySQL 配置中的 datadir,指向 /data/mysql。
- 启动服务,确认业务读写正常后,再清理系统盘上的旧数据。
迁移后,系统盘使用率降到 40% 以下。之后数据盘扩容,在控制台完成后再执行文件系统扩容即可,系统盘不受影响。团队在迁移前保留了快照,万一出问题,可以作为回滚依据。
八、常见问题排查
- df 显示的容量没有变化。云盘扩容后,文件系统不会自动变大。ext4 执行 resize2fs /dev/vdb,XFS 执行 xfs_growfs /data。
- 卸载时提示设备忙。说明仍有进程在使用这个目录。用 fuser -m /data 找出进程,停止它们之后再执行 umount。
- 重启后挂载丢失。检查 /etc/fstab 的格式,各字段之间用空格或制表符分隔,UUID 不能抄错。
按控制台挂载、系统内格式化并挂载、用 UUID 写入 fstab 的顺序操作,每一步都能用命令输出确认结果。出问题时从前往后检查,通常很快能找到原因。