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

자원 및 자원 유형 등록 정보 설정

Sun Cluster에서는 데이터 서비스의 정적 구성을 정의하기 위해 사용하는 자원 유형 등록 정보와 자원 등록 정보 집합을 제공합니다. 자원 유형 등록 정보는 각각의 콜백 메소드에 대한 경로뿐만 아니라 자원 유형, 자원 버전, API 버전 등을 지정합니다. 모든 자원 유형 등록 정보의 목록은 자원 유형 등록 정보를 참조하십시오.

Failover_mode, Thorough_probe_interval 및 메소드 시간 초과값과 같은 자원 등록 정보는 자원의 정적 구성을 정의합니다. Resource_stateStatus와 같은 동적 자원 등록 정보는 관리 자원의 활성 상태를 반영합니다. 자원 등록 정보에 대한 자세한 내용은 자원 등록 정보를 참조하십시오.

데이터 서비스의 필수 구성 요소인 자원 유형 등록(RTR) 파일에서 자원 유형 및 자원 등록 정보를 선언합니다. 클러스터 관리자가 Sun Cluster에 데이터 서비스를 등록할 때 RTR 파일에 데이터 서비스의 초기 구성을 정의합니다.

Agent Builder에서 데이터 서비스에 유용하고 필요한 등록 정보 집합을 선언하기 때문에 Agent Builder를 사용하여 데이터 서비스용 RTR 파일을 생성하는 것이 좋습니다. 예를 들어, RTR 파일에 특정 등록 정보(예: Resource_type)를 선언해야 합니다. 그렇지 않으면 데이터 서비스 등록에 실패합니다. 필수는 아니지만 기타 등록 정보는 RTR 파일에 해당 등록 정보를 선언하지 않은 경우 클러스터 관리자가 사용할 수 없습니다. 반면 일부 등록 정보는 RGM에서 해당 등록 정보를 정의하고 기본값을 제공하기 때문에 선언 여부와 관계없이 사용할 수 있습니다. 이러한 복잡성을 피하려면 Agent Builder를 사용하여 올바른 RTR 파일을 생성합니다. 나중에 RTR 파일을 편집하여 필요한 경우 특정 값을 변경할 수 있습니다.

이 절의 나머지 부분에서는 Agent Builder에서 생성된 샘플 RTR 파일을 설명합니다.

자원 유형 등록 정보 선언

클러스터 관리자는 개발자가 RTR 파일에 선언한 자원 유형 등록 정보를 구성할 수 없습니다. 이러한 자원 유형 등록 정보는 자원 유형 영구 구성의 일부가 됩니다.


주 –

클러스터 관리자만 자원 유형 등록 정보 Installed_nodes를 구성할 수 있습니다. RTR 파일에 Installed_nodes를 선언할 수 없습니다.


자원 유형 선언 구문은 다음과 같습니다.

property-name = value;

주 –

자원 그룹, 자원 및 자원 유형의 등록 정보 이름은 대소문자를 구분하지 않습니다. 등록 정보 이름을 지정하는 경우 대문자와 소문자를 임의로 조합해서 사용할 수 있습니다.


다음은 샘플(smpl) 데이터 서비스용 RTR 파일의 자원 유형 선언입니다.

# Sun Cluster Data Services Builder template version 1.0
# Registration information and resources for smpl
#
#NOTE: Keywords are case insensitive, i.e., you can use
#any capitalization style you prefer.
#
Resource_type = "smpl";
Vendor_id = SUNW;
RT_description = "Sample Service on Sun Cluster";

RT_version ="1.0"; 
API_version = 2;
Failover = TRUE;

Init_nodes = RG_PRIMARIES;

RT_basedir=/opt/SUNWsmpl/bin;

Start           =    smpl_svc_start;
Stop            =    smpl_svc_stop;

Validate        =    smpl_validate;
Update          =    smpl_update;

Monitor_start   =    smpl_monitor_start;
Monitor_stop    =    smpl_monitor_stop;
Monitor_check   =    smpl_monitor_check;

정보 –

RTR 파일의 첫 번째 항목으로 Resource_type 등록 정보를 선언해야 합니다. 그렇지 않으면 자원 유형 등록에 실패합니다.


