Skip to content

Latest commit

 

History

History
47 lines (37 loc) · 3.98 KB

Fail over와 서버 이중화.md

File metadata and controls

47 lines (37 loc) · 3.98 KB

Fail over

  • fail over는 장애 대비 기능을 의미한다.
  • 컴퓨터 서버, 시스템, 네트워크 등에서 이상이 생겼을 때 미리 준비했던 다른 시스템으로 자동으로 전환해서 무정지 시스템을 운영하여 fail over할 수 있다.
  • failback : 페일오버에 따라 전환된 운용환경을 장애 발생 전 상태로 되돌리는 처리
  • High Availability(서비스를 정상적으로 사용 가능한 정도를 의미)을 요구할 때 구성한다.
  • 웹 서버, 네트워크 장비, DB 등 다양한 영역에 대비한다. 하드웨어적인 장애 뿐만 아니라 소프트웨어를 포함한 서비스가 운영되지 않은 모든 장애를 포함한다.

서버 이중화

Active-Active

  • 주로 부하 분산 등의 목적, 서비스 단위를 나누어서 분산
  • 다중화 장비 두 대가 모두 활성화 되어 동작하는 구성
  • 많은 비용이 필요하지만 높은 수준의 안정성을 확보할 수 있다. 사용자가 많고 안정성을 우선시 한다면 사용하는 방식이다.
  • 부하 분산 등을 목적으로 주로 활용하며, 서비스 단위를 나누어서 분산시키기도 한다.

단점

  • Active-Standby에 비해 처리률이 높지만, 설정 및 구성이 복잡해진다.
  • 한대에 장애가 생겼을 경우, 두 대의 처리량을 한 대가 처리해야하기 때문에 리소스 관리에 대한 계획이 있어야 한다.

Active-Standby

  • 한대는 평상시 운영하는 서버이고, 그와 비슷한 스펙의 서버를 대기 상태(Standby)로 준비한다.

  • 대기중인 서버는 OS가 설치된 형태로 언제라도 부팅하면 바로 사용할 수 있는 상태, 장애(클러스터 하트비트 등으로 시스템의 상태를 주기적으로 체크하고 특이사랑 발생시 수동으로 전환하거나, 크리티컬한 장애 발생 시 자동으로 서비스를 전환)시 서비스를 이전하여 운영한다.

  • 즉각적인 failover를 위해 주로 구성

  • 장애 발생시 Standby는 Active로 변경된다. Failover 되는 시간은 서비스가 불가능하다.

  • Active-Standby는 Standby 방식에 따라 아래와 같이 세 종류로 나뉜다.

    • Hot Standby - Standby 가동 후 즉시 이용 가능
    • Warm Standby - Standby 가동 후 이용 가능하게 하기 위해서 준비가 필요
    • Cold Standby - Standby를 정지시켜 두는 구성, 필요시 직접 켜서 구성
  • Hot - Warm - Cold 순으로 Failover 소요시간이 짧다

  • 서버 이중화에서 주의점은 같은 데이터가 여러 개 존재한다는 것이다. 어떤 데이터가 올바른 것인지 또는 어떤 데이터가 최신 데이터인지 제대로 관리해야 한다.

  • 또한 여러 개의 데이터가 정확하게 일치하고 있는 상태를 유지해야 한다.

  • 이를 위한 대책으로는 Shared Disk와 스토리지 비공유 방식 Shared Nothing 방식이 있다.

Shared Disk

  • 공유 스토리지를 하나 두고 이용하는 방식이다.
  • Shared Disk 방식은 스토리지를 공유하기 때문에 정합성에 대해 특별히 문제는 없지만, Shared Disk 자체를 다중화해야하기 때문에 비용 측면에서 부담이 생긴다. (대체로 Shared Disk 기능이 있는 스토리지 기기는 비싸다.)

Shared Nothing

  • 스토리지 간 통신을 하여 데이터 정합성을 확보하는 방식이다.
  • 이 통신을 리플리케이션이라고 하고, 리플리케이션의 데이터 송신 측을 Master, 데이터 수신 측을 Slave라고 한다.
  • Multi-Master라고 하여 Master와 Slave 역할을 모두 갖는 방식도 있지만 문제가 많이 발생하여 잘 사용되지 않는다.
  • 리플리케이션에도 동기, 비동기식 리플리케이션이 있으며, 동기식 리플리케이션은 오버헤드가 커 동기 처리에 따라 성능 저하의 정도가 크지만 데이터 정합성을 확보하기 좋다.
  • 비동기식 레플리케이션은 데이터 손실이 발생할 수 있지만 성능 저하의 정도가 작은 방식이다.