1- 설치개요

MCCS(Mantech Continuous Cluster Server)는 ㈜맨텍서 개발한 기업 전산시스템 고가용성 솔루션입니다.
자연 재해나 시스템 장애와 같이 일반적으로 일어날 수 있는 장애 또는 테러, 강제 점거, 운용자의 실수 등
예기치 못한 상황에 의해 서비스가 중단되는 경우 등의 문제점을 해결하고 서비스의 지속을 위해 시스템의 가용성을 제공하는 고가용성 솔루션입니다.
현재 산업사회에서는 기업의 전반적인 업무가 컴퓨터에 의해서 제공되고 있으며 기업의 핵심 정보에 대해 24시간 365일 지속적인 서비스 제공을 필요로 합니다.
기업의 중요한 업무일수록 사용량이 많아지게 되므로 이로 인해 시스템의 다운타임이 발생될 가능성 또한 높아집니다.
고품질의 서비스를 중단 없이 항상 제공해야 하는 기업의 입장에서는 시스템 장애가 발생하면 기회비용의 막대한 손실이 발생하는 등 심각한 문제가 야기됩니다. 
MCCS는 이러한 문제점을 해결하고 기업 전산시스템의 지속적인 서비스를 위해서 고가용성 솔루션을 제공합니다. 

이 페이지의 주요 내용

MCCS 특징 및 장점

MCCS는 다음과 같은 특징 및 장점을 가지고 있습니다.

서비스 레벨의 장애 감지와 자동화된 페일오버 제공

MCCS는 하드웨어의 장애뿐만 아니라 서비스 제공에 필요한 자원들(예를 들면 네트워크 접속, 응용프로그램 구동, 플랫폼 상태, 디스크 접속 등)에 대해서 정상적인 상태인지를 항상 감시하고 관리합니다.
따라서 해당 자원들에 대해 장애 상태가 감지되어 정상적인 서비스 제공이 불가능한 경우에는 유연한 복구 정책에 따라 자동적으로 서비스를 재구동 시키거나 다른 가용 서버로 페일오버 시키게 됩니다.

로컬 디스크 복제(Mirroring) 및 공유(Shared) 디스크 환경 지원

MCCS는 로컬 디스크 복제 환경과 공유 디스크 환경 모두를 지원합니다. 그러므로 사용자에게 디스크 시스템 환경 구성에 보다 나은 유연성을 제공합니다.

페일오버 그룹(Failover Group) 구성 지원

한번에 한 노드에서만 실행될 수 있는 리소스를 포함한 그룹을 페일오버 그룹이라고 합니다.
페일오버 그룹은 중요 자원 장애시 대기 노드로 서비스가 전환됩니다. 이 그룹에 포함된 자원은 운영 노드에서만 동작합니다.
예를 들면 IP Address 의 경우 운영 노드와 대기 노드로 동시에 사용될 수 없습니다. 또한 IP Address가 장애인 경우 대기 노드로 서비스가 전환됩니다.

병렬 그룹(Parallel Group) 구성 지원

두 개 이상의 노드에서 동시에 실행될 수 있는 리소스로 구성된 그룹을 병렬 그룹이라고 합니다. 병렬 그룹은 페일오버 하지 않습니다.
일반적으로 클러스터로 구성된 응용프로그램을 포함한 리소스들은 운영 노드에서 실행(Online)중일 때는 대기 노드에서는 정지(Offline)된 상태로 있습니다.
그러나 병렬 그룹으로 구성하는 경우에는 지정한 응용프로그램을 양 쪽 노드에서 동시에 시작, 감시, 종료 등을 행할 수 있습니다. 
예를 들면 양 쪽 노드에서 백업 소프트웨어를 운영하고 있고 이를 클러스터에서 관리하는 리소스로서 등록하는 경우, 필요하다면 백업 소프트웨어를 양 쪽 노드에서 항상 동시에 실행하는 상태로 운영할 수 있습니다.
(단, 해당 프로그램이 복수의 노드에서 병렬로 실행될 수 있어야 합니다.)

다중 그룹(Multi-Group) 환경 구성 지원

그룹은 MCCS에서 장애 감시, 복구, 페일오버 등을 위해 관리하는 자원들(예를 들면 네트워크 카드, IP 주소, 디스크, 응용프로그램 등)을 의존성에 따라 묶어 놓은 집합체이며, 페일오버가 되는 리소스들의 집합 단위입니다. 
하나의 클러스터 안에는 여러 개의 그룹 구성이 가능합니다. 이 때문에 운영/대기(Active/Standby), 운영/운영(Active/Active) 구성이 가능합니다. (Active/Active는 각각의 서버에서 다른 서비스를 운영하는 것을 의미합니다.)
MCCS는 페일오버 그룹과 병렬 그룹을 동시에 지원합니다. 다중 그룹 환경에서 각각의 그룹은 독립적으로 운영됩니다.

하드웨어 호환성

MCCS는 특정 하드웨어의 제조사 또는 모델에 영향을 받지 않는 범용의 솔루션입니다.

