기본적으로 public key 생성 및 교환하지 않으면 위의 화면처럼 패스워드를 물어보게 됩니다.
node1, node2 호스트 간의 SSH 키 교환을 하도록 하겠습니다.
[node1:root]/.ssh>ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (//.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in //.ssh/id_rsa. Your public key has been saved in //.ssh/id_rsa.pub. The key fingerprint is: SHA256:W8HYNJNukuyAFK7JF/pZ9uU0dQxyhGN0OsuZfysX6/w root@node1 The key's randomart image is: +---[RSA 3072]----+ |...*+=| |..==B o| |.o. ..+*.. o| | . +... +.oB .| |= . ooSoX| |o + ..* o.| |oo . . .o | |.oo. | |++.E| +----[SHA256]-----+
node1 호스트에서 ssh-keygen 명령어로 rsa 키값을 생성해줍니다.
특정한 파일명이나 설정을 주지 않고 Enter 를 입력합니다.
그러면 /.ssh 폴더 밑에 id_rsa(priavat key) 파일과 id_rsa.pub(public key) 파일이 생성됩니다.
일반적으로 외장디스크(스토리지)가 변경될 경우 스토리지 업체에서 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]/>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
[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
# diag Diagnostic Routines This selection will test the machine hardware. Wrap plugs and other advanced functions will not be used. Advanced Diagnostics Routines This selection will test the machine hardware. Wrap plugs and other advanced functions will be used. Task Selection (Diagnostics, Advanced Diagnostics, Service Aids, etc.) This selection will list the tasks supported by these procedures. Once a task is selected, a resource menu may be presented showing all resources supported by the task. Resource Selection This selection will list the resources in the system that are supported by these procedures. Once a resource is selected, a task menu will be presented showing all tasks that can be run on the resource(s).
diag 메뉴 진입후 Task Selection > Hot Plug Task > PCI Hot Plug Manager 로 진입하면 아래와 같은 메뉴를 확인하
실 수 있습니다.
PCI Hot Plug Manager
Move cursor to desired item and press Enter.
List PCI Hot Plug Slots Add a PCI Hot Plug Adapter Replace/Remove a PCI Hot Plug Adapter Identify a PCI Hot Plug Slot Unconfigure a Device Configure a Defined Device Install/Configure Devices Added After IPL
해당 메뉴에서 Adpater를 추가, 삭제/변경 이 가능합니다.
저는 Remove 작업을 진행하도록 하겠습니다.
3. diag를 이용한 Adapter 삭제
해당 메뉴에서 삭제할 디바이스 fcs1(P1-C2)를 선택해 줍니다.
opration 작업을 [remove]로 선택 하여 Enter를 눌러 줍니다.
위 그림처럼 메세지가 표시되며 식별LED가 켜집니다.
다시 Enter를 눌러줍니다.
위 그림처럼 메세지가 표시되며, 에러 내용처럼 현재 디바이스가 configured 상태라 삭제가 진행되지
OS상에서 임의로 hostid 값을 변경이 가능하지만, OS 재부팅을 할경우에는 현재 IP, /etc/hosts 파일에 상응하는 기존 hostid 값 0xa320151 으로 돌아오는 것을 확인할 수 있습니다.
또한 임의로 hostid를 변경한 후, /etc/rc.net 파일을 실행 해주어도 기존 hostid값으로 변경되는 것이 확인됩니다.
320x100
3. 고정된 hostid 설정
일반적으로 시스템을 구축한 이후 메인IP와 hostname이 변경할 일은 거의 없습니다.
하지만 특정작업으로 인해 IP가 변경되는 경우에는 hostid 값이 변경되게 됨으로 기존에 사용하던 솔루션들이 정상적으로 구동하지 못하는 경우가 생기게 됩니다. 또한 변경된 hostid에 따른 신규 라이센스를 발급받아야 되는데 솔루션마다 차이가 있겠지만 어느정도의 시간이 소요되는 걸로 알고 있습니다.
일반적으로 hostid 를 특정 값으로 고정하기 위해서는 /etc/rc.net 등 System Booting 중 읽어 들이는 파일에 설정을 해서 사용합니다.
[node1:root]/>vi /etc/rc.net ........ ################################################################## # Set the hostid and uname to `hostname`, where hostname has been # set via ODM in Part I, or directly in Part II. # (Note it is not required that hostname, hostid and uname all be # the same). /usr/sbin/hostid`hostname` >>$LOGFILE 2>&1 /bin/uname -S`hostname|sed 's/\..*$//'` >>$LOGFILE 2>&1
<변경 후> ........ ################################################################## # Set the hostid and uname to `hostname`, where hostname has been # set via ODM in Part I, or directly in Part II. # (Note it is not required that hostname, hostid and uname all be # the same). /usr/sbin/hostid 0xa320154 >>$LOGFILE 2>&1 /bin/uname -S`hostname|sed 's/\..*$//'` >>$LOGFILE 2>&1