Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
Column

 

Column
width350px
Panel

이 페이지의 주요 내용

Table of Contents
maxLevel4

클러스터란?

 

 

클러스터는 여러 그룹이 묶인 하나의 집합입니다.

클러스터는 MCCS 구성의 기본 단위이며 MCCS의 기본적인 설정값들을 관리하고 있습니다.

리소스 배타성과 공유성 – 그룹 모드(병렬/페일오버)

리소스 배타성이란 한쪽 노드에서만 실행되어야 하는 속성을 의미합니다.가령, 데이터베이스 서비스 그룹인 경우는 네트워크 카드, 네트워크 주소, 공유 디스크(혹은 미러 디스크), 데이터베이스와 같은 필수 리소스들로 구성됩니다.

이 중에서 데이터베이스 연결점을 제공하는 IP 주소와 데이터가 위치하는 디스크와 같은 리소스는 오직 하나의 노드에서만 배타적으로 운영할 수 있습니다.

반면에 네트워크 카드와 같은 리소스는 모든 노드에서 병렬로 운영 될 수 있습니다. 데이터베이스와 같은 애플리케이션은 의존하는 리소스(데이터) 상태에 따라 달라집니다.배타적인 리소스를 하나 이상 포함하는 그룹은 페일오버 모드로 설정되어야 합니다.

반면 병렬 모드 그룹은 병렬 운영 할 수 있는 리소스만으로 구성되어야 합니다.

시작/종료 순서

리소스는 그룹 내에서 상호간의 의존 관계에 따라 시작 또는 종료되는 과정이 정해진 순서를 갖습니다.예를 들면 데이터베이스 관련 애플리케이션은 네트워크 리소스(네트워크 카드, 네트워크 주소)와 데이터 리소스(공유 디스크 혹은 미러 디스크)가 정상적으로 시작된 이후에 시작되어야 합니다.

왜냐하면 네트워크 IP 주소와 데이터베이스가 저장된 디스크가 없는 상태에서는 데이터베이스 관련 애플리케이션이 정상으로 구동되지 않기 때문입니다. 네트워크 리소스와 데이터 리소스는 상호 의존 관계가 없으므로 독립적으로 시작될 수 있습니다.

이렇게 리소스를 각각의 의존 관계에 따라 구동 순서를 정해주면 MCCS에서는 이 순서에 따라 서비스를 시작하고 종료합니다.

리소스 그룹 상태

그룹 상태는 리소스들의 상태에 의해 결정됩니다. 그룹내의 모든 리소스가 온라인 상태라면 그룹은 온라인 상태가 되고, 모두 오프라인 상태라면 그룹도 오프라인 상태가 됩니다. 일부만 온라인이라면 일부 동작 상태가 되며, 하나 이상의 리소스가 장애 상태라면 그룹도 장애 상태가 됩니다.

그룹에 대한 제어는 상태에 따라 가능한 메뉴가 활성화 됩니다. 예를 들면 종료 명령은 그룹이 일부 동작 혹은 온라인 상태일 때만 활성화 되고, 장애 표시 제거 명령은 그룹이 장애 상태일 때만 활성화됩니다.

(상세한 내용은 "챕터 3.2 그룹 상태" 와 "챕터 3.3 그룹 제어" 편을 참조해 주십시오.)    

모니터링과 서비스 복구

그룹은 하나 이상의 리소스가 온라인 상태가 되면 서비스를 자동 복구할 수 있는 상태가 됩니다. 어떤 노드에서 온라인 상태였던 리소스에서 장애가 발생하면 그룹 상태는 장애 상태가 되고 복구 관련 설정에 따라 복구 과정이 이루어 집니다.

병렬 모드에서는 재시작 설정 옵션에 따라 복구할 수 있습니다.

페일오버 모드는 재시작 뿐만 아니라 대기 노드로 페일오버 할 수도 있습니다. 그룹이 장애 상태인 노드로는 페일오버 하지 않습니다. 그룹을 어떤 방법으로 복구할 것인지, 재시작 횟수, 페일오버 여부 등은 개별 속성값으로 지정할 수 있습니다.

 

