안녕하세요.
오늘은 PowerHA 구성 방법을 알아보겠습니다.
PowerHA 란?
AIX Unix 및 Linux 에서 고 가용성 클러스터 를위한 IBM의 솔루션입니다. IBM System p 플랫폼은 고 가용성 클러스터 다중 처리를 나타냅니다. IBM의 HACMP 제품은 1991 년에 처음 출시되었습니다.
PowerHA는 최대 32 개의 컴퓨터 또는 노드에서 실행할 수 있으며, 각 노드는 애플리케이션을 능동적으로 실행 (활성)하거나 다른 노드가 실패 할 때 (수동) 인계 대기 중입니다. 파일 시스템 의 데이터는 클러스터의 시스템간에 공유 할 수 있습니다.
PowerHA는 IBM의 Reliable Scalable Cluster Technology (RSCT)에 크게 의존합니다. PowerHA는 RSCT 인식 클라이언트입니다. RSCT는 AIX와 함께 배포됩니다. RSCT에는 클러스터와 관련된 이벤트에 대한 응답을 조정하는 그룹 서비스라는 데몬이 포함되어 있습니다 (예 : 인터페이스 또는 노드 실패 또는 관리자가 클러스터 구성 변경). PowerHA V6.1까지 RSCT는 토폴로지 서비스 데몬 (topsvcs)을 사용하여 클러스터 노드, 네트워크 및 네트워크 어댑터의 오류를 모니터링했습니다. 현재 릴리스 (V7.1)에서 RSCT는 노드 간의 좌표 응답을 제공하지만 모니터링 및 통신은 CAA (Cluster Aware AIX) 인프라에서 제공됩니다.
PowerHA 구성 방법
기본적으로 PowerHA 파일셋의 설치가 필요합니다.
PowerHA는 별도로 IBM계약을 통하여 설치 및 기술지원을 받으실수 있습니다.
[node1:root]/>halevel -s 7.2.5 GA |
현재 설치된 PowerHA 버젼은 7.2.5 입니다.
1. /etc/hosts 파일 수정 (node1/2 모두 작업)
[node1:root]/>cat /etc/hosts ... 10.50.1.81 node1 10.50.1.82 node2 10.50.1.83 VIP |
각 노드의 IP와 VIP를 입력해 줍니다.
2. rhosts 파일 생성 (node1/2 모두 작업)
[node1:root]/>vi /etc/cluster/rhosts node1 node2 [node1:root]/>vi /usr/es/sbin/cluster/etc/rhosts node1 node2 |
3. 할당된 디스크 정보 확인
[node1:root]/>lspv hdisk0 00c5c1d71c2b08a9 rootvg active hdisk1 00c5c1d73963a388 None hdisk2 00c5c1d73a9d410c testvg active hdisk3 (Shared) 00c5c1d73a9d414b None >> 미사용, 50GB hdisk4 (Shared) 00c5c1d73a9d4187 None >> 미사용, 50GB hdisk5 (Shared) 00c5c1d73a9d41c2 NSD01 >> GPFS사용중 hdisk6 (Shared) 00c5c1d73a9d41fd NSD02 >> GPFS사용중 hdisk7 (Shared) 00c5c1d73a9d423a NSD03 >> GPFS사용중 hdisk8 (Shared) 00c5c1d73a9d4276 TB01 >> GPFS사용중 hdisk9 (Shared) 00c5c1d73a9d42b1 None >> 미사용, 1GB hdisk10 (Shared) 00c5c1d73a9d42ee None >> 미사용, 1GB hdisk11 (Shared) 00c5c1d73a9d432a None >> 미사용, 1GB hdisk12 (Shared) 00c5c1d73a9d4367 None >> 미사용, 1GB |
현재 node1/2 파티션에 hdisk3에서 hdisk12 까지의 공유디스크가 할당되어 있는 상태입니다.
현재 hdisk5~hdisk8까지는 GPFS 용도로 사용중이며 표시한 미사용 공유디스크를 이용하여 PowerHA를 구성하겠습니다.
4. Cluster, Node, Network 생성 (Node1에서 작업)
[node2:root]/>smitty hacmp > Cluster Nodes and Networks > Standard Cluster Deployment > Setup Cluster, Nodes and Networks (Typical) |
Cluster Name 을 설정해주고 node2 노드를 추가해줍니다.
생성을 할때 오류가 뜰경우에는 clcomd 데몬을 재시작해줍니다.
#stopsrc -s clcomd ; startsrc -s clcomd
[node1:root]/>cltopinfo Cluster Name: PowerHA_cluster Cluster Type: Standard Heartbeat Type: Unicast Repository Disk: None There are 2 node(s) and 1 network(s) defined NODE node1: Network net_ether_01 node1 10.50.1.81 NODE node2: Network net_ether_01 node2 10.50.1.82 No resource groups defined |
생성된 cluster정보는 위의 명령어로 확인하실 수 있습니다.
5. Repository Disk 설정 (Node1에서 작업)
클러스터 저장소 디스크(Repository Disk)가 다음 용도로 사용됩니다.
- 클러스터 전체 구성 관리
- 클러스터 메시징 및 Heart-Beat
- 노드 간의 또 다른 중복 통신 경로로 사용됩니다.
클러스터 리포지토리 디스크에 할당된 디스크 공간은 최소 512MB, 최대 460GB여야 합니다.
디스크를 저장소 디스크(Repository Disk)로 할당한 후에는 디스크를 다른 용도로 사용할 수 없습니다.
저장소 디스크로 사용하는 디스크(Repository Disk)에 사용자 데이터가 포함되어 있지 않은지 확인하십시오.
디스크가 PowerHA SystemMirror에 의해 저장소 디스크(Repository Disk)로 식별되면 디스크의 모든 정보가 지워집니다.
[node2:root]/>smitty hacmp > Cluster Nodes and Networks > Manage Repository Disks > Add a Repository Disk |
위와 같은 방법으로 Repository Disk를 추가 하실수 있습니다.
일반적으로 2개의 Repository Disk를 Active-Backup 형식으로 할당 해줍니다.
저는 hdisk9(Active), hdisk10(Backup)으로 구성하였습니다.
[node2:root]/>smitty hacmp > Cluster Nodes and Networks > Manage Repository Disks > Show Repository Disks |
6. Application Scripts 등록 (Node1에서 작업)
[node1:root]/>smitty hacmp > Cluster Applications and Resources > Resources > Configure User Applications (Scripts and Monitors) > Application Controller Scripts > Add Application Controller Scripts |
리소스그룹(Resource Group)에 등록하여 HA 리소스가 시작되거나 중지될때 자동으로 실행할 수 있는 스크립트를 작성하여 등록하실 수 있습니다.
7. Service IP (VIP) 등록 (Node1에서 작업)
[node1:root]/>smitty hacmp > Cluster Applications and Resources > Resources > Configure Service IP Labels/Addresses > Configure Service IP Labels/Addresses > Network 선택 |
/etc/hosts 파일에 등록한 VIP를 선택하여 등록하실 수 있습니다.
8. VG, LV, F/S 생성 (node1/2 모두 작업)
[node1:root]/>lvlstmajor 39... [node2:root]/>lvlstmajor 38... 해당명령어로 사용가능한 고유한 VG 넘버를 확인하실 수 있습니다. ############### Node1 에서 작업 ######################## # VG 생성 (major number 40) [node1:root]/>mkvg -f -a 'no' -S -C -y ha_vg -s 512 -V 40 hdisk3 ha_vg # LV 생성 [node1:root]/> mklv -y'ha_lv' -t'jfs2' ha_vg 20 hdisk3 $ F/S 생성 [node1:root]/> crfs -v jfs2 -d'ha_lv' -m'/ha_test' -A'no' -p'rw' -a agblksize='4096' -a isnapshot='no' [node1:root]/>lspv hdisk0 00c5c1d71c2b08a9 rootvg active hdisk1 00c5c1d73963a388 None hdisk2 00c5c1d73a9d410c testvg active hdisk3 00c5c1d73a9d414b ha_vg active hdisk4 00c5c1d73a9d4187 None hdisk5 00c5c1d73a9d41c2 NSD01 hdisk6 00c5c1d73a9d41fd NSD02 hdisk7 00c5c1d73a9d423a NSD03 hdisk8 00c5c1d73a9d4276 TB01 hdisk9 00c5c1d73a9d42b1 None hdisk10 00c5c1d73a9d42ee None hdisk11 00c5c1d73a9d432a None hdisk12 00c5c1d73a9d4367 None [node1:root]/>lsvg -l ha_vg ha_vg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT ha_lv jfs2 20 20 1 open/syncd /ha_test loglv00 jfs2log 1 1 1 open/syncd N/A [node1:root]/>umount /ha_test [node1:root]/>varyoffvg ha_vg [node1:root]/>exportvg ha_vg ############### Node2 에서 작업 ######################## [node2:root]/>lspv hdisk0 00c5c1d71c2b3c88 rootvg active hdisk1 00c5c1d73a9d5461 None hdisk2 00c5c1d73a9d54a0 None hdisk3 00c5c1d73a9d414b None hdisk4 00c5c1d73a9d4187 None hdisk5 00c5c1d73a9d41c2 NSD01 hdisk6 00c5c1d73a9d41fd NSD02 hdisk7 00c5c1d73a9d423a NSD03 hdisk8 00c5c1d73a9d4276 TB01 hdisk9 00c5c1d73a9d42b1 None hdisk10 00c5c1d73a9d42ee None hdisk11 00c5c1d73a9d432a None hdisk12 00c5c1d73a9d4367 None [node2:root]/>importvg -V 40 -y ha_vg 00c5c1d73a9d414b ha_vg ############### Node1, Node2 에서 작업 ################### varyoffvg ha_vg hdisk0 00c5c1d71c2b3c88 rootvg active hdisk1 00c5c1d73a9d5461 None hdisk2 00c5c1d73a9d54a0 None hdisk3 00c5c1d73a9d414b ha_vg hdisk4 00c5c1d73a9d4187 None hdisk5 00c5c1d73a9d41c2 NSD01 hdisk6 00c5c1d73a9d41fd NSD02 hdisk7 00c5c1d73a9d423a NSD03 hdisk8 00c5c1d73a9d4276 TB01 hdisk9 00c5c1d73a9d42b1 None hdisk10 00c5c1d73a9d42ee None hdisk11 00c5c1d73a9d432a None hdisk12 00c5c1d73a9d4367 None varyoff 작업으로 통하여 node1, node2 모두 active 표시가 없도록 해줍니다. |
node1 에서 VG, LV, F/S을 생성하고 exportvg 작업 후 node2 에서 importvg를 해줍니다.
이후 node1,2 에서 모두 varyoff 상태로 만들어줍니다.
9. 리소스그룹(Resouces Group) 생성 (Node1에서 작업)
[node1:root]/>smitty hacmp > Cluster Applications and Resources > Resource Groups > Add a Resource Group |
리소스그룹 이름과 node명을 입력해줍니다.
Fallback Policy 는 Naver Fallback으로 선택해줍니다.
리소스 그룹 Policy 에 대한 설명입니다.
- Startup Policy : 클러스터 기동되고 리소스가 올라올 떄 어느 노드에 올라올지 결정
- Fallover Policy : 현재 리소스를 가지고 있는 노드가 다운되었을 때 어느 노드로 넘길지 결정
- Fallback Policy : 원래 리소스를 가지고 있던 노드가 다운되었다가 다시 복구되었을 때 원래 Active였던 노드로 리소스를 자동으로 되찾게 할 것인지 여부를 설정 (자동으로 되찾게 하면 리소스 그룹을 넘기는 도중 다운타임 발생이 불가피하므로 주로 Never Fallback으로 사용)
10. 리소스그룹(Resouces Gorup) 수정 (Node1에서 작업)
[node1:root]/>smitty hacmp > Cluster Applications and Resources > Resource Groups > Change/Show All Resources and Attributes for a Resource Group > ha_rg 리소스 그룹 선택 |
생성한 Service IP, Application Controller, Volume Groups 을 입력하여 ha_rg 리소스그룹 정보를 수정해 줍니다.
11. PowerHA Cluster 정보 Synchronize (Node1에서 작업)
[node1:root]/>smitty hacmp > Cluster Applications and Resources > Verify and Synchronize Cluster Configuration |
node1에서 생성한 PowerHA 정보를 node2에서도 가져오도록 Sync 동작을 수행합니다.
12. PowerHA 기동
[node1:root]/>smitty clstart |
node1, node2를 선택 후 PowerHA 를 기동합니다.
13. PowreHA 상태 확인
[node1:root]/>lssrc -ls clstrmgrES | grep -i state Current state: ST_STABLE [node2:root]/>lssrc -ls clstrmgrES | grep -i state Current state: ST_STABLE [node1:root]/>clRGinfo ----------------------------------------------------------------------------- Group Name State Node ----------------------------------------------------------------------------- ha_rg ONLINE node1 OFFLINE node2 Current state: ST_STABLE [node1:root]/>lspv hdisk0 00c5c1d71c2b08a9 rootvg active hdisk1 00c5c1d73963a388 None hdisk2 00c5c1d73a9d410c testvg active hdisk3 00c5c1d73a9d414b ha_vg concurrent hdisk4 00c5c1d73a9d4187 None hdisk5 00c5c1d73a9d41c2 NSD01 hdisk6 00c5c1d73a9d41fd NSD02 hdisk7 00c5c1d73a9d423a NSD03 hdisk8 00c5c1d73a9d4276 TB01 hdisk9 00c5c1d73a9d42b1 caavg_private active hdisk10 00c5c1d73a9d42ee None hdisk11 00c5c1d73a9d432a None hdisk12 00c5c1d73a9d4367 None [node1:root]/>lsvg ha_vg | grep PERMI VG PERMISSION: read/write TOTAL PPs: 99 (50688 megabytes) [node2:root]/>lsvg ha_vg | grep PERMI VG PERMISSION: passive-only TOTAL PPs: 99 (50688 megabytes) [node1:root]/>df -tg /dev/hd4 1.00 0.10 0.90 10% / /dev/hd2 5.25 5.05 0.20 97% /usr /dev/hd9var 2.00 0.25 1.75 13% /var /dev/hd3 2.00 0.00 2.00 1% /tmp /dev/hd1 1.00 0.00 1.00 1% /home /dev/hd11admin 0.12 0.00 0.12 1% /admin /proc - - - - /proc /dev/hd10opt 0.38 0.27 0.10 73% /opt /dev/livedump 0.25 0.00 0.25 1% /var/adm/ras/livedump /dev/fslv00 30.00 18.26 11.74 61% /ptf /dev/fslv01 1.00 0.00 1.00 1% /testvg /ahafs - - - - /aha /dev/gpfs_fs02 50.00 1.34 48.66 3% /gpfs_fs02 /dev/gpfs_fs03 50.00 1.34 48.66 3% /gpfs_fs03 /dev/gpfs_fs01 50.00 1.34 48.66 3% /gpfs_fs01 /dev/ha_lv 10.00 0.00 10.00 1% /ha_test [node1:root]/>ifconfig -a en0: flags=1e084863,114c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),LARGESEND,CHAIN> inet 10.50.1.83 netmask 0xffffff00 broadcast 10.50.1.255 inet 10.50.1.81 netmask 0xffffff00 broadcast 10.50.1.255 tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1 en1: flags=1e084863,14c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),LARGESEND,CHAIN> inet 192.168.0.81 netmask 0xffffff00 broadcast 192.168.0.255 tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1 lo0: flags=e08084b,c0<UP,BROADCAST,LOOPBACK,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,LARGESEND,CHAIN> inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255 inet6 ::1%1/64 tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1 |
PowerHA Cluster를 기동하면 VG상태가 concurrent 로 변경되며, Active 노드에서 F/S이 정상적으로 마운트가 됩니다.
또한, 설정한 VIP 도 Active노드에서 올라오게 됩니다.
이상태에서 node1이 다운될 경우에는 F/S과 VIP가 node2로 FailOver 가 발생하며, 리소스 그룹 이동시간 동안 서비스 단절 후 node2로 서비스할 수 있습니다.
오늘은 기본적인 PowreHA 구성 절차에 대해서 알아보았습니다.
감사합니다. ^^