320x100

안녕하세요. 빛나는불꽃 입니다.

오늘은 데이터 마이그레이션 하는 방법에 대해서 알아보겠습니다.

일반적으로 외장디스크(스토리지)가 변경될 경우 스토리지 업체에서 DATA Migration을 하는게 간단합니다.

하지만 여러가지 이유로 인해서 OS에서 데이터를 복제하는 경우가 생깁니다.

OS에서 자주사용하게 되는 미러링 작업으로 인해 데이터를 복제하는 방법을 테스트 해보겠습니다.

 

1. 테스트 환경

 테스트를 위해 볼륨그룹 [datavg] 와 LV [lv01, lv02, lv03] 를 생성하였습니다.

동일한 용량인 신규 디스크 (hdisk1, hdisk3) 에 DATA 를 복제하도록 하겠습니다.

[node2:root]/>lspv
hdisk0          00c5c1d71c2b3c88                    rootvg          active      
hdisk1          00c5c1d73a9d5461                    None                        << 신규 디스크
hdisk2          00c5c1d73a9d54a0                    datavg          active      
hdisk3          00c5c1d73a9d414b                    None                        << 신규 디스크
hdisk4          00c5c1d73a9d4187                    datavg          active

[node2:root]/>bootinfo -s hdisk1
102400
[node2:root]/>bootinfo -s hdisk2
102400
[node2:root]/>bootinfo -s hdisk3
51200
[node2:root]/>bootinfo -s hdisk4
51200

[node2:root]/>lsvg -l datavg
datavg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lv01                jfs2       10      10      2    open/syncd    /fs01
lv02                jfs2       10      10      1    open/syncd    /fs02
lv03                jfs2       10      10      1    open/syncd    /fs03

lv01, lv02, lv03 이름으로 LV를 생성하였고 각 /fs01, /fs02, /fs03 마운트포인트로 파일시스템을 생성해주었습니다.

[node2:root]/>lslv -l lv01 > hdisk2, hdisk4 에 데이터 존재
lv01:/fs01
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk2            005:000:000   100%          000:005:000:000:000 
hdisk4            005:000:000   100%          000:005:000:000:000 
[node2:root]/>lslv -l lv02 > hdisk2 에 데이터 존재
lv02:/fs02
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk2            010:000:000   100%          000:010:000:000:000 
[node2:root]/>lslv -l lv03 > hdisk4 에 데이터 존재
lv03:/fs03
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk4            010:000:000   100%          000:010:000:000:000 

 

2. 미러링 작업

[node2:root]/>extendvg datavg hdisk1 hdisk3 >> hdisk1, hdisk3 디스크를 datavg에 추가
[node2:root]/>lspv
hdisk0          00c5c1d71c2b3c88                    rootvg          active      
hdisk1          00c5c1d73a9d5461                    datavg          active      
hdisk2          00c5c1d73a9d54a0                    datavg          active      
hdisk3          00c5c1d73a9d414b                    datavg          active      
hdisk4          00c5c1d73a9d4187                    datavg          active 

[node2:root]/>mirrorvg '-S' datavg hdisk1 hdisk3  >> Background 로 datavg 미러링
0516-1804 chvg: The quorum change takes effect immediately.

[node2:root]/>lsvg -l datavg
datavg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lv01                jfs2       10      20      4    open/stale    /fs01
lv02                jfs2       10      20      2    open/stale    /fs02
lv03                jfs2       10      20      2    open/stale    /fs03
loglv00             jfs2log    1       2       2    open/stale    N/A

LPs 값이 LPs의 값의 2배가 되며, PPS가 2배로 늘어나게 됩니다.


[node2:root]/>lsvg datavg | grep -i stale
STALE PVs:          0                        STALE PPs:      0

STALE 값이 0으로 확인되면, 정상적으로 미러링 작업이 완료된 겁니다.

[node2:root]/>lslv -m lv01
lv01:/fs01
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0041 hdisk2            0041 hdisk1            
0002  0021 hdisk4            0021 hdisk3            
0003  0042 hdisk2            0042 hdisk1            
0004  0022 hdisk4            0022 hdisk3            
...

[lv01] LV는 기존 hdisk2, hdisk4 에 존재하였고 신규 디스크인 hdisk1, hdisk3으로 복제가 되었습니다.

[node2:root]/>lslv -m lv02
lv02:/fs02
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0046 hdisk2            0046 hdisk1            
0002  0047 hdisk2            0047 hdisk1            
0003  0048 hdisk2            0048 hdisk1            
0004  0049 hdisk2            0049 hdisk1            
...

