本文介绍如何从LVM中的卷组中删除物理卷的方法。

前言

如果LVM不再需要使用设备,则可以使用vgreduce命令从卷组中删除物理卷,vgreduce命令通过删除物理卷来缩小卷组的容量。参考vgreduce命令_Linux vgreduce命令使用详解:从卷组中删除物理卷。

如果仍在使用物理卷,则必须使用pvmove命令将数据传输到另一个物理卷。数据移动后,可以将其从卷组中删除。参考pvmove命令_Linux pvmove命令使用详解:搬移PV中的资料。

1、将范围移动到现有物理卷

使用pvs命令检查是否使用了所需的物理卷(我们计划在LVM中删除“/dev/sdb1”磁盘):

# pvs -o+pv_used

centos删除物理卷 linux怎么删除物理卷_sed

如果使用此选项,请检查该卷组中其他物理卷上是否有足够的自由范围。

如果是这样,可以在要删除的设备上运行pvmove命令,范围将分发到其他设备:

# pvmove /dev/sdb1
/dev/sdb1: Moved: 2.0%
…
/dev/sdb1: Moved: 79.2%
…
/dev/sdb1: Moved: 100.0%

pvmove命令完成时,重新使用pvs命令检查物理卷是否空闲:

# pvs -o+pv_used

centos删除物理卷 linux怎么删除物理卷_sed_02

请使用vgreduce命令从卷组中删除物理卷/dev/sdb1:

# vgreduce myvg /dev/sdb1
Removed "/dev/sdb1" from volume group "myvg"

最后,运行pvremove命令从LVM配置中删除磁盘。现在,该磁盘已从LVM中完全删除,并可用于其他目的:

# pvremove /dev/sdb1
Labels on physical volume "/dev/sdb1" successfully wiped.

2、将范围移动到新磁盘

如果您在卷组中的其他物理量上没有足够的自由范围,使用以下步骤添加新的物理卷。

向存储团队请求新的LUN,分配完这些后,运行以下命令以发现Linux中新添加的LUN或磁盘:

# ls /sys/class/scsi_host
host0
# echo "- - -" > /sys/class/scsi_host/host0/scan
# fdisk -l

在操作系统中检测到磁盘后,请使用pvcreate命令创建物理卷:

# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created
使用以下命令将新的物理卷/dev/sdd1添加到现有的卷组vg01:
# vgextend vg01 /dev/sdd1
Volume group "vg01" successfully extended

现在,使用pvs命令查看已添加的新磁盘“/dev/sdd1”:

# pvs -o+pv_used

centos删除物理卷 linux怎么删除物理卷_sed_03

使用pvmove命令将数据从/dev/sdb1移动到/dev/sdd1:

# pvmove /dev/sdb1 /dev/sdd1

/dev/sdb1: Moved: 10.0%

/dev/sdb1: Moved: 79.7%

/dev/sdb1: Moved: 100.0%

数据移至新磁盘后,重新使用pvs命令检查物理卷是否空闲:

# pvs -o+pv_used

centos删除物理卷 linux怎么删除物理卷_centos删除物理卷_04

请使用vgreduce命令从卷组中删除物理卷/dev/sdb1:

# vgreduce myvg /dev/sdb1

Removed "/dev/sdb1" from volume group "myvg"

最后,运行pvremove命令从LVM配置中删除磁盘。现在,该磁盘已从LVM中完全删除,并可用于其他目的:

# pvremove /dev/sdb1

Labels on physical volume "/dev/sdb1" successfully wiped.