kudu cluster rebalance <masters> 의 주요 옵션이다 (소스 tool_action_cluster.cc 기준).
| 옵션 | 기본값 | 의미 |
|---|---|---|
--max_moves_per_server |
5 | 태블릿 서버당 동시 이동 수. move from · move to 각각 계산 |
--max_run_time_sec |
0 | 최대 실행 시간. 0 은 균형이 잡힐 때까지 |
--max_staleness_interval_sec |
300 | 진행이 없을 때 종료까지 대기 |
--load_imbalance_threshold |
1.0 | 크로스-로케이션(랙) 불균형 임계값. 단일 로케이션에는 영향 없음 |
--move_single_replicas |
auto | RF=1 태블릿 이동 여부 |
--ignored_tservers |
없음 | 무시할 tserver UUID |
--report_only |
false | 이동 없이 분포만 출력 |
--disable_cross_location_rebalancing |
false | 랙 간 리밸런싱 비활성 |
--load_imbalance_threshold 는 랙 인식 클러스터의 크로스-로케이션 단계에만 쓰이므로 단일 랙에서는 값을 바꿔도 속도가 달라지지 않는다. 실질적인 조정은 --max_moves_per_server 다. 태블릿 복사는 네트워크가 병목이므로 리밸런싱 중 sar -n DEV 1 · iostat -xm 1 로 보며 단계적으로 올린다. 예를 들어 기본값 5 에서 네트워크가 100 MB/s(대역 300 MB/s) 쓰이면 이동 하나당 약 20 MB/s 이므로 8 → 10 정도까지 올릴 수 있고, 250 MB/s 를 넘기면 RPC 타임아웃이 연쇄적으로 나므로 다시 낮춘다.
sudo -u kudu kudu cluster rebalance master-01,master-02,master-03 --max_moves_per_server=8
sudo -u kudu kudu cluster rebalance master-01,master-02,master-03 --disable_cross_location_rebalancing --max_moves_per_server=8
리밸런서는 기존 레플리카를 옮겨 skew 를 줄일 뿐, 부족한 레플리카를 새로 만들지 않는다. under-replicated 는 마스터의 재복제가 처리한다.
Recovering 중인 태블릿은 이동 대상에서 제외된다.sudo -u kudu kudu cluster ksck master-01,master-02,master-03 --sections TABLE_SUMMARIES
sudo -u kudu kudu cluster ksck master-01,master-02,master-03 --tables master.dyn_so --ksck_format=plain_full
sudo -u kudu kudu cluster rebalance master-01,master-02,master-03 --report_only --output_replica_distribution_details
Summary by table 의 Under-replicated 열이 0 보다 큰 테이블이 대상이다.