Redis Visual Manager Octo #8
Cluster Configuration IV Expand/Collapse

<< 옥토 클러스터 구성 III 반자동 옥토 클러스터 구성 V 슬롯 삭제 >>

레디스 클러스터 확장(노드 추가)/축소(노드 제거)

  • 클러스터 확장(노드 추가)과 축소(노드 제거)를 자유롭게 할 수 있습니다.
  • Assign 방법: 슬롯의 범위를 지정해서 이동(migration)
  • Reshard 방법: 슬롯 개수를 지정해서 이동(migration)

동영상 설명이 준비되어있습니다.


동영상 길이: 12분

클러스터 확장: 노드 추가

  1. 6개 노드, 3개 마스터로 운영
    Cluster Expand 1: state
  2. 3개 마스터의 슬롯과 키 현황
    Cluster Expand 2: slots
  3. 노드 추가
    Cluster Expand 3: add node
  4. 추가된 노드에 Reshard 방식으로 슬롯 이동: 입력된 4096개의 슬롯을 기존 3개 마스터에서 균등하게 추출해 새 노드로 이동한다.
    Cluster Expand 4: Reshard
  5. 슬롯 이동 확인
    Cluster Expand 5: Reshard Confirm
  6. 슬롯 이동 완료
    Cluster Expand 6: Reshard Completed
  7. 이동한 슬롯과 키 확인: 4개 마스터에 4096개 씩 균등하게 분배되었다.
    Cluster Expand 7: Reshard check
  8. 새 노드에 복제 구성까지 하면 완료.
    Cluster Expand 8: Replication Completed

클러스터 축소: 노드 제거

  1. 8개 노드, 4개 마스터로 운영 중, 103:7000번 마스터의 슬롯과 키를 나머지 3개 마스터에 균등하게 이동시키고 제거
    Cluster Collapse Delete node  1: Ready
  2. 'Assign' 버튼을 클릭해서 슬롯 이동 실행
    Cluster Collapse Delete node 2: Assign
  3. 슬롯 이동 확인
    Cluster Collapse Delete node 3: Assign Comfirm
  4. 슬롯 이동 완료
    Cluster Collapse Delete node 4: Assign Completed
  5. 0-1365번 슬롯과 이에 포함된 키를 7000번 노드에서 7001번 노드로 이동한 것을 확인
    Cluster Collapse Delete node 5: Check
  6. 1366-2730번 슬롯과 키를 7000번 노드에서 7002번 노드로 이동
    Cluster Collapse Delete node 6: Assign 2
  7. 2371-4095번 슬롯과 키를 7000번 노드에서 7003번 노드로 이동
    Cluster Collapse Delete node 7: Assign 3
  8. 7000번 노드에 있던 모든 슬롯과 키가 이동되었다.
    Cluster Collapse Delete node 8: Check
  9. 7000번과 클론인 7003번을 cluster reset 명령으로 클러스터에서 탈퇴시켜 노드 제거 완료
    Cluster Collapse Delete node 9: Remove Completed

Assign 방식

  • Assign 방식은 슬롯 범위를 지정해서 선택한 노드로 이동하는 슬롯을 이동하는 방식이다. 지정한 슬롯 범위가 한 노드에 있건, 여러 노드에 걸처 있건 상관없이 이동된다.
  • 한 노드에 있는 슬롯 이동
    1번 노드에 0-1000 슬롯이 있을 때, 500-600 슬롯을 2번 노드로 이동하면 1번 노드에는 0-499, 601-1000 슬롯이 남는다.
    Cluster Slots Assign 1
  • 슬롯 이동과 추가를 한 번에 실행
    1번 노드에 0-1000 슬롯이 있을 때, 500-1500 슬롯을 지정하면 500-1000 슬롯은 이동하고 1001-1500 슬롯은 신규로 추가된다.
    Cluster Slots Assign 2
  • 여러 노드에 걸처 있는 슬롯 이동
    1번 노드에 0-100, 2번 노드에 101-200, 3번 노드에 201-300 슬롯을 가지고 있을 때 4번 노드에 이동할 슬롯 범위를 50-250 지정했다면 1번 노드에서 50-100, 2번 노드에서 101-200, 3번 노드에서 201-250 번 슬롯을 4번 노드로 이동한다.
    Cluster Slots Assign 3

Reshard 방식

  • Reshard 방식은 슬롯수를 지정해서 이동하는 방식으로, 다른 노드들이 보유하고 있는 슬롯수 비율에 맞게 선정해서 이동합니다.
  • 각 노드에 100, 200, 300개 슬롯이 있고 이동할 슬롯을 100개로 입력했을 경우 Cluster Slots Reshard
  • 표로 정리
  • 노드슬롯슬롯수남아있는 슬롯이동한 슬롯수이동한 슬롯
    1번 노드0-991000-821783-99
    2번 노드100-299200100-26633267-299
    3번 노드300-599300300-54950550-599

Redis-trib의 reshard와 비교

  • 특정 슬롯 범위를 지정해서 이동할 수 없다.
  • 모든 슬롯이 할당된 후에 reshard를 할 수 있다. 즉, 클러스터 구성 중에는 reshard를 사용할 수 없다.
  • 소스 노드를 일일이 지정해야 한다.
  • 슬롯의 앞 부분부터 이동가져간다. 즉, 0-99를 보유한 노드에 10을 reshard했다면 0-9를 이동시키고, 10-99가 남게된다.   이 경우 옥토는 90-99를 이동시키고 0-89를 남긴다.

수동으로 슬롯과 키(데이터)를 이동하는 절차

  1. target node: Cluster SetSlot #slot Importing <source-node-id>
  2. source node: Cluster SetSlot #slot Migrating <target-node-id>
  3. source node: Cluster CountKeysInSlot #slot
  4. source node: Cluster GetKeysInSlot #slot <count>
  5. source node: Migrate target-ip port key destination-db -> per key
  6. all master nodes: Cluster SetSlot #slot Node <target-node-id>



<< 클러스터 구성 III 반자동 클러스터 구성 IV 확장/축소 클러스터 구성 V 슬롯 삭제 >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

Email 답글이 올라오면 이메일로 알려드리겠습니다.