원격 재해 복구 시스템 구성

MCCS는 시스템의 위치에 관계 없이 고가용성 구성을 행합니다.
따라서 대기 시스템을 원격지에 위치함으로써 추가 비용 없이 재해 복구 시스템을 쉽게 구성할 수 있습니다.

관리 웹 콘솔(Management Web Console) 제공

MCCS는 웹콘솔을 통하여 로컬 서버 혹은 원격 서버에서 MCCS를 제어 및 관리할 수 있습니다.
원격 서버에서는 TCP/IP와 포트 정보를 통해 MCCS가 구성된 서버로 연결할 수 있으며, 별도의 환경 파일을 구성할 필요가 없습니다. 
(기본 접속 url은 'http://ipaddress:10080/main' 입니다)

IPv6 네트워크 환경 구성 지원

MCCS IPv4 IPv6 네트워크 환경 구성을 모두 지원합니다.

따라서, 기존 사용하던 IPv4, IPv6 네트워크 환경 그대로 재해 복구 시스템을 구성할 수 있습니다.



MCCS 구성 형태

MCCS 구성은 데이터에 대한 디스크 구성 형태에 따라 다음과 같이 구분할 수 있습니다.

일반 응용 프로그램 환경

서비스에 필요한 데이터가 클러스터에 속한 시스템이 아닌 다른 시스템에 존재하는 경우입니다.
서비스가 관리해야 하는 데이터가 없으므로 디스크 리소스를 구성할 필요가 없습니다.
일반적으로 응용 프로그램만 존재하는 환경입니다.


[그림] 일반 응용 프로그램 환경

공유 디스크 환경

이중화가 구성되는 서버에 공유 디스크(SCSI 또는 SAN)가 연결되어 있습니다.
각 서버에서는 데이터를 공유할 수 있으며 공유 디스크는 MCCS 에 의해 관리됩니다.


[그림] 공유 디스크 환경

미러 디스크 환경

서버에 각각의 로컬 디스크가 존재하며 데이터는 상대 노드의 디스크로 실시간 복제 됩니다.
디스크 복제의 최소 단위는 파티션 단위입니다. (권장 사항 : 볼륨 단위)

[그림] 미러 디스크 환경



MCCS 구성 요소

MCCS 의 기본적인 구성 요소는 다음과 같습니다.

클러스터

클러스터는 상호 이중화를 목적으로 상태 정보를 교환하는 노드들의 집합을 의미합니다. 
MCCS는 2대의 시스템을 클러스터로 구성할 수 있습니다.
또한 서로의 통신을 위해 라인(핫빗 네트워크)을 별도로 연결해서 사용하고 TCP/IP를 이용하여 데이터를 전달합니다. 

노드

노드는 MCCS가 설치된 물리적 혹은 가상 시스템을 의미합니다. 
노드 이름은 물리적 혹은 가상 시스템의 호스트명과 반드시 동일할 필요는 없으며, 가상의 별칭으로 설정할 수 있습니다.
별칭과 실제 노드의 매핑은 노드에 등록된 핫빗 네트워크 주소에 의해 결정됩니다. 
노드 상태는 MCCS 엔진 상태와 연관이 있습니다.
MCCS가 운영 중일 때는 MCCS로부터 노드 상태 정보를 받고, 그 이외에는 ICMP 테스트에 의해 노드 상태를 결정합니다.

핫빗(Heartbeat)

노드들은 핫빗 네트워크를 통하여 하나의 클러스터로 구성됩니다. 
노드들이 핫빗을 통하여 동기화되면 노드들 사이에 서비스 운영과 대기 역할은 노드들의 상태와 노드의 리소스 상태에 따라 결정되고, 발생하는 이벤트에 의해 명령을 전달하고 실행합니다.

상태 정보 동기화

클러스터로 구성된 노드들의 리소스 및 리소스 그룹에 대한 상태와 속성 정보들을 교환합니다.

포트 구성

MCCS는 핫빗 통신을 할 때 4개의 포트를 사용합니다. 환경을 구성할 때 등록한 포트를 기준으로 4개의 연결된 TCP 포트(기본값은 14321~14324) 와 ICMP Echo Request 를 사용합니다.

노드 상태 확인

MCCS는 원격 노드의 장애를 결정할 때 핫빗 연결 상태를 참조합니다. 
원격 노드와의 모든 핫빗 연결이 단절되면 해당 노드를 장애로 결정합니다. 
따라서 핫빗 네트워크의 장애는 노드 장애로 결정될 수 있기 때문에 이중화할 필요가 있습니다.
노드 상태 확인에 대한 자세한 내용은 "MCCS  사용 매뉴얼의 4.노드에서 MCCS 동작 원리"를 참조해 주십시오.

노드간 명령 전달

리소스의 구성 변경 또는 리소스 및 그룹 제어와 같은 명령이 웹콘솔 또는 CLI를 통해 접수되면 MCCS는 핫빗을 통해 이 명령을 상대 노드로 전달합니다.

리소스

