
阿里云ECS云盘在线扩容
阿里云ECS服务器磁盘扩容后,宝塔面板不显示新容量?手把手教你解决
问题背景
前几天网站经常提示磁盘空间不足,查看宝塔面板发现系统盘使用率已经达到66%,可用空间只剩13G。考虑到网站数据还在不断增长,决定给系统盘扩容。
在阿里云控制台很轻松地就把系统盘从40G扩容到了50G,本以为这样就完事了,结果登录宝塔面板一看,磁盘大小还是显示40G。当时就懵了,明明已经扩容了,为什么系统里还是显示原来的大小?
经过查阅资料和实际操作,才发现原来阿里云后台扩容只是增加了物理磁盘容量,但系统内的分区和文件系统还是原来的大小,需要手动扩展才能使用新空间。

在阿里云后台给服务器系统盘扩容后,宝塔后台没有立即更新系统盘大小,需要进行接下来的重新挂载操作(图示我已经挂载成功了)
适用环境
- 操作系统:Linux CentOS 7.6 64位
- 面板:宝塔面板
- 云服务商:阿里云ECS
- 扩容场景:系统盘从40G扩容到50G
扩容前后对比
先来看看扩容前后的效果对比:
扩容前:
- 系统盘总容量:40G
- 已使用空间:25G
- 可用空间:13G
- 使用率:66%(空间紧张)
扩容后:
- 系统盘总容量:50G
- 已使用空间:25G
- 可用空间:23G
- 使用率:52%(空间充足)
可以看到,扩容后可用空间从13G增加到了23G,增加了77%,使用率也从66%降到了52%,系统运行会更加稳定。
操作前的准备工作
在开始扩容操作之前,有几个重要的准备工作必须完成:
1. 数据备份
虽然扩容过程相对安全,但为了保险起见,建议先备份重要数据:
- 在宝塔面板中备份数据库
- 备份网站文件
- 导出重要的配置文件
2. 创建系统快照
在阿里云控制台创建系统盘快照,这样即使扩容过程中出现问题,也可以快速回滚到扩容前的状态。
3. 选择合适的时间
扩容过程中网站会暂时无法访问(大约5-10分钟),建议选择访问量较少的时间段进行操作。
如何连接到服务器
对于小白用户来说,可能不知道如何连接到服务器执行命令。这里提供两种方法:
方法一:通过阿里云控制台远程连接(推荐)

