1、背景思路
CentOS7 服务器系统盘做了 lvm ,随着数据量的增大,可用空间不足,需要扩容。
思路:因为做了系统盘本身做了 lvm ,所以只需要将新磁盘加到现有的 lv 上去即可,具体的思路是: PV->VG->LV-> 文件系统使用(挂载到某个目录)
- PV (physical volume) 即物理卷,就是物理磁盘,可以通过 lsblk / fdisk -l 查看操作系统有几块硬盘
- VG (volume group) 即卷组,就是一组物理磁盘的组合,里面可以有一块硬盘也可以有多块硬盘
- LV (logical volume) 即逻辑卷,就是在 VG (指定的物理磁盘组)里面划分出来的
可以说成是 PV 就是硬盘,而 VG 就是管理硬盘的操作系统,而 LV 就是操作系统分出来的各个分区 。
2、扩容前
# 此时 /dev/mapper/centos-root 使用率已经超过 90%
[root@centos7-mongo data]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 49G 44G 4.5G 91% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 266M 3.6G 7% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-home 24G 33M 24G 1% /home
/dev/vda1 497M 102M 395M 21% /boot
tmpfs 783M 0 783M 0% /run/user/0
[root@centos7-mongo data]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 80G 0 disk
├─vda1 252:1 0 500M 0 part /boot
└─vda2 252:2 0 79.5G 0 part
├─centos-root 253:0 0 48.1G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 23.5G 0 lvm /home
vdb 252:16 0 120G 0 disk # vdb 这块磁盘是我刚刚加到机器上的,还没有实际使用起来
# 查看 vg 的详细情况
[root@centos7-mongo data]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2 #格式是 lvm 的则可以进行动态扩容
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 79.51 GiB
PE Size 4.00 MiB
Total PE 20354
Alloc PE / Size 20338 / 79.45 GiB # 这是已经分配的总空间
Free PE / Size 16 / 64.00 MiB # 这里是 vg 中未分配的空闲空间,可以看到现在基本没有未分配空间
VG UUID rikK2r-ImsN-bmzw-HPPe-v2r3-6Yh3-QGm5iM
3、扩容操作
# 用 pvcreate /dev/vdb 命令将 /dev/vdb 磁盘转换为物理卷(PV)
[root@centos7-mongo data]# pvcreate /dev/vdb
Physical volume "/dev/vdb" successfully created
# 查看系统中当前存在的 PV 卷
[root@centos7-mongo data]# pvdisplay
--- Physical volume ---
PV Name /dev/vda2
VG Name centos
PV Size 79.51 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 20354
Free PE 16
Allocated PE 20338
PV UUID iGdwiM-qqhv-Ekga-UhcU-Jc6Q-4xdY-y8DPHC
# 这里也提示了, /dev/vdb 是一个新的 PV 卷
"/dev/vdb" is a new physical volume of "120.00 GiB"
--- NEW Physical volume ---
PV Name /dev/vdb
VG Name
PV Size 120.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID boHtFk-LpxL-5x3c-89j9-T1Ym-OXQ6-sOlVlG
# 使用 vgextend 命令将 /dev/vdb 加入到 centos 这个 vg 卷组中,也就是把两个物理卷放到一个 vg 卷组里统一管理
[root@centos7-mongo data]# vgextend centos /dev/vdb
Volume group "centos" successfully extended
# 再次查看 vg 卷组的信息,观察 Free PE/Size 的变化
[root@centos7-mongo data]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 199.50 GiB
PE Size 4.00 MiB
Total PE 51073
Alloc PE / Size 20338 / 79.45 GiB
Free PE / Size 30735 / 120.06 GiB # centos 这个 vg 卷组中还有 120G 的空间可以分配,也就是刚刚加入的新磁盘
VG UUID rikK2r-ImsN-bmzw-HPPe-v2r3-6Yh3-QGm5iM
4、分配空间到分区
# 使用 lvextend 命令直接扩容对应的 LV 分区,这里我直接用的 root 分区的路径 /dev/mapper/centos-root,猜测用 lv 的名字也可以,lv 的名字可以使用 lvdisplay 命令查询
[root@centos7-mongo data]# lvextend -l +100%FREE /dev/mapper/centos-root # +100%FREE 的意思是把剩下的空间全部分配,也可以写成 “ +120G -n ”
Size of logical volume centos/root changed from 48.09 GiB (12311 extents) to 168.15 GiB (43046 extents).
Logical volume root successfully resized.
您在 /var/spool/mail/root 中有邮件
# 从下面可以发现,我给 /dev/mapper/centos-root 分区增加的 120G 空间并没有加上,是因为需要刷新一下
[root@centos7-mongo data]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 49G 44G 4.5G 91% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 266M 3.6G 7% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-home 24G 33M 24G 1% /home
/dev/vda1 497M 102M 395M 21% /boot
tmpfs 783M 0 783M 0% /run/user/0
# 使用 xfs_growfs 命令刷新分区的空间,可以看到新加的 120G 磁盘已经添加到 /dev/mapper/centos-root 分区了
[root@centos7-mongo data]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=3151616 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=12606464, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=6155, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 12606464 to 44079104
[root@centos7-mongo data]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 169G 44G 125G 26% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 274M 3.6G 7% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-home 24G 33M 24G 1% /home
/dev/vda1 497M 102M 395M 21% /boot
tmpfs 783M 0 783M 0% /run/user/0
上面就是一次扩容 lvm 系统盘的全过程,只要是 lvm 的分区方式,就都可以参照这个思路,对需要扩容的分区进行扩容。
本文记录了一次在CentOS7系统中进行LVM磁盘扩容的过程,详细阐述了从背景思路到实际操作的每个步骤,包括如何将新磁盘添加到现有LV,以及如何将扩容空间分配到分区。

6万+

被折叠的 条评论
为什么被折叠?



