Skip Headers
StorageTek Automated Cartridge System Library Software High Availability 8.3 Cluster 설치, 구성 및 작업
릴리스 8.3
E54099-01
  목차로 이동
목차
색인으로 이동
색인

이전
이전
 
다음
다음
 

11 클러스터 로깅, 진단 및 테스트

이 장에서는 ACSLS-HA 설치를 테스트하고 시스템에서 발생할 수 있는 문제 진단 및 해결을 위해 사용할 수 있는 여러 가지 리소스에 대해 설명합니다.

Solaris Cluster 로깅

페일오버 이벤트 중의 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 이벤트 로그

ACSLS 이벤트 로그는 $ACS_HOME/log/acsss_event.log입니다. 이 로그에는 ACSLS 소프트웨어의 관점에서 시작 및 중지 이벤트와 관련된 메시지가 포함됩니다. 이 로그는 라이브러리 리소스의 작업 상태에 대한 변경 사항을 보고하고 ACSLS 소프트웨어에서 검색된 모든 오류를 기록합니다. acsss_event.logacsss_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

이 동작에 대해 권장되는 검증 방법은 다음과 같습니다.

  1. ACSLS가 작동 중일 때 활성 노드의 각 IPMP 그룹에서 하나의 이더넷 연결을 분리합니다. # scstat -i를 사용해서 상태를 모니터합니다.

    /var/adm/messages에서 반응을 확인합니다. ACSLS 작업은 이 절차로 중단되지 않습니다.

  2. ACSLS가 작동 중일 때 활성 서버에서 공유 디스크 리소스에 대한 하나의 광 섬유 또는 SAS 연결을 분리합니다.

    /var/adm/messages에서 반응을 확인합니다. ACSLS 작업은 이 절차로 중단되지 않습니다.

    중복된 각 I/O 연결에서 이 테스트를 반복합니다.

  3. acsss_daemon을 중지하여 ACSLS를 갑자기 작동 중지합니다.

    svcs -l acsls를 실행하여 서비스 로그를 찾습니다.

    acsss_daemon을 중지할 때 이 로그의 마지막 부분을 확인합니다. 서비스가 SMF에 의해 자동으로 재부트되는 것을 확인할 수 있습니다. acsls shutdown으로 acsls를 중지하면 비슷한 작업이 표시될 수 있습니다.

  4. SMF를 사용하여 acsls 서비스를 사용 안함으로 설정합니다.

    이 작업은 svcadm disable acsls를 사용해서 루트로 수행하거나 acsss disable을 사용해서 사용자 acsss로 수행할 수 있습니다.

    SMF가 이러한 종료 이벤트를 담당하기 때문에 acsls 서비스를 재부트하려고 시도하지 않습니다. 이는 적절한 동작입니다. $ acsss enable 또는 # svcadm enable acsls를 사용하여 SMF 아래에서 acsls 서비스를 재부트해야 합니다.

  5. acsdb 서비스를 작동 중지합니다.

    사용자 acsdb로 다음 명령을 사용해서 PostgreSQL 데이터베이스를 갑자기 사용 안함으로 설정합니다.

    pg_ctl stop \
         -D $installDir/acsdb/ACSDB1.0/data \
         -m immediate
    

    이 작업을 수행하면 데이터베이스가 작동 중지되므로 acsls 프로세스가 중지됩니다. svcs -l acsdb를 실행하여 acsdb 서비스 로그를 찾습니다.

    데이터베이스를 작동 중지할 때 acsdb 서비스 로그 및 acsls 서비스 로그의 끝 부분을 확인합니다. acsdb 서비스가 작동 중지될 때 acsls 서비스도 작동 중지되는 것을 확인할 수 있습니다. 두 서비스 모두 SMF에 의해 자동으로 재부트됩니다.

  6. ACSLS가 작동 중일 때 사용자 acssspsacs를 실행하여 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)하는 것이 유용할 수 있습니다.

페일오버 테스트

  1. 클러스터 페일오버를 테스트하기 위해 앞에서 설명한 방법은 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 명령을 실행합니다.

  2. 활성 노드에서 시스템 재부트를 실행하면 대체 노드로 HA 전환이 즉시 시작됩니다.

    이 작업을 수행하면 새로운 활성 노드에서 ACSLS가 실행됩니다. 대기 노드에서 대기 시스템이 새로운 활성 노드 역할을 가장할 때 /var/adm/messages 파일의 끝 부분을 감시합니다. 또한 주기적으로 # clrg status 명령을 실행할 수 있습니다.

  3. init 5를 사용해서 활성 서버 노드의 전원을 차단하고 시스템 페일오버를 확인합니다.

  4. 활성 서버 노드와 공유 디스크 스토리지 배열 사이의 데이터 라인을 모두 분리하고 대시 노드로의 시스템 전환을 확인합니다.

  5. 지정된 라이브러리가 정책 파일 ha_acs_list.txt에 나열된다고 가정하고 활성 서버 노드와 해당 라이브러리 사이의 이더넷 통신 연결 라인을 모두 분리합니다.

    대기 노드에 대한 시스템 페일오버를 확인합니다.

추가 테스트

미러링된 부트 드라이브가 핫 플러그할 수 있는 경우 부트 드라이브 중 하나를 사용 안함으로 설정하고 시스템이 완전히 작동되는 상태인지 확인할 수 있습니다. 하나의 부트 드라이브가 사용 안함으로 설정된 경우 시스템을 재부트해서 노드가 대체 부트 드라이브로부터 작동하는지 확인합니다. 2개의 각 노드에서 각 부트 드라이브에 대해 이 작업을 반복합니다.

활성 노드에서 단일 전원 공급 장치를 제거하면 시스템이 대체 전원 공급 장치를 사용해서 완전한 작동 상태를 유지해야 합니다.