[테스트 환경]
VM 2개에서 1번 장비에 instance 3개, 2번 장비에 instance 3개 띄우고,
redis-trib replica 옵션의 슬레이브 개수를 1로 설정하여 진행
redis-trib에서 해주는대로 master, slave 구성을 하였고, 1번 머신에 master 2개, slave 1개, 2번 머신에 slave 1개, master 2개로 구성이 됨. (자동 구성이지만, 같은 머신을 기준으로 master, slave 구성을 하지는 않는 것으로 보인다. 나름 고려가 된듯)
슬레이브가 마스터로 승격하는 시간은, conf파일에서 지정 가능함. cluster-node-timeout
[Case]
1. 1번 머신에 있는 master한대를 죽여봄.
- 2번 머신의 slave가 master가 되어 서비스에 영향 없음 (O)
2. 1번 머신에 있는 slave를 죽여봄.
- 1번 머신의 slave만 죽은 상태로 유지되며, master가 떠있으므로 서비스에 영향 없음 (O)
3. 1번 머신에 있는 master를 죽이고, 해당 master와 연결된 slave를 죽임.
- cluster down이라는 메시지가 발생하며, 서비스 불가. 장애 복구가 필요한 시점임. (X)
> 복구 Case
1. slave를 먼저 올림. (서비스 불가. 여전히 cluster down이라는 메시지 발생) (X)
2. master를 먼저 올림. (서비스 가능. master로만 붙어서 데이터 처리를 함) (O)
결론은 master, slave 둘다 떨어졌을 때는, 어플리케이션 단에서 아예 요청을 그쪽으로 보내지 않도록 처리를 해야하고,
복구 할때는 master를 먼저 올리도록 하자.
뭐가 마스터인지는 아무노드 터미널에 들어가서 cluster nodes하면 나옴.
FailOver자체가 머신이 하나 꺼졌을 경우를 대비하는 거라, master, slave둘다 떨어졌다는건 지금 같은 상황에선 머신 2대가 떨어졌다는걸로 판단을 해야 한다.
장비 2대 떨어지는 게 두렵다면, 장비를 더 붙여서 cluster구성을 하는 게 맞을듯.. 가이드문서에도 보면 Master Node는 최소 3개이상 가지고 있어야 된다고 한다. 즉 클러스터를 쓰려면 최소 3대의 머신정도는 구성을 해야, 머신 하나가 죽어도 서비스가 가능하다. 2대로 구성하니 한대만 죽어도 클러스터 다운이라고 에러 메시지를 뱉는다. VM을 3개까지 띄우긴 귀찮아서 여기까지만 하는걸로..
'개발 > Redis' 카테고리의 다른 글
[PHPRedmin] Windows 세팅 (0) | 2016.06.11 |
---|---|
[Redis] 3.0.2 Cluster 구성 (0) | 2016.06.11 |
[Jedis] Cluster Configuration (0) | 2016.06.11 |
[Redis] Copy Key (0) | 2016.06.11 |