Section | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
리소스
...
그룹(수정해야함)
그룹은 서비스 운영에 필요한 리소스들을 하나로 묶은 집합입니다.
리소스들을 그룹으로 묶는 이유는 서비스 특성에 있습니다.
별개로 분리되면 의미가 없는 리소스들(예를 들면 네트워크 카드와 IP 주소, 데이터 소스와 데이터베이스 등)은 각각의 단일 객체로는 의미 있는 서비스를 제공할 수 없습니다.
이러한 리소스들을 서로 의존 관계로 연결하고 하나의 그룹으로 구성해서 같은 노드로 실행되어야 의미 있는 서비스를 제공할 수 있습니다.
리소스 배타성과 공유성 – 그룹 모드(병렬/페일오버)
리소스 배타성이란 한쪽 노드에서만 실행되어야 하는 속성을 의미합니다.
가령, 데이터베이스 서비스 그룹인 경우는 네트워크 카드, 네트워크 주소, 공유 디스크(혹은 미러 디스크), 데이터베이스와 같은 필수 리소스들로 구성됩니다.
이 중에서 데이터베이스 연결점을 제공하는 IP 주소와 데이터가 위치하는 디스크와 같은 리소스는 오직 하나의 노드에서만 배타적으로 운영할 수 있습니다.
반면에 네트워크 카드와 같은 리소스는 모든 노드에서 병렬로 운영 될 수 있습니다. 데이터베이스와 같은 애플리케이션은 의존하는 리소스(데이터) 상태에 따라 달라집니다.배타적인 리소스를 하나 이상 포함하는 그룹은 페일오버 모드로 설정되어야 합니다.
반면 병렬 모드 그룹은 병렬 운영 할 수 있는 리소스만으로 구성되어야 합니다.
시작/종료 순서
리소스는 그룹 내에서 상호간의 의존 관계에 따라 시작 또는 종료되는 과정이 정해진 순서를 갖습니다.
예를 들면 데이터베이스 관련 애플리케이션은 네트워크 리소스(네트워크 카드, 네트워크 주소)와 데이터 리소스(공유 디스크 혹은 미러 디스크)가 정상적으로 시작된 시작 된 이후에 시작되어야 합니다.
왜냐하면 네트워크 IP 주소와 데이터베이스가 저장된 디스크가 없는 상태에서는 데이터베이스 관련 애플리케이션이 정상으로 구동되지 않기 때문입니다.
네트워크 리소스와 데이터 리소스는 상호 의존 관계가 없으므로 독립적으로 시작될 시작 될 수 있습니다.
이렇게 리소스를 각각의 의존 관계에 따라 구동 순서를 정해주면 MCCS에서는 이 순서에 따라 서비스를 시작하고 종료합니다.
리소스 그룹 상태
그룹 상태는 리소스들의 상태에 의해 결정됩니다.
...
예를 들면 종료 명령은 그룹이 일부 동작 혹은 온라인 상태일 때만 활성화 되고, 장애 표시 제거 명령은 그룹이 장애 상태일 때만 활성화됩니다.
(상세한 내용은 "챕터 4 4.1 그룹 제어" 편을 참조해 주십시오.)
모니터링과 서비스 복구
그룹은 하나 이상의 노드가 온라인 상태가 되면 서비스를 자동 복구할 수 있는 상태가 됩니다.
...
그룹이 장애 상태인 노드로는 페일오버 하지 않습니다. 그룹을 어떤 방법으로 복구할 것인지, 재시작 횟수, 페일오버 여부 등은 개별 속성값으로 지정할 수 있습니다.
리소스 그룹 속성
그룹의 속성은 그룹의 상태 뷰와 속성 뷰에서 파악할 수 있습니다.
...
회색으로 표기된 값은 읽기 전용입니다. 이 값들은 그룹 상태를 나타내기 위한 정보입니다.
흰색으로 표기된 값은 사용자에 의해 정의된정의 된, 수정가능한 값입니다.
[그림] 그룹 속성 화면
...
속성 | 설명 | 타입 | 기본값 | 수정 | 비고 |
---|---|---|---|---|---|
ActionState | 현재 진행중인 그룹의 액션 상태를 나타냅니다. | STRING | X |
| |
AutoDisabled | 자동비활성화 된 상태입니다. | BOOLEAN | false | X | |
AutoFailover | 그룹 내에 장애가 발생하였을 때 자동으로 페일오버 할 것인지를 결정합니다. | BOOLEAN | true | O | |
AutoFaultClearTIme | 장애 발생 후에 페일오버가 되고 이 시간 값만큼 정상 온라인을 유지하면 | INTEGER | 0초 | O | |
AutoRestart | 그룹이 감지 전용 리소스 장애로 시작되지 못한 경우에 그 리소스가 정상화 되거나 | BOOLEAN | false | O | |
AutoStart | 엔진이 시작되면 그룹을 자동으로 시작하는지를 알려줍니다. | BOOLEAN | true | O | |
BatchAfterOnline | 그룹을 온라인 한 후에 실행할 배치 파일을 설정합니다. | FILE | O | ||
BatchBeforeOffline | 그룹을 오프라인 하기 이전에 실행할 배치 파일을 설정합니다. | FILE | O | ||
BatchTimeout | 배치 파일의 실행 완료 제한 시간을 지정합니다. | INTEGER | 300초 | O | |
Enabled | 그룹 관리를 가능하게 합니다. | BOOLEAN | true | O | |
Failover | 장애로 인한 페일오버가 진행 중인지 나타냅니다. | BOOLEAN | false | X | |
GroupName | 등록한 그룹 이름을 나타냅니다. | NAME | X | ||
Locked | 영구잠금, 그룹을 잠금상태로 만들어 모든 동작과 명령을 제한한다. | BOOLEAN | false | X | |
MaxDependencyLevel | 그룹 내에서 리소스간의 의존 관계를 설정 할 수 있는 상하의 최대 단계를 지정합니다. | INTEGER | 20단계 | X | |
Monitored | 활성화 된 모든 리소스에 대한 감시가 완료되었는지 여부를 나타냅니다. | BOOLEAN | X | ||
OnlineCount | 그룹 내에서 온라인 상태의 리소스 개수입니다. | INTEGER | X | ||
Parallel | 그룹 병렬 속성입니다. | BOOLEAN | false | X | |
PreActive | 이전에 그룹이 실행되었던 노드 이름을 알려줍니다. | STRING | X | ||
State | 노드의 그룹 상태(온라인, 오프라인, 장애, 미확인 등)을 알려주는 속성입니다. | STRING | X | ||
TargetNodeList | 그룹의 운영 대상이 되는 노드 목록입니다. | STRING | X | ||
TLocked | '임시 잠금' 상태를 알려주는 속성입니다. | BOOLEAN | false | X |
*AutoStart (true/false)
시스템 부팅 단계에서 새롭게 클러스터 연결을 시작할 때에 그룹을 자동으로 시작할 것인지를 결정합니다.
...
필수 조건 | 미러디스크 있을 경우 | 미러 디스크 없을 경우 |
---|---|---|
|
|
|
*Failover (true/false)
장애로 인한 페일오버가 진행 중인지를 나타냅니다.
...
- 초기화 명령(Flush)이 전달되었을 때
- 그룹이 온라인 상태가 되었을 때
그룹상태
그룹 상태는 해당 리소스들의 상태에 따라 결정됩니다.
하지만 모니터링 전용 리소스들은 그룹 상태에 영향을 미치지 않습니다.
왜냐하면 모니터링 전용 리소스의 그룹을 어떤 노드에서 시작하든지 온라인 상태여야 하기 때문입니다.
그룹 상태는 기본적으로 다음과 같습니다.
[그림] 그룹 상태 화면
온라인
모든 리소스들이 온라인 되어 있는 상태입니다.
오프라인
모든 리소스들이 오프라인 되어 있는 상태입니다.
...
모니터링 전용 리소스는 활성화된 상태로 나타나지만 그룹의 오프라인 상태와는 무관합니다. (네트워크 어댑터 같은 경우)
일부 동작
일부 리소스들이 온라인 되어 있는 상태를 말하며 녹색으로 체크 표시 되어 나타납니다.
모니터링 전용 리소스는 상태 결정에서 제외되기 때문에 일부 동작 상태에 영향을 미치지 않습니다.
장애
그룹 내에서 한 개의 리소스라도 장애가 발생되었으면 그 그룹은 장애 상태로 간주되며 붉은 색으로 체크 표시되어 나타납니다.
...
관리자가 장애 상태를 직접 해제하거나 AutoFaultClearTime 같은 속성 값으로 인해 해제되지 않는 이상 장애 상태는 계속 남아 있습니다.
CLI 사용(mcgroup 명령)
그룹에 관한 명령을 전달합니다. 그룹에 대해 추가, 삭제, 온라인, 오프라인, 속성 편집 등의 명령을 내릴 수 있습니다.
Info |
---|
MCCS 는 설치시 최초 사용자 계정으로 id 가 'admin' 암호가 'password'인 계정을 생성합니다. |
Syntax
...
mcgroup [-u userid -pw password] [-ip node_ip_address] [-p port] -command [ group ] [-a attribute] [-r resource] [-n node] |
Options
옵션 | 설명 |
-h | 도움말을 출력합니다. |
-u | 사용자 ID를 지정합니다. |
-pw | 사용자 패스워드를 지정합니다. |
-ip | 명령을 실행하기 위해 접근할 IP를 지정합니다. 생략 시 로컬 노드에 대해서 명령을 실행하기 위해 접근합니다. |
-p | 명령을 실행하기 위해 접근할 포트를 지정합니다. 생략 시 기본 포트로 접근하며, 핫빗 포트가 변경이 되면 명령 실행 시 포트를 지정해 주어야 합니다. |
-groupcommand | 그룹에 내릴 명령을 지정합니다. |
group | 작업의 대상이 되는 그룹을 지정합니다. |
-a | [list] 명령일 경우 속성값을 나열할 속성을 지정합니다. |
-r | 작업 할 리소스를 지정합니다. |
-n | 작업 할 노드명을 지정합니다. |
-t | 시간주기를 지정합니다. |
-dep | 그룹이나 리소스의 의존성을 표시합니다. |
Example
add
그룹 testGroup을 생성합니다.
mcgroup -add testGroup |
delete
그룹 testGroup을 삭제합니다.
mcgroup -delete testGroup |
online
testNode에서 testGroup을 온라인 시킵니다.
mcgroup -online testGroup [-n testNode] |
offline
testNode에서 testGroup을 오프라인 시킵니다.
mcgroup -offline testGroup [-n testNode] |
move
testNode로 testGroup을 페일오버 시킵니다.
mcgroup -move testGroup [-n testNode] |
clear
testNode에서 testGroup의 장애 표시를 제거합니다.
mcgroup -clear testGroup [-n testNode] |
flush
testNode의 testGroup을 초기화 시킵니다.
mcgroup -flush testGroup -n testNode |
modify
testNode의 testGroup 속성을 수정합니다.
...
mcgroup -modify testGroup -a AutoStart true -n testNode |
list
그룹 상태를 출력합니다.
mcgroup -list [group [-all] | [-dep [-r resource]] | [-a attribute] [-n testNode]] |
...
mcgroup [-ip node_ipaddress] [-p port] -list [-a attribute] [-n testNode]] |
lock
testGroup을 임시 잠금 상태로 합니다.
...
mcgroup -lock testGroup -p |
unlock
testGroup의 잠금 상태를 해제합니다.
mcgroup -unlock testGroup |
state
test Node의 testGroup 상태를 출력합니다.
mcgroup -state testGroup [-n testNode] |
monitor
testGroup 상태를 interval 간격으로 모니터링 합니다.
...