00 개요
- 어느 서비스 프로그램의 아키텍처 구성을 설계 시 사용될 수 있는 failover이라는 기술에 대한 정리
01 failover 이란
- Failover: 시스템 가용성을 위한 필수 기술
1. 정의
- Failover는 주 시스템이 장애를 일으켰을 때, 백업 시스템으로 자동으로 전환하여 서비스의 연속성을 유지하는 기술
- 중요한 시스템이 예상치 못한 문제로 인해 중단되지 않도록 보장하는 방법
- 컴퓨터 시스템, 네트워크, 또는 데이터베이스 등에서 주로 사용되는 고가용성(High Availability) 기술 중 하나
2. 동작 원리
- 주 시스템(Primary System): 평소에는 모든 작업을 처리하는 주요 시스템
- 백업/예비 시스템(Backup/Standby System): 주 시스템에 장애 발생 시 즉시 활성화됨. 주 시스템의 데이터를 미리 복제해 두고, 장애 발생 시 이 데이터를 사용하여 신속하게 서비스를 이어감
- 자동 전환 (Automatic Switching): 주 시스템에 장애가 발생하면, Failover 시스템이 이를 감지하고 백업 시스템으로 전환. 이 과정은 자동으로 이루어지며, 사용자에게는 거의 눈에 띄지 않음 (수동으로도 할 수 있음)
- 데이터 일관성 및 무결성: Failover 시스템에서는 데이터의 일관성과 무결성을 유지하는 것이 매우 중요. 주 시스템과 백업/예비 시스템 간의 데이터 동기화는 필수적이며, 장애 발생 시 데이터 손실을 최소화하는 전략 필요
3. 유형
1) 수동 Failover (Manual Failover)
- 시스템 관리자에 의해 수동으로 백업 시스템으로 전환되는 것
- 일반적으로 복잡한 환경에서 사용됨
2) 자동 Failover (Automatic Failover)
- 주 시스템의 장애를 자동으로 감지하고 즉시 백업 시스템으로 전환하는 것
- 자동화된 시스템에서는 전환이 빠르게 이루어짐
4. 구성 요소
- 데이터 동기화(Data Synchronization)
- 주 시스템과 백업 시스템 간의 데이터 동기화는 필수적
- 장애 발생 시 최신 데이터를 사용할 수 있도록 정기적으로 동기화함
- 헬스 체크(Health Check)
- 시스템의 상태를 지속적으로 모니터링하여 장애 여부를 판단
- 이는 Failover 시스템이 빠르게 반응할 수 있도록 도움
- 클러스터링(Clustering)
- 여러 대의 서버를 클러스터로 구성하여, 하나의 서버에 장애가 발생해도 다른 서버가 이를 대체할 수 있게 함
5. 필요성
- Failover는 시스템 고가용성과 데이터 무결성을 유지하기 위한 필수 기술
- 시스템 장애 시 백업 시스템으로 자동 전환하여 서비스의 지속성을 보장 (서비스 중단 최소화)하는 Failover 시스템을 구현하는 것은 안정적인 IT 환경을 구축하는 데 있어 매우 중요
- 이를 통해 비즈니스 연속성을 확보하고, 사용자의 신뢰를 유지
1) 고가용성 (high availability)
- 중요한 비즈니스 애플리케이션이나 데이터베이스의 가용성을 유지하기 위해 필수적
- 장애 발생 시에도 서비스를 중단 없이 제공 가능
- 고가용성이란:
- 고가용성은 IT 시스템이 다운타임을 제거하거나 최소화하여 거의 100% 상시 액세스 가능하고 신뢰성을 유지하는 능력
- 고가용성은 두 가지 개념을 결합하여 IT 시스템이 운영 성능 수준을 충족하는지를 결정
- 즉, 특정 서비스 또는 서버가 다운타임 없이 거의 100% 상시 액세스 가능(또는 사용 가능)한지, 그리고 서비스나 서버가 설정된 기간 동안 합리적인 기대치에 부합하는 성능을 제공하는지 여부를 결정
- 고가용성은 가동 시간 서비스 수준 계약(SLA) 또는 서비스 제공업체와 고객 간에 설정된 기대치를 충족하는 것에 그치지 않으며 실제로 복원력을 갖추고 신뢰할 수 있으며 제대로 작동하는 시스템을 의미
2) 비즈니스 연속성 (business continuity)
- 비즈니스 운영에 필수적인 서비스의 지속성 보장
- 이는 특히 금융, 의료, 통신 등 서비스 중단이 큰 영향을 미치는 산업에서 중요
3) 데이터 보호 및 무결성
- 장애 시에도 데이터가 손실되지 않도록 보호 데이터의 일관성을 유지하는 데 중요한 역할
6. 사용 예시
- 데이터베이스: 대규모 데이터베이스 환경에서 Failover를 통해 장애 시 백업 데이터베이스로 전환하여 데이터 보호
- 웹 서버 및 네트워크 인프라: 웹 서버나 네트워크 장비가 장애를 일으켰을 때, Failover를 통해 다른 서버나 경로로 트래픽 전환
- 클라우드 서비스: 클라우드 환경에서는 Failover를 통해 다양한 지역에 분산된 서버를 활용하여 가용성 극대화
참조
'OS 운영체제' 카테고리의 다른 글
고급 이론 용어 정리-동시성, 병렬성, 원자성, 의존성 (0) | 2024.09.07 |
---|---|
bitmask (비트마스크) (0) | 2024.09.05 |
오버헤드 (Overhead) (0) | 2024.08.26 |
shared memory (공유 메모리) (0) | 2024.08.15 |
알아두면 좋은 운영체계의 용어 (0) | 2024.06.01 |