그룹속성

...

클러스터속성

클러스터의 속성은 클러스터의 속성 뷰에서 파악할 수 있습니다.

MCCS 콘솔의 그룹 관리 뷰에서 그룹 클러스터 선택 후 오른쪽의 '그룹 클러스터 속성값' 탭의 상세 정보를 볼수 있습니다.

회색으로 표기된 값은 읽기 전용입니다. 이 값들은 그룹 상태를 나타내기 위한 정보입니다. 흰색으로 표기된 값은 사용자에 의해 정의된, 수정가능한 값입니다. 아래에 일부가 설명되어 있습니다.

[그림] 그룹 속성 화면

AutoDisabled(true/false)

처음 그룹을 생성하면 그 그룹은 AutoDisabled 상태입니다. 이것은 시작 혹은 수동 페일오버 같은 명령을 사용할 수 없는 상태를 말합니다. 이러한 속성 값이 존재하는 이유는 페일오버 전용 그룹이 병렬로 운영되는 것을 방지하기 위해서입니다.

페일오버 그룹이 한쪽 노드에서만 실행되기 위해서는 운영 대상의 모든 노드 상태가 파악되어야 합니다. 가령, B 노드에서 일부 리소스가 온라인 상태라면 A 노드에서 그룹을 온라인 시킬 수 없습니다. 왜냐하면 부분적으로 병렬 수행 상태가 되어 버리기 때문입니다.

따라서 운영 대상의 모든 노드에서 모든 리소스들의 상태가 파악 되어야만 어떤 노드에서 그룹을 온라인 시킬 수 있는 지 확실히 결정 지을 수 있습니다.

그룹내의 모든 리소스들의 상태가 확인되지 않을 경우에 그룹은 해당 노드에서 자동 비활성화 상태로 표시되며, 어떤 노드에서도 시작할 수 없습니다.

만일 리소스가 확실한 오프라인 상태라면 그룹 활성화 명령을 이용해 자동 비활성화 상태를 제거할 수 있습니다.

AutoRestart

AutoStart 옵션과 AutoRestart 옵션이 true로 설정되었을 때에 적용됩니다.

리소스 장애로 인하여 페일오버를 시도할 때에 Group.Failover 속성이 true로 설정됩니다.페일오버가 정상적으로 실행되거나 잠금 명령, 장애 제거 명령 등이 내려지면 Group.Failover 속성은 다시 false로 설정됩니다. 만일 대기 서버 상에서의 환경 문제로 페일오버가 실패한 경우, Group.Failover는 계속 true 상태로 남게 되며, 다음과 같은 특정 조건이 되면 페일오버를 다시 시도합니다.

  • 감지 전용 리소스 상태가 온라인이 될 때
  • 노드 상태가 정상 상태가 될 때

위의 이벤트가 발생할 때에 AutoRestart와 Failover 속성이 모두 true 상태이면 페일오버 명령이 전달됩니다.

AutoStart (true/false)

시스템 부팅 단계에서 새롭게 클러스터 연결을 시작할 때에 그룹을 자동으로 시작할 것인지를 결정합니다.

부팅 단계가 아니라 MCCS 서비스를 다시 시작하는 경우나, 한 노드만 재시작하여 이미 운영중인 MCCS에 연결하는 경우는 무시됩니다.

병렬 모드 그룹인 경우는 로컬 노드에서 오프라인 상태나 일부 온라인 상태면 자동으로 시작합니다.

페일오버 그룹은 타깃 노드에서 우선 순위가 가장 높은 노드부터 자동으로 시작합니다. 잠금이나 장애 상태인 그룹은 시작되지 않습니다.

