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

자원 시작 및 중지

자원 유형 구현에는 최소한 Start 메소드와 Stop 메소드가 필요합니다. RGM은 자원 그룹을 오프라인 및 온라인 상태로 전환하기 위해 적절한 시간에 적절한 노드에서 자원 유형의 메소드 프로그램을 호출합니다. 예를 들어, 클러스터 노드의 충돌 후 RGM은 해당 노드에서 마스터하는 모든 자원 그룹을 새 노드로 이동합니다. Start 메소드를 구현하여 RGM에 남은 호스트 노드에서 각 자원을 다시 시작하는 방법을 제공합니다.

로컬 노드에서 자원을 시작하고 사용할 수 있을 때까지 Start 메소드를 반환하면 안 됩니다. 긴 초기화 기간이 필요한 자원 유형의 Start 메소드에 설정된 시간 초과값이 충분히 긴지 확인합니다. 시간 초과값이 충분하도록 RTR 파일에서 Start_timeout 등록 정보에 대한 기본값과 최소값을 설정합니다.

RGM이 자원 그룹을 오프라인으로 만드는 상황에 Stop 메소드를 구현해야 합니다. 예를 들어, 자원 그룹이 노드 1에서 오프라인 상태가 되고 노드 2에서 다시 온라인 상태가 되는 것으로 가정합니다. 자원 그룹을 오프라인 상태로 만드는 동안 RGM은 해당 그룹의 자원에 대해 Stop 메소드를 호출하여 노드 1의 모든 활동을 중지합니다. 노드 1에서 모든 자원에 대해 Stop 메소드가 완료되면 RGM은 노드 2에서 자원 그룹을 다시 온라인 상태로 만듭니다.

해당 자원이 로컬 노드에서 모든 활동을 완전히 중지하고 종료될 때까지 Stop 메소드를 반환하면 안 됩니다. Stop 메소드의 가장 안전한 구현에서는 자원과 관련된 로컬 노드의 모든 프로세스를 종료합니다. 종료하는 데 긴 시간이 필요한 자원 유형은 Stop 메소드에 설정된 시간 초과값이 충분히 길어야 합니다. RTR 파일에 Stop_timeout 등록 정보를 설정합니다.

Stop 메소드가 실패하거나 시간 초과되면 자원 그룹은 클러스터 관리자의 개입이 필요한 오류 상태가 됩니다. 이런 상태를 방지하려면 StopMonitor_stop 메소드 구현에서 가능한 모든 오류 조건을 복구해야 합니다. 이상적으로는 이 메소드가 0 (성공) 오류 상태로 종료되어야 합니다. 이 상태는 로컬 노드에 있는 자원과 자원 모니터의 모든 활동을 성공적으로 중지한 상태입니다.

사용할 StartStop 메소드 결정

이 절에서는 Prenet_start Postnet_stop 메소드 사용과 비교하여 StartStop 메소드 사용 시기에 대한 설명을 제공합니다. 사용할 올바른 메소드를 결정하려면 클라이언트와 데이터 서비스의 클라이언트-서버 네트워킹 프로토콜에 대해 모두 잘 알아야 합니다.

네트워크 주소 자원을 사용하는 서비스에서는 논리 호스트 이름 주소 구성과 관련된 특정 순서로 시작 또는 중지 단계를 수행해야 합니다. 선택적인 콜백 메소드 Prenet_start Postnet_stop을 사용하면 동일한 자원 그룹의 네트워크 주소가 활성 또는 비활성으로 구성되기 전후에 자원 유형 구현에서 특수한 시작 및 종료 작업을 수행할 수 있습니다.

RGM은 데이터 서비스의 Prenet_start 메소드를 호출하기 전에 네트워크 주소를 연결하지만 네트워크 주소를 활성으로 구성하지 않는 메소드를 호출합니다. RGM은 데이터 서비스의 Postnet_stop 메소드를 호출한 후 네트워크 주소를 연결 해제하는 메소드를 호출합니다. RGM이 자원 그룹을 온라인 상태로 전환하는 순서는 다음과 같습니다.

  1. 네트워크 주소를 연결합니다.

  2. 데이터 서비스의 Prenet_start 메소드를 호출합니다(있는 경우).

  3. 네트워크 주소를 활성으로 구성합니다.

  4. 데이터 서비스의 Start 메소드를 호출합니다(있는 경우).

RGM이 자원 그룹을 오프라인 상태로 전환하는 순서는 그 반대입니다.

  1. 데이터 서비스의 Stop 메소드를 호출합니다(있는 경우).

  2. 네트워크 주소를 비활성으로 구성합니다.

  3. 데이터 서비스의 Postnet_stop 메소드를 호출합니다(있는 경우).

  4. 네트워크 주소를 연결 해제합니다.

