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

10장 일반 데이터 서비스

이 장은 일반 데이터 서비스(GDS)에 대한 정보를 제공하며 GDS를 사용하는 서비스를 작성하는 방법에 대해 설명합니다. SunPlex Agent Builder 또는 Sun Cluster 관리 명령을 사용하여 이 서비스를 만듭니다.

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

일반 데이터 서비스 개념

GDS는 간단한 네트워크 인식 및 네트워크 비인식 응용 프로그램을 Sun Cluster RGM(Resource Group Management) 프레임워크에 연결하여 가용성을 높이거나 확장 가능하게 만드는 기법입니다. 이 기법에서는 일반적인 방법으로 응용 프로그램의 가용성을 높이거나 확장 가능하게 만들 때처럼 데이터 서비스를 코딩할 필요가 없습니다.

GDS는 사전에 컴파일된 하나의 데이터 서비스입니다. 사전 컴파일된 데이터 서비스와 해당 구성 요소, 콜백 메소드(rt_callbacks) 구현 및 자원 유형 등록 파일(rt_reg)은 수정할 수 없습니다.

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

사전 컴파일된 자원 유형

일반 데이터 서비스 자원 유형 SUNW.gdsSUNWscgds 패키지에 포함되어 있습니다. scinstall 유틸리티는 클러스터 설치 중에 이 패키지를 설치합니다. scinstall(1M) 설명서 페이지를 참조하십시오. SUNWscgds 패키지에는 다음과 같은 파일이 포함되어 있습니다.


# pkgchk -v SUNWscgds

/opt/SUNWscgds
/opt/SUNWscgds/bin
/opt/SUNWscgds/bin/gds_monitor_check
/opt/SUNWscgds/bin/gds_monitor_start
/opt/SUNWscgds/bin/gds_monitor_stop
/opt/SUNWscgds/bin/gds_probe
/opt/SUNWscgds/bin/gds_svc_start
/opt/SUNWscgds/bin/gds_svc_stop
/opt/SUNWscgds/bin/gds_update
/opt/SUNWscgds/bin/gds_validate
/opt/SUNWscgds/etc
/opt/SUNWscgds/etc/SUNW.gds

GDS 사용의 장점 및 단점

GDS를 사용할 경우 Agent Builder 소스 코드(scdscreate(1HA) 설명서 페이지 참조) 또는 Sun Cluster 관리 명령을 사용할 때와 비교해서 다음과 같은 장점이 있습니다.

GDS를 사용하면 많은 장점이 있지만 다음과 같은 인스턴스에서는 이 기법을 사용하지 않는 것이 좋습니다.

GDS를 사용하는 서비스를 만드는 방법

다음 두 가지 방법으로 GDS를 사용하는 서비스를 만들 수 있습니다.

GDS 및 Agent Builder

Agent Builder를 사용하고 생성된 소스 코드의 유형으로 GDS를 선택합니다. 지정된 응용 프로그램을 위한 자원을 구성하는 스크립트 세트를 만드는 데는 사용자 입력이 사용됩니다.

GDS 및 Sun Cluster 관리 명령

이 방법은 SUNWscgds에 있는 사전 컴파일된 데이터 서비스 코드를 사용합니다. 그러나 클러스터 관리자는 Sun Cluster 관리 명령을 사용하여 자원을 만들고 구성해야 합니다. scrgadm(1M)scswitch(1M) 설명서 페이지를 참조하십시오.

GDS 기반 서비스 구성에 사용할 방법 선택

올바른 scrgadmscswitch 명령을 실행하려면 많은 입력이 필요합니다. 예를 들어, Sun Cluster 관리 명령을 사용하여 GDS를 사용하는 고가용성 서비스를 만드는 방법 Sun Cluster 관리 명령을 사용하여 GDS를 사용하는 확장 가능 서비스를 만드는 방법을 참조하십시오.

Agent Builder를 통해 GDS를 사용하면 scrgadmscswitch 명령을 대신 실행하는 스크립트가 생성되기 때문에 간단하게 처리할 수 있습니다.