리소스에 따른 그룹 자동 시작 옵션
필수 조건미러디스크 있을 경우미러 디스크 없을 경우
  1. AutoStart 가 true 로 설정되어 있어야 합니다.
  1. 양 노드가 모두 부트모드여야 합니다.
  2. 노드가 모두 클러스터에 합류되어야 합니다.
  3. 미러 디스크의 상태가 MIRRORING 이어야 합니다.
  4. 미러롤이 한 노드에서는 Source, 다른 노드에서는 Target 이어야 합니다.
  5. 미러롤이 Source 인 노드로 Online 시도합니다.
  1. 양 노드가 부팅 될 경우는 먼저 부팅한 노드로 자동 시작됩니다.
  2. 한 노드가 부팅 될 경우는 원격노드가 장애상태 일 경우만 자동 시작 됩니다.

Failover (true/false)

장애로 인한 페일오버가 진행 중인지를 나타냅니다.

true로 설정된 상태에서 다음과 같은 경우가 발생하면 false로 재설정됩니다.

  • 잠금 명령에 의해 Locked/TLocked 속성이 true로 설정되었을 때
  • 초기화 명령(Flush)이 전달되었을 때
  • 그룹이 온라인 상태가 되었을 때

AutoFaultClearTime(초)

A, B 두 노드로 구성되어 있는 클러스터 환경에서 A 노드에서 리소스 장애가 발생하면 B노드로 페일오버 하고 A 노드는 장애 상태가 됩니다. 리소스는 장애가 발생한 상태이기 때문에 'Image Removed' 아이콘으로 표시됩니다. 장애가 발생한 리소스가 모니터링 전용 리소스가 아닌 경우에는 노드 A 에  아이콘이 남아있게 됩니다. 장애 상황이 해결되어도 관리자에 의해 장애 표시가 제거되지 않는 한 'Image Removed' 아이콘은 계속 남아있게 됩니다. 아직 장애 상태가 해제 되지 않은 상태로 B 노드에서 장애가 발생한다면 A 노드가 아직 장애 상태이므로 더 이상 페일오버 하지 못하고 양쪽 모두 장애 상태로 남게 됩니다.

관리자의 조치 없이 장애 표시를 제거하고자 할 경우에는 AutoFaultClearTime에 0보다 큰 값을 설정합니다.

그룹이 온라인 된 후 이 시간이 경과하면 장애 표시를 자동으로 제거합니다. 이 시간은 서비스 환경에 대한 안정성이 보장될 만큼 충분히 긴 시간이어야 합니다.

만약 시간이 부족하면 처음에 장애가 발생한 후에 분석 및 복구가 되지 않은 상태에서 또 다시 페일 오버가 발생할 여지가 있으며, 이는 오히려 더욱 심각한 장애를 유발할 수 있습니다.

BatchAfterOnline, BatchBeforeOffline, BatchTimeout

그룹의 시작 전 혹은 종료 후에 관리자가 추가적인 명령을 내리고자 할 때에 사용합니다. 등록된 배치 혹은 스크립트 파일을 적절히 생성한 후에 파일의 경로를 등록합니다.

이 명령은 MCCS의 그룹 온라인/오프라인에 영향을 미치지 않습니다. 다시 말해 이 명령이 어떠한 이유로 실패했다 하더라도 그것을 장애로 인식하여 다음 절차를 진행하지 않습니다. 단지 로그상에 이 명령의 수행 결과를 남길 뿐입니다.

BatchTimeout에서는 이러한 배치 스크립트 실행 결과 값을 리턴 받는 동안의 timeout 시간 값을 지정할 수 있습니다.

TargetNodeList

클러스터를 구성할 때 등록된 노드 중에서 그룹 서비스를 실행할 노드들의 목록입니다.

자동 시작(AutoStart=true)이 설정된 경우에는 우선 순위가 높은 노드부터 시작합니다.

그룹상태

그룹 상태는 해당 리소스들의 상태에 따라 결정됩니다.

하지만 모니터링 전용 리소스들은 그룹 상태에 영향을 미치지 않습니다. 왜냐하면 모니터링 전용 리소스의 그룹을 어떤 노드에서 시작하든지 온라인 상태여야 하기 때문입니다.

그룹 상태는 기본적으로 다음과 같습니다.

