CentOS分区VG、PV、LV

发布时间 2023-09-02 12:19:08作者: 剑小秀

 

CentOS扩容卷组

pv、vg、lv的意思

image.png

物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备。

卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。

逻辑卷(Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。

1.首先查看我们的根分区大小是多少

[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        18G  1.1G   17G    6% /
devtmpfs                devtmpfs  479M     0  479M    0% /dev
tmpfs                   tmpfs     489M     0  489M    0% /dev/shm
tmpfs                   tmpfs     489M  6.7M  483M    2% /run
tmpfs                   tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1               xfs       497M  125M  373M   25% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0<br>

可以看到我们的根分区大小为17G

2.添加一块物理的磁盘。在虚拟机中添加

3.查看磁盘编号

ls /dev/sd*
/dev/sda  
/dev/sda1  
/dev/sda2  
/dev/sdb

可以看到sdb就是我们刚才添加的磁盘
4.创建pv

[root@localhost ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created

5.把pv加入vg中,相当于扩充vg的大小

先使用vgs查看vg组

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- 19.51g 40.00m

可以看到现在就一个vg组其中有两个lv卷,若不确定可以通过lvs查看是否是我们需要扩展的分区

[root@localhost ~]# lvs
LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
root centos -wi-ao---- 17.47g                                                  swap centos -wi-ao----  2.00g  

可以看到这就是我们需要扩展的根分区,我这里还有个swap分区
扩展vg,使用vgextend命令

[root@localhost ~]# vgextend centos /dev/sdb
  Volume group "centos" successfully extended

vgextend名字命令接的vg的名字,后面是磁盘的位置
6.我们成功把vg卷扩展了,在用vgs查看一下

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   2   2   0 wz--n- 39.50g 20.04g
[root@localhost ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 17.47g                                                   
  swap centos -wi-ao----  2.00g  

虽然我们把vg扩展了,但是lv还没有扩展
7.扩展lv,使用lvextend命令

[root@localhost ~]# lvextend -L +20G /dev/mapper/centos-root
  Size of logical volume centos/root changed from 17.47 GiB (4472 extents) to 37.47 GiB (9592 extents).
  Logical volume root successfully resized.-

指定扩展多大的空间到lv中去,后面的/dev/mapper/centos-root是指定扩展的文件位置,可在df -h中看见
查看lv大小

[root@localhost ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 37.47g                                                
  swap centos -wi-ao----  2.00g  

Tips: 卸载lv

# 如果卷组容量需要减少, 要先缩小lv(逻辑卷)大小
lvreduce -L -400G /dev/mapper/vg-root
# 从卷组中移除
vgreduce VG_NAME /dev/sdb

查看df -h中变化没有

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  1.1G   17G    6% /
devtmpfs                 479M     0  479M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.7M  483M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                     98M     0   98M    0% /run/user/0

没有变化。
那么我们要使用[root@localhost ~]# xfs_growfs /dev/mapper/centos-root 命令使系统重
新读取大小
如果是ext文件系统, 使用 resize2fs /dev/mapper/vg-root 命令

[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=1144832 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=4579328, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
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 4579328 to 9822208

再使用df -h查看

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   38G  1.1G   37G    3% /
devtmpfs                 479M     0  479M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.7M  483M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                     98M     0   98M    0% /run/user/0

到这里我们就成功扩展了。

备注:我们可以自行生产vg组以及在新的vg中生成lv

vgcreate 创建新的vg组

lvcreate 在新的vg中创建新的lv,但是要指定对vg名字

vgreduce 把pv从vg中移除,若vg中只有一个pv则直接使用vgremove