05.KafkaClusterUpgrade,Expansion,Shrink

Kafka Cluster 확장

고유한 ID를 부여한 새로운 Broker를 Zookeeper Ensemble에 연결만 하면 됨 하지만, 자동으로 Partition을 새로운 Broker로 옮겨주지 않음

  • kafka-reassign-partitions 도구

  • Confluent Auto Data Balancer/Self-Balancing Cluster 기능

kafka-reassign-partitions 명령

계산 실수로 인한 문제 발생 가능성 존재

Confluent ADB(Auto Data Balancer)

Cluster내의 전체 Broker에 대한 Partition 리밸런싱을 명령어 하나로 자동 계산 및 수행

  • 한번에 하나의 리밸런싱만 수행 가능

  • 시스템 자원을 많이 사용 - Throttle(bytes/sec) 옵션으로 제어

  • Cluster내의 전체 Broker가 살아있을 때만 동작

Confluent Self-Balancing Cluster

On/Off 를 매우 간단하게 설정하며, 계산 및 실행을 모두 자동화

Broker 노드 추가시, 자동으로 리밸런싱 실행

Partition 이동

Downtime 없이 Partition을 이동

리밸런싱동안 Disk 사용률이 증가

Kafka Cluster 축소

Broker를 줄이는 이유?

  • Cluster 사용률이 낮을 경우, 비용을 아끼기 위해서

  • Broker 장비에 대한 유지보수 등

Broker 해제하는 방법

  • Auto Data Balancer 또는 kafka-reassign-partition을 사용하여, 제거할 Broker의 Partition들을 다른 Broker에 재할당

    • kafka-reassign-partition 는 Broker의 Partition들을 수작업으로 모두 옮겨야 함

    • Auto Data Balancer 는 --remove-broker-ids 옵션을 사용하여 제거할 Broker를 쉽게 지정하여 Partition 재할당

  • 제거할 Broker를 Controlled Shutdown(kafka-sever-stop)을 실행

Self-Balancing Cluster 는 kafka-remove-brokers 명령으로 제거할 Broker를 Shutdown만 하면 자동으로 Partition 재할당

Broker 장비 교체

Broker 장비 교체 시, 교체 대상 Broker의 ID 만 동일하게 설정하고 새로운 Broker를 기동

Peak 시간을 피해서 수행해야 함

  • Broker는 Recovery 중에 가능한 한 빨리 데이터를 빨리 복사 이는 네트워크에 중요한 impact 발생 가능

Last updated