본문 바로가기
OS 운영체제

failover (자동 전환)

by yororing 2024. 8. 27.

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를 통해 다양한 지역에 분산된 서버를 활용하여 가용성 극대화

 

참조

  1. https://www.redhat.com/ko/topics/linux/what-is-high-availability 
  2. https://en.wikipedia.org/wiki/Failover 
  3. chatgpt
  4.