CAFE

메뉴얼 페이지

[VxVM] vxclustadm

작성자LEE SOO IN|작성시간09.10.04|조회수1,302 목록 댓글 0

 

vxclustadm                                (6.0을 기준으로 작성한 내용입니다.)

 



구 분

     

NAME

 vxclustadm – 클러스터 시작, 정지, 재구성

SYNOPSIS

vxclustadm getpreference

vxclustadm nidmap

  vxclustadm [-v] nodestate

  vxclustadm -m vcs reinit

vxclustadm setmaster nodename

  vxclustadm setpreference value

vxclustadm -m vcs -t gab startnode

  vxclustadm stopnode

DESCRIPTION

vxclustadm 유틸리티는 클러스터에 있는 노드에서 클러스터 기능을 동작 및 비 동작하게 한다.

주의사항: 클러스터 모니터(Cluster monitor) 없이 VxVM의 클러스터 기능 사용은 지원하지 않는다. 클러스터 모니터가 없거나 또는 GAB이 클러스터 모니터로서 사용될 경우 클러스터 재구성 문제가 발생할 것이다. 이를 사용하기 전에 이 명령어의 기능을 전체적으로 이해하는 것을 보장한다.

KEYWORDS

abortnode(5.1SP1부터 지원하지 않은 듯)

노드에서 클러스터링 동작을 정지하고 공유 볼륨에 모든 완료하지 않은 I/O를 그만한다. 이 명령어는 비상 셧다운시에 사용한다.

getpreference

노드에 대한 선호하는 값(preference value)를 출력한다. CVM(Cluster Volume Manager)은 마스터 노드 장애처리(failover)의 경우에 마스터 역할(role)을 인계하기 위해 가장 적절한 후보를 정의하기 위해 선호하는 값을 사용한다. CVM은 디스크 연결과 같은 내부 기준을 기준으로 가중치를 할당한다. 또한, setpreference 키워드와 함께 사용자 정의 값을 설정할 수 있다. getpreference 명령어는 선호하는 사용자 정의 값을 출력하며, 선호하는 델타(delta)로서 CVM에 의해 계산되는 선호하는 것을 출력한다. 효과적인 선호하는 값은 전체이다.

nidmap

VxVM의 클러스터 지원 서브 시스템에서 노드 ID와 클러스터 모니터에서 노드 ID 사이에서 연결을 보여주는 테이블을 출력한다.

nodestate

클러스터에서 노드의 상태와 표준 출력에서 노드의 마지막 중단(포기)에 대한 이유를 출력한다. 유효한 상태는 다음과 같다.

cluster aborting: 노드는 클러스터에서 중단.

cluster member: 노드는 클러스터 멤버이다. 클러스터에서 모든 공유 볼륨은 접근 가능하다.

Joining: 노드는 클러스터에 결합하고 있는 중이다. 클러스터에서 초기화하지만 아직 결합을 완료한 것은 아니다. 노드는 vxclustadm startnode 키워드와 같이 실행한 후에 이 상태가 된다.

out of cluster:  노드가 클러스터에서 결합하지 않았다.

노드가 클러스터를 떠난 이유에 관한 더 상세한 정보는 Veritas Storage  Foundation Cluster File System Administrator’s Guide를 참조한다.

노드 ID, 마스터 ID, 가까운 ID(neighbor ID), 현재 상태 및 (적당하다면) 클러스터에서 떠나는 노드에 대한 이유를 출력하기 위해 –v 옵션을 디버깅 목적으로 사용할 수 있다.

reinit

reinit 키워드는 클러스터 정지 없이 동적으로 클러스터에서 노드 추가 또는 제거하는 것을 허용한다. 명령어는 클러스터 구성 파일을 다시 읽기 위해 vxclustadm 발생 원인이 되며, 클러스터의 멤버쉽에 모든 요청 변경을 구현한다. VCS 클러스터 모니터는 클러스터 구성 파일 /etc/VRTSvcs/conf/config/main.cf의 기존 사항을 포함하기 위해 -m vcs 옵션을 기술한다.

setmaster

setmaster 키워드는 지정된 노드로 CVM 마스터를 이전(이주, migrate)한다. 이주는 온라인 운영이다. CVM은 마스터를 변경하기 전에 마스터의 양호 상태를 내부적으로 확인하지 않는다. 시만텍은 클러스터가 VxVM 구성 변경 조정 또는 클러스터 재구성 운영을 하지 않을 때 마스터 변경할 것을 권장한다. 대부분의 경우, CVMVxVM 또는 클러스터에서 발생하는 모든 구성 변경을 검출할 경우, CVM은 마스터 변경에 대한 운영을 중단한다. 마스터 변경 운영 후에 클러스터 재구성을 시작하며, 다른 명령어들의 구성 변경 요청은 실패한다. 마스트 변경 운영 완료 후에 사용자는 명령어를 재시도 할 수 있다.

setpreference

