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

4장 자원 유형 수정

이 장에서는 자원 유형을 수정하기 위해 알아 두어야 할 문제점에 대해 설명합니다. 클러스터 관리자의 자원 업그레이드를 허용하는 방법에 대한 정보도 포함되어 있습니다.

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

자원 유형 수정 개요

클러스터 관리자는 다음 작업을 수행할 수 있어야 합니다.

업그레이드하려는 자원 유형을 업그레이드 인식 자원 유형이라고 합니다. 변경할 수 있는 기존 자원 유형의 요소는 다음과 같습니다.


주 –

응용 프로그램 코드를 수정할 때 반드시 자원 유형을 수정해야 하는 것은 아닙니다.


클러스터 관리자가 자원 유형을 업그레이드할 수 있게 해주는 도구를 제공하기 위한 요구 사항을 알아야 합니다. 이 장에서는 이러한 도구를 설정하기 위해 알아야 하는 사항을 설명합니다.

자원 유형 등록(RTR) 파일의 내용 설정

자원 유형 이름

vendor-id, resource-type, rt-version 등 RTR 파일에 지정된 세 가지 등록 정보가 자원 유형 이름을 구성합니다. scrgadm 명령은 다음과 같이 점과 콜론 분리자를 삽입하여 자원 유형의 이름을 만듭니다.

vendor-id.resource-type:rt-version

vendor-id 접두어는 여러 공급업체에서 제공하는 동일한 이름의 등록 파일 두 개를 구분하는 역할을 합니다. vendor-id를 고유하게 설정하려면 자원 유형을 만들 때 회사의 주식 기호를 사용합니다. rt-version은 동일한 기본 자원 유형의 등록된 여러 버전(업그레이드)을 구분합니다.

다음 명령을 입력하여 정규화된 자원 유형 이름을 얻을 수 있습니다.


# scha_resource_get -O Type -R resource-name -G resource-group-name

Sun Cluster 3.1 이전에 등록된 자원 유형 이름은 계속해서 다음 구문을 사용합니다.

vendor-id.resource-type

자원 유형 이름의 형식에 대해서는 자원 유형 이름 형식에서 설명합니다.

#$upgrade#$upgrade_from 지시어 지정

수정 중인 자원 유형이 업그레이드를 인식하게 하려면 RTR 파일에 #$upgrade 지시어가 포함되어야 하며, 지원할 자원 유형의 각 이전 버전에 대해 #$upgrade 지시어 뒤에 0개 이상의 #$upgrade_from 지시어를 추가합니다.

#$upgrade#$upgrade_from 지시어는 RTR 파일에서 자원 유형 등록 정보 선언과 자원 선언 부분 사이에 있어야 합니다. rt_reg(4) 설명서 페이지를 참조하십시오.


예 4–1 RTR 파일의 #$upgrade_from 지시어

#$upgrade_from   "1.1"   WHEN_OFFLINE
#$upgrade_from   "1.2"   WHEN_OFFLINE
#$upgrade_from   "1.3"   WHEN_OFFLINE
#$upgrade_from   "2.0"   WHEN_UNMONITORED
#$upgrade_from   "2.1"   ANYTIME
#$upgrade_from   ""      WHEN_UNMANAGED

#$upgrade_from 지시어의 형식은 다음과 같습니다.

#$upgrade_from version tunability
version

RT_version입니다. 자원 유형에 버전이 없거나 이전에 RTR 파일에서 정의한 버전이 아닌 경우 빈 문자열(“”)을 지정합니다.

tunability

클러스터 관리자가 지정한 RT_version을 업그레이드할 수 있는 조건 또는 시기입니다.

#$upgrade_from 지시어에 사용할 수 있는 조정 기능 값은 다음과 같습니다.

ANYTIME

클러스터 관리자의 자원 업그레이드 가능 시기에 대한 제한이 없는 경우에 사용합니다. 업그레이드 중에 자원이 완전히 온라인 상태가 될 수 있습니다.

WHEN_UNMONITORED

새 자원 유형 버전의 메소드가 다음과 같은 경우에 사용합니다.

  • Update, Stop, Monitor_checkPostnet_stop 메소드가 이전 자원 유형 버전의 시작 메소드(Prenet_stopStart)와 호환되는 경우

  • Fini 메소드가 이전 버전의 Init 메소드와 호환되는 경우

클러스터 관리자는 업그레이드 전에 자원 모니터 프로그램만 중지하면 됩니다.

