Section | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
노드속성
노드의 속성은 노드의 속성 뷰에서 파악할 노드 속성은 노드의 속성 뷰에서 확인할 수 있습니다.
MCCS 웹콘솔의 웹 콘솔의 노드 관리 뷰에서 노드 선택 후 오른쪽의 '속성값' 탭의 상세 정보를 볼수 볼 수 있습니다.
회색으로 표기된 값은 읽기 전용입니다. 이 값들은 그룹 상태를 나타내기 위한 정보입니다.
흰색으로 표기된 값은 사용자에 의해 정의된 , 수정가능한 수정 가능한 값입니다. 아래에 일부가 아래 표에 일부 속성에 대해 설명되어 있습니다.
[그림] 노드 속성 화면
속성 | 설명 | 타입 | 기본값 | 수정 | 비고 |
BootMode | MCCS 서비스가 설정된 BootMode로 시작했는지 여부를 나타냅니다. | BOOLEAN | X | ||
ExpirationDate | 라이선스 유료기간을 나타냅니다. | STRING | |||
HostID | HostID를 나타냅니다. | STRING | X | ||
IsolationTestAddressIsolationTestAddresses | Isolation을 테스트할 IP를 입력합니다. 신뢰할 수 있는 IP 주소를 입력합니다. 2개 이상을 입력할 때는 콤마(,)로 구분합니다. IP 주소를 입력하지 않으면 고립 환경을 구분할 수 없습니다. | IP ADDRESS | O | ||
LicenseType | 노드에 입력된 라이선스 타입을 나타냅니다. | STRING | X | ||
NodeName | 노드 이름을 나타냅니다. | NAME |
| X | |
NodeState | 노드 상태를 나타냅니다. | STRING |
| X | |
PrimaryHB | MCCS 설정된 Primary 핫빗 주소를 나타냅니다. | IP ADDRESS |
| X | |
PrimaryHBStatus | 설정된 Primary 핫빗 상태를 나타냅니다. | IP ADDRESS | X | ||
SecondaryHB | MCCS 설정된 Secondary 핫빗 주소를 나타냅니다. | IP ADDRESS |
| X | |
SecondaryHBStatus | 설정된 Secondary 핫빗 상태를 나타냅니다. | IP ADDRESS | X | ||
StandAlone | StandAlone 작동 여부를 나타냅니다. | BOOLEAN | false | X |
MCCS 동작 원리
MCCS는 핫빗 통신을 통해 노드들을 하나의 클러스터로 연결해서 구성합니다.
클러스터 동작은 노드 상태와 역할에 따라 결정되며, 노드 상태는 시스템뿐만 아니라 MCCS의 동작과 핫빗 통신 상태에 따라 결정됩니다.
다음은 클러스터 모드에서 가능한 노드 상태입니다.
클러스터 모드의 노드 상태
상태 | 설명 |
---|---|
EXITED(엔진 종료) | MCCS 엔진이 종료된 상태입니다. |
INITING(초기화) | 엔진이 시작되고 구성 정보 분석과 핫빗 통신이 이루어지기 전의 기본 노드 상태입니다. MCCS 엔진이 시작된 후 두 노드가 핫빗으로 통신을 하며 상호 상태를 수집하는 초기 상태입니다. 정상적인 경우는 이 상태에서 LOCAL_BUILD 또는 REMOTE_BUILD 상태로 변경되지만, 구성 또는 물리적 환경에 문제가 있는 경우는 INITING 상태에 머물거나 자동 종료되어 EXITED 상태가 됩니다. |
LOCAL_BUILD(로컬구성) | 클러스터의 모든 노드들이 INITING 상태일 때, 핫빗 설정에서 우선 순위가 가장 높은 노드가 LOCAL_BUILD 상태로 변경되며, 이 상태의 노드는 로컬 구성 파일 (%MCCS_HOME%\config\main.json)에서 구성 정보를 분석합니다. 클러스터의 노드 중에서 오직 한 노드만이 이 상태를 거쳐 RUNNING 상태가 되며, 다른 노드들은 이 노드로부터 데이터를 동기화하는 REMOTE_BUILD 상태를 거치게 됩니다. |
REMOTE_BUILD(원격구성) | INITING 상태의 노드가 핫빗 통신을 통해 RUNNING 상태인 노드를 발견하면, 자신을 REMOTE_BUILD 상태로 설정한 후, RUNNING 상태인 노드로부터 구성 정보를 동기화합니다. |
RUNNING(정상 | LOCAL_BUILD 또는 REMOTE_BUILD를 통해 구성 데이터베이스 설정을 완료한 상태이며, 이 상태에서 정의된 모든 리소스에 대한 에이전트와 그룹 관리자를 시작합니다. |
FAULTED(시스템장애) | RUNNING 상태에 있던 노드와의 모든 핫빗이 끊어졌을 때, RUNNING 상태의 노드를 FAULTED로 설정합니다. |
...
모든 핫빗 통신이 단절되면 상호간에 상태 정보를 교환할 수 있는 방법을 잃게 됩니다.
이 경우에 MCCS가 상대 노드를 장애로 판단할 것인지 아니면 단지 상호간의 네트워크 통신만 단절된 상태로 판단할 것인지에 따라 서비스 복구 여부가 결정됩니다.
분열(Split Brain)
핫빗 네트워크의 단절이 클러스터 속성에 정의되어 있는 일정 시간 간격 이상의 시간차로 발생할 경우는 노드 장애 보다는 핫빗 네트워크 전체에 대한 불안정을 의심할 수 있습니다.
따라서 핫빗에 의한 노드 상태를 신뢰할 수 없는 상황으로 판단하여, 시스템 장애로 감지 하지 감지하지 않고 현재 상태를 유지 합니다유지합니다.
핫빗 통신이 다시 정상적으로 이루어지면 클러스터내의 노드의 클러스터에 속한 노드의 MCCS 서비스를 재시작하고 RUNNING 재시작하고 RUNNING 상태로 복귀합니다.
그렇지 않으면 INITING 상태에서 핫빗 통신이 정상화될 때까지 대기하게 됩니다.
...
일정 시간 내에 모든 핫빗이 단절된 경우라도 상대 노드를 장애로 판단하기 전에 먼저 로컬 노드 자신이 모든 네트워크로부터 단절된 상황인지를 확인할 필요가 있습니다.
만일 게이트웨이 혹는 DNS 서버와 같이 공인된 네트워크 지점과의 통신이 가능한 상태라면 로컬 노드 자신은 단절된 상황은 아니며, 상대 노드가 장애 상태인 것으로 판단하여 상대 노드에서 운영중인 서비스의 복구를 시도할 수 있습니다.
그러나 그렇지 않은 경우에는 상대 노드가 로컬 노드의 상황을 고립으로 판단합니다.
상대 노드는 로컬 노드를 장애 상태로 결정하고, 로컬에서 운영중인 서비스에 대한 복구를 시도하기 때문에, 로컬 노드는 가능한 빨리 운영중인 서비스를 종료해야 합니다.
...
일정 시간 내에 모든 핫빗이 단절된 경우이며 자신이 고립상태가 아니라는 판정이 난 경우에 해당합니다.
로컬 노드가 서비스를 운영중인 경우에는 자신의 상태를 유지하며, 원격 노드에서 구성된 서비스 중에서 운영되지 않는(OFFLINE) 서비스를 기동(ONLINE)시킵니다.
노드이름을 변경하는 방법
- 웹콘솔에서 노드 관리 뷰에서 이름을 변경하고자 하는 노드를 선택후 마우스 우클릭 하여 노드이름변경 메뉴를 클릭합니다.
[그림] 노드 이름 변경 선택 화면 - 변경 창이 나타나면, 변경하고자 하는 노드 이름을 입력합니다.
[그림] 새로운 노드 이름 입력 화면 - 웹콘솔의 노드 관리 뷰에서 변경된 노드 이름을 확인할 수 있습니다.
CLI 사용(mcnode 명령)
노드에 관한 명령을 전달 합니다전달합니다. 노드에 대해 속성 조회, 속성 값 변경, 라이선스 입력, 서포트 파일 다운로드 명령을 내릴 수 있습니다.
Info |
---|
MCCS 는 설치시 최초 사용자 계정으로 id 가 'admin' 암호가 'password'인 계정을 생성합니다. |
Syntax
Code Block |
---|
mcnode [-u userid -pw password] [-n nodenameip node_ip_address] -command [-a attribute] [-l license] [-ppath download_path] |
Options Options
옵션 | 설명 |
-h | 도움말을 출력합니다. |
-u | 사용자 계정을 지정합니다. |
-pw | 사용자 Password를 지정합니다. |
-nip | 명령을 실행하기 위해 접근할 노드를 지정합니다IP를 지정합니다. |
-a | [modify] 명령일 경우 변경할 속성과 속성값을 속성 값을 지정합니다. |
-ppath | 서포트 파일 다운 받을 경로를 지정합니다. path 지정 생략시 경로 지정을 생략하면 user.home으로 home에 다운로드 됩니다. |
-l | 지정한 노드의 입력할 라이선스 값을 지정합니다. |
Example
modify
testNode-1의 노드 속성값을 1 노드의 속성 값을 수정합니다.
Code Block |
---|
mcnode -u admin -pw password -modify -n testNodeTestNode-1 -a IsolationTestAddressattribute attribute_value |
license
testNode-1 노드의 라이선스를 입력합니다.
Code Block |
---|
mcnode -u admin -pw password -license -n TestNode-1 [ -all ] license_value |
support
testNode-1 노드의 서포트 파일을 c:\에 다운로드 받습니다.
(-all 입력시 입력 시 노드 전체에 대하여 서포트파일을 생성 서포트 파일을 생성한 후 다운로드 합니다.)
Code Block |
---|
mcnode -u admin -pw password -supprotsupport [-n TestNode-1 ([ -all) ] -ppath c:\ |
list
노드의 속성 리스트를 보여줍니다.
(noname 입력시 NodeName 입력 시 입력한 해당 노드에 대한 속성 값만 출력출력합니다.)
Code Block |
---|
mcnode -u admin -pw password -list ([-n nodename)] |