이 VG는 20G PV 3개로 구성되어 있다.
이 VG에 30G PV 3개 더 붙여서 mirror LVM 구성하고 기존 20G PV 3개 제거하는 작업 과정을 정리했다.
RHEL6 rgmanager 기반 클러스터 환경이다.
[root@node01 ~]# clustat
Cluster Status for cluster @ Thu Nov 30 05:37:27 2017
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
node01 1 Online, Local, rgmanager
node02 2 Online, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:SG-01 node01 started
[root@node01 ~]#
[root@node01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-root
25G 8.2G 16G 35% /
tmpfs 430M 23M 407M 6% /dev/shm
/dev/vda1 976M 22M 914M 3% /boot
/dev/mapper/HA-lv01 22G 1.1G 20G 5% /data01
/dev/mapper/HA-lv02 4.8G 1.1G 3.6G 23% /data02
/dev/mapper/HA-lv03 25G 2.1G 22G 9% /data03
/dev/mapper/HA-lv04 7.8G 2.1G 5.4G 28% /data04
[root@node01 ~]#
[root@node01 data01]# pvs --all --segments -o +devices
PV VG Fmt Attr PSize PFree Start SSize Devices
/dev/HA/lv01 ---- 0 0 0 0
/dev/HA/lv02 ---- 0 0 0 0
/dev/HA/lv03 ---- 0 0 0 0
/dev/HA/lv04 ---- 0 0 0 0
/dev/ram0 ---- 0 0 0 0
/dev/ram1 ---- 0 0 0 0
/dev/ram10 ---- 0 0 0 0
/dev/ram11 ---- 0 0 0 0
/dev/ram12 ---- 0 0 0 0
/dev/ram13 ---- 0 0 0 0
/dev/ram14 ---- 0 0 0 0
/dev/ram15 ---- 0 0 0 0
/dev/ram2 ---- 0 0 0 0
/dev/ram3 ---- 0 0 0 0
/dev/ram4 ---- 0 0 0 0
/dev/ram5 ---- 0 0 0 0
/dev/ram6 ---- 0 0 0 0
/dev/ram7 ---- 0 0 0 0
/dev/ram8 ---- 0 0 0 0
/dev/ram9 ---- 0 0 0 0
/dev/root ---- 0 0 0 0
/dev/vda1 ---- 0 0 0 0
/dev/vda2 vg00 lvm2 a--u 29.00g 0 0 6399 /dev/vda2(0)
/dev/vda2 vg00 lvm2 a--u 29.00g 0 6399 1024 /dev/vda2(6399)
/dev/vdb1 HA lvm2 a--u 20.00g 0 0 5119 /dev/vdb1(0)
/dev/vdc1 HA lvm2 a--u 20.00g 0 0 513 /dev/vdc1(0)
/dev/vdc1 HA lvm2 a--u 20.00g 0 513 1280 /dev/vdc1(513)
/dev/vdc1 HA lvm2 a--u 20.00g 0 1793 1281 /dev/vdc1(1793)
/dev/vdc1 HA lvm2 a--u 20.00g 0 3074 2045 /dev/vdc1(3074)
/dev/vdd1 HA lvm2 a--u 20.00g 0 0 5119 /dev/vdd1(0)
/dev/vg00/swap ---- 0 0 0 0
[root@node01 data01]# lvs --all --segments -o +devices
LV VG Attr #Str Type SSize Devices
lv01 HA -wi-ao---- 1 linear 20.00g /dev/vdd1(0)
lv01 HA -wi-ao---- 1 linear 2.00g /dev/vdc1(0)
lv02 HA -wi-ao---- 1 linear 5.00g /dev/vdc1(513)
lv03 HA -wi-ao---- 1 linear 20.00g /dev/vdb1(0)
lv03 HA -wi-ao---- 1 linear 5.00g /dev/vdc1(1793)
lv04 HA -wi-ao---- 1 linear 7.99g /dev/vdc1(3074)
root vg00 -wi-ao---- 1 linear 25.00g /dev/vda2(0)
swap vg00 -wi-ao---- 1 linear 4.00g /dev/vda2(6399)
[root@node01 data01]#
mirror 구성
[root@node01 data01]# for A in 01 02 03 04 ; do lvconvert -m1 HA/lv$A ; done
mirror 작업이 끝났다.
[root@node01 ~]# clustat
Cluster Status for cluster @ Thu Nov 30 05:37:27 2017
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
node01 1 Online, Local, rgmanager
node02 2 Online, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:SG-01 node01 started
[root@node01 ~]#
[root@node01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-root
25G 8.2G 16G 35% /
tmpfs 430M 23M 407M 6% /dev/shm
/dev/vda1 976M 22M 914M 3% /boot
/dev/mapper/HA-lv01 22G 1.1G 20G 5% /data01
/dev/mapper/HA-lv02 4.8G 1.1G 3.6G 23% /data02
/dev/mapper/HA-lv03 25G 2.1G 22G 9% /data03
/dev/mapper/HA-lv04 7.8G 2.1G 5.4G 28% /data04
[root@node01 ~]#
[root@node01 data01]# pvs --all --segments -o +devices
PV VG Fmt Attr PSize PFree Start SSize Devices
/dev/HA/lv01 ---- 0 0 0 0
/dev/HA/lv02 ---- 0 0 0 0
/dev/HA/lv03 ---- 0 0 0 0
/dev/HA/lv04 ---- 0 0 0 0
/dev/ram0 ---- 0 0 0 0
/dev/ram1 ---- 0 0 0 0
/dev/ram10 ---- 0 0 0 0
/dev/ram11 ---- 0 0 0 0
/dev/ram12 ---- 0 0 0 0
/dev/ram13 ---- 0 0 0 0
/dev/ram14 ---- 0 0 0 0
/dev/ram15 ---- 0 0 0 0
/dev/ram2 ---- 0 0 0 0
/dev/ram3 ---- 0 0 0 0
/dev/ram4 ---- 0 0 0 0
/dev/ram5 ---- 0 0 0 0
/dev/ram6 ---- 0 0 0 0
/dev/ram7 ---- 0 0 0 0
/dev/ram8 ---- 0 0 0 0
/dev/ram9 ---- 0 0 0 0
/dev/root ---- 0 0 0 0
/dev/vda1 ---- 0 0 0 0
/dev/vda2 vg00 lvm2 a--u 29.00g 0 0 6399 /dev/vda2(0)
/dev/vda2 vg00 lvm2 a--u 29.00g 0 6399 1024 /dev/vda2(6399)
/dev/vdb1 HA lvm2 a--u 20.00g 0 0 5119 /dev/vdb1(0)
/dev/vdc1 HA lvm2 a--u 20.00g 0 0 513 /dev/vdc1(0)
/dev/vdc1 HA lvm2 a--u 20.00g 0 513 1280 /dev/vdc1(513)
/dev/vdc1 HA lvm2 a--u 20.00g 0 1793 1281 /dev/vdc1(1793)
/dev/vdc1 HA lvm2 a--u 20.00g 0 3074 2045 /dev/vdc1(3074)
/dev/vdd1 HA lvm2 a--u 20.00g 0 0 5119 /dev/vdd1(0)
/dev/vg00/swap ---- 0 0 0 0
[root@node01 data01]# lvs --all --segments -o +devices
LV VG Attr #Str Type SSize Devices
lv01 HA -wi-ao---- 1 linear 20.00g /dev/vdd1(0)
lv01 HA -wi-ao---- 1 linear 2.00g /dev/vdc1(0)
lv02 HA -wi-ao---- 1 linear 5.00g /dev/vdc1(513)
lv03 HA -wi-ao---- 1 linear 20.00g /dev/vdb1(0)
lv03 HA -wi-ao---- 1 linear 5.00g /dev/vdc1(1793)
lv04 HA -wi-ao---- 1 linear 7.99g /dev/vdc1(3074)
root vg00 -wi-ao---- 1 linear 25.00g /dev/vda2(0)
swap vg00 -wi-ao---- 1 linear 4.00g /dev/vda2(6399)
[root@node01 data01]#
mirror 구성
[root@node01 data01]# for A in 01 02 03 04 ; do lvconvert -m1 HA/lv$A ; done
mirror 작업이 끝났다.
LVM에서 mirror라는 게 일대일 복제 개념의 mirror가 아니라... 일종의 밸런싱 mirror되는 거다.
lvconvert 전에 생성해 놨던 lv들 중 일부를 일부러 두 개 pv에 걸쳐 배치되도록 만들었었다. HA/lv01의 경우 /dev/vdd1, /dev/vdc1 PV 두 군데에 배치되어 있었는데 mirror 후 3개 pv에 (밸런싱) mirror되었다. 밸런싱이란 표현은 내가 임의로 붙인 표현이다. PV 한 개 죽어도 LV 가용성 유지된다. 하나 더 죽으면 데이터는 날라가는 거다.
[root@node01 data01]# lvs --all --segments -o +devices
LV VG Attr #Str Type SSize Devices
lv01 HA mwi-aom--- 2 mirror 22.00g lv01_mimage_0(0),lv01_mimage_1(0)
[lv01_mimage_0] HA iwi-aom--- 1 linear 20.00g /dev/vdd1(0)
[lv01_mimage_0] HA iwi-aom--- 1 linear 2.00g /dev/vdc1(0)
[lv01_mimage_1] HA iwi-aom--- 1 linear 22.00g /dev/vde1(0)
[lv01_mlog] HA lwi-aom--- 1 linear 4.00m /dev/vdg1(0)
lv02 HA mwi-aom--- 2 mirror 5.00g lv02_mimage_0(0),lv02_mimage_1(0)
[lv02_mimage_0] HA iwi-aom--- 1 linear 5.00g /dev/vdc1(513)
[lv02_mimage_1] HA iwi-aom--- 1 linear 5.00g /dev/vde1(5632)
[lv02_mlog] HA lwi-aom--- 1 linear 4.00m /dev/vdg1(1)
lv03 HA mwi-aom--- 2 mirror 25.00g lv03_mimage_0(0),lv03_mimage_1(0)
[lv03_mimage_0] HA iwi-aom--- 1 linear 20.00g /dev/vdb1(0)
[lv03_mimage_0] HA iwi-aom--- 1 linear 5.00g /dev/vdc1(1793)
[lv03_mimage_1] HA iwi-aom--- 1 linear 25.00g /dev/vdf1(0)
[lv03_mlog] HA lwi-aom--- 1 linear 4.00m /dev/vde1(6912)
lv04 HA mwi-aom--- 2 mirror 7.99g lv04_mimage_0(0),lv04_mimage_1(0)
[lv04_mimage_0] HA iwi-aom--- 1 linear 7.99g /dev/vdc1(3074)
[lv04_mimage_1] HA iwi-aom--- 1 linear 7.99g /dev/vdg1(2)
[lv04_mlog] HA lwi-aom--- 1 linear 4.00m /dev/vde1(6913)
root vg00 -wi-ao---- 1 linear 25.00g /dev/vda2(0)
swap vg00 -wi-ao---- 1 linear 4.00g /dev/vda2(6399)
[root@node01 data01]#
이제 구 PV들을 제거해 보자.
[root@node01 data01]# lvconvert -m0 HA/lv01 /dev/vdb1 /dev/vdc1 /dev/vdd1
Logical volume lv01 converted.
[root@node01 data01]# lvconvert -m0 HA/lv02 /dev/vdb1 /dev/vdc1 /dev/vdd1
Logical volume lv02 converted.
[root@node01 data01]# lvconvert -m0 HA/lv03 /dev/vdb1 /dev/vdc1 /dev/vdd1
Logical volume lv03 converted.
[root@node01 data01]# lvconvert -m0 HA/lv04 /dev/vdb1 /dev/vdc1 /dev/vdd1
Logical volume lv04 converted.
[root@node01 data01]# lvs --all --segments -o +devices
LV VG Attr #Str Type SSize Devices
lv01 HA -wi-ao---- 1 linear 22.00g /dev/vde1(0)
lv02 HA -wi-ao---- 1 linear 5.00g /dev/vde1(5632)
lv03 HA -wi-ao---- 1 linear 25.00g /dev/vdf1(0)
lv04 HA -wi-ao---- 1 linear 7.99g /dev/vdg1(2)
root vg00 -wi-ao---- 1 linear 25.00g /dev/vda2(0)
swap vg00 -wi-ao---- 1 linear 4.00g /dev/vda2(6399)
[root@node01 data01]#
[root@node01 data01]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 vg00 lvm2 a--u 29.00g 0
/dev/vdb1 HA lvm2 a--u 20.00g 20.00g
/dev/vdc1 HA lvm2 a--u 20.00g 20.00g
/dev/vdd1 HA lvm2 a--u 20.00g 20.00g
/dev/vde1 HA lvm2 a--u 30.00g 3.00g
/dev/vdf1 HA lvm2 a--u 30.00g 5.00g
/dev/vdg1 HA lvm2 a--u 30.00g 22.01g
[root@node01 data01]# vgreduce HA /dev/vdb1 /dev/vdc1 /dev/vdd1
Removed "/dev/vdd1" from volume group "HA"
Removed "/dev/vdc1" from volume group "HA"
Removed "/dev/vdb1" from volume group "HA"
[root@node01 data01]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 vg00 lvm2 a--u 29.00g 0
/dev/vdb1 lvm2 ---- 20.00g 20.00g
/dev/vdc1 lvm2 ---- 20.00g 20.00g
/dev/vdd1 lvm2 ---- 20.00g 20.00g
/dev/vde1 HA lvm2 a--u 30.00g 3.00g
/dev/vdf1 HA lvm2 a--u 30.00g 5.00g
/dev/vdg1 HA lvm2 a--u 30.00g 22.01g
[root@node01 data01]#
[root@node01 data01]# pvremove /dev/vdb1 /dev/vdc1 /dev/vdd1
Labels on physical volume "/dev/vdb1" successfully wiped
Labels on physical volume "/dev/vdc1" successfully wiped
Labels on physical volume "/dev/vdd1" successfully wiped
[root@node01 data01]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 vg00 lvm2 a--u 29.00g 0
/dev/vde1 HA lvm2 a--u 30.00g 3.00g
/dev/vdf1 HA lvm2 a--u 30.00g 5.00g
/dev/vdg1 HA lvm2 a--u 30.00g 22.01g
[root@node01 data01]#
[root@node01 data01]# lvs --all --segments -o +devices
LV VG Attr #Str Type SSize Devices
lv01 HA mwi-aom--- 2 mirror 22.00g lv01_mimage_0(0),lv01_mimage_1(0)
[lv01_mimage_0] HA iwi-aom--- 1 linear 20.00g /dev/vdd1(0)
[lv01_mimage_0] HA iwi-aom--- 1 linear 2.00g /dev/vdc1(0)
[lv01_mimage_1] HA iwi-aom--- 1 linear 22.00g /dev/vde1(0)
[lv01_mlog] HA lwi-aom--- 1 linear 4.00m /dev/vdg1(0)
lv02 HA mwi-aom--- 2 mirror 5.00g lv02_mimage_0(0),lv02_mimage_1(0)
[lv02_mimage_0] HA iwi-aom--- 1 linear 5.00g /dev/vdc1(513)
[lv02_mimage_1] HA iwi-aom--- 1 linear 5.00g /dev/vde1(5632)
[lv02_mlog] HA lwi-aom--- 1 linear 4.00m /dev/vdg1(1)
lv03 HA mwi-aom--- 2 mirror 25.00g lv03_mimage_0(0),lv03_mimage_1(0)
[lv03_mimage_0] HA iwi-aom--- 1 linear 20.00g /dev/vdb1(0)
[lv03_mimage_0] HA iwi-aom--- 1 linear 5.00g /dev/vdc1(1793)
[lv03_mimage_1] HA iwi-aom--- 1 linear 25.00g /dev/vdf1(0)
[lv03_mlog] HA lwi-aom--- 1 linear 4.00m /dev/vde1(6912)
lv04 HA mwi-aom--- 2 mirror 7.99g lv04_mimage_0(0),lv04_mimage_1(0)
[lv04_mimage_0] HA iwi-aom--- 1 linear 7.99g /dev/vdc1(3074)
[lv04_mimage_1] HA iwi-aom--- 1 linear 7.99g /dev/vdg1(2)
[lv04_mlog] HA lwi-aom--- 1 linear 4.00m /dev/vde1(6913)
root vg00 -wi-ao---- 1 linear 25.00g /dev/vda2(0)
swap vg00 -wi-ao---- 1 linear 4.00g /dev/vda2(6399)
[root@node01 data01]#
이제 구 PV들을 제거해 보자.
[root@node01 data01]# lvconvert -m0 HA/lv01 /dev/vdb1 /dev/vdc1 /dev/vdd1
Logical volume lv01 converted.
[root@node01 data01]# lvconvert -m0 HA/lv02 /dev/vdb1 /dev/vdc1 /dev/vdd1
Logical volume lv02 converted.
[root@node01 data01]# lvconvert -m0 HA/lv03 /dev/vdb1 /dev/vdc1 /dev/vdd1
Logical volume lv03 converted.
[root@node01 data01]# lvconvert -m0 HA/lv04 /dev/vdb1 /dev/vdc1 /dev/vdd1
Logical volume lv04 converted.
[root@node01 data01]# lvs --all --segments -o +devices
LV VG Attr #Str Type SSize Devices
lv01 HA -wi-ao---- 1 linear 22.00g /dev/vde1(0)
lv02 HA -wi-ao---- 1 linear 5.00g /dev/vde1(5632)
lv03 HA -wi-ao---- 1 linear 25.00g /dev/vdf1(0)
lv04 HA -wi-ao---- 1 linear 7.99g /dev/vdg1(2)
root vg00 -wi-ao---- 1 linear 25.00g /dev/vda2(0)
swap vg00 -wi-ao---- 1 linear 4.00g /dev/vda2(6399)
[root@node01 data01]#
[root@node01 data01]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 vg00 lvm2 a--u 29.00g 0
/dev/vdb1 HA lvm2 a--u 20.00g 20.00g
/dev/vdc1 HA lvm2 a--u 20.00g 20.00g
/dev/vdd1 HA lvm2 a--u 20.00g 20.00g
/dev/vde1 HA lvm2 a--u 30.00g 3.00g
/dev/vdf1 HA lvm2 a--u 30.00g 5.00g
/dev/vdg1 HA lvm2 a--u 30.00g 22.01g
[root@node01 data01]# vgreduce HA /dev/vdb1 /dev/vdc1 /dev/vdd1
Removed "/dev/vdd1" from volume group "HA"
Removed "/dev/vdc1" from volume group "HA"
Removed "/dev/vdb1" from volume group "HA"
[root@node01 data01]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 vg00 lvm2 a--u 29.00g 0
/dev/vdb1 lvm2 ---- 20.00g 20.00g
/dev/vdc1 lvm2 ---- 20.00g 20.00g
/dev/vdd1 lvm2 ---- 20.00g 20.00g
/dev/vde1 HA lvm2 a--u 30.00g 3.00g
/dev/vdf1 HA lvm2 a--u 30.00g 5.00g
/dev/vdg1 HA lvm2 a--u 30.00g 22.01g
[root@node01 data01]#
[root@node01 data01]# pvremove /dev/vdb1 /dev/vdc1 /dev/vdd1
Labels on physical volume "/dev/vdb1" successfully wiped
Labels on physical volume "/dev/vdc1" successfully wiped
Labels on physical volume "/dev/vdd1" successfully wiped
[root@node01 data01]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 vg00 lvm2 a--u 29.00g 0
/dev/vde1 HA lvm2 a--u 30.00g 3.00g
/dev/vdf1 HA lvm2 a--u 30.00g 5.00g
/dev/vdg1 HA lvm2 a--u 30.00g 22.01g
[root@node01 data01]#