WHEN_OFFLINE

새 자원 유형 버전의 Update, Stop, Monitor_check 또는 Postnet_stop 메소드가 다음과 같은 경우에 사용합니다.

  • 이전 버전의 Init 메소드와 호환되는 경우

  • 이전 자원 유형 버전의 시작 메소드(Prenet_stopStart)와 호환되지 않는 경우

클러스터 관리자가 업그레이드 전에 자원을 오프라인 상태로 전환해야 합니다.

WHEN_DISABLED

WHEN_OFFLINE과 유사합니다. 그러나 클러스터 관리자가 업그레이드 전에 자원을 비활성화해야 합니다.

WHEN_UNMANAGED

새 자원 유형 버전의 Fini 메소드가 이전 버전의 Init 메소드와 호환되지 않는 경우에 사용합니다. 클러스터 관리자가 업그레이드 전에 기존 자원 그룹을 관리 해제 상태로 전환해야 합니다.

자원 유형 버전이 #$upgrade_from 지시어 목록에 나타나지 않는 경우 RGM은 기본적으로 WHEN_UNMANAGED 조정 기능 옵션을 해당 버전에 지정합니다.

AT_CREATION

기존 자원을 새 버전의 자원 유형으로 업그레이드할 수 없도록 차단하려면 사용합니다. 클러스터 관리자가 자원을 삭제하고 다시 만들어야 합니다.

RTR 파일에서 RT_version 변경

RTR 파일 내용이 변경될 때마다 RTR 파일에서 RT_version 등록 정보만 변경하면 됩니다. 이 버전의 자원 유형이 최신 버전임을 나타내는 등록 정보 값을 선택합니다.

RTR 파일의 RT_version 문자열에 다음 문자를 포함하지 마십시오. 이러한 문자를 사용하면 자원 유형의 등록에 실패합니다.

Sun Cluster 3.0에서 선택 사항이었던 RT_Version 등록 정보는 Sun Cluster 3.1부터 필수입니다.

이전 버전 Sun Cluster의 자원 유형 이름

Sun Cluster 3.0의 자원 유형 이름은 다음과 같은 버전 접미어를 포함하지 않습니다.

vendor-id.resource-type

원래 Sun Cluster 3.0에서 등록된 자원 유형은 클러스터 관리자가 클러스터링 소프트웨어를 Sun Cluster 3.1 이후 릴리스로 업그레이드한 후에도 이 구문에 따른 이름을 사용합니다. 마찬가지로 Sun Cluster 3.1 이상을 실행하는 클러스터에 RTR 파일을 등록한 경우 RTR 파일에서 #$upgrade 지시어가 누락된 자원 유형에는 버전 접미어 없이 Sun Cluster 3.0 형식 이름이 제공됩니다.

클러스터 관리자는 Sun Cluster 3.0의 #$upgrade 지시어 또는 #$upgrade_from 지시어를 사용하여 RTR 파일을 등록할 수 있습니다. 그러나 Sun Cluster 3.0에서 기존 자원을 새 자원 유형으로 업그레이드할 수는 없습니다.

클러스터 관리자에 의한 업그레이드 시 수행되는 작업

클러스터 관리자가 수행해야 하는 작업 또는 자원 유형 업그레이드 시 수행되는 작업은 다음과 같습니다.


주 –

Sun Cluster 3.0에서 만든 자원은 이후 버전의 Sun Cluster로 업그레이드 시 자원 유형에서 새 기본 자원 등록 정보 속성을 상속하지 않습니다. 이 제한은 Sun Cluster 3.0 클러스터에서 업그레이드하는 Sun Cluster 3.1 클러스터에만 적용됩니다. 클러스터 관리자는 등록 정보 값을 지정하여 기본값을 무시함으로써 이 제한을 해결할 수 있습니다.


자원 유형 모니터 코드 구현

클러스터 관리자는 Sun Cluster 3.0에서 업그레이드 인식 자원 유형을 등록할 수 있습니다. 그러나 Sun Cluster는 버전 접미어 없이 자원 유형 이름을 기록합니다. Sun Cluster 3.0과 Sun Cluster 3.1에서 모두 제대로 실행하려면 이 자원 유형의 모니터 코드에서 다음 두 가지 이름 지정 규약을 처리할 수 있어야 합니다.

vendor-id.resource-type:rt-version
vendor-id.resource-type

자원 유형 이름의 형식에 대해서는 자원 유형 이름 형식에서 설명합니다.

