增加物理存储

将新扩容的 100GB 空间进行 fdisk 分区,或者直接使用 pvcreate 建立物理卷

建立物理卷(可选,建议用 fdisk 分区)

1
pvcreate /dev/sdb

fdisk 分区

lsblk 可以看到硬盘变成 300GB,但是分区还是 sda1 和 sda2 共 200GB,利用 fdisk 对 sda 进行分区,将扩容空间创建为新的 sda3 分区

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
(base) [root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 199.5G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 141.6G 0 lvm /home
sr0 11:0 1 1024M 0 rom
loop0 7:0 0 100G 0 loop
└─docker-253:0-76908-pool 253:3 0 100G 0 dm
├─docker-253:0-76908-6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463 253:4 0 10G 0 dm /var/lib/docker/devicemapper/mnt/6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463
├─docker-253:0-76908-b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68 253:5 0 10G 0 dm /var/lib/docker/devicemapper/mnt/b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68
└─docker-253:0-76908-9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c 253:6 0 10G 0 dm /var/lib/docker/devicemapper/mnt/9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c
loop1 7:1 0 2G 0 loop
└─docker-253:0-76908-pool 253:3 0 100G 0 dm
├─docker-253:0-76908-6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463 253:4 0 10G 0 dm /var/lib/docker/devicemapper/mnt/6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463
├─docker-253:0-76908-b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68 253:5 0 10G 0 dm /var/lib/docker/devicemapper/mnt/b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68
└─docker-253:0-76908-9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c 253:6 0 10G 0 dm /var/lib/docker/devicemapper/mnt/9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c

(base) [root@localhost ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

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: 322.1 GB, 322122547200 bytes, 629145600 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
Disk label type: dos
Disk identifier: 0x000696e6

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 419430399 209202176 8e Linux LVM

Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3):
First sector (419430400-629145599, default 419430400):
Using default value 419430400
Last sector, +sectors or +size{K,M,G} (419430400-629145599, default 629145599):
Using default value 629145599
Partition 3 of type Linux and of size 100 GiB is set

分区操作后,先输入 p,查看下分区表无误后,再执行 w 命令写入

1
2
3
4
5
6
7
8
9
10
11
12
13
Command (m for help): p

Disk /dev/sda: 322.1 GB, 322122547200 bytes, 629145600 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
Disk label type: dos
Disk identifier: 0x000696e6

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 419430399 209202176 8e Linux LVM
/dev/sda3 419430400 629145599 104857600 83 Linux

可以看到新的 30GB 空间已经分区完成为/dev/sda3,执行 w 写入

1
2
3
4
5
6
7
8
9
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

提示设备忙,需要 reboot 重启生效,执行 reboot 重启

再次查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(base) [root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 199.5G 0 part
│ ├─centos-root 253:0 0 50G 0 lvm /
│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
│ └─centos-home 253:2 0 141.6G 0 lvm /home
└─sda3 8:3 0 100G 0 part
sr0 11:0 1 1024M 0 rom
loop0 7:0 0 100G 0 loop
└─docker-253:0-76908-pool 253:3 0 100G 0 dm
├─docker-253:0-76908-b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68 253:4 0 10G 0 dm /var/lib/docker/devicemapper/mnt/b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68
├─docker-253:0-76908-6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463 253:5 0 10G 0 dm /var/lib/docker/devicemapper/mnt/6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463
└─docker-253:0-76908-9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c 253:6 0 10G 0 dm /var/lib/docker/devicemapper/mnt/9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c
loop1 7:1 0 2G 0 loop
└─docker-253:0-76908-pool 253:3 0 100G 0 dm
├─docker-253:0-76908-b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68 253:4 0 10G 0 dm /var/lib/docker/devicemapper/mnt/b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68
├─docker-253:0-76908-6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463 253:5 0 10G 0 dm /var/lib/docker/devicemapper/mnt/6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463
└─docker-253:0-76908-9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c 253:6 0 10G 0 dm /var/lib/docker/devicemapper/mnt/9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c

将扩容的分区添加到需要扩容的卷组中

查看卷组

1
2
3
(base) [root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- <199.51g 64.00m

当前虚拟机有一个卷组 centos

查看物理卷

1
2
3
(base) [root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <199.51g 64.00m

一个物理卷/dev/sda2 输入卷组 centos

利用 vgextend 命令将新的分区添加到目标卷组 centos 中

1
2
3
(base) [root@localhost ~]# vgextend centos /dev/sda3
Physical volume "/dev/sda3" successfully created.
Volume group "centos" successfully extended

再次查看卷组

1
2
3
(base) [root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz--n- 299.50g <100.06g

可以看到容量已经扩到 50GB

将扩容的空间添加到目标逻辑卷

查看逻辑卷

1
2
3
4
5
(base) [root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 141.57g
root centos -wi-ao---- 50.00g
swap centos -wi-ao---- <7.88g

详细查看使用 lvdisplay

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
(base) [root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID W4yCF3-wuNM-Kild-TemT-KcAC-24uz-MNkC25
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2022-05-14 05:56:45 +0800
LV Status available
# open 2
LV Size <7.88 GiB
Current LE 2016
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1

--- Logical volume ---
LV Path /dev/centos/home
LV Name home
VG Name centos
LV UUID u7E5Y7-90bS-7diU-P7UP-T2M6-sTpa-tEob12
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2022-05-14 05:56:45 +0800
LV Status available
# open 1
LV Size 141.57 GiB
Current LE 36242
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2

--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID nvNTNB-dtCa-alny-CYBS-mHqU-RBhr-GIOcjG
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2022-05-14 05:56:46 +0800
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0

使用 lvextend 命令进行逻辑卷扩容

1
2
3
(base) [root@localhost ~]# lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to <150.06 GiB (38415 extents).
Logical volume centos/root successfully resized.

使用 lsblk 命令查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(base) [root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 199.5G 0 part
│ ├─centos-root 253:0 0 150.1G 0 lvm /
│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
│ └─centos-home 253:2 0 141.6G 0 lvm /home
└─sda3 8:3 0 100G 0 part
└─centos-root 253:0 0 150.1G 0 lvm /
sr0 11:0 1 1024M 0 rom
loop0 7:0 0 100G 0 loop
└─docker-253:0-76908-pool 253:3 0 100G 0 dm
├─docker-253:0-76908-b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68 253:4 0 10G 0 dm /var/lib/docker/devicemapper/mnt/b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68
├─docker-253:0-76908-6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463 253:5 0 10G 0 dm /var/lib/docker/devicemapper/mnt/6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463
└─docker-253:0-76908-9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c 253:6 0 10G 0 dm /var/lib/docker/devicemapper/mnt/9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c
loop1 7:1 0 2G 0 loop
└─docker-253:0-76908-pool 253:3 0 100G 0 dm
├─docker-253:0-76908-b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68 253:4 0 10G 0 dm /var/lib/docker/devicemapper/mnt/b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68
├─docker-253:0-76908-6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463 253:5 0 10G 0 dm /var/lib/docker/devicemapper/mnt/6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463
└─docker-253:0-76908-9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c 253:6 0 10G 0 dm /var/lib/docker/devicemapper/mnt/9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c

发现/dev/sda3 已经扩容到 centos-root 逻辑卷中,现在逻辑卷容量为 150.1G.

创建文件系统

查看当前文件系统

1
2
3
4
5
6
7
8
9
10
11
12
13
(base) [root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat May 14 05:56:47 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=81551a02-4d71-4691-a1a4-2a35496ee1a7 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0

根目录为 xfs 文件系统,使用 xfs_growfs 命令进行扩容

1
2
3
4
5
6
7
8
9
10
11
(base) [root@localhost ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 13107200 to 39336960

再次查看磁盘

1
2
3
4
5
6
7
8
9
10
11
12
13
(base) [root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 5.8G 0 5.8G 0% /dev
tmpfs 5.8G 16K 5.8G 1% /dev/shm
tmpfs 5.8G 9.2M 5.8G 1% /run
tmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 151G 45G 106G 30% /
/dev/sda1 497M 211M 287M 43% /boot
/dev/mapper/centos-home 142G 33M 142G 1% /home
/dev/dm-4 10G 709M 9.3G 7% /var/lib/docker/devicemapper/mnt/b1b6f8238658349512a27061fc1ccaa59fdbcf9244c7319f7d98b8dd39231c68
/dev/dm-5 10G 907M 9.2G 9% /var/lib/docker/devicemapper/mnt/6487ee88cff7f7df32b6de854dce4a5bbf8d9be5b75d6c934b25458503954463
/dev/dm-6 10G 1.1G 9.0G 11% /var/lib/docker/devicemapper/mnt/9b2576df31fd36f7c031fbf7a11ff02f508d8e51cf8c8e1f18f2a86fe0fdf42c
tmpfs 1.2G 0 1.2G 0% /run/user/0

根目录已经扩容。