GDS에서 이벤트를 기록하는 방법

GDS를 사용하면 GDS에서 GDS가 시작하는 스크립트로 전달되는 관련 정보를 기록할 수 있습니다. 이 정보에는 시작, 검사 및 중지 메소드의 상태와 등록 정보 변수가 포함됩니다. 이 정보를 사용하여 스크립트에서 문제 또는 오류를 진단하거나 다른 목적으로 적용할 수 있습니다.

Log_level 등록 정보에 설명된 Log_level 등록 정보를 사용하여 GDS에서 기록할 메시지의 수준 또는 유형을 지정합니다. NONE, INFO 또는 ERR을 지정할 수 있습니다.

GDS 로그 파일

다음 두 개의 GDS 로그 파일은 /var/cluster/logs/DS/resource-group-name/resource-name 디렉토리에 있습니다.

다음 예에서는 start_stop_log.txt에 포함된 정보의 유형을 보여줍니다.

10/20/2005 12:38:05 phys-node-1 START-INFO> Start succeeded. [/home/brianx/sc/start_cmd]
10/20/2005 12:42:11 phys-node-1 STOP-INFO> Successfully stopped the application

다음 예에서는 probe_log.txt에 포함된 정보의 유형을 보여줍니다.

10/20/2005 12:38:15 phys-node-1 PROBE-INFO> The GDS monitor (gds_probe) has been started
10/20/2005 12:39:15 phys-node-1 PROBE-INFO> The probe result is 0
10/20/2005 12:40:15 phys-node-1 PROBE-INFO> The probe result is 0
10/20/2005 12:41:15 phys-node-1 PROBE-INFO> The probe result is 0

필수 GDS 등록 정보

응용 프로그램이 네트워크 비인식 응용 프로그램인 경우 Start_command 확장 등록 정보와 Port_list 등록 정보를 모두 제공해야 합니다. 응용 프로그램이 네트워크 인식 응용 프로그램인 경우 Start_command 확장 등록 정보만 제공해야 합니다.

Start_command 확장 등록 정보

Start_command 확장 등록 정보에서 지정한 시작 명령이 응용 프로그램을 시작합니다. 이 명령은 쉘에 직접 전달되어 응용 프로그램을 시작할 수 있도록 인자가 지정된 UNIX 명령이어야 합니다.

Port_list 등록 정보

Port_list 등록 정보는 응용 프로그램이 수신하는 포트 목록을 식별합니다. Port_list 등록 정보는 Agent Builder에 의해 작성된 시작 스크립트에서 지정하거나 Sun Cluster 관리 명령을 사용하는 경우 scrgadm 명령으로 지정해야 합니다.

선택적 GDS 등록 정보

선택적 GDS 등록 정보는 시스템 정의 등록 정보확장 등록 정보를 모두 포함합니다. 시스템 정의 등록 정보는 Sun Cluster에서 제공하는 표준 등록 정보 세트입니다. RTR 파일에 정의된 등록 정보를 확장 등록 정보라고 합니다. 선택적 GDS 등록 정보는 다음과 같습니다.

Network_resources_used 등록 정보

이 등록 정보의 기본값은 null입니다. 응용 프로그램이 하나 이상의 주소에 바인드되어야 하는 경우에는 이 등록 정보를 지정해야 합니다. 이 등록 정보가 생략되거나 Null로 지정되면 응용 프로그램이 모든 주소에서 수신하는 것으로 처리됩니다.

GDS 자원을 구성하기 전에 LogicalHostname 또는 SharedAddress 자원이 이미 구성되어 있어야 합니다. LogicalHostname 또는 SharedAddress 자원을 구성하는 방법은 Sun Cluster Data Services Planning and Administration Guide for Solaris OS를 참조하십시오.

값을 지정하려면 자원 이름을 하나 이상 지정하십시오. 각 자원 이름은 한 개 이상의 LogicalHostname 자원이나 한 개 이상의 SharedAddress 자원을 포함할 수 있습니다. 자세한 내용은 r_properties(5) 설명서 페이지를 참조하십시오.

