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

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

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

Failover_mode, Thorough_probe_interval 및 메소드 시간 초과값 같은 자원 등록 정보에서도 자원의 정적 구성을 정의합니다. Resource_stateStatus 같은 동적 자원 등록 정보에서는 관리 자원의 활성 상태를 반영합니다. 표 A–2에서는 자원 등록 정보를 설명합니다.

데이터 서비스의 필수 구성 요소인 자원 유형 등록(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 파일에 선언할 수 없습니다.


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


property_name = value;

주 –

RGM에서는 등록 정보 이름의 대소문자를 구분하지 않습니다. Sun 제공 RTR 파일의 등록 정보에 대한 규칙에 따라 이름의 첫 번째 문자는 대문자이고 나머지 문자는 소문자여야 합니다(메소드 이름은 제외). 메소드 이름과 등록 정보 속성은 모두 대문자로 구성됩니다.


다음은 샘플(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를 사용하는 경우 자원 유형을 정의하는 회사의 주식 기호를 사용하십시오. 클러스터에서 자원 유형 이름은 고유해야 합니다.


주 –

일반적으로 자원 유형 이름(Resource_typeVendor_id)을 패키지 이름으로 사용합니다. 패키지 이름은 9자로 제한되기 때문에 RGM에서 제한하지 않더라도 이 두 가지 등록 정보의 총 문자 수를 9자 이하로 제한하는 것이 좋습니다. 한편 Agent Builder는 명시적으로 자원 유형 이름에서 패키지 이름을 생성하기 때문에 9자 제한을 적용합니다.


Rt_version

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

API_version

API의 버전을 식별합니다. 예를 들어, API_version = 2는 데이터 서비스가 Sun Cluster, 버전 3.0에서 실행됨을 나타냅니다.

Failover = TRUE

한 번에 여러 노드에서 온라인이 될 수 있는 자원 그룹에서 데이터 서비스를 실행할 수 없음을 나타냅니다. 즉, 페일오버 데이터 서비스를 지정합니다. 자세한 내용은 클러스터에 데이터 서비스 전송를 참조하십시오.

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 파일에 확장 등록 정보라는 새 자원 등록 정보를 정의할 수도 있습니다. 표 A–4에서는 자원 등록 정보를 변경 및 정의하기 위한 속성을 나열합니다. 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초입니다. 자원 등록 정보 속성의 전체 목록은 표 A–4를 참조하십시오.

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

{
        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 = AT_CREATION;
        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로 설정합니다. 이 설정은 페일오버 서비스를 표시하기 위해 TRUE로 설정된 자원 유형 Failover 등록 정보와 일치합니다. 이 등록 정보를 사용하는 방법은 클러스터에 데이터 서비스 전송콜백 메소드 구현를 참조하십시오.

Load_balancing_policy, Load_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)을 참조하십시오.

사용자 추가 코드 주석으로 분리한 영역에 추가 확장 등록 정보를 만들 수 있습니다.