Enterprise Administration


레디스 엔터프라이즈 서버 Active 3노드 운영 가이드(주의사항)

1분 간격을 두고 시작

  • 레디스 서버는 1분 간격을 두고 시작합니다.
    예) 1호기 시작 -> 1분 후 -> 2호기 시작 -> 1분 후 -> 3호기 시작
    Linux cmd ex) start1.sh; sleep 61; start2.sh; sleep 61; start3.sh;

3노드 운영 중 한 노드가 다운된 경우(예: 2호기 다운)

  • 운영 중에는 다운된 노드를 다시 시작하지 않습니다.
    다시 시작하여 사용할 수는 있으나 경우에 따라 다른 2개 노드와 키 개수(데이터 정합성)가 맞지 않을 수 있습니다.
    A) 입력/삭제가 반복된 경우: 키 개수가 맞지 않을 수 있습니다.
    B) 입력/수정이 반복된 경우: 키 개수가 맞습니다.
    C) 입력만 반복된 경우: 키 개수가 맞습니다.
  • 맞지 않는 원인:
    A) 2호기를 다시 시작하면 운영 중인 1,2호기와 하나씩 동기화를 합니다.
    B) 2호기가 1호기와 동기화 완료 후 3호기와 동기화를 시작하는 시점이 1~2초 정도 시간 간격이 있습니다.
    C) 이 사이 키가 삭제가 반복되면 삭제된 키가 2호기에 다시 원복 될 수 있습니다.
    D) 결과적으로 1,3호기 보다 2호기의 키 개수가 많아 집니다.
  • 2호기를 다시 시작하는 방법
    A) 3호기에 접속한 AP를 중지하거나, 1호기에 접속하도록 합니다.
    결과적으로 3호기에 데이터 입력이 없게 합니다.
    B) 2호기를 시작합니다. 이 때 사전에 2호기의 데이터를 삭제합니다. (rm –f data/*)
    데이터 삭제 이유:
      ① 데이터(AOF)를 로드하는데 시간이 걸립니다.
      ② 초기 로드된 데이터가 다를 경우 서로 데이터가 맞지 않을 수 있습니다.
    C) 3개 노드 동기화(info clone)가 정상인지 확인합니다.
    D) 2호기와 3호기에 AP에 가동합니다.

노드 운영 중 두 노드가 다운된 경우(예: 2,3호기 다운)

  • 2호기, 3호기를 담당한 AP를 중지하거나 1호기에 접속하게 합니다.
  • 2호기, 3호기를 1분 간격으로 다시 시작합니다. 이 때 사전에 2호기, 3호기의 데이터를 삭제합니다. (rm –f data/*)
  • 3개 노드 동기화(info clone)가 정상인지 확인합니다.
    1,2,3호기 키 개수(데이터)도 확인합니다.
  • 2호기, 3호기를 담당한 AP를 가동합니다.

구성 파라미터 변경 내용(redis.conf)

  • 동기화 관련 파라미터
    A) client-output-buffer-limit replica 4gb 4gb 120
    B) repl-backlog-size 4gb
    C) repl-timeout 120
    파란색끼리, 빨간색끼리 맞춥니다.
  • 복제용 IP, Port 분리 관련 파라미터
    A) replica-announce-ip "192.168.56.100"
    B) replica-announce-port 7000
    ※ 동기화 시작 시에는 원래 포트를 사용합니다. startsync ip 6000

동기화 타임아웃(timeout)

  • 자신(myself) 서버가 시작했을 경우 대상 서버에 계속 시도합니다. 시간 제한 없음.
    (redis.conf 파일에 startsync ip port가 있는 경우)
    중지하려면 endsync ip port 명령을 실행합니다.
  • 동기화 중 대상 서버가 다운된 경우에는 5분 동안 재시도합니다.
    (3개 노드 운영중 노드2가 다운된 경우 노드1, 노드3이 노드2에 재시도하는 시간입니다)
    동기화를 다시 시작하려면 startsync ip port 명령을 실행합니다.
  • 동기화를 시작(startsync ip port)한 후 2분이 지나도 성공하지 못하면 중지합니다.
    (동기화 중 노드2가 다운된 경우)
    동기화를 다시 시작하려면 startsync ip port 명령을 실행합니다.
  • 소스: clone.c cloneCron()

조회수 :

Email 返事がかかってなれば、メールでお知らせします。