Stop_command 등록 정보

중지 명령은 응용 프로그램을 중지하고 응용 프로그램이 완전히 중지된 후에 반환되어야 합니다. 이 명령은 쉘에 직접 전달되어 응용 프로그램을 중지할 수 있는 전체 UNIX 명령이어야 합니다.

Stop_command 확장 등록 정보를 입력하면 GDS 중지 메소드는 중지 시간 초과값의 80% 상태에서 중지 명령을 시작합니다. 중지 명령의 시작 결과와 관계없이 GDS 중지 메소드는 중지 시간 초과값의 15% 상태에서 SIGKILL을 전송합니다. 남은 5%의 시간은 작업 관리 오버헤드를 위해 예약됩니다.

중지 명령을 생략하면 GDS가 Stop_signal에 지정된 신호를 사용하여 응용 프로그램을 중지합니다.

Probe_command 등록 정보

지정된 응용 프로그램의 상태를 검사 명령으로 정기적으로 검사합니다. 이 명령은 쉘에 직접 전달되어 응용 프로그램을 검사할 수 있도록 인자가 지정된 UNIX 명령이어야 합니다. 검사 명령을 실행하면 응용 프로그램이 올바로 실행 중인 경우 종료 상태 0을 반환합니다.

검사 명령의 종료 상태는 응용 프로그램의 오류 심각도를 확인하는 데 사용됩니다. 검사 상태라고 불리는 이 종료 상태는 0(성공)과 100(완전한 실패) 사이의 정수여야 합니다. 검사 상태는 특수 값 201일 수도 있습니다. 이 상태에서는 Failover_enabledFALSE로 설정되어 있지 않은 경우 응용 프로그램이 즉시 페일오버됩니다. GDS 검사 알고리즘은 검사 상태를 사용하여 응용 프로그램을 로컬로 재시작할 것인지 아니면 페일오버할 것인지를 결정합니다. 자세한 내용은 scds_fm_action(3HA) 설명서 페이지를 참조하십시오. 종료 상태가 201이면 응용 프로그램이 즉시 페일오버됩니다.

중지 명령을 생략하면 GDS가 간단한 자체 검사를 제공합니다. 이 검사는 Network_resources_used 등록 정보나 scds_get_netaddr_list() 함수 결과로부터 파생된 IP 주소 집합에서 응용 프로그램에 연결합니다. 자세한 내용은 scds_get_netaddr_list(3HA) 설명서 페이지를 참조하십시오. 연결에 성공하면 즉시 연결을 끊습니다. 연결과 연결 끊기가 모두 성공하면 응용 프로그램이 안정적으로 실행되고 있다고 판단할 수 있습니다.


주 –

GDS와 함께 제공되는 검사는 전체 기능을 제공하는 응용 프로그램 특정 검사의 간단한 대안으로만 사용됩니다.


Start_timeout 등록 정보

이 등록 정보는 시작 명령에 대한 시작 시간 초과를 지정합니다. 자세한 내용은 Start_command 확장 등록 정보를 참조하십시오. Start_timeout의 기본값은 300초입니다.

Stop_timeout 등록 정보

이 등록 정보는 중지 명령에 대한 중지 시간 초과를 지정합니다. 자세한 내용은 Stop_command 등록 정보를 참조하십시오. Stop_timeout의 기본값은 300초입니다.

Probe_timeout 등록 정보

이 등록 정보는 검사 명령에 대한 시간 초과 값을 지정합니다. 자세한 내용은 Probe_command 등록 정보를 참조하십시오. Probe_timeout의 기본값은 30초입니다.

Child_mon_level 등록 정보


주 –

Sun Cluster 관리 명령을 사용하는 경우 Child_mon_level 등록 정보를 사용할 수 있습니다. Agent Builder를 사용하는 경우에는 이 등록 정보를 사용할 수 없습니다.