点击图中的远程连接进入命令面板执行接下来的Linux命令
- 登录阿里云控制台
- 打开浏览器,访问阿里云官网
- 点击右上角”登录”,输入账号密码
- 进入ECS管理页面
- 登录后,在控制台首页找到”云服务器ECS”
- 点击进入ECS管理页面
- 选择要操作的服务器
- 在实例列表中,找到你的服务器
- 点击服务器名称或”管理”按钮
- 远程连接服务器
- 在服务器详情页面,点击”远程连接”按钮
- 选择”VNC远程连接”(第一次使用需要设置VNC密码)
- 输入VNC密码后,点击”确定”
- 等待连接建立(可能需要几秒钟)
- 登录系统
- 连接成功后,会看到命令行界面
- 输入用户名:root
- 输入密码:(你的服务器密码,输入时不会显示字符,这是正常的)
- 按回车键登录
- 登录成功后,会看到类似 [root@your-server ~]# 的提示符
方法二:使用SSH工具(适合有经验的用户)
如果你熟悉SSH工具,也可以使用:
- Windows用户:PuTTY、Xshell、MobaXterm
- Mac用户:Terminal、iTerm2
- Linux用户:系统自带的终端
连接命令:
推荐使用方法一,因为:
- 不需要安装额外软件,直接在浏览器中就能操作
- 操作简单,适合小白用户
- 扩容过程中宝塔面板会停止运行,但阿里云控制台连接不受影响
详细操作步骤
下面是我实际操作时的详细步骤,按照这个流程来操作,基本不会出问题:
第一步:检查当前磁盘状态
操作说明:
- 按照上面的方法连接到服务器
- 在命令行中输入以下命令(复制粘贴即可)
- 按回车键执行
预期结果:
正常情况下会看到类似这样的输出:
/dev/vda1 40G 25G 13G 66% /
/dev/vdb1 40G 13G 25G 33% /www/wwwroot/your-domain.com/wp-content/uploads
结果解读:
- /dev/vda1 就是我们的系统盘,显示大小还是40G
- 这就是我们要扩容的盘
- 如果这里显示50G,说明扩容已经生效,不需要继续操作
小白提示:
- 命令输入后按回车键执行
- 如果看到错误信息,不要慌,继续下一步
- 复制粘贴命令时,注意不要多复制空格
- 命令执行后,会显示结果,然后回到 [root@xxx ~]# 提示符,表示可以输入下一个命令
第二步:停止相关服务
操作说明:
为了避免扩容过程中出现数据问题,需要先停止相关服务。
systemctl stop nginx
systemctl stop mysql
小白提示:
- 这三个命令可以分别执行,也可以一次性复制粘贴执行
- 如果遇到某些服务停止失败(比如提示 php-fpm.service not loaded),不用担心,这是正常的
- 继续下一步就行,这些错误不影响扩容过程
重要提醒:
- 执行这些命令后,网站会暂时无法访问
- 这是正常现象,扩容完成后会自动恢复
第三步:卸载swap分区
操作说明:
这一步是为了释放swap分区,为扩容做准备。
小白提示:
- 这个命令执行后可能没有明显输出,这是正常的
- 继续下一步就行
第四步:扩展磁盘分区
操作说明:
这是扩容的核心步骤,使用 growpart 命令扩展分区。
成功标志:
如果看到类似这样的输出,说明成功了:
结果解读:
- 分区大小从 83873317 扩展到了 104854207
- 大约增加了20GB的空间
小白提示:
- 如果提示命令不存在,不要慌,后面会教你怎么解决
- 继续下一步就行
- 这个命令执行很快,通常几秒钟就完成了
第五步:扩展文件系统
操作说明:
分区扩展完成后,还需要扩展文件系统才能使用新空间。
重要提醒:
- 这个命令可能需要几分钟时间,请耐心等待
- 不要中断命令,让它自然完成
- 执行过程中会显示进度信息,这是正常的
- 如果长时间没有反应,也不要担心,继续等待
成功标志:
成功后会看到类似这样的输出:
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 4
The filesystem on /dev/vda1 is now 13106775 blocks long.
第六步:重新启用swap
如果出现权限警告,执行:
swapon -a
小白提示:
- 权限警告不影响扩容,可以忽略
- 继续下一步就行
第七步:启动服务
操作说明:
扩容完成后,重新启动服务。
systemctl start nginx
systemctl start mysql
小白提示:
- 这三个命令可以分别执行,也可以一次性执行
- 如果某些服务启动失败,不要慌,继续下一步
第八步:验证扩容结果
操作说明:
最后验证一下扩容是否成功。
成功标志:
如果看到系统盘显示50G,说明扩容成功了:
/dev/vda1 50G 25G 23G 52% /
结果解读:
- 系统盘从40G变成了50G
- 可用空间从13G增加到了23G
- 使用率从66%降到了52%
恭喜!扩容成功!
一键脚本(懒人专用)
如果你觉得上面的步骤太麻烦,也可以使用这个一键脚本,把所有命令打包在一起执行:
操作步骤:
- 按照前面的方法连接到服务器
- 复制下面的脚本(全选复制)
- 粘贴到终端中
- 按回车执行
- 等待完成(大约10-15分钟)
详细说明:
- 脚本会自动执行所有扩容步骤
- 每个步骤都会显示进度信息
- 整个过程无需人工干预
- 执行完成后会自动显示结果
echo “开始磁盘扩容…”# 停止服务
echo “停止服务…”
systemctl stop bt
systemctl stop nginx
systemctl stop mysql# 卸载swap
echo “卸载swap…”
swapoff -a# 扩展分区
echo “扩展分区…”
growpart /dev/vda 1# 扩展文件系统
echo “扩展文件系统…”
resize2fs /dev/vda 1# 重新启用swap
echo “重新启用swap…”
chmod 600 /www/swap 2>/dev/null
swapon -a# 启动服务
echo “启动服务…”
systemctl start bt
systemctl start nginx
systemctl start mysql# 验证结果
echo “扩容完成!”
df -h
小白提示:
- 脚本会显示执行进度,比如”停止服务…”、”扩展分区…”等
- 整个过程大约需要10-15分钟,请耐心等待
- 如果看到错误信息,不要慌,脚本会继续执行
注意事项:
- 确保已经备份了重要数据
- 脚本执行过程中不要中断
- 如果出现错误,可以继续执行
- 执行完成后检查结果
常见问题解决
在实际操作过程中,可能会遇到一些问题,这里总结一下常见的问题和解决方法:
问题1:growpart命令不存在
错误信息:growpart: command not found
原因分析:系统没有安装growpart工具,这是扩容必需的工具。
解决方法:
yum install cloud-utils-growpart -y
如果yum安装失败,可以尝试:
yum update -y
# 重新安装
yum install cloud-utils-growpart -y
小白提示:
- 安装过程可能需要几分钟,请耐心等待
- 安装完成后,重新执行扩容命令即可
问题2:设备忙,无法卸载
错误信息:umount: /www: target is busy
原因分析:有程序正在使用/www目录,无法卸载。
解决方法:
fuser -m -k /www
umount /www
小白提示:
- 这个错误比较少见,通常不会出现
- 如果出现,按照上面的命令执行即可
问题3:swap权限警告
错误信息:swapon: /www/swap: insecure permissions 0644, 0600 suggested
原因分析:swap文件的权限设置不够安全,系统建议修改。
解决方法:
chmod 600 /www/swap
swapon -a
小白提示:
- 这个警告不影响扩容,可以忽略
- 修复权限后,警告就会消失
问题4:服务启动失败
原因分析:扩容过程中服务可能没有正常启动。
解决方法:
systemctl status bt
systemctl status nginx
systemctl status mysql# 重启服务
systemctl restart bt
systemctl restart nginx
systemctl restart mysql
小白提示:
- 如果服务启动失败,不要慌,按照上面的命令重启即可
- 重启后检查网站是否能正常访问
问题5:扩容后磁盘大小没变
可能原因:
- 云服务商没有真正扩容磁盘
- 分区扩展失败
- 文件系统扩展失败
解决方法:
- 检查云服务商控制台,确认磁盘已扩容
- 重新执行扩容命令
- 联系云服务商技术支持
小白提示:
- 这种情况比较少见,通常是云服务商的问题
- 如果确认云服务商已扩容,可以重新执行扩容命令
扩容效果验证
扩容完成后,可以通过以下几种方式来验证扩容是否成功:
1. 检查磁盘使用情况
正常情况下应该看到系统盘显示50G:
/dev/vda1 50G 25G 23G 52% /
2. 检查宝塔面板
登录宝塔面板,查看系统监控页面,应该能看到磁盘大小已经更新为50G。
操作步骤:
- 在浏览器中输入宝塔面板地址:http://你的服务器IP:8888
- 输入用户名和密码登录
- 在左侧菜单中找到”系统监控”
- 查看磁盘使用情况,应该显示50G
3. 检查系统内存
预期结果:
Mem: 3.7G 1.3G 493M 216M 1.9G 1.9G
Swap: 999M 0B 999M
结果解读:
- 确保swap分区正常工作
- 如果swap显示0B,说明swap没有正常启用
4. 测试网站功能
测试项目:
- 访问网站,确保可以正常打开
- 测试文件上传功能
- 检查数据库连接是否正常
操作步骤:
- 在浏览器中访问你的网站
- 尝试上传一个文件(比如图片)
- 检查网站各项功能是否正常
- 如果发现问题,检查宝塔面板中的服务状态
扩容过程中的影响
对用户的影响
扩容过程中,网站会暂时无法访问,大约持续5-10分钟。这是正常现象,扩容完成后会自动恢复。
对系统的影响
- 系统负载基本无影响
- 数据完整性100%保证
- 扩容后系统运行更加稳定
总结
通过这次扩容操作,我学到了几个重要的知识点:
1. 云服务商扩容的局限性
阿里云后台扩容只是增加了物理磁盘容量,但系统内的分区和文件系统还是原来的大小。这就像买了一个更大的房子,但房间里的家具还是按原来的布局摆放,需要重新整理才能使用新空间。
2. 扩容操作的安全性
扩容过程是相对安全的,数据不会丢失,而且是在线扩容,无需重启系统。但为了保险起见,还是建议先备份重要数据和创建系统快照。
3. 扩容后的效果
扩容后,可用空间从13G增加到了23G,增加了77%,使用率也从66%降到了52%,系统运行会更加稳定。
4. 操作建议
- 定期检查磁盘使用情况,在空间不足前提前扩容
- 扩容前一定要备份重要数据
- 选择访问量较少的时间段进行操作
- 如果遇到问题,不要慌,大部分错误都不影响最终结果
5. 后续维护
扩容完成后,建议:
- 定期检查磁盘使用情况
- 及时备份重要数据
- 监控系统运行状态
希望这篇文章能帮助到遇到同样问题的朋友。如果大家在操作过程中遇到问题,欢迎在评论区留言讨论。
免责声明:本文仅供参考,操作前请确保已备份重要数据。因操作不当造成的数据损失,作者不承担责任。
下篇文章预告
大家可以看到上面第二张图里,我的网站有2个磁盘,一个系统盘,一个数据盘。今天的文章是讲关于系统盘扩容的,那下篇文章准备讲讲怎么新增数据盘以及为什么要给upload文件夹单独新增数据盘等相关的~
原文链接:https://www.amazon888.com/blog/24331.html,转载请注明出处和链接。
评论0