cluster_failover_nodesconf_copy
Redis CLUSTER nodes.conf 파일을 이용한 장애복구
Redis Cluster 教育 Redis Cluster Course |
Redis 定期点検/技術支援 Redis Technical Support |
Redis エンタープライズサーバ Redis Enterprise Server |
---|
CLUSTER nodes.conf 파일을 이용한 장애복구
nodes.conf 파일을 사용한 복구
- nodes.conf 파일은 클러스터 모드일때 각 노드의 정보를 보관하는 파일이다. 기록은 레디스 서버가 한다. 내용은 cluster nodes 명령을 실행했을때 나오는 정보를 기록한 것이다. 사용자가 편집할 수 없다고 하지만, 편집 가능하다. 다음은 nodes.conf 파일 내용이다.
- 테스트 환경
- 3 노드 클러스터: 5001, 5002, 5003
- cluster-require-full-coverage yes로 설정, no로 설정해도 상황은 같으나, yes로 설정했을 경우가 클러스터를 빨리 살려야 하는 긴박한 상황이므로 nodes.conf를 사용한 테스트에 더 적합하다 할 수 있다.
- 다음은 테스트 순서 요약이다.
- 3 노드 클러스터 시작: 5001, 5002, 5003
- 5001번 노드 다운
- 5001번 서버(머신)을 살릴 수 없을 경우, 빠르게 다른 머신(박스)를 준비
- 새 서버에 5002번 nodes.conf를 복사해서 레디스 시작
- 클러스터 복구 완료
- 테스트 순서를 그림으로 표현하면 아래와 같다.
- 레디스 시작
- 클터스터 시작
- 5001번 노드 다운
- 클러스터 다운
- 새 머신(박스)를 준비한다. IP와 port는 달라도 된다. nodes.conf 파일 복사하고 편집한다.
여기서는 포트 5004번을 준비했다.
- nodes.conf 파일 복사
- nodes.conf 내용 수정: 5002는 'myself,'를 삭제한다.
5001은 '127.0.0.1:5001 master,fail' 을 '127.0.0.1:5004 myself,master'로 수정한다.
고칠 필요가 없는 항목은 표시하지 않았다.
수정 전 - 5004번 redis 시작
# cp 5002/nodes.conf 5004/
c9c050ce14afa53c1a8b70c7ae9eb252ce49a971 127.0.0.1:5002 myself,master수정 후
fb49879f47ae09ddf41e797c1f3428cd478a0183 127.0.0.1:5003 master
34192c4b802580dd7eaf39700d2fa9ec8d3a172b 127.0.0.1:5001 master,failc9c050ce14afa53c1a8b70c7ae9eb252ce49a971 127.0.0.1:5002 master
fb49879f47ae09ddf41e797c1f3428cd478a0183 127.0.0.1:5003 master
34192c4b802580dd7eaf39700d2fa9ec8d3a172b 127.0.0.1:5004 myself,master$ ./redis-server ./5004/redis.conf
- 5002, 5003번 서버 메시지: 노드 주소가 수정되었고, 장애가 복구되었서 클러스터 상태가 정상이라는 메시지가 나온다.
- 이 방법을 사용하지 않으면, cluster forget, cluster meet, redis-trib reshard 명령등으로 복구해야 한다. 이 방법은 레디스 클러스터 장애복구에 잘 나와 있다.
c78596fffb8248ff68b1a44829fb17a9f516487c 127.0.0.1:5002 myself,master - 0 0 2 connected 5461-10922
53521dcff885d3ee9beb56f00cbba3b1fc7beead 127.0.0.1:5003 master - 0 1437202857947 3 connected 10923-16383
345fc3d83f09c48800f1c3db197db7be23cf41fc 127.0.0.1:5004 master - 0 1437202858849 1 connected 0-5460
vars currentEpoch 3 lastVoteEpoch 0
53521dcff885d3ee9beb56f00cbba3b1fc7beead 127.0.0.1:5003 master - 0 1437202857947 3 connected 10923-16383
345fc3d83f09c48800f1c3db197db7be23cf41fc 127.0.0.1:5004 master - 0 1437202858849 1 connected 0-5460
vars currentEpoch 3 lastVoteEpoch 0
$ ./redis-server ./5001/redis.conf
$ ./redis-server ./5002/redis.conf
$ ./redis-server ./5003/redis.conf
$ ./redis-server ./5002/redis.conf
$ ./redis-server ./5003/redis.conf
$ ./redis-trib.rb create --replicas 0 127.0.0.1:5001 127.0.0.1:5002 127.0.0.1:5003
$ ./redis-cli -p 5001 shutdown
$ ./redis-cli -p 5002 cluster info
cluster_state:fail
cluster_state:fail
# Address updated for node 34192c4b802580dd7eaf39700d2fa9ec8d3a172b, now 127.0.0.1:5004
* Clear FAIL state for node 34192c4b802580dd7eaf39700d2fa9ec8d3a172b: is reachable again and nobody is serving its slots after some time.
# Cluster state changed: ok
* Clear FAIL state for node 34192c4b802580dd7eaf39700d2fa9ec8d3a172b: is reachable again and nobody is serving its slots after some time.
# Cluster state changed: ok
<< Data Center Failover | Cluster Failover using nodes.conf | Cluster Heartbeat Check Load >> |
---|
Email
返事がかかってなれば、メールでお知らせします。