이 등록 정보는 PMF(Process Monitor Facility)를 통해 모니터되는 프로세스를 제어합니다. 이 등록 정보는 분기된 자식 프로세스에 대한 모니터 범위를 나타냅니다. 이 등록 정보는 pmfadm 명령의 -C 인자처럼 작동합니다. pmfadm(1M) 설명서 페이지를 참조하십시오.

이 등록 정보를 생략하거나 기본값 -1로 설정하면 pmfadm 명령에서 -C 옵션을 생략한 것과 동일한 기능을 합니다. 즉, 모든 자식과 하위 프로세스가 모니터됩니다.

Failover_enabled 등록 정보

이 부울 확장 등록 정보는 자원의 페일오버 동작을 제어합니다. 이 확장 등록 정보를 TRUE로 설정하면 Retry_interval에 지정된 시간(초) 내에 재시작 횟수가 Retry_count를 초과할 경우 응용 프로그램이 페일오버됩니다.

이 등록 정보를 FALSE로 설정하면 Retry_interval 시간(초) 내에 재시작 횟수가 Retry_count를 초과해도 응용 프로그램이 재시작되거나 다른 노드로 페일오버되지 않습니다.

이 등록 정보를 사용하여 응용 프로그램 자원이 자원 그룹의 페일오버를 시작하는 것을 방지할 수 있습니다. 이 등록 정보의 기본값은 TRUE입니다.

Stop_signal 등록 정보

GDS는 이 정수 확장 등록 정보 값을 사용하여 PMF를 통해 응용 프로그램을 중지하는 데 사용된 신호를 확인합니다. 지정할 수 있는 정수 값 목록은 signal(3HEAD) 설명서 페이지를 참조하십시오. 기본값은 15(SIGTERM )입니다.

Log_level 등록 정보

이 등록 정보는 GDS가 기록하는 진단 메시지의 수준 또는 유형을 지정합니다. 이 등록 정보에 대해 NONE, INFO 또는 ERR을 지정할 수 있습니다. NONE을 지정하면 GDS가 진단 메시지를 기록하지 않습니다. INFO를 지정하면 정보 메시지만 기록됩니다. ERR을 지정하면 오류 메시지만 기록됩니다. 기본적으로 GDS는 진단 메시지를 기록하지 않습니다(NONE).

Agent Builder를 사용하여 GDS를 사용하는 서비스 만들기

Agent Builder를 사용하여 GDS를 사용하는 서비스를 만들 수 있습니다. Agent Builder에 대한 자세한 내용은 9 장, SunPlex Agent Builder를 참조하십시오.

GDS 기반 스크립트 만들기 및 구성

ProcedureAgent Builder를 시작하고 스크립트를 만드는 방법

단계
  1. 수퍼유저가 되거나 동등한 역할을 맡습니다.

  2. Agent Builder를 시작합니다.


    # /usr/cluster/bin/scdsbuilder
    
  3. Agent Builder Create 화면이 나타납니다.

    주 Agent Builder Create 화면을 표시하는 SunPlex Agent Builder라는 대화 상자
  4. Vendor Name을 입력합니다.

  5. Application Name을 입력합니다.


    주 –

    Solaris 9 운영 체제부터는 Vendor Name과 Application Name의 조합이 9자를 넘을 수 있습니다. 그러나 Solaris 운영 체제의 이전 버전을 사용 중이면 Vendor Name과 Application Name의 조합이 9자를 넘으면 안 됩니다. 이 조합은 패키지 이름으로 스크립트에 사용됩니다.


  6. 작업 디렉토리로 이동합니다.

    경로를 입력하는 대신 Browse 드롭다운 메뉴를 사용하여 디렉토리를 선택할 수 있습니다.

  7. 데이터 서비스가 확장 가능인지 아니면 페일오버인지 선택합니다.

    Network Aware는 GDS를 만들 때 기본값이기 때문에 선택하지 않아도 됩니다.

  8. GDS를 선택합니다.

  9. (옵션) RT Version을 표시된 기본값과 다르게 변경합니다.


    주 –

    RT 버전 필드에는 공백, 탭, 슬래시(/), 백슬래시(\), 별표( *), 물음표(?), 쉼표(,), 세미콜론(;), 여는 대괄호([) 또는 닫는 대괄호(]) 문자를 사용할 수 없습니다.


  10. 만들기를 누릅니다.

    Agent Builder가 스크립트를 만듭니다. Output Log 영역에 결과가 표시됩니다.

    정보를 입력한 후의 Create 화면을 표시하는 대화 상자

    Create 버튼이 비활성화됩니다. 스크립트를 구성할 수 있습니다.

  11. 다음을 누릅니다.

    Configure 화면이 나타납니다.

    Configure 화면을 표시하는 대화 상자

