내결함성(Fault Tolerance)과 고가용성(High Availability)의 차이 및 구현 기법
Source
Evernote/Papers/Fault Tolerance Is Not High Availability - DZone Performance.md
Summary
본문은 고가용성(HA)과 내결함성(FT)의 핵심 차이를 설명한다. HA는 시스템의 가동 시간과 성능 유지를 최우선으로 하지만, 실패 시 개별 요청의 최종 상태 정확성을 보장하지는 않는다. 반면 FT는 성능 저하를 감수하더라도 오류 발생 시에도 요청이 올바르게 완료되도록 보장한다. 소프트웨어 수준의 FT 구현을 위해 중복성(Redundancy) 기법을 소개하며, 대표적으로 다수결 원리로 오류를 수정하는 삼중 모듈 중복(TMR)과 메시지 자체에 오류 정정 정보를 추가하는 순방향 오류 정정(FEC)을 다룬다.
Key Points
- 고가용성(HA)은 다운타임 최소화와 성능 유지에 중점을 두지만, 실패 시 개별 트랜잭션의 성공을 보장하지 않음 (예: 500 에러 발생 가능).
- 내결함성(FT)은 성능 저하를 감수하더라도 오류 발생 시에도 요청이 정상적으로 완료되도록 보장함.
- FT는 주로 하드웨어 수준(미러링 등)보다 소프트웨어 수준에서의 구현 기법에 초점을 맞춤.
- 중복성(Redundancy)은 핵심 구성 요소의 중복을 통해 오류를 감지하고 우회하는 FT의 기본 전략임.
- 삼중 모듈 중복(TMR)은 3개의 시스템이 동일한 작업을 수행하고 다수결로 결과를 결정하여 단일 오류를 수정하는 방식임.
- 순방향 오류 정정(FEC)은 메시지 자체에 중복 정보를 추가하여 수신 측에서 채널 노이즈로 인한 오류를 직접 정정하는 방식임 (예: Reed-Solomon 코드, 2D 바코드).
- 이러한 고도화된 FT 기법은 비용 대비 효율성 문제로 인해 항공우주, 자동차 제어 등 안전이 중요한 임무비중(Mission-critical) 시스템에 주로 적용됨.