의견.png

페일오버

위키원
k8679026 (토론 | 기여)님의 2020년 7월 29일 (수) 22:16 판
이동: 둘러보기, 검색

페일 오버(장애 극복, failover)는 1차 시스템의 데이터베이스의 최신 버전을 대체 컴퓨터 시스템에 백업해두어 1차 시스템의 컴퓨터 서버, 시스템, 네트워크 등에서 이상이 생겼을 때 2차 시스템(대체 시스템)이 해당 업무를 즉시 이어받아 시스템 구성요소들의 기능들이 중단 없이 유지될 수 있게 하는 성질을 가진 시스템 등을 가리킨다. 회사의 중요한 서버를 하나만 두었을 때 서버의 장애가 생겼을 경우 뒤늦게 조치를 취한다 한들 그 순간이 회사 매출액에 직결되는 상황이라면 이러한 서버의 이중화(페일 오버)는 매우 중요하다.


개요

시스템 설계자는 대개 연속적인 가용성(고가용성 high availability)과 높은 신뢰성이 요구되는 서버, 시스템 또는 네트워크에서 페일 오버 기능을 탑재하는 것이 일반적이다. 페일 오버는 1차 시스템이 고장 나거나 유지보수 등의 이유로 시스템을 이용할 수 없는 상태에서 2차 시스템이 즉시 업무를 이어받아 프로세서, 서버, 네트워크, 데이터베이스 등과 같은 시스템 구성요소의 기능들이 중단되는 일 없이 유지될 수 있는 백업 모드를 말한다. 또한 페일 오버는 어떠한 형태의 시스템에도 적용될 수 있다. 예를 들어 컴퓨터에서의 페일 오버는 고장 난 프로세서를 보호하는 장치가 될 수 있으며 네트워크에서의 페일 오버는 접속 경로, 저장장치 또는 웹서버 등과 같은 네트워크의 구성요소나 시스템 구성요소에 두루 적용될 수 있다. 이렇게 가동상태를 항상 유지해야 하는 시스템이므로 무정지형 시스템, 이중시스템, 고가용성 시스템 등 여러 이름으로 불릴 수 있다.

역사

페일 오버라는 용어는 훨씬 이전에 엔지니어들이 사용했지만 1962년에 기밀이 해제된 NASA 보고서에 찾아볼 수 있다. 반대인 용어 "스위치 오버"라는 용어는 1950년대에 '핫(hot)'과 '콜드(cold)' 스탠바이 시스템을 기술할 때 찾아볼 수 있으며, 현재 실행 중인 시스템(핫)으로의 즉각적인 전환과 시동이 필요한 시스템으로의 지연(콜드)의 의미를 가지고 있다.

작동원리

공공기관 간의 메신저 서비스를 제공하는 서버가 있다고 가정한다. 해당 서비스를 위한 서버가 1대일 경우 해당 서버의 업그레이드를 위한 서버 다운이나 해킹, 바이러스, 기타 고장 문제로 인한 계획되지 않은 서버다운(장애)이 발생 했을 때 지속적인 서비스를 제공하지 못하게 되는 문제가 발생한다. 2대의 서버를 이용할 경우 2대의 서버는 하나의 역활로 묶어 사용되며 장애 조치 클러스터를 생성하여 이러한 문제를 해결할 수 있다.

  • 문제가 발생하지 않았을 때
a 서버는 평상시 서비스를 할 수 있는 활성(Active) 서버로 지정, b 서버는 서비스가 중단될 것을 대비한 대기하는(Stand-by) 서버로 지정한다.
  • 문제가 발생했을 때
a 서버는 자신의 서비스 임무를 b 서버에게 넘겨준다. b 서버는 a 서버로부터 서비스 임무를 넘겨받아 대기상태에서 활성상태로 전환되어 계속 서비스를 하게 된다.
  • 정리
어떠한 장비나 시스템이 '페일 오버 되었다'라는 말은 활성 장비가 중단되어 대기 장비로 트래픽이 전환되었다고 정의 할 수 있다. 이러한 페일 오버 기능은 각종 시스템의 고가용성(HA, High Availability)을 보장한다.

종류

페일 오버를 위한 고가용성 구성 방식에는 여러 종류가 있다.

상시대기