Procedure스크립트 구성 방법

스크립트를 만든 후 새 서비스를 구성해야 합니다.

단계
  1. 시작 명령의 위치를 입력하거나 Browse를 눌러 시작 명령을 찾습니다.

    등록 정보 변수를 지정할 수 있습니다. 등록 정보 변수에 대한 자세한 내용은 등록 정보 변수 사용을 참조하십시오.

  2. (옵션) 중지 명령의 위치를 입력하거나 Browse를 눌러 중지 명령을 찾습니다.

    등록 정보 변수를 지정할 수 있습니다. 등록 정보 변수에 대한 자세한 내용은 등록 정보 변수 사용을 참조하십시오.

  3. (옵션) 검사 명령의 위치를 입력하거나 Browse를 눌러 검사 명령을 찾습니다.

    등록 정보 변수를 지정할 수 있습니다. 등록 정보 변수에 대한 자세한 내용은 등록 정보 변수 사용을 참조하십시오.

  4. (옵션) 시작, 중지 및 검사 명령에 대한 시간 초과값을 지정합니다.

  5. Configure를 누릅니다.

    Agent Builder가 스크립트를 구성합니다.


    주 –

    Agent Builder는 공급업체 이름과 응용 프로그램 이름을 연결하여 패키지 이름을 만듭니다.


    스크립트의 패키지는 생성되어 다음 디렉토리에 저장됩니다:

    working-dir/vendor-name-application/pkg
    

    예를 들어, /export/wdir/NETapp/pkg와 같은 위치가 됩니다.

  6. 클러스터의 각 노드에서 수퍼유저가 되거나 이와 대등한 역할을 사용합니다.

  7. 완성된 패키지를 클러스터의 각 노드에 설치합니다.

    • 영역 환경에서 Solaris 10 OS를 사용하는 경우 전역 영역의 전역 관리자로 다음 명령을 입력합니다.


      # cd /export/wdir/NETapp/pkg
      # pkgadd -G -d . NETapp
      

      패키지 내용이 비전역 영역과 공유되는 전역 영역의 어떤 부분에도 영향을 주지 않을 경우 지정한 패키지가 전역 영역에 추가됩니다.

      pkgadd가 설치하는 파일은 다음과 같습니다.

      /opt/NETapp
      /opt/NETapp/README.app
      /opt/NETapp/man
      /opt/NETapp/man/man1m
      /opt/NETapp/man/man1m/removeapp.1m
      /opt/NETapp/man/man1m/startapp.1m
      /opt/NETapp/man/man1m/stopapp.1m
      /opt/NETapp/man/man1m/app_config.1m
      /opt/NETapp/util
      /opt/NETapp/util/removeapp
      /opt/NETapp/util/startapp
      /opt/NETapp/util/stopapp
      /opt/NETapp/util/app_config
    • Solaris OS의 다른 모든 버전이나 비영역 환경에서 Solaris 10 OS를 사용하는 경우 다음 명령을 입력합니다.


      # cd /export/wdir/NETapp/pkg
      # pkgadd -d . NETapp
      

      pkgadd가 설치하는 파일은 다음과 같습니다.

      /opt/NETapp
      /opt/NETapp/README.app
      /opt/NETapp/man
      /opt/NETapp/man/man1m
      /opt/NETapp/man/man1m/removeapp.1m
      /opt/NETapp/man/man1m/startapp.1m
      /opt/NETapp/man/man1m/stopapp.1m
      /opt/NETapp/man/man1m/app_config.1m
      /opt/NETapp/util
      /opt/NETapp/util/removeapp
      /opt/NETapp/util/startapp
      /opt/NETapp/util/stopapp
      /opt/NETapp/util/app_config

    주 –

    설명서 페이지와 스크립트 이름은 이전에 Create 화면에서 입력한 응용 프로그램 이름을 스크립트 이름 뒤에 추가한 것과 같습니다(예 startapp).


  8. 클러스터의 한 노드에서 자원을 구성하고 응용 프로그램을 시작합니다.


    # /opt/NETapp/util/startapp -h logicalhostname -p port-and-protocol-list
    

    startapp 스크립트의 인자는 자원의 유형에 따라 달라집니다. (failover 또는 scalable).


    주 –

    입력해야 하는 명령줄을 확인하려면 사용자 정의 설명서 페이지를 확인하거나 인자 없이 startapp 스크립트를 실행하여 사용 방법을 표시하십시오.

    설명서 페이지를 보려면 설명서 페이지에 대한 경로를 지정해야 합니다. 예를 들어, startapp(1M) 설명서 페이지를 보려면 다음을 입력합니다.


    # man -M /opt/NETapp/man startapp
    

    사용 방법을 표시하려면 다음을 입력합니다.


    # /opt/NETapp/util/startapp
     The resource name of LogicalHostname or SharedAddress must be
     specified. For failover services:
     Usage: startapp -h logicalhostname
              -p port-and-protocol-list
              [-n ipmpgroup-adapter-list]
     For scalable services:
     Usage: startapp -h shared-address-name
              -p port-and-protocol-list
              [-l load-balancing-policy]
              [-n ipmpgroup/adapter-list]
              [-w load-balancing-weights]

