지속성 백엔드 아키텍처

지속성 백엔드 아키텍처

Consul 서버 에이전트가 Raft 인덱스 데이터를 저장할 때 사용하는 백엔드의 아키텍처를 소개해 드릴게요. 기본적으로 Consul은 Write-ahead log(WAL) LogStore를 사용해서 Raft 연산의 데이터를 영속화해요.

출처: 문서

본문

이 페이지는 Consul 서버 에이전트가 Raft 인덱스 데이터를 저장할 때 사용하는 백엔드의 아키텍처를 소개해요. 기본적으로 Consul은 Write-ahead log(WAL) LogStore를 사용해서 Raft 연산의 데이터를 영속화해요.

Raft 인덱스

Consul은 서버 간 컨센서스를 관리하기 위해 Raft 프로토콜을 사용하며, 이를 통해 모든 서버에 걸쳐 신뢰할 수 있고 내결함성이 있는 상태를 유지해요. 이 컨센서스 메커니즘은 개별 서버가 실패하거나 클러스터에서 일시적으로 연결이 끊겨도 일관된 서비스 디스커버리와 헬스 모니터링을 보장해요.

Raft 인덱스는 클러스터 상태의 기록을 제공해요. Consul 서버들이 선거를 진행하고, 서비스 인스턴스를 Consul 카탈로그에 등록하며, 서비스 노드 헬스 체크 결과로 카탈로그를 갱신할 때 서버 간 상호작용을 추적해요.

또한 Consul의 스냅샷 에이전트를 사용해서 전체 Raft 인덱스의 복사본을 저장할 수 있어요. 이 스냅샷을 사용하면 장애나 치명적인 오류가 발생했을 때 백업에서 데이터센터를 복원할 수 있어요. 데이터 영속성을 보장하기 위해 스냅샷을 클라우드 스토리지 버킷에 저장할 수 있어요.

데이터 디렉터리

Consul은 에이전트 설정의 data_dir 파라미터 또는 -data_dir CLI 플래그로 지정된 데이터 디렉터리에 Raft 인덱스를 기록해요. 데이터 디렉터리는 모든 에이전트에 필수이며, 재부팅 후에도 유지될 수 있도록 내구성이 있어야 해요.

Write-ahead log(WAL) LogStore 백엔드

Consul은 write-ahead log(WAL) LogStore 백엔드로 Raft 인덱스를 기록해요. WAL 백엔드는 회전하는 append-only 로그 파일을 사용하는 전통적인 로그를 구현하며, 대규모 환경에서 클러스터의 쓰기 성능에 영향을 주지 않으면서 로그를 유지해요.

이전 버전의 Consul은 BoltDB를 기본 LogStore 백엔드로 사용했어요. WAL LogStore 백엔드 개요를 참고해 주세요. WAL 대신 BoltDB를 사용하려면, WAL에서 BoltDB로 스토리지 백엔드 되돌리기를 참고해 주세요.

더 알아보기 (Learn more)