LV 4개 생성된 RHEL6 클러스터의 HALVM VG가 있다.
이 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 작업이 끝났다.
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]#
Creative Commons License