상시 대기(Hot Standby)는 시스템의 신뢰성과 보안을 보장하기 위한 페일 오버 기법이다. 이는 장치나 시스템 장애 발생 시에 대기 장치나 시스템이 인계받을 수 있도록 준비 함으로써 중요한 구성요소를 즉시 백업하는 것을 말하며 그렇지 않으면 전체 시스템이 고장 날 수 있다. 대기모드, 복구 모드에 있는 동안 연결된 서버로부터 소프트웨어 또는 하드웨어 구성요소의 기능들을 유지 할 수 있게 한다. 또한 사용자에게 지속적인 서비스 연결을 유지하면서 응답한다. 상시 대기 구성요소는 오디오/비주얼 스위치, 네트워크 프린터, 컴퓨터 및 하드디스크 드라이브 등이 있으며 고장 난 시스템이 정상 작동으로 복귀하는 데 필요한 시간을 대폭 줄인 것으로 100% 시스템 가용성을 제공하지 않도록 설계되었다. 상시 대기 시스템은 1차 시스템으로 동일한 건물, 도시, 다른 국가 등에 적용될 수 있다.

  • 구성 방식
가장 단순하면서 많이 사용되는 유형으로 가동(활성) 시스템과 평상시 대기 상태 또는 개발 시스템으로 운영되는 백업 시스템으 로 구성. 외장 디스크는 가동 시스템에서만 접근 가능하고 장애 시에만 백업 시스템에서 접근이 가능하다. 2개의 시스템은 통신라인(HA, Heartbeat)을 통해 서로의 상태를 지속적으로 모니터링 한다.

상호 인계

  • 구성 방식
2개의 시스템이 각각의 고유한 서비스를 수행하다가 하나의 시스템에 장애가 발생하면 다른 시스템이 장애 발생 시스템으로 작업을 이동하여 업무를 수행하는 방식이다. 장애 발생 시 각 시스템은 2개 분량의 서비스를 동시에 수행할 수 있는 충분한 시스템 용량을 갖추도록 준비해야 한다. 외장 디스크는 각각의 해당 시스템에서만 접근이 가능하다.

병행 수행 접근

  • 구성방식
여러 개의 시스템이 동시에 업무를 나누어 병렬 처리 하는 방식으로 시스템 전체가 활성(Active)된 상태로 업무를 수행한다. 시스템 전체가 가동 상태로 업무를 수행하기 때문에 한 시스템에 장애가 발생해도 다른 시스템으로 페일 오버하지 않고도 가용성을 보장한다.[1]

주요 구현 기술

클러스터링

클러스터링(Clustering)은 두 대 이상의 컴퓨터가 가변적인 업무 부하를 처리하거나, 이 중에서 한 대가 고장이 나더라도 나머지 컴퓨터로 운영이 지속하도록 하여, 마치 하나의 컴퓨터처럼 행동하도록 서로 연결해 놓은 것이다.

  • 특징
-마치 하나의 컴퓨터처럼 행동하도록 서로 연결함으로써 병렬 처리, 부하 분산 및 고장 대비에 활용할 수 있다.
-클러스터 컴퓨터의 구조는 하드웨어, 운영체제, 클러스터 소프트웨어, 응용 프로그램 순으로 구성한다.
-서버 한 대에 집중된 사용자들을 여러 대로 분산 시켜 네트워크와 시스템의 과부하를 분산시킬 수 있다.
-기존 고성능 서버보다 저렴한 가격으로 서비스할 수 있고, 사용자 증가에 따른 네트워크 카드, 중앙처리장치(CPU), 메모리 등의 추가로 확장성이 높다.
-시스템에 문제가 생겨도 다른 시스템으로 즉시 교체가 가능하므로 오류 처리 기능이 높다.
  • 클러스링
    • 엑티브 스탠바이형(Active Standby)
    -가장 단순하면서도 가장 많이 사용되는 방법으로, 한 대의 시스템은 운영 시스템, 다른 한대는 대기 시스템으로 사용한다.
    -대기 시스템은 운영 시스템을 주기적으로 모니터링하다가 운영 시스템에서 장애 발생 시 미리 구성해 놓은 시나리오를 구동 시켜 대기 시스템을 운영 시스템으로 전환하는 방식이다.
    • 액티브 액티브형(Active Active)
-양쪽 시스템이 모두 동시에 협조하면서 서비스하는 구조로 문제 발생 시 양쪽 시스템이 상호 백업 체제로 구동한다.
-각 시스템의 리소스 사용률을 50% 미만으로 구성하는 것이 중요한데, 이는 한 시스템에서 장애 발생 시 다른 시스템이 무리 없이 수용할 수 있어야 하기 때문이다.

이중 네트워크 인터페이스

LAN 케이블의 손상이나 LAN 카드 장애 시, 클라이언트의 서비스 중단을 막기 위해 이중으로 근거리 통신망(LAN) 인터페이스를 설치하는 것이다.

복수 배열 독립 디스크

복수 배열 독립 디스크(RAID, Redundant Array of Inexpensive/Independent Disk)는 저장장치 여러 개를 묶어 고용량·고성능 저장 장치 한 개와 같은 효과를 얻기 위해 개발된 기법이다.

  • 가격이 저렴하고 크기가 작은 여러 개의 하드 디스크를 병렬로 연결하여, 하나의 기억 장치처럼 사용할 수 있게 하는 방식
  • 대용량 고가 디스크 장비를 대체하는 기술이며 디스크 스트라이핑 기법을 이용하여 장애 발생 시 데이터의 무결성을 보장하는 기법이다.

