StorageTek Automated Cartridge System Library Software High Availability 8.3 Cluster 설치, 구성 및 작업 릴리스 8.3 E54099-01 |
|
![]() 이전 |
![]() 다음 |
이 장에서는 ACSLS-HA 설치를 테스트하고 시스템에서 발생할 수 있는 문제 진단 및 해결을 위해 사용할 수 있는 여러 가지 리소스에 대해 설명합니다.
페일오버 이벤트 중의 Solaris Cluster 메시지는 /var/adm/messages
파일에 기록됩니다. 이 파일에는 클러스터 기능, ACSLS 오류 및 정보와 관련된 메시지가 포함됩니다. 활성 노드만 클러스터 메시지를 /var/adm/messages
파일에 기록합니다.
Solaris Cluster는 6초마다 프로브를 통해 ACSLS 상태를 모니터합니다. 이 프로브 작업의 로그는 다음 위치에서 확인할 수 있습니다.
/var/cluster/logs/DS/acsls-rg/acsls-rs/probe_log.txt
페일오버 순서가 있으면 모든 시작 및 중지 이벤트를 기록하는 파일이 동일한 디렉토리에 있습니다.
/var/cluster/logs/DS/acsls-rg/acsls-rs/start_stop_log.txt
ACSLS 이벤트 로그는 $ACS_HOME/log/acsss_event.log
입니다. 이 로그에는 ACSLS 소프트웨어의 관점에서 시작 및 중지 이벤트와 관련된 메시지가 포함됩니다. 이 로그는 라이브러리 리소스의 작업 상태에 대한 변경 사항을 보고하고 ACSLS 소프트웨어에서 검색된 모든 오류를 기록합니다. acsss_event.log
는 acsss_config
option-2에 정의된 매개변수로부터 자동으로 관리 및 아카이브됩니다.
Solaris Cluster 유틸리티는 /usr/cluster/bin
디렉토리에 있습니다.
ACSLS 리소스 그룹의 현재 상태를 보려면 clrg list -v
를 실행합니다.
두 개의 클러스터 노드에 대한 현재 상태를 보려면 clrg status
를 실행합니다.
리소스 그룹의 상태를 보려면 clrs status
를 실행합니다.
노드, 쿼럼 장치 및 클러스터 리소스에서 verbose 상태를 가져오려면 cluster status
를 실행합니다.
클러스터 구성에서 자세한 구성 요소 목록을 보려면 cluster show
를 실행합니다.
리소스 그룹의 각 이더넷 노드에 대한 상태를 보려면 clnode status -m
을 실행합니다.
리소스 그룹 상태를 보려면 scstat -g
를 실행합니다.
장치 그룹 상태를 보려면 scstat -D
를 실행합니다.
하트비트 네트워크 링크의 상태를 보려면 scstat -D
또는 clintr status
를 실행합니다.
IPMP 상태를 보려면 scstat -i
를 실행합니다.
노드 상태를 보려면 scstat -n
을 실행합니다.
쿼럼 구성 및 상태를 보려면 scstat -q
또는 clq status
를 실행합니다.
시간 초과 값을 포함해서 자세한 클러스터 리소스를 보려면 clresource show -v
를 실행합니다.
이 절에서는 복구 및 페일오버 테스트를 위한 조건, 모니터링 및 테스트에 대해 설명합니다.
치명적인 시스템 조건 중에는 시스템 페일오버 이벤트 없이도 복구할 수 있는 경우가 많습니다. 예를 들어, IPMP의 경우 각 그룹의 이더넷 연결 하나가 어떠한 이유로든 실패할 수 있지만 대체 경로를 통해 무중단으로 통신이 재개됩니다.
공유 디스크 배열은 각 서버에서 두 개의 고유 포트를 사용해서 서버에 연결되어야 합니다. 하나의 경로가 중단될 경우 대체 경로를 통해 중단 없이 디스크 I/O 작업이 재개됩니다.
ACSLS는 Solaris SMF(서비스 관리 기능)로 모니터되는 여러 개의 소프트웨어 '서비스'로 구성됩니다. 사용자 acsss에 따라 acsss status
명령을 사용해서 각 acsss 서비스를 나열할 수 있습니다. 이러한 서비스 중에는 PostgreSQL 데이터베이스, WebLogic 웹 응용 프로그램 서버 및 ACSLS 응용 프로그램 소프트웨어가 있습니다. 제공된 서비스가 Solaris 시스템에서 실패할 경우 SMF가 시스템 페일오버 없이 서비스를 자동으로 재부트합니다.
acsls
서비스 자체는 상위 acsss_daemon
에 의해 모니터되는 여러 하위 프로세스로 구성됩니다. ACSLS 하위 프로세스를 나열하려면 psacs
명령을 사용합니다(사용자 acsss
). 어떠한 이유로든 하위 프로세스 중 하나가 중단되면 상위 프로세스가 하위 프로세스를 즉시 재부트하고 정상 작업을 복구합니다.
디스크 I/O 및 이더넷 연결과 같은 시스템 리소스 복구를 보기 위한 최적의 위치는 시스템 로그 /var/adm/messages
입니다.
SMF는 모니터하는 각 소프트웨어 서비스에 대한 특정 로그를 유지 관리합니다. 이 로그에는 시작, 다시 시작 및 종료 이벤트가 표시됩니다. 서비스 로그에 대한 전체 경로를 보려면 svcs -l
service-name
명령을 실행합니다. ACSLS 서비스는 acsss 명령: $ acsss status를 사용해서 나열할 수 있습니다. 하위 프로세스는 $ acsss p-status
명령을 사용해서 나열할 수 있습니다.
ACSLS 하위 프로세스에 대한 복구를 보려면 acsss_event.log
를 모니터하면 됩니다($ACS_HOME/ACSSS/log/acsss_event.log
). 이 로그에는 ACSLS 하위 프로세스를 포함하는 모든 복구 이벤트가 표시됩니다.
중복 네트워크 연결은 Solaris 다중 경로 IP 논리(IPMP)에 의해 자동으로 재부트되어야 합니다. 공유 디스크 배열에 대해 중단된 데이터 연결은 중복된 데이터 경로에서 Solaris에 의해 자동으로 재부트됩니다. Solaris 서비스 관리 기능으로 제어되는 서비스는 SMF에 의해 자동으로 재부트됩니다.
실제 페일오버 이벤트를 포함하는 테스트의 경우에는 $ACS_HOME/acslsha/pingpong_interval
에 정의된 등록 정보 설정을 확인해야 합니다. 페일오버 이벤트를 트리거할 수 있는 조건에도 불구하고 Solaris Cluster는 이전 페일오버 이벤트가 지정된 pingpong_interval
내에 발생한 경우 페일오버 작업을 시작하지 않습니다. 참조: "페일오버 Pingpong
_interval
설정."
현재 Pingpong_interval
설정을 확인하려면 다음 클러스터 명령을 사용합니다.
clrg show -p Pingpong_interval
이 동작에 대해 권장되는 검증 방법은 다음과 같습니다.
ACSLS가 작동 중일 때 활성 노드의 각 IPMP 그룹에서 하나의 이더넷 연결을 분리합니다. # scstat -i
를 사용해서 상태를 모니터합니다.
/var/adm/messages
에서 반응을 확인합니다. ACSLS 작업은 이 절차로 중단되지 않습니다.
ACSLS가 작동 중일 때 활성 서버에서 공유 디스크 리소스에 대한 하나의 광 섬유 또는 SAS 연결을 분리합니다.
/var/adm/messages
에서 반응을 확인합니다. ACSLS 작업은 이 절차로 중단되지 않습니다.
중복된 각 I/O 연결에서 이 테스트를 반복합니다.
acsss_daemon을 중지하여 ACSLS를 갑자기 작동 중지합니다.
svcs -l acsls
를 실행하여 서비스 로그를 찾습니다.
acsss_daemon
을 중지할 때 이 로그의 마지막 부분을 확인합니다. 서비스가 SMF에 의해 자동으로 재부트되는 것을 확인할 수 있습니다. acsls shutdown
으로 acsls
를 중지하면 비슷한 작업이 표시될 수 있습니다.
SMF를 사용하여 acsls 서비스를 사용 안함으로 설정합니다.
이 작업은 svcadm disable acsls
를 사용해서 루트로 수행하거나 acsss disable
을 사용해서 사용자 acsss로 수행할 수 있습니다.
SMF가 이러한 종료 이벤트를 담당하기 때문에 acsls 서비스를 재부트하려고 시도하지 않습니다. 이는 적절한 동작입니다. $ acsss enable
또는 # svcadm enable acsls
를 사용하여 SMF 아래에서 acsls 서비스를 재부트해야 합니다.
acsdb
서비스를 작동 중지합니다.
사용자 acsdb
로 다음 명령을 사용해서 PostgreSQL 데이터베이스를 갑자기 사용 안함으로 설정합니다.
pg_ctl stop \ -D $installDir/acsdb/ACSDB1.0/data \ -m immediate
이 작업을 수행하면 데이터베이스가 작동 중지되므로 acsls 프로세스가 중지됩니다. svcs -l acsdb
를 실행하여 acsdb 서비스 로그를 찾습니다.
데이터베이스를 작동 중지할 때 acsdb 서비스 로그 및 acsls 서비스 로그의 끝 부분을 확인합니다. acsdb 서비스가 작동 중지될 때 acsls 서비스도 작동 중지되는 것을 확인할 수 있습니다. 두 서비스 모두 SMF에 의해 자동으로 재부트됩니다.
ACSLS가 작동 중일 때 사용자 acsss
로 psacs
를 실행하여 acsss_daemon
으로 실행 중인 하위 프로세스 목록을 가져옵니다.
이러한 하위 프로세스 중 하나를 중지합니다. acsss_event.log
에서 하위 프로세스가 재부트되고 복구 절차가 호출되는지 확인합니다.
Solaris Cluster Software는 Solaris 시스템을 모니터하면서 시스템 페일오버 이벤트가 필요한 치명적인 조건을 찾습니다. 이러한 조건들 중에는 사용자가 시작한 페일오버(clrg switch
), 활성 노드에 대한 시스템 재부트, 시스템 작동 중단, 치명적인 메모리 결함 또는 활성 노드에서 복구할 수 없는 I/O 통신 등이 포함됩니다. Solaris Cluster는 또한 특정 응용 프로그램에 대해 지정된 HA 에이전트도 모니터합니다. ACSLS HA 에이전트는 다음과 같은 조건에서 시스템 페일오버 이벤트를 요청합니다.
활성 노드와 논리 호스트 사이에 TCP/IP 통신이 손실된 경우
$ACS_HOME
파일 시스템이 마운트되지 않은 경우
/export/backup
파일 시스템이 마운트되지 않은 경우
$ACS_HOME/acslsha/ha_acs_list.txt
파일에 나열된 ACS에 대한 통신이 손실된 경우(이 상태가 온라인이 아니면 switch lmu
가 불가능하거나 실패함)
일부 경우에는 # clrg status
명령을 사용해서 해당 노드의 페일오버 상태를 모니터할 수 있습니다.
또는 start_stop_log
의 끝 부분을 관찰하여 페일오버 작업을 모니터할 수 있습니다.
# tail -f /var/cluster/logs/DS/acsls-rg/acsls-rs/start_stop_log.txt
진단 페일오버 작업을 수행할 때는 두 노드 모두에서 /var/adm/messages
파일을 확인(tail -f
)하는 것이 유용할 수 있습니다.
클러스터 페일오버를 테스트하기 위해 앞에서 설명한 방법은 clrg switch
명령을 사용하는 것입니다.
# clrg switch -M -e -n <standby node name> acsls-rg
이 작업은 ACSLS 응용 프로그램을 작동 중지시키고 활성 서버에서 대기 시스템으로 작업을 전환합니다. -M -e
옵션은 새 노드에서 SMF 서비스를 사용으로 설정하도록 클러스터 서버에 지시합니다. /var/adm/messages
파일의 끝 부분을 확인해서 각 노드에서 이러한 이벤트 순서를 관찰합니다. 또한 시작-중지 로그를 추적할 수도 있습니다.
# tail -f /var/cluster/logs/DS/acsls-rg/acsls-rs/start_stop_log.txt
주기적으로 # clrg status
명령을 실행합니다.
활성 노드에서 시스템 재부트를 실행하면 대체 노드로 HA 전환이 즉시 시작됩니다.
이 작업을 수행하면 새로운 활성 노드에서 ACSLS가 실행됩니다. 대기 노드에서 대기 시스템이 새로운 활성 노드 역할을 가장할 때 /var/adm/messages
파일의 끝 부분을 감시합니다. 또한 주기적으로 # clrg status
명령을 실행할 수 있습니다.
init 5
를 사용해서 활성 서버 노드의 전원을 차단하고 시스템 페일오버를 확인합니다.
활성 서버 노드와 공유 디스크 스토리지 배열 사이의 데이터 라인을 모두 분리하고 대시 노드로의 시스템 전환을 확인합니다.
지정된 라이브러리가 정책 파일 ha_acs_list.txt
에 나열된다고 가정하고 활성 서버 노드와 해당 라이브러리 사이의 이더넷 통신 연결 라인을 모두 분리합니다.
대기 노드에 대한 시스템 페일오버를 확인합니다.