[lv02] LV는 기존 hdisk2 에 존재하였고 신규 디스크인 hdisk1으로 복제가 되었습니다.
  
[node2:root]/>lslv -m lv03
lv03:/fs03
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0026 hdisk4            0056 hdisk1            
0002  0027 hdisk4            0057 hdisk1            
0003  0028 hdisk4            0058 hdisk1            
0004  0029 hdisk4            0059 hdisk1            
...

[lv02] LV는 기존 hdisk4 에 존재하였고 신규 디스크인 hdisk1으로 복제가 되었습니다.
여기서 Mirroing 의 문제점을 발견하게 됩니다.

기존 hdisk4 에 존재하였던 LV가 동일한 용량인 hdisk3에 복제가 되는 것이 아닌 첫번쨰 디스크인 hdisk1로 복제가
일어 나게 됩니다. 이로인해 여러 개의 LV를 미러링을 하게 되면 복제되는 디스크 처음부터 데이터를 사용하게 되므로
as-is, to-be 디스크 안의 LV 데이터가 달라지게 됩니다.

동일한 디스크 구조로 복제가 필요할 경우에는 mklvcopy 명령어를 이용하여 데이터를 복제 해주어야 합니다.

 mklvcopy 테스트는 조만간에 업로드 하도록 하겠습니다.

 

3. Splitvg

[node2:root]/>splitvg -y datavg_bk -c 1 -i datavg
[node2:root]/>lspv
hdisk0          00c5c1d71c2b3c88                    rootvg          active      
hdisk1          00c5c1d73a9d5461                    datavg          active      
hdisk2          00c5c1d73a9d54a0                    datavg_bk       active      
hdisk3          00c5c1d73a9d414b                    datavg          active      
hdisk4          00c5c1d73a9d4187                    datavg_bk       active  

[node2:root]/>lsvg -p datavg
datavg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk1            active            199         173         40..14..39..40..40
hdisk3            active            99          94          20..15..19..20..20

[node2:root]/>lsvg -l datavg
datavg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lv01                jfs2       10      10      2    open/syncd    /fs01
lv02                jfs2       10      10      1    open/syncd    /fs02
lv03                jfs2       10      10      1    open/syncd    /fs03
loglv00             jfs2log    1       1       1    open/syncd    N/A

[node2:root]/>lsvg -p datavg_bk
datavg_bk:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk2            active            199         183         40..24..39..40..40
hdisk4            active            99          84          20..05..19..20..20

[node2:root]/>lsvg -l datavg_bk
datavg_bk:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
fslv01              jfs2       10      10      2    closed/syncd  /fs/fs01
fslv02              jfs2       10      10      1    closed/syncd  /fs/fs02
fslv03              jfs2       10      10      1    closed/syncd  /fs/fs03
fsloglv00           jfs2log    1       1       1    closed/syncd  N/A

 기존에 hdisk2, hdisk4 로 사용중이던 [datavg] 가 [datavg_bk] 볼륨그룹 이름으로 변경되었습니다.
또한, /fs/fs01, /fs/fs02, /fs/fs03 파일시스템으로 변경되며 마운트 되지 않고 사용중이지 않습니다.

 신규 디스크 hdisk1, hdisk3 는 [datavg] 로 남아있는 상태이며, 기존 파일시스템은 /fs01, /fs02, /fs03 으로 마운트되어
사용 중에 있습니다.

 

4. 기존 디스크(hdisk2, hdisk4) 삭제

 변경된 디스크로 정상적으로 파일시스템의 접근 및 서비스가 정상이라면, 기존 디스크를 삭제하여 줍니다.

[node2:root]/>lspv
hdisk0          00c5c1d71c2b3c88                    rootvg          active      
hdisk1          00c5c1d73a9d5461                    datavg          active      
hdisk2          00c5c1d73a9d54a0                    datavg_bk       active      
hdisk3          00c5c1d73a9d414b                    datavg          active      
hdisk4          00c5c1d73a9d4187                    datavg_bk       active 
[node2:root]/>varyoffvg datavg_bk
[node2:root]/>exportvg datavg_bk
[node2:root]/>lspv
hdisk0          00c5c1d71c2b3c88                    rootvg          active      
hdisk1          00c5c1d73a9d5461                    datavg          active      
hdisk2          00c5c1d73a9d54a0                    None                        
hdisk3          00c5c1d73a9d414b                    datavg          active      
hdisk4          00c5c1d73a9d4187                    None       

[node2:root]/>rmdev -dl hdisk2
[node2:root]/>rmdev -dl hdisk4

 

감사합니다.

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts