Linux非LVM磁盘分区及文件系统在线扩容
Linux非LVM磁盘分区及文件系统在线扩容
本文主要针对已经格式化并在使用的分区和文件系统进行扩容,对于新建分区并格式化使用,本文不做介绍。
这里的在线扩容指的是磁盘分区不需要umount,可以不影响业务进行在线扩容,适用于系统盘和数据盘在非LVM管理下的在线扩容场景。
安装gdisk和growpart工具
# centos
yum install -y cloud-utils-growpart gdisk xfsprogs
# ubuntu
sudo apt install cloud-guest-utils gdisk xfsprogs
说明
- cloud*为分区扩容工具,必须安装。
- GPT分区扩容需要安装gdisk,根据分区类型选择是否安装,如果是mbr分区扩容不需要安装。
- xfs文件系统扩容需要安装xfsprogs,根据文件系统类型选择是否安装。
扩容系统盘根分区
# 根分区容量利用率较高,需要扩容
root@gitlab-devops:~# df -Th /
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda2 ext4 40G 35G 2.3G 94% /
# 根分区挂载到/dev/vda2分区
root@gitlab-devops:~# fdisk -l /dev/vda
GPT PMBR size mismatch (83886079 != 209715199) will be corrected by write.
The backup GPT table is not on the end of the device. This problem will be corrected by write.
Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3940CBD5-5143-4D9C-87F8-58A68F7E7A2D
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 83884031 83879936 40G Linux filesystem
# 虚拟机环境,将vda磁盘改为100G。并使用growpart扩容分区
root@gitlab-devops:~# growpart /dev/vda 2
CHANGED: partition=2 start=4096 old: size=83879936 end=83884032 new: size=209711071 end=209715167
# 检查分区扩容成功
root@gitlab-devops:~# fdisk -l /dev/vda2
Disk /dev/vda2: 99.102 GiB, 107372068352 bytes, 209711071 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@gitlab-devops:~# fdisk -l /dev/vda
Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3940CBD5-5143-4D9C-87F8-58A68F7E7A2D
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 209715166 209711071 100G Linux filesystem
说明
- 如果单盘有多个连续分区的情况,仅能扩容最后一个分区。例如数据盘
/dev/vdb
有三个分区/dev/vdb1
、/dev/vdb2
和/dev/vdb3
。扩容时,只能扩容最后一个分区/dev/vdb3
,即执行growpart /dev/vdb 3
命令即可完成数据盘的分区扩容。- 如果是NVMe类型云盘,以分区名称
/dev/nvme0n1p1
为例,其中/dev/nvme0n1
是设备名称。扩容时执行命令为growpart /dev/nvme0n1 1
,而不是growpart /dev/nvme0n1p1 1
。- 如果您需要扩容的云盘分区是MBR分区表下的扩展分区(通常判断方式是分区号大于等于5),您需要先对扩展分区扩容后再对逻辑分区进行扩容。例如您有
/dev/vdb1
(主分区)、/dev/vdb2
(扩展分区)、/dev/vdb5
(逻辑分区)三个分区,此时您需要依次执行growpart /dev/vdb 2
、growpart /dev/vdb 5
完成分区的扩容。- 使用growpart工具时,如果出现报错信息,请参见常见问题进行排查。
扩容文件系统
根据不同的文件系统类型选择相应的命令:
# ext*文件系统扩容
resize2fs /dev/vda2
# xfs文件系统扩容,后面跟文件系统挂载点
xfs_growfs /
# btrfs文件系统扩容,后面跟文件系统挂载点
btrfs filesystem resize max /mnt
如下为ext4文件系统扩容:
root@gitlab-devops:~# resize2fs /dev/vda2
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/vda2 is mounted on /; on-line resizing required
old_desc_blocks = 5, new_desc_blocks = 13
The filesystem on /dev/vda2 is now 26213883 (4k) blocks long.
# 查看扩容成功
root@gitlab-devops:~# df -Th /
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda2 ext4 99G 35G 59G 38% /
相关资料
- 在Linux操作系统内扩容分区和文件系统_云服务器 ECS(ECS)-阿里云帮助中心
- 离线扩容分区和文件系统(Linux数据盘)_云服务器 ECS(ECS)-阿里云帮助中心
- 使用fdisk扩容新分区起始位置无法与扩容前保持一致如何解决-阿里云帮助中心
原文地址:https://blog.csdn.net/codelearning/article/details/143954182
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!