자원 유형 선언의 첫 번째 집합에서는 다음과 같이 자원 유형에 대한 기본 정보를 제공합니다.

Resource_typeVendor_id

자원 유형 이름을 제공합니다. 자원 유형 이름은 Resource_type 등록 정보(smpl)로만 지정하거나 샘플과 같이 Vendor_id 등록 정보를 접두어로 사용하고 “.”으로 자원 유형과 구분하여 지정합니다(SUNW.smpl). Vendor_id를 사용하는 경우 자원 유형을 정의하는 회사의 주식 기호를 사용합니다. 자원 유형 이름은 클러스터에서 고유해야 합니다.


주 –

일반적으로 자원 유형 이름(vendoridApplicationname)이 패키지 이름으로 사용됩니다. Solaris 9 운영 체제부터는 Vendor ID와 Application Name의 조합이 9자를 넘을 수 있습니다. 그러나 이전 버전의 Solaris 운영 체제를 사용 중이면 RGM에서 이 제한을 적용하지 않는 경우에도 Vendor ID와 Application Name의 조합이 9자를 넘을 수 없습니다.

한편 Agent Builder는 명시적으로 자원 유형 이름에서 패키지 이름을 생성하기 때문에 9자 제한을 적용합니다.


RT_description

자원 유형을 간단하게 설명합니다.

RT_version

샘플 데이터 서비스의 버전을 식별합니다.

API_version

API의 버전을 식별합니다. 예를 들어 API_version = 2는 Sun Cluster 3.0부터, API_version = 5는 Sun Cluster 3.1 9/04부터 모든 버전의 Sun Cluster에 데이터 서비스를 설치할 수 있음을 나타냅니다. 그러나 API_version = 5는 또한 Sun Cluster 3.1 9/04 이전에 릴리스된 Sun Cluster의 모든 버전에 데이터 서비스를 설치할 수 없음을 나타냅니다. 이 등록 정보에 대해서는 자원 유형 등록 정보API_version 항목에서 자세히 설명합니다.

Failover = TRUE

동시에 여러 노드에서 온라인 상태가 될 수 있는 자원 그룹에서 데이터 서비스를 실행할 수 없음을 나타냅니다. 즉, 이 선언은 페일오버 데이터 서비스를 지정합니다. 이 등록 정보에 대해서는 자원 유형 등록 정보Failover 항목에서 자세히 설명합니다.

Start, Stop Validate

RGM에서 호출한 각각의 콜백 메소드 프로그램에 대한 경로를 제공합니다. 이러한 경로는 RT_basedir에 지정된 디렉토리에 상대적인 경로입니다.

나머지 자원 유형 선언에서는 다음과 같은 구성 정보를 제공합니다.

Init_nodes = RG_PRIMARIES

RGM이 데이터 서비스를 마스터할 수 있는 노드에서만 Init, Boot, FiniValidate 메소드를 호출하도록 지정합니다. RG_PRIMARIES에서 지정한 노드는 데이터 서비스가 설치된 모든 노드 의 서브 세트입니다. 데이터 서비스가 설치된 모든 노드에서 RGM이 이러한 메소드를 호출하도록 지정하려면 값을 RT_INSTALLED_NODES로 설정합니다.

RT_basedir

콜백 메소드 경로 등 상대 경로를 완료하려면 /opt/SUNWsample/bin을 디렉토리 경로로 지정합니다.

Start, Stop Validate

RGM에서 호출한 각각의 콜백 메소드 프로그램에 대한 경로를 제공합니다. 이러한 경로는 RT_basedir에 지정된 디렉토리에 상대적인 경로입니다.

자원 등록 정보 선언

자원 유형 등록 정보와 마찬가지로 RTR 파일에 자원 등록 정보를 선언합니다. 일반적으로 RTR 파일의 자원 유형 선언 다음에 자원 등록 정보 선언이 나옵니다. 자원 선언 구문은 둥근 괄호로 묶은 속성 값 쌍의 집합입니다.

{
    attribute = value;
    attribute = value;
             .
             .
             .
    attribute = value;
}