Image Removed

[그림] 그룹 상태 화면

온라인

모든 리소스들이 온라인 되어 있는 상태입니다.

오프라인

모든 리소스들이 오프라인 되어 있는 상태입니다.

화면상에서는 회색 톤의 비활성화 된 아이콘으로 표시됩니다. 모니터링 전용 리소스는 활성화된 상태로 나타나지만 그룹의 오프라인 상태와는 무관합니다. (네트워크 어댑터 같은 경우)

일부 동작

일부 리소스들이 온라인 되어 있는 상태를 말하며 녹색으로 체크 표시 되어 나타납니다. 모니터링 전용 리소스는 상태 결정에서 제외되기 때문에 일부 동작 상태에 영향을 미치지 않습니다.

장애

그룹 내에서 한 개의 리소스라도 장애가 발생되었으면 그 그룹은 장애 상태로 간주되며 붉은 색으로 체크 표시되어 나타납니다. 그러나, 장애 상태는 현재 장애가 발생 중이라는 것을 의미하지는 않습니다. 장애가 발생했었다는 사실을 알려줄 뿐이며 관리자의 분석 및 처리를 기다리는 상태를 의미합니다. 관리자가 장애 상태를 직접 해제하거나 AutoFaultClearTime 같은 속성 값으로 인해 해제되지 않는 이상 장애 상태는 계속 남아 있습니다.

CLI 사용(mcgroup 명령)

 

그룹에 관한 명령을 전달합니다. 그룹에 대해 추가, 삭제, 온라인, 오프라인, 속성 편집 등의 명령을 내릴 수 있습니다. 그룹 속성에 대한 상세한 내용은 "챕터 3.1 그룹 속성" 편을 참조해 주십시오.

Syntax

 

mcgroup [-n node_ip_address] [-p port] -command [ group ] [-a attribute] [-r resource] [-n node]

 

Options

옵션설명

-h

도움말을 출력합니다.

-n

명령을 실행하기 위해 접근할 노드를 지정합니다. 생략 시 로컬 노드에 대해서 명령을 실행하기 위해 접근합니다.

-p

명령을 실행하기 위해 접근할 포트를 지정합니다. 생략 시 기본 포트로 접근하며, 핫빗 포트가 변경이 되면 명령 실행 시 포트를 지정해 주어야 합니다.

-groupcommand

그룹에 내릴 명령을 지정합니다.

(add, delete, online, offline, move, clear, flush, modify, list, lock, unlock, state, monitor)

group

작업의 대상이 되는 그룹을 지정합니다.

-a

[list] 명령일 경우 속성값을 나열할 속성을 지정합니다. [modify] 명령일 경우 변경할 속성과 속성값을 지정합니다. attribute : 그룹의 속성을 지정합니다. attribute_value : 변경할 속성 값을 지정합니다.

-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 test -a attribute value -n testNode

 

testNode의 testGroup 속성인 AutoStart를 true로 변경합니다.

 

mcgroup -modify testGroup -a AutoStart true -n testNode

 

list

그룹 상태를 출력합니다.

 

mcgroup -list [group [-all] | [-dep [-r resource]] | [-a attribute] [-n testNode]]

 

그룹의 모든 속성값을 출력합니다.

 

mcgroup [-n node] [-p port] -list [group [ -all]]

 

그룹에 속한 리소스의 의존성을 보여줍니다.

 

mcgroup [-n node] [-p port] -list [-dep [-r resource]]

 

그룹의 속성값을 확인합니다.

 

mcgroup [-n node] [-p port] -list [-a attribute] [-n testNode]]

 

lock

testGroup을 임시 잠금 상태로 합니다.

 

mcgroup -lock testGroup

 

testGroup을 영구 잠금 상태로 합니다.

 

mcgroup -lock testGroup -p

 

unlock

testGroup의 잠금 상태를 해제합니다.

 

mcgroup -unlock testGroup

 

state

test Node의 testGroup 상태를 출력합니다.

 

mcgroup -state testGroup [-n testNode]

 