리소스는 MCCS에 의해서 관리되는 서비스 자원 (예를 들어 네트워크 카드, IP 주소, 디스크, 응용 프로그램 등)을 말합니다.
MCCS는 리소스들의 상태를 감시하거나 서비스를 제어할 수 있습니다. 
리소스는 동작 형태에 따라 네트워크 카드와 같은 감시 전용 리소스와 프로세스와 같은 시작/종료형 리소스가 있으며, 감시 전용 리소스는 상태 감지만 가능하며, 시작/종료 기능은 수행하지 않습니다.

리소스 그룹

서로 연관(의존) 관계에 있는 리소스들의 집합으로 페일오버가 이루어지는 기본 단위입니다.  
예를 들어 ORACLE 서비스에 대한 페일오버 구성을 하기 위해서는 ORACLE 클라이언트가 접속하는 IP 주소, IP 주소가 할당되는 네트워크 카드, 데이터가 저장될 디스크, ORACLE 리스너와 ORACLE 서버를 하나의 리소스 그룹으로 묶어야 합니다.
IP 주소는 네트워크 카드에 의존하며, ORACLE 리스너와 ORACLE 서버는 데이터가 존재하는 디스크에 의존하는 관계로 그룹을 구성해야 합니다. 
IP 주소의 경우, 네트워크 카드 없이는 등록이 불가능하며, ORACLE 관련 프로세스도 데이터가 저장된 디스크 없이는 구동이 불가능하기 때문입니다.
그룹은 서비스의 페일오버 여부에 따라 병렬형과 페일오버형으로 나뉘어집니다. 
병렬형과 페일오버형에 대한 설명은 "MCCS 사용 매뉴얼의  5.리소스 그룹"을 참조해 주십시오.

리소스 타입

MCCS에서 지원하는 리소스는 다음과 같이 분류됩니다.

네트워크카드

MCCS 는 TCP/IP  기반 네트워크 연결을 모니터 합니다.
일시적인 연결 장애나 네트워크 어댑터, 케이블의 네트워크에 장애를 감지합니다.

네트워크주소

MCCS 는 전환가능한 노드안의 네트워크 장치 위에서 가상 IP 주소와 서브넷 마스크를 구성하고 가상 IP 주소를 감시하며 노드의 실제 IP 주소와 같은 방식으로 동작합니다.
가상 IP 주소를 할당할 네트워크 카드의 실제 IP 주소는 정적이어야 합니다.

기본 응용

단일 실행 파일 형태의 프로세스를 등록할 때 사용하며, MCCS는 운영 체제의 프로세스 테이블에 등록된 프로세스 이름의 존재 여부를 체크해서 장애를 감지합니다.

복합 응용

기본 응용과 달리 여러 개의 프로세스로 이루어진 응용 프로그램 또는 톰캣과 같이 스크립트로 실행해야 하는 응용 프로그램 등을 등록할 때에 사용합니다.
단순히 실행 파일만을 감지하지 않고, 프로세스에 대한 시작/종료/감지 기능을 수행하는 스크립트 명령을 이용하여 사용자가 원하는 방법으로 정상적인 동작을 감시하고자 할 경우에도 복합 응용으로 등록하여 사용합니다.

공유 디스크

디스크 잠금(Lock) 기법이 적용된 MCCS의 외장 공유 디스크 제어 모듈은 항상 서비스가 운영중인(Active) 서버에 대해서만 공유 디스크의 접근을 허용합니다.

미러 디스크

외장 공유 디스크가 없는 구성 환경에서 사용하며, 별도의 복제 모듈을 이용하여 두 대의 시스템 간 로컬 디스크를 복제합니다.
MCCS는 DRBD 를 복제 기능 소프트웨어로 제공하고 있습니다.

서비스

서비스는 운영체제의 서비스 매니저에 등록된 프로세스 혹은 프로세스 그룹입니다.

오라클 데이터베이스

오라클 데이터베이스를 제어하는 리소스입니다.
시스템에 설치 된 오라클 데이터베이스를 인식하며, 서비스를 제어하고 상태를 감시합니다.

오라클 리스너

오라클 데이터베이스의 리스너(Listener) 프로세스를 제어하는 리소스입니다.

공유 디스크 DR

MCCS 양 노드간 공유되는 디스크를  원격지 서버로 복제, 재해 발생시 데이터를 안전하게 보존합니다. 
원격지 서버에는 MCCS가 설치되지 않습니다. 따라서 별도의 서비스 복구대책의  수립이 필요합니다. 

미러 디스크 DR

MCCS는 1:2 미러라인을 모니터 합니다. 양 노드간 미러링  하는 디스크를 원격지 서버로 복제, 재해 발생시 데이터를 안전하게 보존합니다. 
원격지 서버에는 MCCS가 설치되지 않습니다. 따라서 별도의 서비스 복구대책의  수립이 필요합니다. 

PPAS (Postgres Plus Advanced Server)

PPAS를 제어하는 리소스로, 시스템에 설치된 PPAS를 인식하며, 서비스를 제어하고 상태를 감시합니다.