노드에 대한 사용자 정의 선호 값을 설정한다. 노드에 선호하는 정수형 값을 할당할 수 있다. CVM은 높은 수준의 선호치를 갖는 노드들의 풀(pool)에서 마스터 노드를 선택한다.

사용자 가중치는 가중치 할당으로부터 CVM을 방지하지 않는다. CVM는 사용자 정의 값을 설정하지 않았을 경우 사용자 정의 값에서 또는 0부터 시작하여, 가중치를 증가 또는 감소시킨다. 선호 설정이 원하는 효과를 가지고 있는지 확인하기 위해, CVM이 생성하는 값의 효과를 고려해야 한다.

선호 설정에 관한 보다 상세한 정보는 Veritas Storage  Foundation Cluster File System Administrator’s Guide를 참조한다.

startnode

startnode 키워드는 클러스터 구성 파일에서 지원되는 정보를 사용하는 노드에서 클러스터 기능을 초기화 한다. 이것은 클러스터에서 가져오는 노드에서 문제가 되는 첫 번째 명령어이다.

클러스터 구성 파일의 기존 내용을 포함시키기 위해 클러스터 모니터에 –m 옵션을 인수로 기술한다.

vcs  클러스터는 VCS 환경에서 수행 중이다. 클러스터 구성 파일은 /etc/VRTSvcs/conf/config/main.cf 이다. 주의해야 할 것은 VCS 명령어를 사용하여 main.cf 파일을 편집해야 하며, 임의적으로 이 파일을 편집해서는 안된다.

startnode VxVM 커널에 클러스터 구성 파일 정보를 전달한다. 이 명령어의 응답에서, 커널과 VxVM 구성 데몬 vxconfigd는 시작을 수행한다.

메세징에 대해 사용하는 프로토콜(protocol)을 지정하기 위해 -t 옵션을 인수로 기술한다.

gab  클러스터 모니터로서 GAB을 사용하기 위해 추가하는 메세징에 대해 전송하는 에이전트로 GAB을 사용한다. GAB(또는 VCS외부 환경 또는 HP Serviceguard 환경)에서 외부적으로) 이외의 클러스터 모니터와 같인 전송하는 것으로 GAB 사용을 시도할 경우, 커널은 경고 메시지를 발생하며 UDP로 전송 에이전트를 변경한다.

클러스터가 VCS 환경에서 수행 중일 때, VxVM의 클러스터 기능은 메세징에 대해 전송 에이전트로서 GAB을 사용한다(SunCluster는 전송하는 에이전트로서 UDP를 사용한다)

stopnode

노드에서 클러스터 기능을 정지하고 모든 미해결 I/O 완료 및 모든 애플리케이션이 공유 볼륨 또는 디바이스를 닫는(close) 것에 대해 기다린다.

EXIT CODES

vxclustadm은 종료에 따른 값들을 리턴한다.

리턴 값

내 용

2

유효하지 않은 상태(invalid)

101

노드는 클러스터에 없다.

102

노드는 클러스터에 결합 중이거나 또는 재구성이 참여하고 있다.

103

노드는 클러스터 멤버

104

노드는 클러스터로부터 중지(abort)

FILES

클러스터 모니터 없이 운영 또는 VCS 환경에서 클러스터 모니터 외부의 것으로 GAB을 사용하는 클러스터에 대해, 메시지에 대한 전송 에이전트로서 UDP를 사용하며, 클러스터 구성 파일인 /etc/vx/cvmtab은 다음 필드를 포함한다.

clustrname  cluster_name

port  vxconfigd port_number

port  vxkmsgd  port_number

node  node_ID  name  name_on_local_net

timeout  timeout_value

. . .

vxconfigd vxkmsgd 데몬에 대한 권장한는 포트 번호는 4500 4501이다. 그러나 1024보다 큰 모든 가용 가능한 포트 번호들은 항상 수용 가능하다.

name_on_local_net은 노드의 IP 주소 또는 클러스터의 개별 네트워크에서 분리한 호스트 이름을 기술한다. timeout_value는 초 단위로 타임아웃 값을 입력한다. VxVM의 클러스터링 기능은 클러스터 재구성을 하는 동안에 이 값을 사용한다. 클러스터에서 노드의 번호 및 공유 디스크 그룹 구성의 크기에 따라 적절한 값을 사용한다. 대부분의 경우 200초의 값은 충분하지만 규모가 큰 구성에 대해서는 이 값을 늘려줄 필요가 있다.

파일 시작에서 라인의 주석처리는 #과 시작한다.

GAB이 메세징을 위해 전송 에이전트로서 사용될 경우 포트 번호 및 로컬 네트워크 이름과 관련 필드는 요청하지 않는다.

clustrname  cluster_name

node  node_ID  name

timeout  timeout_value

. . .

VCS 환경에서 수행 중인 클러스터를 위해, VxVM VCS 클러스터 구성 파일(/etc/VRTSvcs/conf /config/main.cf)에서 클러스터에 관한 정보를 획득한다. 클러스터 지정하는 정보는 기술하는 것은 vxcvmconfig 명령어의 실행함으로써 이 파일에 추가될 수 있다. 보다 상세한 정보에 대해서는 VERITAS Cluster File System Installation and Configuration Guide를 참조한다.