Agent Builder의 출력

Agent Builder는 패키지를 만들 때 제공한 입력을 기반으로 세 개의 스크립트와 하나의 구성 파일을 생성합니다. 구성 파일은 자원 그룹과 자원 유형의 이름을 지정합니다.

스크립트는 다음과 같습니다.

이 스크립트는 Agent Builder가 GDS 기반이 아닌 데이터 서비스를 위해 생성한 유틸리티 스크립트와 인터페이스 및 동작이 같습니다. 스크립트는 여러 클러스터에서 재사용할 수 있도록 Solaris 패키지로 보관됩니다.

일반적으로 scrgadm 명령에 대한 입력으로 지정되는 자원 그룹이나 기타 인자의 이름을 원하는 대로 지정하여 구성 파일을 사용자 정의할 수 있습니다. 스크립트를 사용자 정의하지 않으면 Agent Builder가 scrgadm 인자에 기본값을 제공합니다.

Sun Cluster 관리 명령을 사용하여 GDS를 사용하는 서비스 만들기

이 절에서는 GDS에 인자를 입력하는 방법을 설명합니다. 기존 Sun Cluster 관리 명령(예: scrgadmscswitch)을 사용하여 GDS를 유지 관리합니다.

스크립트에서 해당 기능을 제공하는 경우 이 절에 있는 저급 관리 명령을 사용할 필요가 없습니다. 그러나 GDS 기반 자원에 대한 세부적인 제어가 필요한 경우에는 저급 관리 명령을 사용할 수 있습니다. 이러한 명령은 스크립트에 의해 실행됩니다.

ProcedureSun Cluster 관리 명령을 사용하여 GDS를 사용하는 고가용성 서비스를 만드는 방법

