Solaris OS용 Sun Cluster 데이터 서비스 개발 안내서

6장 데이터 서비스 개발 라이브러리(DSDL)

이 장에서는 데이터 서비스 개발 라이브러리(DSDL)를 구성하는 응용 프로그램 프로그래밍 인터페이스에 대해 개괄적으로 설명합니다. DSDL은 libdsdev.so 라이브러리에서 구현되며 Sun Cluster 패키지에 포함되어 있습니다.

이 장은 다음 내용으로 구성되어 있습니다.

DSDL 개요

DSDL API는 자원 관리 API(RMAPI) 위에 놓이므로 RMAPI를 대체하는 것이 아니라 RMAPI 기능을 캡슐화하고 확장합니다. DSDL은 특정 Sun Cluster 통합 문제를 해결하는 미리 지정된 솔루션을 제공함으로써 데이터 서비스 개발을 단순화합니다. 결과적으로 응용 프로그램 시작, 종료 및 모니터 절차를 Sun Cluster와 통합하는 데 많은 시간을 낭비할 필요가 없기 때문에 응용 프로그램 고유의 고가용성 및 확장성 문제에 개발 시간의 대부분을 투자할 수 있습니다.

구성 등록 정보 관리

모든 콜백 메소드는 구성 등록 정보에 액세스해야 합니다. DSDL은 다음과 같은 방법으로 등록 정보에 대한 액세스를 지원합니다.

각 콜백 메소드의 시작 부분에서 호출해야 하는 scds_initialize() 함수는 다음 작업을 수행합니다.


주 –

Validate 메소드의 경우 scds_initialize()는 명령줄에서 전달되는 등록 정보 값을 구문 분석하므로 Validate에 대한 구문 분석 함수를 작성할 필요가 없습니다.


DSDL은 자원 유형, 자원 및 자원 그룹 등록 정보와 일반적으로 사용되는 확장 등록 정보를 검색하는 함수 집합을 제공합니다. 이러한 함수는 다음 규칙을 사용하여 등록 정보에 대한 액세스를 표준화합니다.

데이터 서비스 시작 및 중지

Start 메소드는 클러스터 노드에서 데이터 서비스를 시작하는 데 필요한 작업을 수행합니다. 일반적으로 여기에는 자원 등록 정보 검색, 응용 프로그램 고유의 실행 파일 및 구성 파일 찾기, 올바른 명령줄 인자를 사용하여 응용 프로그램 시작 등이 포함됩니다.

scds_initialize() 함수는 자원 구성을 검색합니다. Start 메소드는 시작할 응용 프로그램의 구성 디렉토리와 파일을 식별하는 Confdir_list와 같은 특정 등록 정보의 값을 검색하기 위해 등록 정보 일반 함수를 사용할 수 있습니다.

Start 메소드는 scds_pmf_start()를 호출하여 PMF(Process Monitor Facility)의 제어 하에 응용 프로그램을 시작할 수 있습니다. PMF를 사용하면 프로세스에 적용할 모니터 수준을 지정하고 실패가 발생할 경우 프로세스를 재시작할 수 있습니다. DSDL에서 구현되는 Start 메소드의 예는 xfnts_start 메소드를 참조하십시오.

응용 프로그램이 실행 중이 아닐 때 노드에서 호출된 경우에도 Stop 메소드가 성공 상태로 종료되도록 Stop 메소드는 멱등원이어야 합니다. Stop 메소드가 실패하면 중지하려는 자원이 STOP_FAILED 상태로 설정되어 클러스터의 하드웨어가 재부트될 수 있습니다.

자원이 STOP_FAILED 상태가 되지 않도록 Stop 메소드는 자원을 중지하기 위해 노력해야 합니다. scds_pmf_stop() 함수는 자원을 중지하기 위해 단계별로 시도합니다. 이 함수는 먼저 SIGTERM 신호를 사용하여 자원 중지를 시도하며 이 시도가 실패할 경우 SIGKILL 신호를 사용합니다. 자세한 내용은 scds_pmf_stop(3HA) 설명서 페이지를 참조하십시오.