Sun Cluster에서 제공하는 시스템 정의 등록 정보라는 자원 등록 정보의 경우 RTR 파일에서 특정 속성을 변경할 수 있습니다. 예를 들어, Sun Cluster는 각 콜백 메소드에 대한 메소드 시간 초과 등록 정보의 기본값을 제공합니다. RTR 파일에서 다른 기본값을 지정할 수 있습니다.

Sun Cluster에서 제공하는 등록 정보 속성 집합을 사용하여 RTR 파일에 확장 등록 정보라는 새 자원 등록 정보를 정의할 수도 있습니다. 자원 등록 정보 속성에서는 자원 등록 정보를 변경하고 정의하기 위한 속성을 나열합니다. RTR 파일의 시스템 정의 등록 정보 선언 다음에는 확장 등록 정보 선언이 나옵니다.

시스템 정의 자원 등록 정보의 첫 번째 집합에서 다음과 같이 콜백 메소드의 시간 초과값을 지정합니다.

...

# Resource property declarations appear as a list of bracketed
# entries after the resource type declarations. The property 
# name declaration must be the first attribute after the open
# curly bracket of a resource property entry.
#
# Set minimum and default for method timeouts.
{
        PROPERTY = Start_timeout;
        MIN=60;
        DEFAULT=300;
}

