결함허용시스템 (FTS, Fault Tolerant System)

I. 결함허용시스템 (FTS, Fault Tolerant System)의 개념

  • 하드웨어나 소프트웨어의 결함, 오동작, 오류 등이 발생하더라도 규정된 기능을 지속적으로 수행할 수 있는 시스템

 
II. 결함허용시스템의 주요 단계 및 실현 기술

가. 결함허용시스템의 주요 단계

주요 단계기법상세 설명
결함 감지
(Fault Detection)
Ping/Echo, Heartbeat, Exception 처리
  • 시스템 내 Fault 발생 시 해당 모듈은 Fault 상태로 진입하고, 모듈 상태를 분석하여 어느 모듈이 Fault를 유발시켰는지 감지
결함 진단
(Fault Diagnosis)
모니터링, 비교, 시뮬레이션, 오류 비트
  • Fault가 일시적(Tansient)인지, 영구적(Hard)인지 파악하여 영구적인 경우 해당 모듈을 시스템 구성에서 제거할지 판단
결함 통제 / 복구
(Fault Isolation / Recovery)
중복(Redundancy), 교체, 격리(Isolation)
  • 결함으로 인한 타 모듈에 오류 파급 차단
  • Fault 유발 모듈을 시스템에서 제거하여 시스템 재구성

나. 결함허용시스템 실현 기술

구분실현 기술기술 설명
HW
측면
Duplication with Comparison
  • 하드웨어를 중복하여 그 출력을 비교하여 결함을 감지
TMR (Triple Modular Redundancy)
  • 3개 이상의 모듈에서 같은 입력에 대해 동일한 연산을 수행하여 다수결의 원칙 기반 결함을 감지
Watchdog Timer
  • 정상 작동 시 주기적으로 타이머를 초기화시켜 시스템 결함 여부를 감지
Self Purging Redundancy
  • N개의 HW에서 출력 결과가 다른 HW의 계산과정을 배제
SW
측면
Check Point
  • SW 수행 중 검사 시점을 설정하여 오류가 발견되면 발생 이전의 검사 시점으로 돌아가서 재수행
Recovery Block
  • 재수행(Rollback & Retry)에 근거하여, 검사시점에서 오류가 발견되면 지정된 이전 검사점으로 되돌아가서 같은 기능을 가진 다른 SW 모듈을 수행
N Self-checking Programming
  • 둘 이상의 Self-Check 컴포넌트가 수행되며 하나는 기능 수행, 다른 하나는 대기 상태로, 결함 발견 시 대기 상태의 컴포넌트가 수행
N Version Programming
  • N개의 독립적인 SW 모듈 수행 결과를 비교하여 다수의 수행결과를 채택
DB
측면
Rollback (Undo)
  • 장애 발생 시 데이터베이스에 대한 모든 변경사항, Commit 되지 않은 트랜잭션에 대한 작업 취소
Check Point
  • 로그 파일에 체크포인트를 기록하고 장애 발생 시 검사점 이전에 처리된 트랜잭션은 회복 작업에서 제외하고 이후에 처리된 내용에 대해서만 회복 작업을 수행
Shadow Paging
  • 트랜잭션 실행동안 수행 페이지 테이블과 그림자 페이지 테이블을 유지하여 필요 시 회복 작업 수행
Log File
  • Commit 되지 않은 작업을 로그 파일 기반 회복
Data
측면
Parity Code
  • 2진 Data 중 “1”의 개수를 홀수 또는 짝수로 규정하여 결함을 감지
Checksum
  • 하나의 블록 정보 합 기반 정보 결함 감지
Berger Code
  • 하나의 Data 중 “1”의 개수를 2진 정보로 추가
Hamming Code
  • 결함 감지 및 단일 결함을 교정하는 코드 기법
  • 신속한 결함 복구를 위한 HW 측면의 FTS와 유연한 방식인 SW 측면의 FTS를 용도에 맞게 적용 필요

 
III. FTS와 HA(High Availability, 고가용성) 비교

항목FTSHA
결함시간0초30 ~ 300초
Concurrent 유지보수필수불필요
동일 성능 가격10 ~ 20배2배 이상
응용 프로그램제한적대다수 범용 제품
운영체제전용 운영체제 필요범용 운영체제
하드웨어전용 하드웨어 필요범용 하드웨어
  • FTS는 국방, 교통, 우주, 해양 등 미션크리티컬 서비스에 활용 가능
  • 서비스 중요도와 비용 효율성 요건에 따라 FTS 및 HA를 선택적 이용 필요

 
[참고]

  • 위키백과, “장애 허용(결함 감내) 시스템”, 2019.12

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^