[root@server-1-lab ~]# lvremove /dev/testvg/test_lv
Logical volume "test_lv" successfully removed
[root@server-1-lab ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2G 0 disk
|-sda1 8:1 0 96M 0 part
| `-examvg-exam_lv 253:0 0 92M 0 lvm /data
|-sda2 8:2 0 124M 0 part
|-sda3 8:3 0 96M 0 part
|-sda4 8:4 0 1K 0 part
|-sda5 8:5 0 256M 0 part
`-sda6 8:6 0 1.4G 0 part
vda 252:0 0 30G 0 disk
`-vda1 252:1 0 30G 0 part /
lv를 삭제하고 나서 바로 pv를 삭제하려고 하면 당연히 에러가 난다.
일단 lv를 삭제하고 쓰지 않고 있기 때문에 PFree값이 모두 PSize와 동일하다.
[root@server-1-lab ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 examvg lvm2 a-- 92.00m 0
/dev/sda2 testvg lvm2 a-- 120.00m 120.00m
/dev/sda3 testvg lvm2 a-- 90.00m 90.00m
[root@server-1-lab ~]# pvremove /dev/sda3
PV /dev/sda3 is used by VG testvg so please use vgreduce first.
(If you are certain you need pvremove, then confirm by using --force twice.)
/dev/sda3: physical volume label not removed.
Volume Group 삭제
vgreduce 명령어를 사용하여 vg에서 pv를 제거할 수 있다.
이때 PV가 하나밖에 없는 상태에서 마지막 PV를 제거하려고 하면 vg에 대한 metadata를 저장할 공간이 없어서 실패한다.
vgreduce 명령어는 말 그대로 "reduce" 하는 것이고, 어차피 testvg 자체를 지울 거라서 바로 vgremove를 했다.
[root@server-1-lab ~]# vgreduce testvg /dev/sda2
Removed "/dev/sda2" from volume group "testvg"
[root@server-1-lab ~]# vgreduce testvg /dev/sda3
Can't remove final physical volume "/dev/sda3" from volume group "testvg"
[root@server-1-lab ~]# vgremove testvg
Volume group "testvg" successfully removed
[root@server-1-lab ~]# vgs
VG #PV #LV #SN Attr VSize VFree
examvg 1 1 0 wz--n- 92.00m 0
Pyhical Volume 삭제
pv 정보를 조회하면 testvg 삭제로 인해 /dev/sda2, /dev/sda3에 vg 정보가 없는 것을 볼 수 있다.