단계
  1. 수퍼유저가 되거나 동등한 역할을 맡습니다.

  2. 자원 유형 SUNW.gds를 등록하십시오.


    # scrgadm -a -t SUNW.gds
    
  3. LogicalHostname 자원과 페일오버 서비스 자체를 포함하는 자원 그룹을 만듭니다.


    # scrgadm -a -g haapp_rg
    
  4. LogicalHostname 자원을 위한 자원을 만듭니다.


    # scrgadm -a -L -g haapp_rs -l hhead
    
  5. 페일오버 서비스 자체를 위한 자원을 만듭니다.


    # scrgadm -a -j haapp_rs -g haapp_rg -t SUNW.gds \
             -y Scalable=false -y Start_timeout=120 \
             -y Stop_timeout=120 -x Probe_timeout=120 \
             -y Port_list="2222/tcp" \
             -x Start_command="/export/ha/appctl/start" \
             -x Stop_command="/export/ha/appctl/stop" \    
             -x Probe_command="/export/app/bin/probe" \
             -x Child_mon_level=0 -y Network_resources_used=hhead \
             -x Failover_enabled=TRUE -x Stop_signal=9
    
  6. 자원 그룹 haapp_rg를 온라인 상태로 전환합니다.


    # scswitch -Z -g haapp_rg
    

ProcedureSun Cluster 관리 명령을 사용하여 GDS를 사용하는 확장 가능 서비스를 만드는 방법

단계
  1. 수퍼유저가 되거나 동등한 역할을 맡습니다.

  2. 자원 유형 SUNW.gds를 등록하십시오.


    # scrgadm -a -t SUNW.gds
    
  3. SharedAddress 자원을 위한 자원 그룹을 만듭니다.


    # scrgadm -a -g sa_rg
    
  4. sa_rgSharedAddress 자원을 만듭니다.


    # scrgadm -a -S -g sa_rg -l hhead
    
  5. 확장 가능 서비스를 위한 자원 그룹을 만듭니다.


    # scrgadm -a -g app_rg -y Maximum_primaries=2 \
          -y Desired_primaries=2 -y RG_dependencies=sa_rg
    
  6. 확장 가능한 서비스를 위한 자원을 만듭니다.


    # scrgadm -a -j app_rs -g app_rg -t SUNW.gds \
           -y Scalable=TRUE -y Start_timeout=120 \ 
           -y Stop_timeout=120 -x Probe_timeout=120 \
           -y Port_list="2222/tcp" \
           -x Start_command="/export/app/bin/start" \
           -x Stop_command="/export/app/bin/stop" \
           -x Probe_command="/export/app/bin/probe" \
           -x Child_mon_level=0 -y Network_resource_used=hhead \
           -x Failover_enabled=TRUE -x Stop_signal=9
    
  7. 네트워크 자원이 포함된 자원 그룹을 온라인 상태로 전환합니다.


     # scswitch -Z -g sa_rg
    
  8. 자원 그룹 app_rg를 온라인 상태로 전환합니다.


    # scswitch -Z -g app_rg
    

Agent Builder에 대한 명령줄 인터페이스

Agent Builder는 GUI와 동일한 기능을 제공하는 명령줄 인터페이스를 통합합니다. 이 인터페이스는 scdscreatescdsconfig 명령으로 구성됩니다. scdscreate(1HA)scdsconfig(1HA) 설명서 페이지를 참조하십시오.

ProcedureAgent Builder의 명령줄 버전을 사용하여 GDS를 사용하는 서비스를 만드는 방법

이 절에서는 명령줄 인터페이스를 사용하여 Agent Builder를 사용하여 GDS를 사용하는 서비스 만들기에 표시된 것과 동일한 단계를 수행하는 방법을 설명합니다.