클러스터 관리자는 동일한 버전의 자원 유형을 두 개의 다른 이름으로 두 번 등록할 수 없습니다. 모니터 코드에서 올바른 이름을 결정할 수 있게 하려면 모니터 코드에서 다음 명령을 호출합니다.

scha_resourcetype_get -O RT_VERSION -T VEND.myrt
scha_resourcetype_get -O RT_VERSION -T VEND.myrt:vers

그런 다음 출력 값을 vers와 비교합니다. 특정 vers 값에 대해 이러한 명령 중 하나만 성공합니다.

설치 요구 사항 및 패키지화 결정

자원 유형 패키지의 설치 요구 사항과 패키지화를 결정하는 경우 다음 두 가지 요구 사항을 명심하십시오.

사용할 올바른 패키지화를 결정하려면 다음 질문을 고려해 보십시오.

이러한 질문의 대답은 새 자원 유형에 사용할 올바른 패키지화를 결정하는 데 도움이 될 것입니다.

RTR 파일 변경 전 주의 사항

자원 유형을 수정할 때 반드시 새 메소드 또는 모니터 코드를 만들어야 하는 것은 아닙니다. 예를 들어, 자원 등록 정보의 기본값이나 조정 기능만 변경할 수 있습니다. 이 인스턴스에서는 메소드 코드를 변경하지 않기 때문에 읽을 수 있는 RTR 파일에 유효한 새 경로 이름만 있으면 됩니다.

이전 자원 유형을 다시 등록할 필요가 없는 경우 새 RTR 파일이 이전 버전을 덮어쓸 수 있습니다. 그렇지 않으면 새 RTR 파일을 새 경로에 저장합니다.

업그레이드 시 등록 정보의 기본값이나 조정 기능이 변경되면 새 버전의 자원 유형에 대해 Validate 메소드를 사용하여 기존 등록 정보 속성이 새 자원 유형에 유효한지 확인합니다. 유효하지 않으면 클러스터 관리자는 기존 자원의 등록 정보를 올바른 값으로 변경할 수 있습니다. 업그레이드 시 등록 정보의 min, max 또는 type 속성이 변경되는 경우 클러스터 관리자가 자원 유형을 업그레이드하면 scrgadm 명령이 자동으로 이러한 제약 조건을 검증합니다.

업그레이드 시 새 등록 정보가 추가되거나 이전 등록 정보가 삭제되는 경우 콜백 메소드 또는 모니터 코드를 변경해야 할 수도 있습니다.

모니터 코드 변경

자원 유형의 모니터 코드만 변경하는 경우 패키지 설치가 모니터 이진을 덮어쓸 수 있습니다.

메소드 코드 변경

자원 유형에서 메소드 코드만 변경하는 경우 새 메소드 코드가 이전 메소드 코드와 호환되는지 여부를 결정해야 합니다. 이 질문의 대답에 따라 새 메소드 코드를 새 경로에 저장해야 하는지 또는 이전 메소드를 덮어쓸 수 있는지가 결정됩니다.

Stop, Postnet_stopFini 메소드(선언된 경우)를 이전 버전의 Start, Prenet_stop 또는 Init 메소드로 초기화 또는 시작된 자원에 적용할 수 있는 경우 이전 메소드를 새 메소드로 덮어쓸 수 있습니다.

등록 정보에 새 기본값을 적용하면 Stop, Postnet_stop 또는 Fini와 같은 메소드가 실패하는 경우 클러스터 관리자는 자원 유형 업그레이드 시 자원 상태를 적절하게 제한해야 합니다.

Type_version 등록 정보의 조정 기능을 제한하여 클러스터 관리자가 업그레이드 시 자원 상태를 제한할 수 있게 합니다.

패키지화하는 한 가지 방법은 패키지에서 지원되는 이전 버전의 모든 자원 유형을 포함하는 것입니다. 이 방법을 사용하면 이전 메소드 경로를 덮어쓰거나 삭제하지 않아도 새 버전의 패키지가 이전 버전의 패키지를 대체할 수 있습니다. 지원할 이전 버전의 수를 결정해야 합니다.

사용할 패키지화 체계 결정

다음 표에는 새 자원 유형에 사용할 패키지화 체계가 요약되어 있습니다.

표 4–1 사용할 패키지화 체계 결정

변경 유형 

조정 기능 값 

패키지화 체계 

RTR 파일에서만 등록 정보를 변경합니다. 

ANYTIME

새 RTR 파일만 배달합니다. 

