当阿里云服务器(ECS)的系统盘空间不足时,可以采取以下几种方法来解决:
一、临时解决方案:清理磁盘空间
-
清理无用文件
- 删除不必要的日志文件:
sudo rm /var/log/*.log sudo rm /var/log/*/*.gz - 清理 yum/apt 缓存:
- CentOS/RHEL:
sudo yum clean all - Ubuntu/Debian:
sudo apt-get clean
- CentOS/RHEL:
- 删除不必要的日志文件:
-
卸载不需要的软件包
sudo yum remove 软件名 # CentOS sudo apt-get remove 软件名 # Ubuntu -
查看大文件或目录占用情况
du -sh /* | sort -hr | head -10找出占用空间最大的目录,针对性处理。
-
清空临时文件
sudo rm -rf /tmp/* -
限制日志大小(使用 logrotate)
修改/etc/logrotate.conf或对应服务的日志配置,避免日志无限增长。
二、长期解决方案:扩容系统盘
⚠️ 注意:扩容前务必备份重要数据!
方法1:在线扩容(推荐)
适用于支持在线扩容的实例规格和镜像(如 CentOS 7.6+、Ubuntu 18.04+ 等)。
步骤如下:
-
登录阿里云控制台
- 进入 ECS 控制台
- 找到目标实例 → 停止实例(部分情况下可热扩容,但建议停机更安全)
-
修改系统盘大小
- 在实例详情页点击「更多」→「磁盘和镜像」→「更换系统盘」
- 或直接在「云盘」页面选择系统盘 → 「扩容」
- 输入更大的容量(例如从 40GB 扩到 80GB),付费后确认。
-
启动实例并登录服务器
-
扩展分区和文件系统
- 查看当前磁盘大小:
df -h lsblk - 如果是 GPT 分区且使用了 LVM,操作较复杂;如果是普通 MBR 主分区,可使用
growpart和resize2fs(ext4)或xfs_growfs(xfs)。
示例(ext4 文件系统):
# 安装工具(如未安装) sudo yum install cloud-utils-growpart -y # CentOS sudo apt-get install cloud-guest-utils -y # Ubuntu # 扩展分区(假设系统盘是 /dev/vda,分区是 /dev/vda1) sudo growpart /dev/vda 1 # 扩展文件系统 sudo resize2fs /dev/vda1如果是 XFS 文件系统:
sudo xfs_growfs / - 查看当前磁盘大小:
-
验证扩容结果:
df -h
方法2:更换系统盘(重建方式)
如果无法在线扩容,可以选择更换系统盘:
- 在 ECS 控制台 → 实例 → 更换系统盘
- 可选择原有镜像或新镜像,并设置更大的系统盘容量
- 启动后重新部署应用(注意:原系统盘数据将丢失,需提前备份)
✅ 优点:可换更大系统盘 + 升级操作系统
❌ 缺点:需要重装环境,适合初期阶段
三、预防措施
-
初始选型时预留足够空间
- 建议系统盘至少 60–100GB,尤其是要安装数据库、Docker 镜像等。
-
将数据存储到数据盘
- 单独挂载数据盘用于存放网站文件、数据库、日志等。
- 示例挂载点:
/data,/home,/var/lib/mysql
-
定期监控磁盘使用
- 使用云监控或脚本定时检查磁盘使用率。
四、常见问题
| 问题 | 解决方案 |
|---|---|
扩容后 df 显示没变大 |
忘记执行 growpart 和 resize2fs/xfs_growfs |
| 不支持在线扩容 | 检查实例规格和操作系统是否支持,或停机扩容 |
| 分区表类型不支持 | 使用 fdisk -l 查看,GPT 推荐使用 parted 工具 |
✅ 总结建议流程:
- 先清理临时文件释放空间(应急)
- 备份关键数据
- 在控制台扩容系统盘
- 登录服务器扩展分区和文件系统
- 验证
df -h是否生效
如需具体命令帮助,请提供你的:
- 操作系统(如 CentOS 7)
- 文件系统类型(
df -T查看) - 当前分区结构(
lsblk输出)
我可以为你生成精准的扩容命令。
CLOUD技术博