Sun Cluster Geographic Edition 시스템 관리 설명서

14장 작업 전환 및 작업 인계 조치 사용자 정의

이 장에서는 보호 그룹의 역할이 2차에서 1차로 변경될 때 실행되는 스크립트를 작성하는 방법을 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

역할 변경 조치 스크립트 작성

보호 그룹 내의 클러스터가 secondary에서 primary 역할로 변경할 때 명령을 실행하도록 Sun Cluster Geographic Edition 소프트웨어를 구성할 수 있습니다. 이 변경은 작업 전환 또는 작업 인계 조작의 결과로서 발생할 수 있습니다.

이 조치 명령은 이벤트에 대한 정보를 제공하는 인수를 사용하여 2차에서 1차로 변경되는 역할이 있는 클러스터에서 실행됩니다. Sun Cluster Geographic Edition 소프트웨어가 자원 그룹을 온라인으로 만들기 전에 해당 스크립트가 실행됩니다. 다음 명령줄이 해당 스크립트를 실행합니다.


# custom-action-command-path -o primary -c cluster-name \ 
 -s partnership-name protection-group-name user-arguments
custom-action-command-path

사용자가 작성한 조치 명령에 대한 경로를 지정합니다.

-o primary

클러스터가 가정하는 역할이 primary임을 지정합니다.

-c cluster-name

1차 클러스터의 새 역할을 가정하고 있는 2차 클러스터의 이름을 지정합니다.

-s partnership-name

보호 그룹을 호스트하는 파트너쉽의 이름을 지정합니다.

protection-group-name

역할 변경을 진행하고 있는 보호 그룹의 이름을 지정합니다.

user-arguments

모든 Sun Cluster Geographic Edition 제공 옵션 후에 전달되는 정적 인수를 지정합니다.

이 자유 형식의 문자열은 필요할 때 스크립트에 의해 구문 분석할 수 있습니다. 예를 들어, key=value 쌍(예: name=sun.com,ip=10.1.2.3)의 목록을 지정할 수 있습니다. 또한 -n sun.com -a 10.1.2.3.4 같은 일련의 옵션을 지정할 수도 있습니다. 이들 인수의 형식은 Sun Cluster Geographic Edition 소프트웨어에 의해 제한되지 ?습니다.

역할 변경 조치 스크립트의 종료 상태는 geopg switchover 또는 geopg takeover 명령 결과의 일부로서 보고됩니다. 조치 스크립트가 성공적으로 실행된 경우 종료 상태는 0입니다. 0이 아닌 종료 상태는 오류나 실패를 표시합니다. 종료 상태의 값은 역할 변경 조치의 다른 측면에 영향을 주지 않습니다. 작업 전환 또는 작업 언계는 조치 스크립트의 종료 상태와 상관없이 보호 그룹의 응용 프로그램 자원 그룹을 온라인으로 만듭니다.

다른 작업을 계속 진행하기 전에 반환할 스크립트를 기다려야 합니다. 조치 스크립트를 작성할 경우 해당 스크립트를 실행하는 데 필요한 시간을 고려하십시오.


예 14–1 DNS 업데이트에 대한 작업 전환 조치 스크립트

이 예제는 nsupdate 명령을 사용하여 새 클러스터를 가리키도록 호스트 이름을 재구성하는 스크립트를 작성합니다. nsupdate 명령에 대한 자세한 정보는 nsupdate(1M) 매뉴얼 페이지를 참조하십시오.

이름 서비스는 companyX.com에 연결하려는 클라이언트를 보호 그룹에 대한 1차 클러스터 cluster-paris의 주소로 참조합니다. 1차 클러스터가 응답하지 못하면 관리자가 대체 클러스터 cluster-newyork으로의 보호 그룹 작업 전환을 수행합니다.


#!/bin/ksh
# script to update dns
# Assumes each cluster has an entry with name "lh-paris-1" in /etc/hosts
# but different value for the IP in each cluster
# for forward DNS (A) entry: will delete old entry for "lh-paris-1"
# and add one that is correct for "this cluster"
#
# For reverse (PTR) DNS entry, will just add one for this cluster. 
# Will NOT delete PTR record left over from old cluster. So
# eventually you will just have reverse lookup for the IP for both clusters
# doing reverse resolution to the same name (lh-paris-1.odyssey.com)
# This should be fine, as long as the forward resolution stays "correct"
#
# The blank line of input at the end of nsupdate is REQUIRED
#
# A short TTL is put on the new records (600 = 10 minutes)
# but you can't really control what kind of caching goes on on
# the client side


# get IP corresponding to name "lh-paris-1" on THIS Cluster
NEWIP=$(getent hosts lh-paris-1|cut -f1)

# this bit splits out the octets in order to add the reverse PTR entry
IFS=.
set $NEWIP
unset IFS

/usr/sbin/nsupdate <<ENDNSUPDATE
update delete ora-lh.odyssey.com A
update add ora-lh.odyssey.com 600 A $NEWIP
update add $4.$3.$2.$1.in-addr.arpa 600 PTR ora-lh.odyssey.com.

ENDNSUPDATE

작업 전환 또는 작업 인계 시에 스크립트를 실행하도록 보호 그룹 구성

스크립트를 작성한 후 작업 전환 또는 작업 인계가 발생할 때 해당 스크립트를 실행하도록 보호 그룹을 구성해야 합니다. 작업 전환 또는 작업 인계가 발생하는 경우 스크립트가 1차가 되는 클러스터에서 실행됩니다.

Procedure작업 전환 또는 작업 인계 시에 스크립트를 실행하도록 보호 그룹 구성 방법

단계
  1. 클러스터 노드 중 하나에 로그인합니다.

    이 절차를 완료하려면 Geo Management RBAC 권리 프로파일이 지정되어야 합니다. RBAC에 대한 자세한 정보는 Sun Cluster Geographic Edition 소프트웨어와 RBAC를 참조하십시오.

  2. 보호 그룹의 RoleChange_ActionCmdRoleChange_ActionArgs 등록 정보를 구성합니다.


    # geopg set-prop -p RoleChange_ActionCmd=fully-qualified-script -p RoleChange_ActionArgs=script-arguments
    
    -p property-setting

    보호 그룹의 등록 정보를 설정합니다.

    RoleChange_ActionCmd 등록 정보를 사용하여 명령에 대한 경로를 지정합니다. 이 경로는 보호 그룹을 호스트할 수 있는 모든 파트너 클러스터의 모든 노드에서 유효해야 합니다.

    RoleChange_ActionArgs 등록 정보를 사용하여 조치 명령이 실행될 때 명령줄에 첨부하려는 인수를 정의합니다.

    사용자가 설정할 수 있는 등록 정보에 대한 자세한 정보는 부록 A, 표준 Sun Cluster Geographic Edition 등록 정보를 참조하십시오.

    protection-group-name

    보호 그룹의 이름을 지정합니다.


예 14–2 클러스터 작업 전환 또는 작업 인계 시 명령을 실행하도록 보호 그룹 구성

다음 명령은 newDNS라는 사용자 정의 명령을 실행하도록 보호 그룹을 구성합니다.


# geopg set-prop -p RoleChange_ActionCmd=/usr/bin/newDNS \
-p RoleChange_ActionArgs=domain=companyx.com,ip=1.2.3.4 avspg