카테고리 없음

Redis 최소 3개의 Quorum 3 Node Cluster 구성

idea9329 2024. 12. 3. 13:24
반응형

 

Redis에서 "최소 3개의 Quorum 3 Node Cluster 구성"은 고가용성(High Availability) 데이터 무결성을 보장하기 위해 3개의 노드로 이루어진 클러스터를 설정하고, Quorum(과반수 합의) 개념을 적용하여 장애 발생 시 복구를 관리하는 구조를 의미합니다.


1. Redis Cluster의 기본 개념

Redis 클러스터는 데이터를 분산 저장하고, 특정 노드에 장애가 발생하더라도 서비스가 중단되지 않도록 설계된 구조입니다.

1.1 클러스터 구성

  • 마스터 노드(Master): 데이터를 저장하고 클라이언트 요청을 처리.
  • 슬레이브 노드(Slave): 마스터의 복제본으로, 마스터 장애 시 대체 역할 수행.

1.2 Quorum(과반수 합의)

  • Quorum은 Redis Sentinel 또는 클러스터 환경에서 마스터 장애를 판단하고, 새로운 마스터를 선출하기 위한 합의 과정을 의미합니다.
  • Quorum 값이 3이면, 3개의 Sentinel 노드 또는 Redis 클러스터 노드 중 과반수(2개 이상)가 동의해야 장애를 처리하거나 마스터를 전환할 수 있습니다.

2. 최소 3개의 Quorum 3 Node Cluster의 의미

2.1 3개의 노드

  • 클러스터는 최소 3개의 노드로 구성됩니다:
    • 1개의 마스터 노드.
    • 2개의 슬레이브 노드.
  • 이유:
    • 고가용성: 하나의 노드가 장애를 겪더라도 서비스가 유지됨.
    • 데이터 안전성: 마스터 장애 시 슬레이브 중 하나가 마스터로 승격.

2.2 Quorum 3

  • Quorum 값이 3이라는 것은 장애 감지나 복구 작업을 수행하기 위해 3개 중 과반수(2개 이상의 합의)가 필요하다는 의미입니다.
  • 예시:
    • 3개의 노드 중 1개가 다운되더라도 나머지 2개가 합의하여 장애 복구 가능.
    • 하지만 2개 이상의 노드가 다운되면 Quorum을 만족하지 못해 복구 불가능.

3. 클러스터 구성 예시

Redis 클러스터 노드 설정

  1. 노드 구성:
    • 3개의 Redis 인스턴스를 실행: redis-node1, redis-node2, redis-node3.
    • 하나의 마스터와 두 개의 슬레이브로 구성.
  2. Redis 설정 파일 예시 (redis.conf):
    • redis-node1.conf:
      cluster-enabled yes
      cluster-config-file nodes.conf
      cluster-node-timeout 5000
      appendonly yes
    • 위 설정을 나머지 노드(redis-node2.conf, redis-node3.conf)에도 적용.
  3. 클러스터 초기화:
    • Redis 클러스터를 초기화하여 노드 연결:
      redis-cli --cluster create 192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 --cluster-replicas 1
    • --cluster-replicas 1: 각 마스터 노드당 하나의 슬레이브를 설정.

4. Sentinel을 사용한 Quorum 관리

Redis Sentinel을 추가로 사용하면 Quorum 기반의 장애 감지와 복구를 자동으로 처리할 수 있습니다.

Sentinel 구성 파일 예시 (sentinel.conf):

sentinel monitor mymaster 192.168.1.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel auth-pass mymaster mypassword
  • sentinel monitor:
    • mymaster: 모니터링할 마스터 이름.
    • 192.168.1.1 6379: 마스터 주소와 포트.
    • 2: Quorum 값 (과반수 합의 기준).

5. Quorum의 동작 원리

  1. 마스터가 장애를 겪는 경우:
    • Sentinel 또는 클러스터 노드 간에 Quorum 값(과반수)이 만족되면 마스터 장애로 판정.
    • 슬레이브 중 하나를 새로운 마스터로 승격.
  2. Quorum 값 충족 실패:
    • Quorum 값이 충족되지 않으면 장애 복구가 진행되지 않음.
    • 2개 이상의 노드가 다운되면 Quorum을 만족할 수 없으므로 서비스 중단.

6. 구성의 장점

  1. 고가용성:
    • 최소 3개의 노드로 구성하면 하나의 노드가 다운되더라도 서비스가 유지됨.
  2. 데이터 무결성:
    • Quorum을 사용하여 신뢰성 있는 마스터 전환 보장.
  3. 확장성:
    • 클러스터 노드를 쉽게 추가하여 데이터 용량과 처리 성능 확장 가능.

7. 주의사항

  1. Quorum 값 설정:
    • 노드 수의 절반 + 1 이상으로 설정해야 정상적으로 작동.
  2. 데이터 손실 방지:
    • 장애 복구 시 데이터 동기화 상태를 반드시 확인.
  3. 네트워크 안정성:
    • Quorum 합의 과정에서 네트워크 지연이 발생하면 장애로 잘못 판정될 가능성.

Redis의 3개의 Quorum 3 Node Cluster 구성은 고가용성과 데이터 무결성을 동시에 제공하기 위해 설계된 방식으로, 안정적이고 효율적인 데이터 처리를 보장합니다. 😊

반응형