단계
  1. 수퍼유저가 되거나 동등한 역할을 맡습니다.

  2. 서비스를 만듭니다.

    • 페일오버 서비스의 경우에는 다음을 입력합니다.


      # scdscreate -g -V NET -T app -d/export/wdir
      
    • 확장 가능 서비스의 경우에는 다음을 입력합니다.


      # scdscreate -g -s -V NET -T app -d/export/wdir
      

    주 –

    -d 인자는 선택 사항입니다. 이 인자를 지정하지 않으면 현재 디렉토리가 작업 디렉토리가 됩니다.


  3. 서비스를 구성합니다.


    # scdsconfig -s "/export/app/bin/start" -t "/export/app/bin/stop" \
    -m "/export/app/bin/probe" -d /export/wdir
    

    등록 정보 변수를 지정할 수 있습니다. 등록 정보 변수에 대한 자세한 내용은 등록 정보 변수 사용을 참조하십시오.


    주 –

    start 명령만 필수입니다. 다른 옵션과 인자는 모두 선택 사항입니다.


  4. 완성된 패키지를 클러스터의 각 노드에 설치합니다.

    • 영역 환경에서 Solaris 10 OS를 사용하는 경우 전역 영역의 전역 관리자로 다음 명령을 입력합니다.


      # cd /export/wdir/NETapp/pkg
      # pkgadd -G -d . NETapp
      

      패키지 내용이 비전역 영역과 공유되는 전역 영역의 어떤 부분에도 영향을 주지 않을 경우 지정한 패키지가 전역 영역에 추가됩니다.

      pkgadd가 설치하는 파일은 다음과 같습니다.

      /opt/NETapp
      /opt/NETapp/README.app
      /opt/NETapp/man
      /opt/NETapp/man/man1m
      /opt/NETapp/man/man1m/removeapp.1m
      /opt/NETapp/man/man1m/startapp.1m
      /opt/NETapp/man/man1m/stopapp.1m
      /opt/NETapp/man/man1m/app_config.1m
      /opt/NETapp/util
      /opt/NETapp/util/removeapp
      /opt/NETapp/util/startapp
      /opt/NETapp/util/stopapp
      /opt/NETapp/util/app_config
    • Solaris OS의 다른 모든 버전이나 비영역 환경에서 Solaris 10 OS를 사용하는 경우 다음 명령을 입력합니다.


      # cd /export/wdir/NETapp/pkg
      # pkgadd -d . NETapp
      

      pkgadd가 설치하는 파일은 다음과 같습니다.

      /opt/NETapp
      /opt/NETapp/README.app
      /opt/NETapp/man
      /opt/NETapp/man/man1m
      /opt/NETapp/man/man1m/removeapp.1m
      /opt/NETapp/man/man1m/startapp.1m
      /opt/NETapp/man/man1m/stopapp.1m
      /opt/NETapp/man/man1m/app_config.1m
      /opt/NETapp/util
      /opt/NETapp/util/removeapp
      /opt/NETapp/util/startapp
      /opt/NETapp/util/stopapp
      /opt/NETapp/util/app_config

    주 –

    설명서 페이지와 스크립트 이름은 이전에 Create 화면에서 입력한 응용 프로그램 이름을 스크립트 이름 뒤에 추가한 것과 같습니다(예 startapp).


  5. 클러스터의 한 노드에서 자원을 구성하고 응용 프로그램을 시작합니다.


    # /opt/NETapp/util/startapp -h logicalhostname -p port-and-protocol-list
    

    startapp 스크립트의 인자는 자원 유형에 따라 달라집니다. (failover 또는 scalable).


    주 –

    입력해야 하는 명령줄을 확인하려면 사용자 정의 설명서 페이지를 확인하거나 인자 없이 startapp 스크립트를 실행하여 사용 방법을 표시하십시오.

    설명서 페이지를 보려면 설명서 페이지에 대한 경로를 지정해야 합니다. 예를 들어, startapp(1M) 설명서 페이지를 보려면 다음을 입력합니다.


    # man -M /opt/NETapp/man startapp
    

    사용 방법을 표시하려면 다음을 입력합니다.


    # /opt/NETapp/util/startapp
     The resource name of LogicalHostname or SharedAddress must be specified.
     For failover services:
     Usage: startapp -h logicalhostname
              -p port-and-protocol-list
              [-n ipmpgroup/adapter-list]
     For scalable services:
     Usage: startapp -h shared-address-name
              -p port-and-protocol-list
              [-l load-balancing-policy]
              [-n ipmpgroup/adapter-list]
              [-w load-balancing-weights]