growpartpvresize磁盘热扩容(分区扩容只能给最后一个分区执行扩容)

注:此种属于非lvm整盘扩容 和 分区扩容 ( 非lvm分区扩容中分区扩容,只能扩最后一个分区,不能扩前面以及中间的分区

参考:

https://blog.csdn.net/qq_34980668/article/details/119541957

image-20230522171958469

一. 分区扩容

背景

云硬盘从20G扩容到40G(这里只是扩容了云硬空间大小,并不是扩容了分区)

image-20230522171345362

如何扩容/data目录到40G?

二. 操作步骤

扩容/data目录步骤如下

(1).查看vdb云盘大小为40G,挂载到目录/data20G原因文件系统没有刷新 热扩容没有执行

1
2
3
# 查看磁盘 / 查看文件系统
lsblk
df -Th

image-20230522171541987

(2).使用growpart工具扩容分区vdb1 (有分区的情况只能给最后一个分区扩容)

1
2
# 给云盘vdb的最后一个分区扩容1为最后一个分区的分区号
growpart /dev/vdb 1

image-20230522171642776

(3).刷新到文件系统(通过df -Th查看文件系统类型以及分区号执行刷新)

1
2
3
4
5
# 检查分区信息
e2fsck -f /dev/sdb1
# 刷新到文件系统(通过`df -Th`查看文件系统类型以及分区号执行刷新)
resize2fs /dev/vdb1 (ext4)
xfs_growfs /dev/vdb1 (xfs)

image-20230522171738261

(4). 验证

1
2
# 验证
lsblk // df -Th

image-20230522171838612

(4). 或使用fdisk命令

使用fdisk -l查看没有分出来的容量再使用fdisk /dev/vdb将没有分出来的容量再分出一个区即可image-20230624231959567

三. 整盘扩容

若该磁盘已挂载只需要使用文件系统命令刷新一下df -Th即可显示。
刷新到文件系统

1
2
3
4
5
# 检查分区信息
e2fsck -f /dev/vdb
# 刷新到文件系统 (对于已挂载的情况)
resize2fs /dev/vdb (ext4)
xfs_growfs /dev/vdb (xfs)

image-20230624231513083

四. pvresize实现lvm卷扩容

  • 现象

    image-20231211184127314

  • 需要实现的需求将vda3里面的剩余空间扩展到lvm卷cl_blackcube-root

  • 解决

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 刷新分区表命令(有时已经刷新了但会延迟需要手动刷新分区表)
    partprobe
    # 将vda剩余空间扩展到vda最后一个分区vda3
    growpart /dev/vda 3
    # 使用pvresize 命令来扩展 /dev/vda3 的物理卷
    sudo pvresize /dev/vda3
    # 查看
    pvs
    # 扩展到lvm卷
    lvextend -l +100%FREE /dev/mapper/cl_blackcube-root
    # 刷新到文件系统
    xfs_growfs /dev/mapper/cl_blackcube-root

    pvs

    image-20231211184749443

    扩展到lvm

    image-20231211184858603

    刷新到文件系统

    image-20231211184945131

    lvm卷数据盘为整盘未分区时扩容

    image-20231227183723058

    扩展到lvm

    image-20231227183656737

    此时热扩容完成。

五. 总结

1、先扩容云硬盘大小

2growpart工具扩容分区

3xfs_growfs(用于XFS文件系统)或者resize2fs命令(用户ext2/ext3/ext4)扩容文件系统

五. 扩展

低版本centos根分区扩容 (谨慎操作)

前言:

低版本centos根分区扩容常规方法growpart有时候会失败此时需要通过重建分区的方式扩容

环境:对云主机执行系统盘扩容

原 / 执行扩容到80G

image-20230315145948045

image-20230425115026691

1. 查看前端操作扩容后磁盘情况

1
2
3
4
5
[root@test ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
└─sda1 8:1 0 70G 0 part /
注: 显示已经扩容完成 但是没有到根分区sda1里面 此时需要重建分区 刷新对应文件系统

2.重建分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
[root@test ~]# fdisk /dev/sda

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p # 查看分区情况
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 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: dos
Disk identifier: 0x6909cfbd

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 146800639 146798592 70G 83 Linux

Command (m for help): d # 删除分区 此时如有1个分区以上则会跳出选择分区 1,2,3....
Selected partition 1
Partition 1 has been deleted.
# 重建分区
Command (m for help): p # 查看刚才分区情况
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 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: dos
Disk identifier: 0x6909cfbd

Command (m for help): n # 开始执行重建分区
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): # 默认即可

Using default response p.
Partition number (1-4, default 1):
First sector (2048-167772159, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-167772159, default 167772159):

Created a new partition 1 of type 'Linux' and of size 80 GiB.

Command (m for help): p # 查看重建是否成功
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 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: dos
Disk identifier: 0x6909cfbd

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 167772159 167770112 80G 83 Linux # 成功

3. 刷新文件文件

此时lsblk查看已经成功 但是df -Th查看还是没有扩容 原因需要刷新文件系统

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
xfs_growfs  /dev/sdb      # xfs文件系统
resize2fs /dev/sdb # ext4文件系统

[root@test ~]# df -Th #查看文件系统
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 8.5M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 ext4 38G 1.5G 35G 4% /
tmpfs tmpfs 374M 0 374M 0% /run/user/0
# 执行刷新 / 成功
resize2fs /dev/sda1
[root@test ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 8.5M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 ext4 76G 1.5G 71G 2% /
tmpfs tmpfs 374M 0 374M 0% /run/user/0

结语祝好!