상태 기계 복제
개요
상태 기계 복제(State Machine Replication, SMR)는 분산 시스템에서 동일한 상태와 동작을 보장하는 복수의 서버(노드) 를 이용해 시스템 전체의 신뢰성·가용성을 향상시키는 기술이다. 각 서버는 동일한 순서로 입력을 처리함으로써 동일한 상태를 유지하고, 따라서 하나 이상의 서버에 장애가 발생하더라도 서비스는 중단되지 않는다. 이 방식은 주로 분산 데이터베이스, 파일 시스템, 클라우드 서비스, 블록체인 등에서 활용된다.
원리
- 입력 순서 결정(총합 순서 결정, Total Order Broadcast)
- 모든 복제본이 동일한 순서로 명령을 수신하도록 보장한다. Paxos, Raft, Viewstamped Replication과 같은 합의 알고리즘이 사용된다.
- 동일한 상태 전이
- 각 복제본은 동일한 애플리케이션 로직(상태 기계)를 실행한다. 입력을 수신하면 동일한 상태 전이 함수를 적용해 새로운 상태를 만든다.
- 결과 응답
- 복제본 중 다수(또는 전체)의 응답을 검증 후 클라이언트에게 결과를 반환한다. 이는 일관성을 보장한다.
주요 알고리즘
| 알고리즘 | 특징 | 대표 구현 |
|---|---|---|
| Paxos | 비동기 네트워크에서 안전성을 보장, 구현 복잡 | Google Chubby, etcd |
| Raft | 이해·구현이 용이하도록 설계, 리더 기반 | Consul, etcd, RethinkDB |
| Viewstamped Replication | 초기 SMR 모델, 리더-팔로워 구조 | 원래 Xerox PARC 연구 |
| ZAB (ZooKeeper Atomic Broadcast) | ZooKeeper 전용, 강한 일관성 제공 | Apache ZooKeeper |
적용 분야
- 분산 파일 시스템: Google File System(GFS), HDFS의 메타데이터 관리
- 키‑값 저장소: etcd, Consul, Redis Cluster (주로 Raft)
- 블록체인: 비잔틴 장애 허용(BFT) SMR 구현(BFT‑SMR)
- 마이크로서비스 오케스트레이션: Kubernetes의 etcd 기반 구성 저장소
장점
- 고가용성: 장애 발생 시 다른 복제본이 서비스 지속
- 데이터 일관성: 모든 복제본이 동일한 상태 유지(선형화 가능)
- 스케일 아웃: 복제본 추가로 읽기 성능 향상 가능
한계·과제
- 성능 병목: 총합 순서 결정 단계에서 레이턴시 증가
- 리소스 비용: 복제본 다중 운영에 따른 하드웨어·운영 비용 증가
- 복잡한 장애 복구: 네트워크 파티션·리더 충돌 상황에서 복구 로직이 복잡
관련 연구
- BFT-SMaRt (Cachin et al., 2011) – 비잔틴 장애 허용을 포함한 SMR 프레임워크
- Chain Replication (Van Renesse & Schneider, 2004) – 파이프라인 방식의 고성능 복제
- Fast Paxos (Lamport, 2006) – 메시지 라운드 수 최소화
외부 링크
- Paxos Made Simple – Leslie Lamport
- Raft Consensus Algorithm – Diego Ongaro & John Ousterhout
- Apache ZooKeeper 공식 문서
참고 문헌
- Lamport, L. (1998). The Part-Time Parliament. ACM Transactions on Computer Systems.
- Ongaro, D., & Ousterhout, J. (2014). In Search of an Understandable Consensus Algorithm (Extended Version). USENIX ATC.
- Cachin, C., Kursawe, K., & Shoup, V. (2011). BFT-SMaRt: High-performance Byzantine Fault Tolerant State Machine Replication. In DSN.
이 항목은 최신 연구와 실무 적용 사례를 종합하여 작성되었으며, 향후 기술 발전에 따라 내용이 업데이트될 수 있다.