系统新增了一块盘50G的磁盘/dev/sdb,需对根目录进行扩容
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 17G 4.6G 13G 27% / /dev/sda1 1014M 185M 830M 19% /boot tmpfs 378M 12K 378M 1% /run/user/42 tmpfs 378M 0 378M 0% /run/user/0概念介绍
LVM linux 是下对磁盘分区进行管理的一种机,是制建立在磁盘分区和文件系统间的一个逻辑层,类似于物理服务器的RAID,可以在不重新对磁盘分区的情况下动态的调整分区的大小。例如系统新增一块硬盘,可以通过lvm动态添加到系统空间。
PM(Physical Media):物理存储设备:比如 /dev/sda、/dev/sdb、/dev/sdb 等
PV(Physical Volume):物理卷 :类似硬盘分区
VG(Volume Group):卷组 :不太明白,可以看成是由一个或者多个 PV(物理卷)的组合
LV(Logical Volume):逻辑卷:类似于非 LVM 系统上的磁盘分区,LV 建立在 VG 上,可以在 LV 上建立文件系统
简易结构如下
实现方法
如上图所示,我们将硬盘sda分区后对每个分区创建PV123,然后将PV123加入到VG1中,此时此刻VG1相当于一个汇聚了很多个PV的大硬盘,然后我们再VG1上划分LV,可以看成是再大硬盘上分区,但这个分区是动态的,当我们后续有新硬盘sdb加入到服务器,我们对sdb进行分区并对分区创建PV,然后我们可以将PV4加入到VG1中,于是扩大了VG1的实际空间,这扩大的部分空间我们就可以动态的调整给VG1下的LV,达到扩展文件系统大小的目的,以下是具体步骤
1 给新磁盘创建分区磁盘小于2T可使用MGR分区,超过2T的需要使用GPT模式,我这里仅做测试,一下命令将sdb转换为gpt格式,然后创建了一个分区并占用所有空间
[root@centos131 ~]# parted -s /dev/sdb mklabel gpt [root@centos131 ~]# parted -s /dev/sdb mkpart logic 0% 100%2 创建物理卷(PV)
[root@centos131 ~]# pvcreate /dev/sdb1 WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sdb1. Physical volume "/dev/sdb1" successfully created. [root@centos131 ~]#
查看PV
可以看见针对/dev/sdb1的pv已创建成功,且系统根目录所属PV是/etc/sda2,VG是centos
[root@centos131 ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <19.00 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 4863 Free PE 0 Allocated PE 4863 PV UUID xowzcE-poPQ-mofa-zecu-9KPl-vkCu-ob4rC3 "/dev/sdb1" is a new physical volume of "<50.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size <50.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID q3ikhJ-1hkf-8Tr6-lV5i-QQ8w-lC7L-dv5Jh93 扩容卷组(VG)
将新的PV(/dev/sdb1)添加到当前根目录所属VG(centos)中
[root@centos131 ~]# vgextend centos /dev/sdb1 Volume group "centos" successfully extended
查看:可以看到我们新增的PV(/dev/sdb1)的VG已被改成centos
[root@centos131 ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <19.00 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 4863 Free PE 0 Allocated PE 4863 PV UUID xowzcE-poPQ-mofa-zecu-9KPl-vkCu-ob4rC3 --- Physical volume --- PV Name /dev/sdb1 VG Name centos PV Size <50.00 GiB / not usable 2.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 12799 Free PE 12799 Allocated PE 0 PV UUID q3ikhJ-1hkf-8Tr6-lV5i-QQ8w-lC7L-dv5Jh94 扩展逻辑卷(LV)
查看当前LV:可以看出当前卷组VG(centos)中存在两个逻辑卷LV(swap、root),其中swap作为虚拟内存使用,root是我们本次需要扩展的系统根目录所在的逻辑卷
[root@centos131 ~]# lvdisplay --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID nqYaFO-NmDI-K1ii-Gsxi-q9wC-nPuW-2EaHTL LV Write Access read/write LV Creation host, time localhost.localdomain, 2022-05-30 11:26:27 +0800 LV Status available # open 2 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID BQ2EDi-tljG-2VhV-NGCd-nCk2-Jqh8-yJkaaH LV Write Access read/write LV Creation host, time localhost.localdomain, 2022-05-30 11:26:27 +0800 LV Status available # open 1 LV Size <17.00 GiB Current LE 4351 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:05 扩展逻辑卷
由于前序操作已经将新的磁盘空间分区并划分给了我们系统所在的卷组VG(centos),所以现在需要对该卷组的可用容量进行分配,以下命令将centos卷组的所有剩余空间分配给逻辑卷root
[root@centos131 ~]# lvextend -l+100%FREE /dev/centos/root Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to 66.99 GiB (17150 extents). Logical volume centos/root successfully resized. [root@centos131 ~]# xfs_growfs /dev/centos/root6 扩展文件系统
最后在对文件系统进行扩容即可完成
[root@centos131 ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4455424, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4455424 to 17561600
7 验证
可以看见根目录空间从之前的17G变成了67G
df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 67G 5.2G 62G 8% / /dev/sda1 1014M 185M 830M 19% /boot tmpfs 378M 0 378M 0% /run/user/1001 tmpfs 378M 12K 378M 1% /run/user/42 tmpfs 378M 0 378M 0% /run/user/0



