페일오버
페일오버(failover)는 1차 시스템의 데이터베이스의 최신 버전을 대체 컴퓨터 시스템에 백업해두어 1차 시스템의 컴퓨터 서버, 시스템, 네트워크 등에서 이상이 생겼을 때 2차 시스템(대체 시스템)이 해당 업무를 즉시 이어받아 시스템 구성요소들의 기능들이 중단 없이 유지될 수 있게 하는 성질을 가진 시스템 등을 가리킨다. 회사의 중요한 서버를 하나만 두었을 때 서버의 장애가 생겼을 경우 뒤늦게나마 대처를 했지만, 그 순간이 회사 매출액에 직결되는 상황일 수도 있기 때문에 이러한 서버의 이중화는 매우 중요하다.
개요[편집]
현대 정보화 사회에서의 조직 활동이 시스템 기반 위에서 진행되면서, 시스템이 중단되면 조직의 생존 자체가 위협받는 상황이 발생할 수 있다. 따라서 시스템 설계자는 대개 연속적인 가용성인 고가용성(high availability)과 높은 신뢰성이 요구되는 서버, 시스템 또는 네트워크에 페일오버 기능을 탑재하는 것이 일반적으로 되었다. 페일오버는 1차 시스템이 고장 나거나 유지보수 등의 이유로 시스템을 이용할 수 없는 상태에서 2차 시스템이 즉시 업무를 이어받아 프로세서, 서버, 네트워크, 데이터베이스 등과 같은 시스템 구성요소의 기능들이 중단되는 일 없이 유지될 수 있는 백업 모드를 말한다. 또한, 페일오버는 어떠한 형태의 시스템에도 적용될 수 있는데, 예를 들어 컴퓨터에서의 페일오버는 고장 난 프로세서를 보호하는 장치가 될 수 있으며 네트워크에서의 페일오버는 접속 경로, 저장장치 또는 웹서버 등과 같은 네트워크의 구성요소나 시스템 구성요소에 두루 적용될 수 있다. 이렇게 가동상태를 항상 유지해야 하는 시스템이므로 무정지형 시스템, 이중시스템, 고가용성 시스템 등 여러 이름으로 불릴 수 있다.[1] [2]
페일오버라는 용어는 훨씬 이전에 엔지니어들이 사용했지만 1962년에 기밀이 해제된 미국 항공우주국(NASA) 보고서에 찾아볼 수 있다. 반대인 용어 "스위치 오버"라는 용어는 1950년대에 '핫(hot)'과 '콜드(cold)' 스탠바이 시스템을 기술할 때 찾아볼 수 있으며, 실행 중인 시스템 핫으로의 즉각적인 전환과 시동이 필요한 시스템으로의 지연 콜드의 의미가 있다.[3]
작동원리[편집]
공공기관 간의 메신저 서비스를 제공하는 서버가 있다고 가정한다. 해당 서비스를 위한 서버가 1대일 경우 해당 서버의 업그레이드를 위한 서버 다운이나 해킹, 바이러스, 기타 고장 문제로 인한 계획되지 않은 서버다운(장애) 이 발생했을 때 지속적인 서비스를 제공하지 못하게 되는 문제가 발생한다. 2대의 서버를 이용할 경우 2대의 서버는 하나의 역활로 묶어 사용되며 장애 조치 클러스터를 생성하여 문제를 해결할 수 있다. 문제가 발생하지 않았을 때로, a 서버는 평상시 서비스를 할 수 있는 활성(Active) 서버로 지정, b 서버는 서비스가 중단될 것을 대비한 대기하는(Stand-by) 서버로 지정한다. 하지만, 문제가 발생했을 때로 a 서버는 자신의 서비스 임무를 b 서버에게 넘겨준다. b 서버는 a 서버로부터 서비스 임무를 넘겨받아 대기 상태에서 활성 상태로 전환되어 계속 서비스를 하게 된다. 즉, 어떠한 장비나 시스템이 '페일오버 되었다'라는 말은 활성 장비가 중단되어 대기 장비로 트래픽이 전환되었다고 정의 할 수 있다. 이러한 페일오버 기능은 각종 시스템의 고가용성을 보장한다. 고가용성은 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다.[1]
특징[편집]
고가용성 구성 방식[편집]
- 상시 대기
상시 대기(Hot Standby)는 기본적인 비대칭형 고가용성 모델이다. 두 개의 클러스터링 된 호스트 시스템 또는 노드(Node)로 구성되며 논리적 IP주소와 관련 호스트 이름이 두 시스템인 노드 모두에 지정된다. 작동 방식은 가장 단순하면서 많이 사용되는 유형으로 가동 및 활성 시스템과 평상시 대기 상태 또는 개발 시스템으로 운영되는 백업 시스템으로 구성된다. 외장 디스크는 가동 시스템에서만 접근이 가능하고 장애 시에만 백업 시스템에서 접근이 가능하다. 2개의 시스템은 통신라인(HA, Heartbeat)을 통해 서로의 상태를 지속해서 모니터링한다. 상시대기는 전용 백업 시스템이 있음으로 페일오버가 발생하더라도 백업 시스템에 대해 자원 경쟁이 발생하지 않는다. 하지만, 평상시 백업 시스템이 대기 상태로 있기 때문에 시스템 자원을 완전히 활용하지 못한다. 또한, 시스템 권장 사용자는 추후 확장 계획이 있는 소규모 서버 및 서비스 공급자이다.[4]
- 상호 인계
상호 인계(Mutual Takeover)는 기본적인 대칭형 또는 이중 서비스 고가용성 모델이다. 각각 자체의 논리적 IP 주소가 있는 두 개의 호스팅 시스템으로 구성된다. 각 논리적 노드는 하나의 물리적 노드와 연결되고, 각 물리적 노드가 두 개의 저장소 볼륨이 있는 하나의 디스크 배열을 제어한다. 작동 방식은 2개의 시스템이 각각의 고유한 서비스를 수행하다가 하나의 시스템에 장애가 발생하면 다른 시스템이 장애 발생 시스템으로 작업을 이동하여 업무를 수행하는 방식이다. 장애 발생 시 각 시스템은 2개 분량의 서비스를 동시에 수행할 수 있는 충분한 시스템 용량을 갖추도록 준비해야 한다. 외장 디스크는 각각의 해당 시스템에서만 접근이 가능하다. 백업 노드에 대한 자원 경쟁 발생 및 미러 디스크로 인해 디스크 쓰기 성능이 저하 되지만, 시스템 자원의 활용도가 높다. 시스템 권장 사용자는 추후 백업 시스템을 확장할 계획이 있는 중간 규모의 서버 및 서비스 공급자이다..[4]
- 다중 비대칭 구성
다중 비대칭 구성(N Over 1)은 'N+1' 또는 'N over 1' 모델이라고 불리며, 다중 노드 비대칭 구성에서 사용할 수 있다. 이 모델은 N개의 논리적 호스트 이름 및 N개의 공유 디스크 배열이 필요하다. 하나의 백업 노드가 다른 모든 노드에 대해 상시 대기 상태를 유지한다. 작동 방식으로는 하나 이상의 활성 노드가 페일오버되면 백업 노드는 실패한 노드의 역활을 대신 수행한다. 구성이 복잡하지만, 서버 로드가 여러 노드로 분산될 수 있어 확장이 용이하고 하나의 백업 노드만으로 모든 노드의 실패를 처리할 수 있다. 시스템 권장 사용자는 자원 경쟁 없이 로드를 분산시켜야 하는 대규모 서버 및 서비스 공급자이다.[4]
- 병행 수행 접근
병행 수행 접근(Concurrent Access)은 여러 개의 시스템이 동시에 업무를 나누어 병렬 처리 하는 방식으로 시스템 전체가 활성화(Active)된 상태로 업무를 수행한다. 시스템 전체가 가동 상태로 업무를 수행하기 때문에 한 시스템에 장애가 발생해도 다른 시스템으로 페일오버하지 않고도 가용성을 보장한다.[5]
클러스터링[편집]
클러스터링(Clustering)은 두 대 이상의 컴퓨터가 가변적인 업무 부하를 처리하거나, 이 중에서 한 대가 고장이 나더라도 나머지 컴퓨터로 운영이 지속하도록 하여, 마치 하나의 컴퓨터처럼 행동하도록 서로 연결해 놓은 것이다. 마치 하나의 컴퓨터처럼 행동하도록 서로 연결함으로써 병렬 처리, 부하 분산 및 고장 대비에 활용할 수 있다. 클러스터 컴퓨터의 구조는 하드웨어, 운영체제, 클러스터 소프트웨어, 응용 프로그램 순으로 구성하며 서버 한 대에 집중된 사용자들을 여러 서버로 분산 시켜 네트워크와 시스템의 과부하를 분산시킬 수 있다. 또한, 기존 고성능 서버보다 저렴한 가격으로 서비스할 수 있어 사용자 증가에 따른 네트워크 카드, 중앙처리장치(CPU), 메모리 등의 추가로 확장성이 높다. 시스템에 문제가 생겨도 다른 시스템으로 즉시 교체가 가능하므로 오류 처리 기능이 높다.
이중 네트워크 인터페이스는 근거리 통신망(LAN) 케이블의 손상이나 카드 장애 시, 클라이언트의 서비스 중단을 막기 위해 이중으로 근거리 통신망 인터페이스를 설치하는 것이고, 복수 배열 독립 디스크는 복수 배열 독립 디스크(RAID, Redundant Array of Inexpensive/Independent Disk)는 저장장치 여러 개를 묶어 고용량 및 고성능 저장 장치 한 개와 같은 효과를 얻기 위해 개발된 기법이다. 가격이 저렴하고 크기가 작은 여러 개의 하드디스크를 병렬로 연결하여, 하나의 기억 장치처럼 사용할 수 있게 하는 방식이며, 대용량 고가 디스크 장비를 대체하는 기술이며 디스크 스트라이핑 기법을 이용하여 장애 발생 시 데이터의 무결성을 보장하는 기법이다.[6]
- 액티브 스탠바이형(Active Standby) : 가장 단순하면서도 가장 많이 사용되는 방법으로, 한 대의 시스템은 운영 시스템, 다른 한대는 대기 시스템으로 사용한다. 또한, 대기 시스템은 운영 시스템을 주기적으로 모니터링하다가 운영 시스템에서 장애 발생 시 미리 구성해 놓은 시나리오를 구동 시켜 대기 시스템을 운영 시스템으로 전환하는 방식이다.[6]
- 액티브 액티브형(Active Active) : 양쪽 시스템이 모두 동시에 협조하면서 서비스하는 구조로 문제 발생 시 양쪽 시스템이 상호 백업 체제로 구동한다. 각 시스템의 리소스 사용률을 50% 미만으로 구성하는 것이 중요한데, 이는 한 시스템에서 장애 발생 시 다른 시스템이 무리 없이 수용할 수 있어야 하기 때문이다.[6]
윈도우 장애조치 클러스터[편집]
윈도우 장애조치 클러스터의 필수 구성 요소는 클러스터 노드로 추가할 모든 서버가 동일한 버전의 윈도 서버를 실행하고 있는지 확인하고, 하드웨어 요구 사항을 검토하여 사용자의 구성이 지원되는지 확인하며, 클러스터 노드로 추가할 모든 서버가 동일한 액티브 디렉터리 도메인에 가입되어 있는지 확인한다. 적용대상은 윈도 서버(Window Server) 2016, 윈도 서버 2016, 윈도 서버 2012 R2 및 윈도 서버 2012 등이다.
- 장애 조치 클러스터링 기능 설치
- 서버 관리자를 시작한다.
- 관리 메뉴에서 역활 및 기능 추가를 선택한다.
- 시작하기 전에 페이지에서 다음을 선택한다.
- 대상 서버 선택 페이지에서 기능을 설치할 서버를 선택하고 다음을 선택한다.
- 서버 역활 선택 페이지에서 다음을 선택한다.
- 기능 선택 페이지에서 장애 조치 클러스터링 확인란을 선택한다.
- 장애 조치 클러스터 관리 도구를 설치하려면 기능 추가를 선택하고 다음을 선택한다.
- 설치 선택 확인 페이지에서 설치를 선택한다. 장애 조치 클러스터링 기능에는 서버를 다시 시작할 필요가 없다.
- 설치가 완료되면 닫기를 선택한다.
- 클러스터 노드로 추가할 모든 서버에 장애 조치 클러스터링 기능을 설치한다.
- 구성 유효성 검사
- 장애 조치 클러스터를 만들기 전에 구성의 유효성을 검사하여 하드웨어 및 하드웨어 설정이 장애 조치 클러스터링과 호환되는지 확인하는 것이 좋다. 전체 구성이 모든 유효성 검사를 통과하고 모든 하드웨어가 클러스터 노드에서 실행하는 윈도 서버 버전에 대해 인증된 경우에만 클러스터 솔루션을 지원한다.
- 유효성 검사 테스트
- 결과가 테스트가 성공적으로 완료되어도 구성이 클러스터링에 적합한 것으로 표시되는 경우 클러스터를 즉시 만들려면 유효성이 검사 된 노드를 사용하여 클러스터 만들기 확인란이 선택되어 있는지 확인한 다음 마침을 선택한다. 그런 다음 장애 조치(failover) 클러스터 만들기 절차의 4단계를 계속 진행한다. 경고 또는 오류가 발생했음을 나타내는 결과가 표시되면 보고서 보기를 선택하여 세부 정보를 확인하고 수정해야 하는 문제를 확인한다. 특정 유효성 검사 테스트에 대한 경고에서는 장애 조치(failover) 클러스터의 해당 측면이 지원될 수 있지만, 권장 모범 사례에는 맞지 않을 수 있음을 나타낸다.
- 원격 서버 관리 도구에서 장애 조치 클러스터 관리 도구를 설치한 컴퓨터 또는 장애 조치 클러스터링 기능을 설치한 서버에서 장애 조치 클러스터 관리자를 시작한다. 서버에서 이 작업을 수행하려면 서버 관리자를 시작하고 도구 메뉴에서 장애 조치 클러스터 관리자를 선택한다.
- 장애 조치 클러스터 관리자 창의 관리에서 구성 유효성 검사를 선택한다.
- 시작하기 전에 페이지에서 다음을 선택한다.
- 서버 또는 클러스터 선택 페이지의 이름 입력 상자에 NetBIOS 이름 또는 장애 조치 클러스터 노드로 추가하려는 서버의 정규화 된 도메인 이름을 입력한 다음 추가를 선택한다. 추가하려는 각 서버에 대해 이 단계를 반복한다. 여러 서버를 동시에 추가하려면 쉼표 또는 세미콜론으로 이름을 구분한다. 작업을 다 마쳤다면 다음을 선택한다.
- 테스트 옵션 페이지에서 모든 테스트 실행(권장)을 선택하고 다음을 선택한다.
- 확인 페이지에서 다음을 선택한다. 유효성 검사 중 페이지에 실행 중인 테스트의 상태가 표시된다.
- 요약 페이지에서 다음 중 하나를 수행한다.
- 장애 조치 클러스터 만들기
- 서버 관리자를 시작한다.
- 도구 메뉴에서 장애 조치 클러스터 관리자를 선택한다.
- 장애 조치 클러스터 관리자 창의 관리 아래에서 클러스터 만들기를 선택한다.
- 시작하기 전에 페이지에서 다음을 선택한다.
- 서버 선택 페이지가 표시되면 이름 입력 상자에 NetBIOS 이름 또는 장애 조치 클러스터 노드로 추가하려는 서버의 정규화된 도메인 이름을 입력한 다음 추가를 선택한다. 추가하려는 각 서버에 대해 이 단계를 반복한다. 작업을 마친 후 다음을 선택한다.
- 앞에서 유효성 검사를 건너뛰면 유효성 검사 경고 페이지가 나타난다.
- 클러스터 관리 액세스 지점 페이지에서 다음을 수행한다.
- 클러스터 이름 상자에 클러스터를 관리하는데 사용할 이름을 입력한다.
- 서버에 동적 호스트 구성 프로토콜(DHCP, Dynamic Host Configuration Protocol )을 사용하도록 구성된 네트워크 어댑터가 없는 경우 장애 조치 클러스터의 고정 IP 주소를 하나 이상 구성해야 한다. 클러스터 관리에 사용할 각 네트워크 옆의 확인란을 선택한다. 선택한 네트워크 옆의 주소 필드를 선택한 다음 클러스터에 할당할 IP 주소를 입력한다. 이 IP 주소는 도메인 네임 시스템(Domain Name System)에서 클러스터 이름에 연결된다.
- 작업을 마친 뒤 다음을 선택한다.
- 확인 페이지에서 설정을 검토한다. 기본적으로 '클러스터에 사용할 수 있는 모든 저장소를 추가하세요.' 확인란이 선택되어 있다.
- 다음을 선택하여 장애 조치 클러스터를 만든다.
- 요약 페이지에서 장애 조치 클러스터가 성공적으로 만들어졌는지 확인한다. 경고나 오류가 있는 경우 요약 출력을 보거나 보고서 보기를 선택하여 전체 보고서를 확인하고 마침을 선택한다.
- 클러스터가 만들어졌는지 확인하려면 탐색 트리의 장애 조치 클러스터 관리자 아래에 클러스터 이름이 있는지 확인한다. 클러스터 이름을 확장하고 노드, 저장소 또는 네트워크 아래의 항목을 선택하여 연결된 항목을 볼 수 있다. 도메인 네임 시스템에서 클러스터 이름을 복제하는 데 약간의 시간이 걸릴 수 있다. 도메인 네임 시스템 등록 및 복제가 성공한 후 서버 관리자에서 모든 서버를 선택하면 클러스터 이름이 관리 효율성 상태가 온라인인 서버로 나열된다. 클러스터를 만든 후 클러스터 쿼럼 구성을 확인하고 필요에 따라 클러스터 공유 볼륨(CSV)을 만드는 등의 작업을 수행할 수 있다.
- 클러스터 된 역할 만들기 : 장애 조치 클러스터를 만든 후 클러스터 작업을 호스트할 클러스터 된 역할을 만들 수 있다.
- 서버 관리자를 사용하여 클러스터 된 역할에 필요한 기능 또는 역할을 각 장애 조치 클러스터 노드에 설치한다.
- 장애 조치 클러스터 관리자에서 클러스터 이름을 확장하고 역할을 마우스 오른쪽 단추로 클릭한 다음 역할 구성을 선택한다.
- 고가용성 마법사의 단계에 따라 클러스터 된 역할을 만든다.
- 클러스터 된 역할이 만들어졌는지 확인하려면 역할 창에서 역할의 상태가 실행 중인지 확인한다. 역할 창에는 소유자 노드로 표시된다. 장애 조치를 테스트하려면 역할을 마우스 오른쪽 단추로 클릭하고 이동을 가리킨 다음 노드 선택을 선택한다. 클러스터 된 역할 이동 대화 상자에서 원하는 클러스터 노드를 선택하고 확인을 선택한다. 소유자 노드 열에서 소유자 노드가 변경되었는지 확인한다.[7]
문제점[편집]
장애 발생으로 시스템이 다운(Down)되지 않는 경우에는 페일오버가 되지 않는다. 시스템 성능이 저하되는 경우에는 자동감지가 불능이 되고, 데이터베이스 및 애플리케이션이 다운되는 경우에는 일반적으로 페일오버하지 않는다. 또한, 데이터베이스 및 애플리케이션 자체 오류일 경우에는 페일오버는 의미가 없어지며, 고가용성 구성에 따른 정보교환으로 시스템의 안정성, 보안성, 성능에 대한 오버헤드(Overhead)가 존재한다.[5]
각주[편집]
- ↑ 1.0 1.1 , 〈페일오버(Failover) 장애극복〉, 《다음 블로그》, 2013-08-19
- ↑ , 〈failover;장애 극복〉, 《텀즈》, 2002-08-15
- ↑ 장애 극복 기능 위키백과 - https://ko.wikipedia.org/wiki/%EC%9E%A5%EC%95%A0_%EA%B7%B9%EB%B3%B5_%EA%B8%B0%EB%8A%A5
- ↑ 4.0 4.1 4.2 , 〈3장 고가용성 솔루션 구성〉, 《선원》
- ↑ 5.0 5.1 고가용성 아이티위키 - http://itwiki.kr/w/%EA%B3%A0%EA%B0%80%EC%9A%A9%EC%84%B1
- ↑ 6.0 6.1 6.2 , 〈고가용성 시스템의 주요 구현 기술〉, 《티스토리》, 2010-08-12
- ↑ 〈장애 조치(failover) 클러스터 만들기〉, 《마이크로소프트》, 2019-06-06
참고자료[편집]
- 장애 극복 기능 위키백과 - https://ko.wikipedia.org/wiki/%EC%9E%A5%EC%95%A0_%EA%B7%B9%EB%B3%B5_%EA%B8%B0%EB%8A%A5
- 〈failover 장애 극복〉, 《텀즈》, 2002-08-15
- 선소리꾼, 〈페일오버(Failover) 장애극복〉, 《다음 블로그》, 2013-08-19
- 〈Hot Standby〉, 《테코피디아》, 2014-04-10
- starrykss, 〈53. 분산 시스템의 고가용성〉, 《티스토리》, 2020-06-04
- 고가용성 아이티위키 - http://itwiki.kr/w/%EA%B3%A0%EA%B0%80%EC%9A%A9%EC%84%B1
- 무강, 〈고가용성 시스템의 주요 구현 기술〉, 《티스토리》, 2010-08-12
같이 보기[편집]