阿里云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

posted @   muzlei  阅读(1626)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示