안녕하세요 이정운 입니다.
기본적으로 IBM API Connect 의 Portal 은 클러스터 구성이 가능하며 요즘 많이 사용하는 3중안을 권장사항으로 하고 있습니다. (https://www.ibm.com/support/knowledgecenter/en/SSMNED_5.0.0/com.ibm.apic.install.doc/capim_portal_HA.html)
다
만, API Portal 의 경우에는 API 검색이나 등록과 같이 서비스 초기 사용을 위한 목적으로 사용되고 실제 수행되는
서비스와 직접적으로 연관되지는 않기 때문에 API Gateway 나 이런 컴포넌트에 비해서 그렇게 높은 고가용성 요건이 필요하지
않는 경우가 실제로 많습니다.
그러한 경우를 가정하여 API Portal 에서는 manual fail-over 기능을 하단과 같이 지원하고 있습니다.
High availability configurations for the Developer Portal
https://www.ibm.com/support/knowledgecenter/en/SSMNED_5.0.0/com.ibm.apic.install.doc/capic_portal_ha_config.html
여기서는 API Portal 클러스터 구성과 fail-over 작업을 테스트 해보고 그 내용을 공유드리오니 참고하시기 바라겠습니다.
(추가적으로 혹여 도움이 될까 crontab 에 등록해서 주기적으로 check 및 장애 발생시에 자동으로 manual fail-over 테스트도 같이 테스트해서 공유드리도록 하겠습니다.)
APIC Portal 클러스터 & fail-over
- Cluster 상태 확인
bootstrap_cluster -s
- HA 작업 전에 cluster 구성할 node 간의 시간 동기화 작업 수행 : NTP 서버 활용
set_ntp 192.168.225.10
set_ntp -d
- Portal Clustering 을 위해서 설정 변경 : 기존 Portal 에서 수행하면 되며(Portal01) Cluster 로 설정하겠다는 명령
set_cluster_members -c
- 추가할 Portal 노드에서 기존에 설정한 Portal Cluster 에 추가 (위에서 설정한 원래 Portal 의 IP 사용)
set_cluster_members 192.168.225.20
- 완료된 후에 양쪽 다 status 확인 - File Sync 는 시간이 필요하며 약 5분 정도면 완료
- 작업이 정상적으로 완료되면 하단과 같이 확인 가능
- 구성 완료
테스트로 APIC Portal 중의 한 대를 강제 종료한 경우
- 상태 확인 : 문제가 없는 Portal 도 내부적 투표에서 50% 를 초과하지 않으므로 non-Primary 로 변경된 것을 확인할 수 있음
status
- 정상 상태인 APIC Portal 에서 manual fail-over 가능
bootstrap_cluster -pi 또는 set_primary 수행
- 서비스 복구 확인
** 해당 작업은 간단한 script 작성과 crontab 등록을 통해서 원하는 형태로 자동화 가능
- 로컬에서 dbstatus 확인해보고 remote 로 dbstatus 결과를 받아서 로컬이 non-Primary 이고 remote 가 Unreachable 인 경우 즉, 로컬은 정상인데 remote 에서 장애가 발생했고 단순 투표에서 50% 가 넘지 않아 primary 가 아닌 경우 자동으로 fail-over 수행
---------check_failover -------------------------------------------------------------
#!/bin/bash
IP01=192.168.225.20
IP02=192.168.225.30
DB_STATUS_SHORT=$(/home/admin/bin/dbstatus)
PEER_DBSTATUS=$(ssh
-n -o LogLevel=quiet -o Batchmode=yes -o PasswordAuthentication=no -o
ConnectTimeout=5 $IP02 dbstatus 2> /dev/null) && PEER_OK=1 ||
PEER_OK=0
if [[ $PEER_OK -eq 0 ]]
then
PEER_DBSTATUS=Unreachable
fi
if [[ $DB_STATUS_SHORT == "non-Primary" && $PEER_DBSTATUS == "Unreachable" ]]
then
echo $DB_STATUS_SHORT,$PEER_DBSTATUS >> /home/admin/logs/HA_STATUS.log
STATUS_TEXT="manual fail-over is needed"
FAIL01=$(/home/admin/bin/bootstrap_cluster -pi)
FAIL02=$(/home/admin/bin/set_primary)
fi
------------------------------------------------------------------------
script 작성이 완료되었으면 하단과 같이 crontab 을 수정하고 restart 해서 바로 적용 가능 (하단의 예제는 3분마다 체크)
crontab -e : crontab 수정
crontab -l
sudo /etc/init.d/cron restart : crontab 재시작
참고 : var/log/syslog 에 APIC Portal 관련 syslog 를 확인할 수 있으므로 필요시 debug 가능
참고 #2: 추가 Node 에 IBM APIC Portal 설치
- OVF 이미지 설치 후에 network 설정 변경
sudo vi /etc/network/interfaces
allow-hotplug eth0
iface eth0 inet static
address 192.168.225.30
netmask 255.255.255.0
gateway 192.168.225.2
- 네트워크 재시작
sudo service networking restart
sudo ifup eth0
- CMC 관리콘솔에 Portal 설정 key 확인해서 key file 로 저장
echo "ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDfd1WdVqJxsLX84LXfCyeyZwZnRUlbaWMQFlNXrbDbI05aj8tJBh14sFT8oQf2Kjdt5bM9YiI09qNrc7Yafpy2n+eFVpxT1jQwxNcOCH2snwbNfMYEpmAV0+vcupOgdlqxAZu8cCzL2lZHTVlfmk61576it5iN1uF3N9Im9pl5e4307XMD3FTwTV0FIQRAHAIE+CjroE5jYgTa/Lwt5o58Z5PDC42UepnRQhHJiYJc5RmnM4WKvSqA9QMi45wAfK+wU7oUXYucsDOO91MVSR8aCjA9cAhT9eOTs1XdnUT4xFYQNAAaGDGQA9hNUSdaHzC6xmy6Gk+AcFkiT7L6M/9L
apim_advanced_portal_ssh_key " > key_file_name
cat key_file_name | set_apim_host portal.ibm.com 192.168.225.100
'IBM - old > IBM APIC' 카테고리의 다른 글
[APIC]IBM API Connect 의 PoT 자료 오픈 (0) | 2016.11.15 |
---|---|
[APIC]IBM API Connect 에서 Portal 의 사용자 저장소로 외부 LDAP 을 설정하는 방법 (0) | 2016.10.26 |
[APIC]본격적으로 살펴보는 IBM API Connect 07 - OAuth 2.0 (0) | 2016.10.05 |
[APIC]본격적으로 살펴보는 IBM API Connect 06 - Fixpack 업데이트 (0) | 2016.09.28 |
IBM DataPower Gateway 의 secure os 인 DPOS 의 CLI 설명 (0) | 2016.09.07 |
댓글