EXAMPLES

클러스터 모니터 없이 운영하는 node0, node1, node2, node3라는 이름을 가진 4노드로 구성 클러스터에서 UDP가 메시지에 대해 전송 에이전트로서 사용될 때 다음의 cvmtab을 가진다.

# ClusterName

     clustername CVM1

     # Daemon port numbers

     port  vxconfigd  4500

     port  vxkmsgd  4501

     # NodeID Nodename Localname

     node 0  node0  node0_p

     node 1  node1  node1_p

     node 2  node2  node2_p

     node 3  node3  node3_p

     # Timeout value

timeout  200

GAB이 메세징에 대해 전송 에이전트로서 사용될 경우, cvmtab 파일은 다음 정보를 포함해야 한다.

# ClusterName

clustername  CVM1

# NodeID Nodename

node 0  node0

node 1  node1

node 2  node2

node 3  node3

# Timeout value

timeout  200

node1은 클러스터에 결합하는 첫 번째 노드일 경우, 마스터 노드가 된다. 다음 명령어는 마스터 노드가 node1인 것을 확인한다.

# vxdctl –c mode

node3이 재구성을 완료하였을 경우에 정의하기 위해 node3에서 다음 명령어를 실행하여 리턴되는 값을 검사한다.

# vxclustadm  –v  nodestate

node3이 슬래이브 노드인 것을 확인하기 위해 node3에서 다음 명령어를 실행한다.

# vxdctl  –c  mode

node1이 클러스터에서 수명(lifetime)에 대해 마스터 노드로서 남아 있다. 클러스터에서 node1을 제거하기 위해 node1에서 다음 명령어를 실행한다.

# vxclustadm  stopnode

NOTES

vxclustadm은 클러스터 멥버쉽 정보의 일치성을 보장하지 않는다.

SEE ALSO

vxconfogd(1M), vxdctl(1M), vxintro(1M)

추가사항

vxclustadm -m vcs -t gab startnode 사용 예

현상: hastart”후 CVM join하는 과정에서 해당 리소스(cvm_clus)이 주어진 시간(300) online을 할 수 없어(timeout) CVM join이 실패하는 경우

상세 내역: CVM Join이 실패하는 원인은 여러 가지 있을 수 있다. 다음은 이들 여러 원인 중에 하나에 대해 확인 및 조치 사항에 대해 설명한다.

CVM join하는 과정에서 공유 디스크에 관한 내역을 업데이트 하는데, 각 노드가 CVM 멤버로서 운영할 수 있게 한다. 이를 통해 하나의 디바이스에 대해 CVM의 다른 서버들에 의해 동시에 접근(access)할 수 있다. 이때, 업데이트 하는 시간이 오래 걸래 CVM join이 실패할 수 있다. 업데이트 완료할 때까지 VCS의 해당 리소스는 무작정 기다리지 않으며 이에 대해 300초 동안 기다려 이 시간 동안 완료하지 못할 경우 실패로 정의한다. 실패는 최대 3번까지 인정되며 4번째 실패시 cvm_clus 리소스에 대해 fault로 정의한다.

이러한 경우 보통 디바이스 정보를 업데이트 하는 과정에서 오래 걸리는 사유가 대부분이다(vxdisk o alldgs list, vxconfigd 이슈 및 bug )

Ÿ Timeout 으로 인해 CVM join이 실패할 경우

다음 과정은 1노드 단위로서 수행해야 하며, 1노드에서 모든 과정을 완료한 후 다음 노드에 이어서 수행한다.

  1. GAB 멤버쉽 구성                                           à 확인:  # gabconfig -a

    -. Port b 구성:  # vxfenconfig c

    -. Port o 구성:  # /etc/rc2.d/S99odm start

    -. Port d 구성:  # vcsmmconfig U

  2. CVM에 대해서만 구성(VCS에서 timeout에 대해 무시)

    # /opt/VRTS/bin/vxclustadm  -m  vcs  -t gab  -T startnode

    VxVM vxclustadm INFO V-5-2-0 initialization completed

 -. GAB 포트 중에 u, v가 시작한다, uCVM Join하는 것에 대해 사용자 모드(user mode)에서 실행하는 것을 의미하며, 구성 과정을 완료하면 커널 모드(kernel mode)로 전환되어 포트 u는 사라지며, w 포트가 올라온다.

    # gabconfig a                             à a, b, o, d, v, w port 정상 확인

    # vxdctl –c mode                        à 마스터 서버가 아닐 경우 슬래이브(slave)로 출력

   3. 클러스터 서비스 시작

    # hastart

    # vxdctl c mode                       à CVM 마스터 서버, slave 확인(CVM join 여부 확인)

    # gabconfig a                             à 8GAB port a, b, o, d, f, v, w 정상적으로 join 여부

                                                                 확인(ODM을 사용하지 않을 경우 d는 출력하지 않음)

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