활용

윈도우 장애조치 클러스터

적용대상 : 윈도우 서버(Window Server) 2016, 윈도우 서버 2016, 윈도우 서버 2012 R2 및 윈도우 서버 2012

  • 필수 구성 요소
클러스터 노드로 추가할 모든 서버가 동일한 버전의 윈도우 서버를 실행하고 있는지 확인한다.
하드웨어 요구 사항을 검토하여 사용자의 구성이 지원되는지 확인한다.
클러스터 노드로 추가할 모든 서버가 동일한 액티브 디렉토리 도메인에 가입되어 있는지 확인한다.
  • 장애조치 클러스터링 기능 설치
  1. 서버 관리자를 시작한다.
  2. 관리 메뉴에서 역활 및 기능 추가를 선택한다.
  3. 시작하기 전에 페이지에서 다음을 선택한다.
  4. 대상 서버 선택 페이지에서 기능을 설치할 서버를 선택하고 다음을 선택한다.
  5. 서버 역활 선택 페이지에서 다음을 선택한다.
  6. 기능 선택 페이지에서 장애 조치 클러스터링 확인란을 선택한다.
  7. 장애 조치 클러스터 관리 도구를 설치하려면 기능 추가를 선택하고 다음을 선택한다.
  8. 설치 선택 확인 페이지에서 설치를 선택한다. 장애 조치 클러스터링 기능에는 서버를 다시 시작할 필요가 없다.
  9. 설치가 완료되면 닫기를 선택한다.
  10. 클러스터 노드로 추가할 모든 서버에 장애 조치 클러스터링 기능을 설치한다.
  • 구성 유효성 검사

장애 조치 클러스터를 만들기 전에 구성의 유효성을 검사하여 하드웨어 및 하드웨어 설정이 장애 조치 클러스터링과 호환되는지 확인하는 것이 좋다. 전체 구성이 모든 유효성 검사를 통과하고 모든 하드웨어가 클러스터 노드에서 실행하는 윈도우 서버 버전에 대해 인증된 경우에만 클러스터 솔루션을 지원한다.

  • 유효성 검사 테스트
  1. 원격 서버 관리 도구에서 장애 조치 클러스터 관리 도구를 설치한 컴퓨터 또는 장애 조치 클러스터링 기능을 설치한 서버에서 장애 조치 클러스터 관리자를 시작한다. 서버에서 이 작업을 수행하려면 서버 관리자를 시작하고 도구 메뉴에서 장애 조치 클러스터 관리자를 선택한다.
  2. 장애 조치 클러스터 관리자 창의 관리에서 구성 유효성 검사를 선택한다.
  3. 시작하기 전에 페이지에서 다음을 선택한다.
  4. 서버 또는 클러스터 선택 페이지의 이름 입력 상자에 NetBIOS 이름 또는 장애 조치 클러스터 노드로 추가하려는 서버의 정규화 된 도메인 이름을 입력한 다음 추가를 선택한다. 추가하려는 각 서버에 대해 이 단계를 반복한다. 여러 서버를 동시에 추가하려면 쉼표 또는 세미콜론으로 이름을 구분한다. 작업을 다 마쳤다면 다음을 선택한다.
  5. 테스트 옵션 페이지에서 모든 테스트 실행(권장)을 선택하고 다음을 선택한다.
  6. 확인 페이지에서 다음을 선택한다. 유효성 검사 중 페이지에 실행 중인 테스트의 상태가 표시된다.
  7. 요약 페이지에서 다음 중 하나를 수행한다.
  • 결과가 테스트가 성공적으로 완료돼고 구성이 클러스터링에 적합한 것으로 표시되는 경우 클러스터를 즉시 만들려면 유효성이 검사 된 노드를 사용하여 클러스터 만들기 확인란이 선택되어 있는지 확인한 다음 마침을 선택한다. 그런 다음 장애 조치(failover) 클러스터 만들기 절차의 4단계를 계속 진행한다.
  • 경고 또는 오류가 발생했음을 나타내는 결과가 표시 되면 보고서 보기를 선택하여 세부 정보를 확인하고 수정 해야 하는 문제를 확인한다. 특정 유효성 검사 테스트에 대한 경고에서는 장애 조치(failover) 클러스터의 해당 측면이 지원될 수 있지만, 권장 모범 사례에는 맞지 않을 수 있음을 나타낸다.
  • 장애 조치 클러스터 만들기
  1. 서버 관리자를 시작한다.
  2. 도구 메뉴에서 장애 조치 클러스터 관리자를 선택한다.
  3. 장애 조치 클러스터 관리자 창의 관리 아래에서 클러스터 만들기를 선택한다.
  4. 시작하기 전에 페이지에서 다음을 선택한다.
  5. 서버 선택 페이지가 표시되면 이름 입력 상자에 NetBIOS 이름 또는 장애 조치 클러스터 노드로 추가하려는 서버의 정규화된 도메인 이름을 입력한 다음 추가를 선택한다. 추가하려는 각 서버에 대해 이 단계를 반복한다. 작업을 마친 후 다음을 선택한다.
  6. 앞에서 유효성 검사를 건너뛴 경우 유효성 검사 경고 페이지가 나타난다.
  7. 클러스터 관리 액세스 지점 페이지에서 다음을 수행한다.
    1. 클러스터 이름 상자에 클러스터를 관리하는데 사용할 이름을 입력한다.
    2. 서버에 동적 호스트 구성 프로토콜(DHCP, Dynamic Host Configuration Protocol )을 사용하도록 구성된 네트워크 어댑터가 없는 경우 장애 조치 클러스터의 고정 IP 주소를 하나 이상 구성 해야 한다. 클러스터 관리에 사용할 각 네트워크 옆의 확인란을 선택한다. 선택한 네트워크 옆의 주소 필드를 선택한 다음 클러스터에 할당할 IP 주소를 입력한다. 이 IP 주소는 도메인 네임 시스템(Domain Name System)에서 클러스터 이름에 연결된다.
    3. 작업을 마친 뒤 다음을 선택한다.
  8. 확인 페이지에서 설정을 검토한다. 기본적으로 '클러스터에 사용할 수 있는 모든 저장소를 추가하세요.' 확인란이 선택되어 있다.
  9. 다음을 선택하여 장애 조치 클러스터를 만든다.
  10. 요약 페이지에서 장애 조치 클러스터가 성공적으로 만들어졌는지 확인한다. 경고나 오류가 있는 경우 요약 출력을 보거나 보고서 보기를 선택하여 전체 보고서를 확인하고 마침을 선택한다.
  11. 클러스터가 만들어졌는지 확인하려면 탐색 트리의 장애 조치 클러스터 관리자 아래에 클러스터 이름이 있는지 확인한다. 클러스터 이름을 확장하고 노드, 저장소 또는 네트워크 아래의 항목을 선택하여 연결된 리소스를 볼 수 있다. 도메인 네임 시스템에서 클러스터 이름을 복제하는 데 약간의 시간이 걸릴 수 있다. 도메인 네임 시스템 등록 및 복제가 성공한 후 서버 관리자에서 모든 서버를 선택하면 클러스터 이름이 관리 효율성 상태가 온라인인 서버로 나열된다. 클러스터를 만든 후 클러스터 쿼럼 구성을 확인하고 필요에 따라 클러스터 공유 볼륨(CSV)을 만드는 등의 작업을 수행할 수 있다.
  • 클러스터된 역할 만들기

