服务器只有一块40GB的系统盘(/dev/vda),目前已在线扩容到60GB,但是查看磁盘占用,还是没有变化
df -h
查看系统磁盘(/dev/vda),可以看到系统盘已经扩容到60GB了,但是还有20GB没有分配,需要手动分配
自适应分区扩容
growpart /dev/vda 1
growpart 是磁盘分区扩容工具
上面的命令表示给系统盘的第一个分区扩容(注意是第一个分区,而不是分区名称)
如果出现下面的错误
[root@mypc ~]# yum -y install cloud-utils-growpart.noarch [root@mypc ~]# growpart /dev/vda 1 unexpected output in sfdisk --version [sfdisk,来自 util-linux 2.23.2]
通过维基百科最后找到一个解决方法
问题主要是在 文件编码 的问题,解决办法如下:
[root@mypc ~]# LANG=en_US.UTF-8 [root@mypc ~]# growpart /dev/vda 1 CHANGED: partition=1 start=2048 old: size=41940992 end=41943040 new: size=419428319,end=419430367
重设分区大小
resize2fs /dev/vda1
resize2fs 是扩容文件系统工具
上面的命令表示扩容系统盘的/dev/vda1分区文件系统(ext4格式)
再次查看磁盘占用情况
扩容数据云盘的例子
growpart /dev/vdb 1 LANG=en_US.UTF-8 growpart /dev/vdb 1 resize2fs /dev/vdb1 df -h
问题
运行扩容分区growpart命令时,提示NOCHANGE: partition 1 could only be grown by 2015 [fudge=2048]
。
原因:扩容分区时没有更多可用空间。通常是因为在控制台离线扩容云盘后,未通过控制台或OpenAPI重启实例,导致云盘本身没有得到扩容。
解决方案:离线扩容后,必须通过ECS控制台或者OpenAPI重启实例才能使云盘扩容生效,在ECS实例内部重启