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

Agent Builder 출력

소스 및 이진 파일

RGM(Resource Group Manager)은 자원 그룹과 궁극적으로 클러스터의 자원을 관리합니다. RGM은 콜백 모델에서 작동합니다. 노드 실패와 같은 특정 이벤트가 발생할 경우 RGM은 영향을 받는 노드에서 실행 중인 각 자원에 대해 자원 유형의 메소드를 호출합니다. 예를 들어, RGM은 영향을 받는 노드에서 실행 중인 자원을 중지하기 위해 Stop 메소드를 호출한 다음 자원의 Start 메소드를 호출하여 다른 노드에서 자원을 시작합니다. 이 모델에 대한 자세한 내용은 RGM 모델, 콜백 메소드rt_callbacks(1HA) 설명서 페이지를 참조하십시오.

이 모델을 지원하기 위해 Agent Builder는 8개의 실행 가능 C 프로그램 또는 Korn 쉘 스크립트를 install-directory/rt-name/bin 디렉토리에 생성합니다. 이러한 프로그램 또는 쉘 스크립트는 콜백 메소드 역할을 합니다.


주 –

엄격하게 말하자면 오류 모니터를 구현하는 rt-name_probe 프로그램은 콜백 프로그램이 아닙니다. RGM은 rt-name_probe를 직접 호출하지 않고 rt-name_monitor_startrt-name_monitor_stop을 호출합니다. 이러한 메소드는 rt-name _probe를 호출하여 오류 모니터를 시작하고 중지합니다.


Agent Builder에서 생성하는 8개 메소드는 다음과 같습니다.

각 메소드에 대한 자세한 내용은 rt_callbacks(1HA) 설명서 페이지를 참조하십시오.

install-directory/rt-name/src 디렉토리(C 출력)에서 Agent Builder는 다음 파일을 생성합니다.

Agent Builder는 rt-name.o 파일을 각 메소드 o 파일에 연결하여 install-directory/rt-name/bin 디렉토리에 실행 가능 파일을 만듭니다.

Korn 쉘 출력의 경우 install-directory/rt-name/bininstall-directory/rt-name/src 디렉토리가 동일합니다. 각 디렉토리에는 일곱 개의 콜백 메소드와 Probe 메소드에 해당하는 여덟 개의 실행 스크립트가 포함되어 있습니다.


주 –

Korn 쉘 출력에는 시간을 가져오고 검사하기 위해 특정 콜백 메소드에 필요한 2개의 컴파일된 유틸리티 프로그램인 gettimegethostnames가 포함됩니다.


소스 코드를 편집하고 make 명령을 실행하여 코드를 다시 컴파일한 다음 작업을 마치면 make pkg 명령을 실행하여 새 패키지를 생성할 수 있습니다. 소스 코드 변경을 지원하기 위해 Agent Builder는 소스 코드의 올바른 위치에 코드를 추가할 수 있는 주석을 포함합니다. 생성된 소스 코드 편집을 참조하십시오.

Sun Agent Builder에서 만드는 유틸리티 스크립트 및 설명서 페이지

자원 유형을 생성하고 클러스터에 해당 패키지를 설치한 경우 일반적으로 관리 명령이나 SunPlex Manager를 사용하여 클러스터에서 실행 중인 자원 유형의 인스턴스(자원)를 가져와야 합니다. 그러나 편의상 Agent Builder는 대상 자원 유형의 자원을 중지 및 제거하기 위한 스크립트뿐만 아니라 이러한 용도의 사용자 정의 유틸리티 스크립트를 생성합니다. install-directory/rt-name/util 디렉토리에 있는 이 3개의 스크립트는 다음 작업을 수행합니다.


주 –

이러한 스트립트는 내부 규칙을 사용하여 자원 및 자원 그룹의 이름을 지정하기 때문에 해당하는 시작 스크립트에서 시작한 자원에만 제거 스크립트를 사용할 수 있습니다.


Agent Builder는 응용 프로그램 이름을 스크립트 이름에 추가하여 이 스크립트 이름을 지정합니다. 예를 들어, 응용 프로그램 이름이 ftp일 경우 스크립트 이름은 startftp, stopftpremoveftp입니다.

