tablet server 를 그냥 내리면 그 서버가 갖고 있던 replica 가 사라져 under-replicated 상태가 된다. Kudu 1.12 이상(CDH 6.3+ · CDP)은 maintenance 모드로 빼고 replica 를 옮긴 뒤 제거하는 절차를 제공한다. 여러 대를 빼야 하면 반드시 한 대씩 순차로 한다.
대상 tserver 의 UUID 는 Kudu Master Web UI(http://<master>:8051)의 /tablet-servers 에서 확인한다.
# 1) 현재 상태 확인 — 시작 전 클러스터가 healthy 여야 한다
sudo -u kudu kudu cluster ksck <m1>,<m2>,<m3>
# 2) maintenance 모드 진입
sudo -u kudu kudu tserver state enter_maintenance <m1>,<m2>,<m3> <TSERVER_UUID>
# 3) replica 를 다른 서버로 이전
sudo -u kudu kudu cluster rebalance <m1>,<m2>,<m3> \
--ignored_tservers=<TSERVER_UUID> \
--move_replicas_from_ignored_tservers
# 4) 이전 완료 확인 — 대상 서버에 replica 가 남지 않아야 한다
sudo -u kudu kudu cluster rebalance <m1>,<m2>,<m3> \
--report_only --output_replica_distribution_details
sudo -u kudu kudu cluster ksck <m1>,<m2>,<m3>
# 5) 프로세스 중지 후 클러스터에서 제거
sudo -u kudu kudu tserver state exit_maintenance <m1>,<m2>,<m3> <TSERVER_UUID>
5 단계 전에 CM 에서 해당 호스트의 Kudu Tablet Server 역할을 중지하고 삭제한다. RF=3 에서 tserver 가 3 대뿐이면 replica 를 옮길 곳이 없어 이전이 끝나지 않으므로, 남는 서버 수가 RF 이상인지 먼저 확인한다.
--ignored_tservers 와 리밸런서 동작.