Start, Stop, Prenet_start 또는 Postnet_stop 메소드 사용 여부를 결정할 때에는 먼저 서버측을 고려하십시오. 데이터 서비스 응용 프로그램 자원과 네트워크 주소 자원을 포함하는 자원 그룹을 온라인 상태로 전환할 경우 RGM에서는 데이터 서비스 자원 Start 메소드를 호출하기 전에 네트워크 주소를 활성으로 구성하는 메소드를 호출합니다. 따라서 데이터 서비스가 시작될 때 네트워크 주소를 활성으로 구성해야 하는 경우에는 Start 메소드를 사용하여 데이터 서비스를 시작합니다.

마찬가지로 데이터 서비스 자원과 네트워크 주소 자원을 모두 포함하는 자원 그룹을 오프라인 상태로 전환할 경우 RGM에서는 데이터 서비스 자원 Stop 메소드를 호출한 후 네트워크 주소를 비활성으로 구성하는 메소드를 호출합니다. 따라서 데이터 서비스가 중지될 때 네트워크 주소를 활성으로 구성해야 하는 경우에는 Stop 메소드를 사용하여 데이터 서비스를 중지합니다.

예를 들어, 데이터 서비스를 시작하거나 중지하려면 데이터 서비스의 관리 유틸리티나 라이브러리를 실행해야 할 수 있습니다. 경우에 따라 데이터 서비스에는 클라이언트-서버 네트워킹 인터페이스를 사용하여 관리를 수행하는 관리 유틸리티나 라이브러리가 있습니다. 즉, 관리 유틸리티에서 서버 데몬을 호출하기 때문에 관리 유틸리티나 라이브러리를 사용하려면 네트워크 주소가 활성 상태여야 합니다. 이 시나리오에서는 StartStop 메소드를 사용합니다.

데이터 서비스가 시작 및 중지될 때 네트워크 주소를 비활성으로 구성해야 하는 경우 Prenet_startPostnet_stop 메소드를 사용하여 데이터 서비스를 시작 및 중지하십시오. 클러스터 재구성 후 네트워크 주소 또는 데이터 서비스 중 어떤 것이 먼저 온라인 상태로 전환되는지에 따라 클라이언트 소프트웨어에서 다르게 응답하도록 할지를 고려합니다( SCHA_GIVEOVER 인자를 사용한 scha_control() 또는 scswitch를 사용한 스위치오버). 예를 들어, 클라이언트 구현에서는 최소한의 재시도를 수행하고 데이터 서비스 포트가 사용 불가능한지 확인한 후 바로 중지할 수 있습니다.

데이터 서비스를 시작할 때 네트워크 주소를 활성으로 구성할 필요가 없을 경우 네트워크 인터페이스를 활성으로 구성하기 전에 데이터 서비스를 시작합니다. 이런 방식으로 데이터 서비스를 시작하면 네트워크 주소가 활성으로 구성된 직후 데이터 서비스가 클라이언트 요청에 응답할 수 있으므로 클라이언트가 재시도를 중지할 가능성이 줄어듭니다. 이 시나리오에서는 Start 메소드 대신 Prenet_start 메소드를 사용하여 데이터 서비스를 시작합니다.

Postnet_stop 메소드를 사용할 경우 데이터 서비스 자원은 여전히 네트워크가 주소가 비활성으로 구성되는 지점에 활성화되어 있습니다. 네트워크 주소가 비활성으로 구성된 후에만 Postnet_stop 메소드가 실행됩니다. 그 결과, 네트워크 주소가 응답하지 않는 경우를 제외하고 데이터 서비스의 TCP 또는 UDP 서비스 포트 또는 해당 RPC 프로그램 번호가 항상 네트워크의 클라이언트에 사용 가능한 것으로 표시됩니다.


주 –

클러스터에 RPC 서비스를 설치할 경우 서비스에서 100141, 100142, 100248 등의 프로그램 번호를 사용해서는 안 됩니다. 이 번호는 각각 Sun Cluster 데몬 rgmd_receptionist, fed, pmfd용으로 예약되어 있습니다. 설치하는 RPC 서비스에서 이 프로그램 번호 중 하나를 사용할 경우 해당 RPC 서비스의 프로그램 번호를 변경합니다.


Prenet_startPostnet_stop 메소드 대신 StartStop 메소드를 사용하거나 둘 다 사용하도록 결정하는 경우 서버와 클라이언트의 요구 사항과 동작을 모두 고려해야 합니다.