ent_server_admin
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
답글이 올라오면 이메일로 알려드리겠습니다.