To remove any physical volume in a volume group vgreduce command can be used. The vgreduce command shrinks the volume group by removing one or more PVs. We can then either use these free PVS in another VG or remove them from the LVM configuration.
Removing the PV
1. Before removing a physical volume from a volume group, you can make sure that the physical volume is not used by any logical volumes by using the pvdisplay command.
# pvdisplay /dev/sdb1 -m --- Physical volume --- PV Name /dev/sdb1 VG Name vg_os2 PV Size 558.88 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 143072 Free PE 40672 Allocated PE 102400 PV UUID EPwws6-yxK0-7Ycb-IbFC-iYzE-5vNk-eQ7mYl --- Physical Segments --- Physical extent 0 to 51199: Logical volume /dev/vg_os2/lv_data Logical extents 0 to 51199
As shown in the commnad output above, the PV /dev/sdb1 is in use in the LV /dev/vg_os2/lv_data. If the physical volume you want to delete have some data, you can move it using the pvmove command and then delete the LV. refer the posts below to migrate the data and remove LV:
CentOS / RHEL : How to delete LVM volume
2. Use the vgreduce command to remove the physical volume. The following command removes the physical volume /dev/hda1 from the volume group my_volume_group.
# vgreduce vg_os2 /dev/sdb1