Linux根目录磁盘扩容

环境准备

假设目前我们的根目录磁盘使用率已达到100%,此刻我们的磁盘总容量为95G,并且通过lsblk发现了我新插入,即将要用于扩容到根目录的50G磁盘【nvme0n2】,环境已具备,即将开始扩容操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查看当前根目录磁盘使用情况
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 777M 9.8M 767M 2% /run
/dev/mapper/rhel-root 95G 4.9G 90G 6% /
/dev/nvme0n1p2 960M 264M 697M 28% /boot
/dev/nvme0n1p1 599M 7.1M 592M 2% /boot/efi
tmpfs 389M 52K 389M 1% /run/user/42
tmpfs 389M 100K 389M 1% /run/user/0

# 查看当前服务器盘符使用情况
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 100G 0 disk
├─nvme0n1p1 259:1 0 600M 0 part /boot/efi
├─nvme0n1p2 259:2 0 1G 0 part /boot
└─nvme0n1p3 259:3 0 98.4G 0 part
├─rhel-root 253:0 0 94.5G 0 lvm /
└─rhel-swap 253:1 0 3.9G 0 lvm [SWAP]
nvme0n2 259:4 0 50G 0 disk

根目录磁盘扩容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 为新磁盘创建一个分区,p(主分区)、默认回车、w(退出并保存分区)
[root@localhost ~]# fdisk /dev/nvme0n2

欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x31c8cf52 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):n
分区类型
p 主分区 (0 primary, 0 extended, 4 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认 1):
第一个扇区 (2048-104857599, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-104857599, 默认 104857599):

创建了一个新分区 1,类型为“Linux”,大小为 50 GiB。
命令(输入 m 获取帮助):w

1
2
3
4
5
6
7
8
9
10
11
12
 # 查看分区是否创建成功,新分区名称为【nvme0n2p1】
[root@localhost ~]# lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sr0
nvme0n1
├─nvme0n1p1 vfat FAT32 C427-1A51 591.8M 1% /boot/efi
├─nvme0n1p2 xfs 93d050f3-c57c-44e8-a059-c029b36cced1 696.4M 27% /boot
└─nvme0n1p3 LVM2_member LVM2 001 k059oe-foEY-M2YG-cKsQ-YqYB-xHgk-S3b5cs
├─rhel-root xfs ab92f8e8-23f6-4944-b113-f4d1273dd2ad 89.6G 5% /
└─rhel-swap swap 1 18d4dd2e-af9f-4f75-b78b-a9335fda999d [SWAP]
nvme0n2
└─nvme0n2p1
1
2
3
4
5
6
7
8
9
# 将新分区创建为PV
[root@localhost dev]# pvcreate /dev/nvme0n2p1
Physical volume "/dev/nvme0n2p1" successfully created.

# 查看PV是否创建成功,可以看到【nvme0n1p3】是我现在根磁盘用的90多G的容量,而【nvme0n2p1】是新加进来的50G容量
[root@localhost dev]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p3 rhel lvm2 a-- 98.41g 4.00m
/dev/nvme0n2p1 lvm2 --- <50.00g <50.00g
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查询VG现有使用情况,可以看到VG空闲内容已经不够了
[root@localhost dev]# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- 98.41g 4.00m


# 为根磁盘的VG增加空闲容量,将新的PV容量增加到这个VG
[root@localhost dev]# vgextend rhel /dev/nvme0n2p1
Volume group "rhel" successfully extended

# 查看vg扩容是否成功,VG已经从原先的98G变成了148G,空闲50G可用
[root@localhost dev]# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 2 2 0 wz--n- <148.41g 50.00g
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# 查看VG剩余数据块有多少【Free  PE / Size       12800 / 50.00 GiB】剩余12800个数据块
[root@localhost dev]# vgdisplay
--- Volume group ---
VG Name rhel
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size <148.41 GiB
PE Size 4.00 MiB
Total PE 37992
Alloc PE / Size 25192 / <98.41 GiB
Free PE / Size 12800 / 50.00 GiB
VG UUID 3mFZRu-uZbm-pyEC-xAp8-42Zj-rxjz-uClt98




# 查看现有LV容量大小,root(根磁盘容量)、swap(swap容量)
[root@localhost dev]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- <94.49g
swap rhel -wi-ao---- <3.92g




# 扩容LV,对【/dev/rhel/root】扩容,【-l +12800】 对该LV增加12800个数据块
# 或者也可用根据GiB来进行增加,则使用该命令【lvextend /dev/rhel/root -L +50GiB】
[root@localhost dev]# lvextend /dev/rhel/root -l +12800
Size of logical volume rhel/root changed from <94.49 GiB (24189 extents) to <144.49 GiB (36989 extents).
Logical volume rhel/root successfully resized.



# 查看根目录是文件系统,可以看到,我们原先的和新增的磁盘分区都是xfs文件系统类型
[root@localhost dev]# lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sr0
nvme0n1
├─nvme0n1p1 vfat FAT32 C427-1A51 591.8M 1% /boot/efi
├─nvme0n1p2 xfs 93d050f3-c57c-44e8-a059-c029b36cced1 696.4M 27% /boot
└─nvme0n1p3 LVM2_member LVM2 001 k059oe-foEY-M2YG-cKsQ-YqYB-xHgk-S3b5cs
├─rhel-root xfs ab92f8e8-23f6-4944-b113-f4d1273dd2ad 89.6G 5% /
└─rhel-swap swap 1 18d4dd2e-af9f-4f75-b78b-a9335fda999d [SWAP]
nvme0n2
└─nvme0n2p1 LVM2_member LVM2 001 BK4L6G-1Lt3-FuPS-5UTS-R0bm-fTIC-f2F60g
└─rhel-root xfs ab92f8e8-23f6-4944-b113-f4d1273dd2ad 89.6G 5% /


# 重载文件系统:根据你的文件系统选择重载所使用的方式
# 1、xfs使用【xfs_growfs /dev/rhel/root】
# 2、ext使用【resize2fs /dev/rhel/root】
[root@localhost dev]# xfs_growfs /dev/rhel/root
meta-data=/dev/mapper/rhel-root isize=512 agcount=4, agsize=6192384 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=24769536, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 24769536 to 37876736



# 查看磁盘容量,此时根目录的文件大小则从原来的95变成了145G
[root@localhost dev]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 777M 9.7M 768M 2% /run
/dev/mapper/rhel-root 145G 5.3G 140G 4% /
/dev/nvme0n1p2 960M 264M 697M 28% /boot
/dev/nvme0n1p1 599M 7.1M 592M 2% /boot/efi
tmpfs 389M 52K 389M 1% /run/user/42
tmpfs 389M 36K 389M 1% /run/user/0