{
        PROPERTY = Stop_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Validate_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Update_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Start_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Stop_timeout;
        MIN=60;
        DEFAULT=300;
{
        PROPERTY = Monitor_Check_timeout;
        MIN=60;
        DEFAULT=300;
}

등록 정보(PROPERTY = value) 이름은 각 자원 등록 정보 선언의 첫 번째 속성이어야 합니다. RTR 파일의 등록 정보 속성에서 정의하는 한도 내에서 자원 등록 정보를 구성할 수 있습니다. 예를 들어, 해당 샘플의 각 메소드 시간 초과 기본값은 300초입니다. 클러스터 관리자가 이 값을 변경할 수 있지만, MIN 속성에서 지정한 허용 가능한 최소값은 60초입니다. 자원 등록 정보 속성은 자원 등록 정보 속성의 목록을 포함합니다.

자원 등록 정보의 다음 집합에서는 데이터 서비스에서 특정 용도가 있는 등록 정보를 정의합니다.

{
        PROPERTY = Failover_mode;
        DEFAULT=SOFT;
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Thorough_Probe_Interval;
        MIN=1;
        MAX=3600;
        DEFAULT=60;
        TUNABLE = ANYTIME;
}

# The number of retries to be done within a certain period before concluding
# that the application cannot be successfully started on this node.
{
        PROPERTY = Retry_count;
        MAX=10;
        DEFAULT=2;
        TUNABLE = ANYTIME; 
}

# Set Retry_interval as a multiple of 60 since it is converted from seconds
# to minutes, rounding up. For example, a value of 50 (seconds)
# is converted to 1 minute. Use this property to time the number of
# retries (Retry_count).
{
        PROPERTY = Retry_interval;
        MAX=3600;
        DEFAULT=300;
        TUNABLE = ANYTIME;
}

{
        PROPERTY = Network_resources_used;
        TUNABLE = WHEN_DISABLED;
        DEFAULT = "";
}
{
        PROPERTY = Scalable;
        DEFAULT = FALSE;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_policy;
        DEFAULT = LB_WEIGHTED;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_weights;
        DEFAULT = "";
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Port_list;
        TUNABLE = ANYTIME;
        DEFAULT = ;
}

이 자원 등록 정보 선언은 클러스터 관리자가 이 특성과 관련된 등록 정보 값을 변경할 수 있는 경우를 제한하는 TUNABLE 특성을 포함합니다. 예를 들어, AT_CREATION 값은 자원을 만들고 나중에 변경할 수 없는 경우에만 클러스터 관리자가 해당 값을 지정할 수 있음을 의미합니다.

이러한 등록 정보의 대부분은 변경할 이유가 없는 한 Agent Builder에서 생성한 기본값을 사용할 수 있습니다. 다음은 이 등록 정보에 대한 정보입니다. 자세한 내용은 자원 등록 정보 또는 r_properties(5) 설명서 페이지를 참조하십시오.

Failover_mode

Start 또는 Stop 메소드가 실패할 경우 RGM에서 자원 그룹을 다시 배치하거나 노드를 중단할지를 나타냅니다.

Thorough_probe_interval, Retry_count Retry_interval

오류 모니터에서 사용합니다. TunableANYTIME과 동일하므로 오류 모니터가 최적의 상태로 작동하지 않을 경우 클러스터 관리자가 조정할 수 있습니다.

Network_resources_used

데이터 서비스에 사용된 논리 호스트 이름 또는 공유 주소 자원 목록입니다. Agent Builder는 클러스터 관리자가 데이터 서비스 구성 시 자원 목록(있는 경우)을 지정할 수 있도록 이 등록 정보를 선언합니다.

Scalable

FALSE로 설정하면 이 자원에서 클러스터 네트워킹(공유 주소) 기능을 사용하지 않음을 나타냅니다. 이 등록 정보를 FALSE로 설정한 경우 페일오버 서비스를 나타내려면 자원 유형 등록 정보 FailoverTRUE로 설정해야 합니다. 이 등록 정보를 사용하는 방법은 클러스터에 데이터 서비스 전송 콜백 메소드 구현을 참조하십시오.

Load_balancing_policyLoad_balancing_weights

자동으로 이 등록 정보를 선언하지만, 페일오버 자원 유형에서는 사용되지 않습니다.

Port_list

서버가 수신하는 포트 목록을 식별합니다. Agent Builder는 클러스터 관리자가 데이터 서비스 구성 시 포트 목록을 지정할 수 있도록 이 등록 정보를 선언합니다.

확장 등록 정보 선언

확장 등록 정보는 샘플 RTR 파일의 끝에 있습니다.

# Extension Properties
#

# The cluster administrator must set the value of this property to point to the 
# directory that contains the configuration files used by the application.
# For this application, smpl, specify the path of the configuration file on
# PXFS (typically named.conf).
{
        PROPERTY = Confdir_list;
        EXTENSION;
        STRINGARRAY;
        TUNABLE = AT_CREATION;
        DESCRIPTION = "The Configuration Directory Path(s)";
}

# The following two properties control restart of the fault monitor.
{
        PROPERTY = Monitor_retry_count;
        EXTENSION;
        INT;
        DEFAULT = 4;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Number of PMF restarts allowed for fault monitor.";
}
{
        PROPERTY = Monitor_retry_interval;
        EXTENSION;
        INT;
        DEFAULT = 2;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time window (minutes) for fault monitor restarts.";
}
# Time out value in seconds for the probe.
{
        PROPERTY = Probe_timeout;
        EXTENSION;
        INT;
        DEFAULT = 120;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time out value for the probe (seconds)";
}

# Child process monitoring level for PMF (-C option of pmfadm).
# Default of -1 means to not use the -C option of pmfadm.
# A value of 0 or greater indicates the desired level of child-process.
# monitoring.
{
        PROPERTY = Child_mon_level;
        EXTENSION;
        INT;
        DEFAULT = -1;
        TUNABLE = ANYTIME;
        DESCRIPTION = “Child monitoring level for PMF";
}
# User added code -- BEGIN VVVVVVVVVVVV
# User added code -- END   ^^^^^^^^^^^^

Agent Builder는 대부분의 데이터 서비스에 유용한 다음과 같은 확장 등록 정보를 만듭니다.

Confdir_list

많은 응용 프로그램에 유용한 정보인 응용 프로그램 구성 디렉토리에 대한 경로를 지정합니다. 클러스터 관리자는 데이터 서비스를 구성할 때 이 디렉토리의 위치를 지정할 수 있습니다.

Monitor_retry_count, Monitor_retry_interval Probe_timeout

서버 데몬이 아니라 오류 모니터 자체의 재시작을 제어합니다.

Child_mon_level

PMF에서 수행할 모니터링 수준을 설정합니다. 자세한 내용은 pmfadm(1M) 설명서 페이지를 참조하십시오.

User added code 주석으로 구분된 영역에 추가 확장 등록 정보를 만들 수 있습니다.