# RAFT

3개의 포스트

RAFT 분산 시스템 알고리즘

RAFT는 분산 시스템에서 공통된 문제인 합의(consensus)를 이루기 위한 알고리즘이며, Paxos 알고리즘의 대안으로 간소화된 과정과 이해하기 쉬운 구조로 설계되었습니다. 분산 시스템에서는 여러 노드로 구성된 클러스터 내에서 데이터 무결성을 유지시키기 위해 합의가 필요합니다. RAFT 알고리즘은 이러한 합의 도달 과정을 쉽고 안정적으로 처리합니다. RAFT 알고리즘의 주요 개념: 클러스터의 역할: 노드는 세 가지 역할 중 하나를 가질 수 있습니다: 팔로워(Follower), 캔디데이트(Candidate), 리더(Leader). 팔로워: 팔로워는 클러스터 내의 일반적인 상태로, 명령 수신을 수행하는 역할입니다. 캔디데이트: 리더가 없거나 장애가 발생할 경우 캔디데이트가 선출 도전을 시작하여 리더가 될 수 있습니다. 리더: 클러스터 내에서 합의 과정을 담당하는 유일한 노드로, 로그 업데이트와 동기화를 통해 데이터 동기화를 담당합니다.

2023년 7월 26일
·
0개의 댓글
·
post-thumbnail

K8s 내 설치된 Vault의 백엔드 스토리지 Raft를 주기적으로 S3 Bucket에 백업하는 방법

K8s에 설치된 Vault 의 Raft 스토리지 스냅샷을 S3에 주기적으로 백업하는 K8s Cronjob 예시 이 글의 예제코드는 모두 https://github.com/kimsehwan96/k8s-vault-cronjob-backup-example 에 있습니다. 위를 통해 클론받으세요. Minikube 에서의 예제 사용 방법 vault-cronjob.yaml 에서 PUTYOURBUCKET_NAME을 여러분이 원하는 버킷명으로 변경해주세요. AWS S3 버킷명은 글로벌하게 unique 합니다. 지금은 S3 Bucket을 생성한 상태는 아니지만 괜찮습니다. 예시로 raft-snapshot-foo-bar-baz-bucket 등과 같이 지어주세요. minikube 를 이용해 테스트합니다. 여러분이 vault를 이미 생성하고, 초기화, 봉인해제 했다면 건너뛰셔도 좋습니다. vault 파드가 모두 생성됨을 확인하세요 이후 Vault의 초기

2022년 10월 13일
·
0개의 댓글
·
post-thumbnail

[ETCD] Raft Consensus Algorithm

Raft Consensus Algorithm raft는 etcd에서 채택하고 있는 분산합의 알고리즘이다. 분산합의 알고리즘은 노드들이 서로 상태를 교환하고, 동기화하는 일련의 과정을 의미한다. 분산합의 알고리즘은 대표적으로 Raft, Paxos, Apache Zookeeper에서 사용하는 ZAP등이 있다. Leader-Follower Raft에서는 Leader-Candidate-Follower의 클러스터 구조를 사용한다. 리더는 클러스터에서 이뤄지는 모든 변화를 기록하고 관리하는 역할을 담당한다. 팔로워는 주로 데이터를 읽는 기능과, 자신이 처리할 수 없는 요청을 리더로 전달하는 기능을 한다. Candidate는 현재 클러스터에서 리더에 문제가 생긴 경우, 리더가 될 자격을 갖춘 팔로워 노드에 해당한다. 이와 관련된 설명은 Election에서 다루었다. Log Replication 클라이언트로 부터 새로운 요청이 전달되

2021년 8월 10일
·
0개의 댓글
·