monitor

testGroup 상태를 interval 간격으로 모니터링 합니다.

 

...

 

클러스터 속성값 

속성

타입

설명

기본값

수정

ClusterName

String

클러스터 이름입니다. 
최초의 핫빗을 구성할 때에 입력할 수 있습니다.

 

X

ConnectedUsers

String

연결한 사용자 ID와 IP를 나타냅니다.

 

X

GroupLimit

Integer

생성할 수 있는 최대 그룹 수입니다.

32

X

HBInterval

Integer

핫빗 수신 여부를 확인하는 주기입니다. 
이 시간의 10분의 1 간격으로 핫빗 데이터를 전송 합니다. 
(단위=ms)

1000

O

HBPort

Integer

핫빗 서버 포트를 나타냅니다.

4321

X

HBTimeout

Integer

핫빗 네트워크 ICMP 테스트 타임아웃 값을 입력합니다. 
핫빗 데이터 연결이 끊어지면 이 시간을 타임아웃으로 ICMP 테스트를 실시합니다. 
(단위=초)

3

O

IsolationTestTmeout

Integer

노드 고립(split)을 테스트할 때, ICMP 테스트 타임아웃을 설정합니다. 
(단위=초)

3

O

LogBackupCount

Integer

로그 파일 백업 수를 나타냅니다. 
(단위=개수)

3

O

LogFileSize

String

로그 파일의 최대 크기입니다. 
최소 64KB, 최대 10000Kb로 지정 가능합니다. 
로그 파일의 크기가 이 크기를 초과하면 로그 파일명 뒤에 숫자가 붙으며 백업됩니다. 
(단위=Kb)

1000

O

LogLevel

String

로그로 남기는 기준 레벨입니다. 
로그 레벨은 DEBUG, INFO, WARN, ERROR, FATAL 순으로 중요도가 심해지며 지정된 레벨 이상의 중요도를 갖는 로그만 파일에 기록 됩니다.

INFO

O

NodeFaultDetectionTime

Integer

노드 장애를 판단하는 시간입니다. 
최초 핫빗 단절 시간 이후에 모든 핫빗이 단절될 때까지의 경과 시간이 이 시간을 초과하면 SPLIT-BRAIN으로 간주되며, 초과하지 않으면 노드 장애로 판단합니다. 
(단위=초)

30

O

Password

String

admin 사용자의 패스워드입니다.

password

O

PingRetryTimeInteger

ping 테스트 실패를 판단하는 시간입니다. 핫빗 데이터 연결이 끊어지고 PingRetryTime 설정시간 동안 ping을 반복해서 시도합니다. 설정값을 초과할 때까지 ping이 안되면 실패로 판단합니다.

(단위=초)

0O

ResourceLimit

Integer

생성할 수 있는 최대 리소스 수입니다.

500

X

RMIConnectionTimeout

Integer

RMI 연결 시간 제한을 입력합니다. (단위=초)

2

O

SysLogLevel

String

운영체제 로그에 기록할 로그 레벨을 나타냅니다. 
이 레벨 이상의 중요도를 갖는 로그만 운영체제 이벤트 로그에 기록됩니다.

Error

O

SingleNodeClusterBoolean하나의 노드로 구성된 클러스터입니다.falseX

CLI 사용(mccluster 명령)

MCCS 클러스터의 속성값을 수정 할 때 사용합니다. CLI를 사용하여 사용자가 원하는 속성 값을 수정 할 수 있습니다.

 

Syntax

 

Code Block
mccluster [-c clusterName] [-a attributeName] attrVal

 

Options

 

옵션설명

-h

도움말을 출력합니다.

-c

명령을 실행하기 위해 접근할 클러스터를 지정합니다.

-a

수정하기 위한 속성값 이름을 지정합니다.

 

Example

 

modify

 

testCluster의 클러스터 속성을 수정합니다.

 

Code Block
mccluster -modify -c testCluster -a attribute value

 

list

 

클러스터 상태를 출력합니다.

 

Code Block
mccluster -list