장애 조치 클러스터를 만든 후 클러스터 작업을 호스트할 클러스터 된 역할을 만들 수 있다.

  1. 서버 관리자를 사용하여 클러스터 된 역할에 필요한 기능 또는 역할을 각 장애 조치 클러스터 노드에 설치한다.
  2. 장애 조치 클러스터 관리자에서 클러스터 이름을 확장하고 역할을 마우스 오른쪽 단추로 클릭한 다음 역할 구성을 선택한다.
  3. 고가용성 마법사의 단계에 따라 클러스터 된 역할을 만든다.
  4. 클러스터 된 역할이 만들어졌는지 확인하려면 역할 창에서 역할의 상태가 실행 중인지 확인한다. 역할 창에는 소유자 노드로 표시된다. 장애 조치를 테스트하려면 역할을 마우스 오른쪽 단추로 클릭하고 이동을 가리킨 다음 노드 선택을 선택한다. 클러스터 된 역할 이동 대화 상자에서 원하는 클러스터 노드를 선택 하고 확인을 선택한다. 소유자 노드 열에서 소유자 노드가 변경되었는지 확인한다.[2]


문제점

  1. 장애 발생으로 시스템이 다운(Down)되지 않는 경우 페일 오버가 되지 않는다.
  2. 시스템 성능이 저하되는 경우 자동감지가 불능이 된다.
  3. 데이터베이스 및 애플리케이션이 다운되는 경우 일반적으로 페일 오버하지 않는다.
  4. 데이터베이스 및 애플리케이션 자체 오류일 경우 페일 오버는 의미가 없어진다.
  5. 고가용성 구성에 따른 정보교환으로 시스템의 안정성, 보안성, 성능에 대한 오버헤드(Overhead)가 존재한다.[1]

평가와 전망

각주

참고 자료

같이보기

  의견.png 이 페일오버 문서는 하드웨어에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.