메소드를 업데이트합니다. 

ANYTIME

이전 메소드와 다른 경로에 업데이트된 메소드를 저장합니다. 

새 모니터 프로그램을 설치합니다. 

WHEN_UNMONITORED

이전 버전의 모니터만 덮어씁니다. 

메소드를 업데이트합니다. 

UpdateStop 메소드는 이전 Start 메소드와 호환되지 않습니다.

WHEN_OFFLINE

이전 메소드와 다른 경로에 업데이트된 메소드를 저장합니다. 

메소드를 업데이트하고 RTR 파일에 새 등록 정보를 추가합니다. 새 메소드에는 새로운 등록 정보가 필요합니다. 

포함하는 자원 그룹이 온라인 상태를 유지할 수 있게 하지만 노드의 자원 그룹이 오프라인 상태에서 온라인 상태로 이동할 경우 자원이 온라인 상태가 되는 것을 방지하기 위한 것입니다. 

WHEN_DISABLED

이전 버전의 메소드를 덮어씁니다. 

메소드를 업데이트하고 RTR 파일에 새 등록 정보를 추가합니다. 새 메소드에는 새 등록 정보가 필요하지 않습니다. 

ANYTIME

이전 버전의 메소드를 덮어씁니다. 

메소드를 업데이트합니다. 새로운 Fini 메소드는 이전 Init 메소드와 호환되지 않습니다.

WHEN_UNMANAGED

이전 메소드와 다른 경로에 업데이트된 메소드를 저장합니다. 

메소드를 업데이트합니다. RTR 파일이 변경되지 않습니다. 

해당 없음. RTR 파일이 변경되지 않습니다. 

이전 버전의 메소드를 덮어씁니다. RTR 파일을 변경하지 않았기 때문에 자원을 등록하거나 업그레이드할 필요가 없습니다. 

수정된 자원 유형을 제공하기 위한 설명서

클러스터 관리자에게 자원 유형을 업그레이드하는 방법을 알려주는 지침은 Sun Cluster Data Services Planning and Administration Guide for Solaris OSSun Cluster Data Services Planning and Administration Guide for Solaris OSUpgrading a Resource Type에 포함되어 있습니다. 클러스터 관리자가 수정되는 자원 유형을 업그레이드할 수 있게 하려면 이 절에 설명된 추가 정보와 함께 이러한 지침을 참조하십시오.

일반적으로 새 자원 유형을 만드는 경우 다음 정보가 포함된 설명서를 제공해야 합니다.

업그레이드 설치 전 수행할 작업과 관련된 정보

클러스터 관리자에게 노드에서 업그레이드 패키지를 설치하기 전에 수행해야 하는 작업을 다음과 같이 설명합니다.

자원 업그레이드 시와 관련된 정보

클러스터 관리자에게 자원을 새 버전의 자원 유형으로 업그레이드할 수 있는 경우를 설명합니다. 클러스터 관리자가 자원 유형을 업그레이드할 수 있는 조건은 RTR 파일의 각 자원 버전에 대한 #$upgrade_from 지시어의 조정 기능에 따라 다음과 같이 결정됩니다.


예 4–2 #$upgrade_from이 클러스터 관리자의 업그레이드 가능 시기를 정의하는 방법

이 예에서는 클러스터 관리자가 자원을 새 버전의 자원 유형으로 업그레이드할 수 있는 조건에 #$upgrade_from 지시어의 조정 기능이 미치는 영향을 보여줍니다.

#$upgrade_from   "1.1"   WHEN_OFFLINE
#$upgrade_from   "1.2"   WHEN_OFFLINE
#$upgrade_from   "1.3"   WHEN_OFFLINE
#$upgrade_from   "2.0"   WHEN_UNMONITORED
#$upgrade_from   "2.1"   ANYTIME
#$upgrade_from   ""      WHEN_UNMANAGED

버전 

클러스터 관리자가 자원을 업그레이드할 수 있는 시기 

1.1, 1.2 또는 1.3 

자원이 오프라인 상태인 경우에만 

2.0 

자원 모니터링이 해제된 경우에만 

2.1 

언제든지 

다른 모든 버전 

자원 그룹이 관리 해제된 경우에만 


자원 등록 정보 변경과 관련된 정보

클러스터 관리자가 업그레이드 시 기존 자원의 등록 정보를 수정해야 하는 자원 유형 변경을 설명합니다. 수행할 수 있는 변경은 다음과 같습니다.