오류 모니터 구현

DSDL은 미리 지정된 모델을 제공하여 오류 모니터를 구현하는 복잡한 작업을 단순화합니다. Monitor_start 메소드는 노드에서 자원이 시작될 때 PMF의 제어 하에서 오류 모니터를 시작합니다. 오류 모니터는 자원이 노드에서 실행되는 동안 루프 상태로 실행됩니다. DSDL 오류 모니터의 고급 논리는 다음과 같습니다.

네트워크 주소 정보 액세스

DSDL은 자원 및 자원 그룹에 대한 네트워크 주소 정보를 반환하는 일반 함수를 제공합니다. 예를 들어 scds_get_netaddr_list()는 자원이 사용하는 네트워크 주소 자원을 검색하여 오류 모니터가 응용 프로그램을 검사할 수 있게 합니다.

DSDL은 또한 TCP 기반 모니터를 위한 함수 집합을 제공합니다. 일반적으로 이러한 함수는 서비스에 대한 간단한 소켓 연결을 설정하고 데이터를 읽어 서비스에 기록한 다음 서비스와의 연결을 끊습니다. 검사 결과는 DSDL scds_fm_action() 함수로 전달되어 수행할 작업을 결정하는 데 사용될 수 있습니다.

TCP 기반 오류 모니터의 예는 xfnts_validate 메소드를 참조하십시오.

자원 유형 구현 디버깅

DSDL은 데이터 서비스의 디버깅을 지원하는 기능을 기본으로 제공합니다.

DSDL 유틸리티 scds_syslog_debug()는 디버깅 문을 자원 유형 구현에 추가하기 위한 기본 프레임워크를 제공합니다. 디버깅 수준(1-9 사이의 숫자)은 각 클러스터 노드의 각 자원 유형 구현에 대해 동적으로 설정할 수 있습니다. 모든 자원 유형 콜백 메소드는 1-9 사이의 정수만 포함하는 /var/cluster/rgm/rt/rtname/loglevel이라는 파일을 읽습니다. DSDL 함수 scds_initialize()는 이 파일을 읽고 내부적으로 디버그 수준을 지정한 수준으로 설정합니다. 기본 디버그 수준은 0이며 이 수준은 데이터 서비스가 디버깅 메시지를 기록하지 않도록 지정합니다.

scds_syslog_debug() 함수는 scha_cluster_getlogfacility() 함수에서 반환된 기능을 LOG_DEBUG의 우선 순위에 따라 사용합니다. /etc/syslog.conf 파일에서 이러한 디버그 메시지를 구성할 수 있습니다.

scds_syslog() 함수를 사용하면 일부 디버깅 메시지를 자원 유형의 일반 작업에 대한 정보 메시지(LOG_INFO 우선 순위)로 만들 수 있습니다. 8 장, 샘플 DSDL 자원 유형 구현의 샘플 DSDL 응용 프로그램에서 scds_syslog_debug()scds_syslog() 함수가 자유롭게 사용된 것을 볼 수 있습니다.

가용성이 높은 로컬 파일 시스템 만들기

HAStoragePlus 자원 유형을 사용하여 Sun Cluster 환경 내에서 로컬 파일 시스템의 가용성을 높일 수 있습니다. 로컬 파일 시스템 분할 영역은 전역 디스크 그룹에 위치해야 합니다. 또한 유사성 스위치오버를 사용할 수 있어야 하고 Sun Cluster 환경을 페일오버가 가능하도록 구성해야 합니다. 이 설정은 멀티 호스트 디스크에 직접 연결된 모든 호스트에서 멀티 호스트 디스크에 있는 모든 파일 시스템에 액세스할 수 있게 합니다. 입출력 작업이 많은 일부 데이터 서비스의 경우 고가용성 로컬 파일 시스템을 사용하는 것이 적극 권장됩니다. Sun Cluster Data Services Planning and Administration Guide for Solaris OSEnabling Highly Available Local File Systems에는 HAStoragePlus 자원 유형 구성에 대한 정보가 포함되어 있습니다.