Sentinel 설정
code를 이용하여 redis를 설치했다면, sentinel은 자동으로 설치되어 있다. /lib/redis/redis-stable
경로의 sentinel.conf
file을 커스터마이징 해 보자.
먼저, 해당 file을 복사한 후 vim으로 연다.
1 | cd /lib/redis/redis-stable |
다음의 몇 가지를 수정하여 저장한다.
1 | protected-mode no |
다른 네트워크에서 정상적으로 sentinel을 사용하기 위해서는, 127.0.0.1
을 master의 ip로 설정하면 된다. 센티넬을 총 세 개 돌릴 것이기 때문에 이렇게 총 세 번을 반복해야 한다. 11002, 11003 file을 생성하여 수정해 보자.
1 | copy file |
아래를 참고하여 수정한다.
1 | 11002.conf |
Sentinel 실행 & 종료
sentinel은 다음의 명령으로 실행 가능하다.
1 | sudo redis-sentinel ./11001.conf & sudo redis-sentinel ./11002.conf & sudo redis-sentinel ./11003.conf & |
redis와 마찬가지로, 각각의 client shell에 정상적으로 접속하면 실행된 것이다. shell에서 info
를 입력하면 sentinel의 정보를 볼 수 있다.
1 | redis-cli -p 11001 |
다음의 명령어로 종료할 수 있다.
1 | redis-cli -p 11001 shutdown |
Redis, Sentinel 동작 확인
sentinel의 정상 동작을 확인하기 위해서는 master redis의 동작을 중지시켜야 한다. 6379 포트를 master로 설정하였기에, 이 포트를 사용하는 redis를 내려 보자.
1 | redis-cli -p 6379 shutdown |
master node가 중지될 경우, 다음과 같은 일이 일어날 것이다.
- 6382, 6383 redis가 master(6379)를 찾지 못한다.
- 특정 시간(conf file에서 정의함)이 지난 후, sentinel끼리 투표를 진행한다.
- 과반수 이상(conf file에서 정의함) 득표한 node가 새로운 master로 등록된다.
- 6379 redis가 재가동되면, 새로운 master와 동기화를 시도한다.
실제로 그러한지 로그로 확인 가능하다.
1 | redis log |
참고
- Sentinel 구성하기
- Sentinel 설명: 2013.04.28 기준