阿里云Linux热扩容云盘(growpart和resize2fs工具)
阿里云linux机器系统盘空间不够进行扩容
一、扩容物理盘
阿里云控制台在线扩容完成
二、安装growpart工具和resize2fs工具
[root@A ~]# yum install cloud-utils-growpart
[root@A ~]# yum install xfsprogs
三、检查扩容磁盘属性
1、检查云盘大小
/dev/vda1显示容量为20G(在线扩容后的容量,扩容部分只是增加了物理容量,分区和文件系统还不能使用)
[root@iZ25ywakjatZ ~]# fdisk -l
Disk /dev/vda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00078f9c
Device Boot Start End Blocks Id System
/dev/vda1 * 1 6527 20427103+ 83 Linux
2、运行df -h命令查看云盘分区大小。
以下示例返回分区(/dev/vda1)容量是20G
[root@A ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.5G 18G 92% /
3、文件系统检查命令是ext4
[root@A ~]# blkid /dev/vda1
/dev/vda1: UUID="deaab0e3-129e-4c09-86a4-e62d873ae4c0" TYPE="ext4"
四、使用growpart工具扩容分区
growpart 是磁盘分区扩容工具
示例命令表示给系统盘的第一个分区扩容(是第一个分区,而不是分区名称)
[root@A ~]# growpart /dev/vda1
CHANGED: partition=1 start=2048 old: size=41940992 end=41943040
new: size=209710462,end=209712510
若运行命令后报以下错误,您可以运行LANG=en_US.UTF-8切换ECS实例的字符编码类型。
[root@A~]# growpart /dev/vda1
unexpected output in sfdisk --version [sfdisk,来自 util-linux 2.23.2]
[root@A ~]# LANG=en_US.UTF-8
遇到问题1:
/dev/sda1
更换成 /dev/sda 1
blkid /dev/vda 1
[root@iZ25ywakjatZ logs]# blkid /dev/vda1
/dev/vda1: UUID="94e4e384-0ace-437f-bc96-057dd64f42ee" TYPE="ext4"
[root@iZ25ywakjatZ logs]# growpart /dev/vda1
growpart disk partition
rewrite partition table so that partition takes up all the space it can
options:
-h | --help print Usage and exit
--fudge F if part could be resized, but change would be
less than 'F', do not resize (default: 20480)
-N | --dry-run only report what would be done, show new 'sfdisk -d'
-v | --verbose increase verbosity / debug
-u | --update R update the the kernel partition table info after growing
this requires kernel support and 'partx --update'
R is one of:
- 'auto' : [default] update partition if possible
- 'force' : try despite sanity checks (fail on failure)
- 'off' : do not attempt
- 'on' : fail if sanity checks indicate no support
Example:
- growpart /dev/sda 1
Resize partition 1 on /dev/sda
遇到问题2:
(1):容量仅剩 20k 时会遇到很多问题,但是基本上都是没有存储空间导致的 。比如mysql ,redis 都无法正常使用,下载安装工具都没办法进行下去。 选择性删除掉一些无关紧要的内容,不多 保证有几十M就可以了
(2): NOCHANGE: partition 1 is size 419428319. it cannot be grown 这是因为我已经执行了
growpart /dev/vda
该命令是扩容分区的命令,如果您已执行完成,再次执行时,就会报 NOCHANGE: partition 1 is size 419428319. it cannot be grown
五、使用resize2fs工具扩容(同步)文件系统
resize2fs 是扩容(同步)文件系统工具
示例命令表示为扩容系统盘的/dev/vda1分区文件系统(ext4格式)
[root@iZ25ywakjatZ ~]# resize2fs /dev/vda1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 4
Performing an on-line resize of /dev/vda1 to 13106775 (4k) blocks.
The filesystem on /dev/vda1 is now 13106775 blocks long.
备注:
如果您使用的是xfs文件系统,运行xfs_growfs /dev/vda1命令扩容文件系统
文件系统检查命令
[root@A ~]# blkid /dev/vda1
/dev/vda1: UUID="deaab0e3-129e-4c09-86a4-e62d873ae4c0" TYPE="ext4"
执行命令如提示已到达最大分区时,需使用reboot
重启Linux后再次执行命令
The filesystem is already 5242624 blocks long. Nothing to do! -- 这个报错重启机器就可以了,这边扩容ext4文件系统时两台机器都进行了重启
六、检查扩容结50G,成功扩容
[root@iZ25ywakjatZ ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 50G 22G 25G 48% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/vdb 9.8G 4.8G 4.6G 52% /datadisk
操作命令输出记录
开始在线扩容
[root@iZ25ywakjatZ ~]# growpart /dev/vda 1
NOCHANGE: partition 1 is size 104854207. it cannot be grown
[root@iZ25ywakjatZ ~]# resize2fs /dev/vda1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 5242624 blocks long. Nothing to do!
报错,重启服务器再次进行扩容
#growpart 是磁盘分区扩容工具
[root@iZ25ywakjatZ ~]# growpart /dev/vda1
NOCHANGE: partition 1 is size 104854207. it cannot be grown
#resize2fs 是扩容文件系统工具
[root@iZ25ywakjatZ ~]# resize2fs /dev/vda1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 4
Performing an on-line resize of /dev/vda1 to 13106775 (4k) blocks.
The filesystem on /dev/vda1 is now 13106775 blocks long.
[root@iZ25ywakjatZ ~]#
成功了
[root@iZ25ywakjatZ ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 50G 22G 25G 48% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/vdb 9.8G 4.8G 4.6G 52% /datadisk
补充:使用xfs_growfs
命令在 CentOS/RHEL 中扩展 XFS 文件系统
[root@2 back_mongodb]# xfs_growfs /dev/vdb
meta-data=/dev/vdb isize=512 agcount=4, agsize=98304000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=393216000, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=192000, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 393216000 to 550502400
xfs_growfs /dev/vdb 扩容过程
[root@2 back_mongodb]# df -H
Filesystem Size Used Avail Use% Mounted on
devtmpfs 34G 0 34G 0% /dev
tmpfs 34G 0 34G 0% /dev/shm
tmpfs 34G 706M 33G 3% /run
tmpfs 34G 0 34G 0% /sys/fs/cgroup
/dev/vda1 106G 64G 37G 64% /
/dev/vdb 1.7T 1.2T 456G 72% /data
tmpfs 6.8G 0 6.8G 0% /run/user/0
overlay 106G 64G 37G 64% /var/lib/docker/overlay2/c762136b3c0abd5504840a70882c63d2fbc91c7d8e21d236a82523c0c62f19f3/merged
[root@2 back_mongodb]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 100G 0 disk
└─vda1 253:1 0 100G 0 part /
vdb 253:16 0 2.1T 0 disk /data
[root@2 back_mongodb]# blkid
/dev/vda1: UUID="207b19eb-8170-4983-acb5-9098af381e72" TYPE="ext4"
/dev/vdb: UUID="e654b0f6-bb74-4ece-85b9-a0af946e6b71" TYPE="xfs"
[root@2 back_mongodb]# xfs_growfs /dev/vdb
meta-data=/dev/vdb isize=512 agcount=4, agsize=98304000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=393216000, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=192000, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 393216000 to 550502400
[root@2 back_mongodb]# df -H
Filesystem Size Used Avail Use% Mounted on
devtmpfs 34G 0 34G 0% /dev
tmpfs 34G 0 34G 0% /dev/shm
tmpfs 34G 706M 33G 3% /run
tmpfs 34G 0 34G 0% /sys/fs/cgroup
/dev/vda1 106G 64G 37G 64% /
/dev/vdb 2.3T 1.2T 1.2T 52% /data
tmpfs 6.8G 0 6.8G 0% /run/user/0
overlay 106G 64G 37G 64% /var/lib/docker/overlay2/c762136b3c0abd5504840a70882c63d2fbc91c7d8e21d236a82523c0c62f19f3/merged
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库