Agent Builder는 각 유틸리티 스크립트의 install-directory/rt-name/man/man1m 디렉토리에 설명서 페이지를 제공합니다. 스크립트에 전달해야 하는 인자가 이 설명서 페이지에 나와 있으므로 스크립트를 시작하기 전에 이 설명서 페이지를 읽어보십시오.

이 설명서 페이지를 보려면 man 명령에 -M 옵션을 사용하여 이 man 디렉토리 경로를 지정합니다. 예를 들어, SUNW가 공급업체이고 ftp가 응용 프로그램 이름일 경우 다음 명령을 입력하여 startftp(1M) 설명서 페이지를 볼 수 있습니다.


% man -M install-directory/SUNWftp/man startftp

클러스터 관리자도 설명서 페이지 유틸리티 스크립트를 사용할 수 있습니다. Agent Builder에서 생성한 패키지를 클러스터에 설치한 경우 유틸리티 스크립트의 설명서 페이지는 /opt/rt-name/man 디렉토리에 있습니다. 예를 들어, 다음 명령을 입력하여 startftp(1M) 설명서 페이지를 볼 수 있습니다.


% man -M /opt/SUNWftp/man startftp

Agent Builder에서 만드는 지원 파일

Agent Builder는 pkginfo, postinstall, postremovepreremove와 같은 지원 파일을 install-directory/rt-name/etc 디렉토리에 저장합니다. 이 디렉토리에는 대상 자원 유형에 사용 가능한 자원 및 자원 유형 등록 정보를 선언하고 자원을 클러스터에 등록할 때 등록 정보값을 초기화하는 자원 유형 등록(RTR) 파일도 포함됩니다. 자세한 내용은 자원 및 자원 유형 등록 정보 설정을 참조하십시오. RTR 파일 이름은 vendor-name.resource-type-name(예: SUNW.ftp)으로 지정됩니다.

표준 텍스트 편집기를 사용하여 이 파일을 편집하고 소스 코드를 다시 컴파일하지 않고 변경할 수 있습니다. 그러나 make pkg 명령을 사용하여 패키지를 다시 만들어야 합니다.

Agent Builder에서 만드는 패키지 디렉토리

install-directory/rt-name/pkg 디렉토리에는 Solaris 패키지가 포함됩니다. 패키지 이름은 공급업체 이름과 응용 프로그램 이름을 결합한 이름(예: SUNWftp)입니다. install-directory/rt-name/src 디렉토리의 makefile에서는 새 패키지 작성을 지원합니다. 예를 들어, 소스 파일을 변경하고 코드를 다시 컴파일하거나 패키지 유틸리티 스크립트를 변경한 경우 make pkg 명령을 사용하여 새 패키지를 만듭니다.

클러스터에서 패키지를 제거한 경우 둘 이상의 노드에서 동시에 명령을 실행하면 pkgrm 명령이 실패할 수 있습니다. 다음 두 가지 방법 중 하나로 이 문제를 해결할 수 있습니다.

여러 노드에서 동시에 실행하여 pkgrm이 실패한 경우 한 노드에서 명령을 다시 실행한 다음 나머지 노드에서 실행합니다.

rtconfig 파일

작업 디렉토리에 C 또는 Korn 쉘 소스 코드를 생성하면 Agent Builder에서 rtconfig라는 구성 파일을 생성합니다. 이 파일에는 개발자가 Create 화면과 Configure 화면에서 지정한 정보가 포함됩니다. 기존 자원 유형의 작업 디렉토리에서 Agent Builder를 시작하면 Agent Builder는 rtconfig 파일을 읽고 개발자가 기존 자원 유형에 대해 제공한 정보를 Create 및 Configure 화면에 채웁니다. File 드롭다운 메뉴에서 Load Resource Type을 선택하여 기존 자원 유형을 로드하는 경우에도 Agent Builder는 이와 유사하게 작동합니다. 기존 자원 유형을 복제할 경우 이 기능이 유용합니다. Agent Builder를 사용하여 작성한 코드 재사용을 참조하십시오.