[Redundancy] 01. 다중화(Redundancy)
카테고리: REDUNDANCY
태그: redundancy linux
01. 다중화(Redundancy)?
(위키백과의 내용참고) 다중화(redundancy)는 시스템의 일부에 어떠한 장애가 발생했을 경우에 대비하여, 장애 발생 다음에도 시스템 전체의 기능을 계속 유지하도록 예비 장치를 평상시부터 백업으로서 배치해 운용하는 일이다. 엄밀한 의미에서는 예비 1개를 두면 이중화, 예비 2개를 두면 삼중화이지만, 흔히 다중화를 이중화라고도 한다.
항상 실용 가동이 가능한 상태를 유지하여, 사용하고 있는 시스템에 장애가 생겼을 때에 순간으로 전환하는 것이 가능한 구조를 가진다. 장애에 의해서 시스템이 본래의 기능을 잃으면, 인명이나 재산이 없어지거나 기업활동이 큰 타격을 받는 경우에는, 다중화 설계가 필수가 되고 있다.
■ 다중화의 목적
| 목적 | 설명 |
|---|---|
| 고가용성 (High Availability) | 가용성은 서버, 네트워크 등의 다양한 정보 시스템이 정상적으로 사용 가능한 정도를 의미하고 시스템의 가동률과 비슷한 의미를 가지는데 즉, 고가용성은 서버, 네트워크 등의 정보 시스템이 오랜 기간 동안 지속적으로 장애 없이 정상 운영이 가능한 성질을 의미한다. |
| 장애극복(Failover) | 시스템에 장애 또는 재해가 발생했을 때 준비했던 대체 시스템으로 전환하여 중단 없는 서비스를 제공하는 것을 의미한다. |
| 부하분산 (Load Balancing) | 서버의 부하를 분산해주는 기술로 하나의 서비스를 하나 이상의 노드가 처리하는 방식으로 클라이언트 요청을 분산하여 처리한다. |
■ 다중화 구조
▶ Active-Active 구조
모든 노드나 서버가 활성화된 상태로 동시에 작동하는 구성으로, 로드밸런서의 알고리즘에 따라 활성화된 서버#1 또는 서버#2로 나누어 처리하도록 구성된 것을 의미한다. 이로 인해 시스템의 성능이 향상되며, 장애 발생 시 다른 노드가 해당 작업을 대신 처리하여 서비스 중단을 최소화한다.
▶ Active-Standby 구조
주 서버(Active)와 백업 서버(Standby)로 구성되며, 주 서버가 정상 작동하는 동안에는 백업 서버는 주 서버와 데이터를 동기화하면서 대기 상태로 운용하다가 주 서버에 장애가 발생하면 백업 서버가 자동으로 활성화되어 서비스를 대신 제공한다. 이후 주 서버가 복구되면 백업 서버는 다시 대기 상태로 돌아간다.
“Active-Standby” 방식에서는 백업 서버의 상태와 가용성에 따라 종류가 나뉜다.
| 목적 | 설명 |
|---|---|
| Hot Standby | “백업 서버가 작동 후, 즉시 사용 가능한 구성”으로 주 서버와 백업 서버 간의 데이터 동기화가 실시간으로 이루지며, 주 서버의 상태 변경이 즉시 백업 서버에 반영된다. 주 서버에 문제가 발생하면 백업 서버가 거의 즉시 활성화되어 서비스를 제공할 수 있다. 이로 인해 시스템의 중단 없는 전환을 보장한다. |
| Warm Standby | “백업 서버가 작동 후, 사용 가능하게 하기 위해서 준비가 필요한 구성”으로 주 서버와 백업 서버 간의 데이터 동기화가 빈도가 낮은 상태이다. 주 서버의 변경 사항이 주기적으로 백업 서버로 복제되지만, 실시간으로는 아니기 때문에 데이터의 일부 손실이 가능성 있다. 주 서버에 문제가 발생하면 백업 서버가 상대적으로 빠른 시간 내에 활성화되어 서비스를 제공할 수 있다. |
| Cold Standby | “평소 백업 장비를 정지, 주 서버가 다운된 시점에서 작동하는 구성”으로 주 서버와 백업 서버 간의 데이터 동기화가 거의 이루어지지 않는 상태이다. 백업 서버는 주 서버의 데이터나 설정을 가지고 있지만, 서비스를 위한 자원은 확보하지 않거나 장소 등 최소한으로만 확보하고 있다가 주 서버에 문제 발생시에 데이터를 근간으로 하여 필요한 자원을 조달하여 시스템의 복구를 개시한다. 이로 인해 주 서버에 문제가 발생하면 백업 서버를 활성화하는데 시간이 오래 걸리기 때문에 주로 가용성이 낮은 서비스나 비상 시나리오에 사용되며, 대응 시간이 길어도 되는 상황에 적합하다. |
▶ Master-Slave 구조
마스터 서버와 여러 개의 슬레이브 서버로 구성되며, 마스터 서버는 주로 읽기와 쓰기 작업을 수행하며, 슬레이브 서버는 마스터 서버의 데이터를 동기화 받으면서 주로 읽기 작업만 수행한다.
마스터 서버의 데이터 변경 작업은 슬레이브 서버로 복제되어 동기화되며, 마스터 서버에 문제가 발생하면 슬레이브 중 하나가 새로운 마스터로 승격된다. 이렇게 승격된 Slave는 기존의 마스터와 동일한 역할을 수행하며, 데이터의 일관성을 유지하면서 시스템이 복구된다.
■ 다중화의 데이터 정합성
다중화된 환경에서 데이터의 정합성(서로 값이 일치하는 상태)을 유지하기 위해서는 어떤 데이터가 올바른지 또는 가장 최신인지 관리하는 것이 중요하며, 이를 위해 다음과 같은 구성 방식을 고려할 수 있다.
▶ 공유 스토리지 방식
여러 대의 서버가 동일한 스토리지 시스템을 사용하여 데이터를 저장하고 공유하는 방식으로 중앙화된 스토리지를 통해 데이터 변경 사항을 관리함으로써 데이터 정합성을 유지하는 것이 용이하다. 이 구성 방식은 데이터의 중복을 피하며, 중앙에서 데이터 변경을 관리하여 데이터 일관성을 유지한다.
▶ 데이터 미러링(리플리케이션) 방식
스토리지 간의 통신을 통해 데이터 정합성을 확보하는 방식으로 주 서버에서 갱신된 데이터를 일정 주기로 다른 서버로 복제하여 데이터 일관성을 유지하며 다중화된 환경에서 데이터를 관리한다.
공유 스토리지 방식은 저장소는 다중화할 수 없기 때문에 만약 저장소에 결함이 생겨 부서진다면 데이터를 잃게 된다. 이를 방지하기 위한 대안이 데이터 미러링(리플리케이션) 방식으로, 이는 서버와 저장소 세트를 복수로 준비하여 데이터의 안정성을 높인다. 다만, 대용량 데이터를 다루는 서버에는 적합하지 않다.
댓글 남기기