2022. 8. 27. 19:05ㆍ✨ Linux
Intro
disk 파티셔닝을 해서 lvm 으로 사용하고 있는데, 모든 설정을 원복하고 처음부터 다시 해보려고 한다.
이전에는 lvm 구축(pv, lv, vg 생성) 위주로 해봤다면 이번에는 삭제하는 과정을 테스트 해 본다.
이전 게시글 : 2021.09.01 - [✨ Linux] - LVM(Logical Volume Manager) 의 개념과 설정 방법
AS-IS
지금은 다음과 같이 설정되어 있다.
/dev/sda 디바이스는 /dev/sda1 ~ /dev/sda3 으로 파티셔닝 되어있고, /dev/sda2, /dev/sda3이 test_lv라는 logical volume 으로 사용되고 있다.
[root@server-1-lab ~]# fdisk -l /dev/sda
Disk /dev/sda: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
Disk label type: dos
Disk identifier: 0x000d0a4b
Device Boot Start End Blocks Id System
/dev/sda1 8192 204799 98304 8e Linux LVM
/dev/sda2 204800 458751 126976 83 Linux
/dev/sda3 458752 655359 98304 83 Linux
/dev/sda4 655360 4194303 1769472 5 Extended
/dev/sda5 663552 1187839 262144 83 Linux
/dev/sda6 1196032 4194303 1499136 83 Linux
Disk /dev/mapper/testvg-test_lv: 209 MB, 209715200 bytes, 409600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
[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
| `-testvg-test_lv 253:1 0 200M 0 lvm /exports/test
`-sda3 8:3 0 96M 0 part
`-testvg-test_lv 253:1 0 200M 0 lvm /exports/test
vda 252:0 0 30G 0 disk
`-vda1 252:1 0 30G 0 part /
[root@server-1-lab ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 470M 0 470M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 13M 483M 3% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 30G 2.0G 29G 7% /
192.168.1.21:/ 30G 1.3G 29G 5% /root/nfslist
192.168.1.21:/test 30G 1.3G 29G 5% /mnt/test
/dev/mapper/testvg-test_lv 190M 1.6M 175M 1% /exports/test
/dev/mapper/examvg-exam_lv 89M 4.9M 84M 6% /data
tmpfs 100M 0 100M 0% /run/user/0
TO-BE
/dev/sda2, /dev/sda3 파티션을 삭제하고 각각 100MB, 128MB로 다시 생성한다.
작업
umount
원복할 disk 파티션을 사용하는 test_lv에 마운트 된 것을 해제한다.
fstab이 설정된 경우 fstab 도 수정 한다.
[root@server-1-lab ~]# umount /exports/test/
Logical Volume을 Inactive 설정하기
test_lv를 inactive 상태로 변경한다. lvscan 으로 logical volume 의 활성화 여부를 볼 수 있다.
[root@server-1-lab ~]# lvchange -an /dev/testvg/test_lv
[root@server-1-lab ~]# lvscan
inactive '/dev/testvg/test_lv' [200.00 MiB] inherit
ACTIVE '/dev/examvg/exam_lv' [92.00 MiB] inherit
Logical Volume 제거
[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 정보가 없는 것을 볼 수 있다.
[root@server-1-lab ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 examvg lvm2 a-- 92.00m 0
/dev/sda2 lvm2 --- 124.00m 124.00m
/dev/sda3 lvm2 --- 96.00m 96.00m
pvremove로 pv를 삭제한다.
[root@server-1-lab ~]# pvremove /dev/sda2
Labels on physical volume "/dev/sda2" successfully wiped.
[root@server-1-lab ~]# pvremove /dev/sda3
Labels on physical volume "/dev/sda3" successfully wiped.
[root@server-1-lab ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 examvg lvm2 a-- 92.00m 0
결과
이렇게 /dev/testvg/test_lv lvm 구축되어 있던 것을 모두 삭제하였다.
[root@server-1-lab ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 examvg lvm2 a-- 92.00m 0
[root@server-1-lab ~]# vgs
VG #PV #LV #SN Attr VSize VFree
examvg 1 1 0 wz--n- 92.00m 0
[root@server-1-lab ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
exam_lv examvg -wi-ao---- 92.00m
[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 /
참고 문서
'✨ Linux' 카테고리의 다른 글
[LVM] lvextend 로 logical volume 확장하기 (0) | 2022.08.28 |
---|---|
로컬 yum 레포지터리 만들기! (reposync, yumdownloader, createrepo) (0) | 2022.08.28 |
MBR, GPT 파티셔닝 차이점 및 Primary / Extended Partition 이해하기 (0) | 2022.08.25 |
SNAT / DNAT 개념과 iptables 에 NAT 룰 적용해보기 (0) | 2022.08.13 |
Shell Script 짜면서 찾아봤던 것들 (0) | 2022.08.11 |