replacepv

안녕하세요, 우리노트 Benjamin입니다.


AIX 잘 알려지지 않은 유용한 기능을 소개해 드립니다.

   

replacepv 라는 command 입니다.

   

보통 disk 내용을 옮기실때 migratepv, mklvcopy + rmlvcopy 등의 방법을 이용하시는데요,

replacepv 를 이용하면 손쉽게 디스크 바꿔치기가 가능합니다.

물론 disk size 가 동일해야 한다는 제약조건이 있기는 합니다.

   

300gb disk 1ea와 100gb disk 2ea로 test를 진행해 보겠습니다.

   

Test1@/> lspv

hdisk0 00f615e5ef3aeb25 rootvg active

hdisk1 00f615e557810e0a None

hdisk2 00f615e55782a6ca None

   

Test1@/> bootinfo -s hdisk0

30720

Test1@/> bootinfo -s hdisk1

10240

Test1@/> bootinfo -s hdisk2

10240

   

replacepv 에 필요한 flag들은 아래와 같습니다.

사실 단순히 source disk, target disk만 적어주면 됩니다.

   

Test1@/> replacepv

0516-612 replacepv: Source physical volume name not entered.

Usage:

replacepv [-f] { sourcepvname | sourcepvid } { destpvname | destpvid }

replacepv -R dir_name [newdestpv]

Replaces a physical volume in a volume group.

   

300gb hdisk0 을 hdisk1로 replace 하려고 하니 size가 달라서 에러가 발생합니다.

   

Test1@/> replacepv hdisk0 hdisk1

0516-1234 replacepv: The destination disk size must be

atleast the size of the source disk.

0516-1227 replacepv: Warning, replacepv did not completely succeed.

   

test를 위하여 vg를 하나 생성하여 file system을 하나 생성하였습니다.


Test1@/> mkvg -y testvg hisk1 hdisk2

testvg

   

Test1@/> mklv -y testlv01 -t jfs2 testvg 10

testlv01

   

Test1@/> crfs -v jfs2 -d /dev/testlv01 -m /testfs01 -A yes

File system created successfully.

163628 kilobytes total disk space.

New File System size is 327680

   

hdisk1 에는 lv가 생성되어 있고, hdisk2는 비어있습니다.

hdisk1 에 있는 lv가 hdisk2 로 옮겨가는지 확인해보면 되겠죠?

   

Test1@/> lsvg -l testvg

testvg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

testlv01 jfs2 10 10 1 closed/syncd /testfs01

loglv00 jfs2log 1 1 1 closed/syncd N/A

   

Test1@/> lspv -l hdisk1

hdisk1:

LV NAME LPs PPs DISTRIBUTION MOUNT POINT

testlv01 10 10 00..10..00..00..00 /testfs01

loglv00 1 1 00..01..00..00..00 N/A

   

Test1@/> lspv -l hdisk2

hdisk2:

LV NAME LPs PPs DISTRIBUTION MOUNT POINT

   

또 에러가 나는군요, 제가 command를 잘못 이해하고 있었나 봅니다.

replace될 disk는 vg 에 속해 있으면 안됩니다.

   

Test1@/> replacepv hdisk1 hdisk2

0516-1398 extendvg: The physical volume hdisk2, appears to belong to

another volume group. Use the force option to add this physical volume

to a volume group.

0516-792 extendvg: Unable to extend volume group.

0516-1227 replacepv: Warning, replacepv did not completely succeed.

   

vg에서 target disk 를 제거하여 줍니다.

   

Test1@/> reducevg testvg hdisk2

   

Test1@/> lsvg -p testvg

testvg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk1 active 639 628 128..117..127..128..128

   

이번에는 정상적으로 동작을 하는군요..

저는 10lp의 작은 lv 하나를 옮기는 거여서 금방 끝났지만, 대용량의 경우 copy시간이 많이 소요되겠죠?

중간에 system이 crash 되거나 ctrl-C 로 작업이 끊기게 되면 /tmp 아래 생성된 작업 파일로 이어하기가 가능합니다.

   

Test1@/> replacepv hdisk1 hdisk2

0516-1232 replacepv:

NOTE: If this program is terminated before the completion due to

a system crash or ctrl-C, and you want to continue afterwards

execute the following command

replacepv -R /tmp/replacepv34340864

   

hdisk1의 testvg 가 hdisk2로 잘 넘어간걸 확인할 수 있습니다.

   

Test1@/> lspv

hdisk0 00f615e5ef3aeb25 rootvg active

hdisk1 00f615e557810e0a None

hdisk2 00f615e55782a6ca testvg active

   

Test1@/> lsvg -p testvg

testvg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk2 active 639 628 128..117..127..128..128

   

Test1@/> lspv -l hdisk2

hdisk2:

LV NAME LPs PPs DISTRIBUTION MOUNT POINT

loglv00 1 1 00..01..00..00..00 N/A

testlv01 10 10 00..10..00..00..00 /testfs01

댓글(0)

Designed by JB FACTORY