pool
Pool topology and per-disk breakdown (hoserva pool status).
Pool status
Per-disk pool breakdown for `hoserva pool status`, including each disk's own `removalState` where one is in progress.
Preview rebalancing the pool
Computes the rebalance plan: for every share with at least two branches, the files a rebalance would move from that share's own most-full disk to its own least-full disk to bring them within the skew tolerance, plus any path-preserving warnings, and the exact typed confirmation `startRebalance` requires. A data disk in removal (any `removalState`) is left out of every share's branches: the plan neither moves a file off it nor onto it. Read-only: nothing is copied, synced or deleted.
Rebalance the pool
Recomputes the rebalance plan (never trusting a client-supplied one — a stale plan can only omit or skip files at run time, never misdirect a copy or delete) and, once `confirmation` matches the exact phrase the matching `planRebalance` call returned, queues a resumable rebalance job that runs that plan unchanged: copy and verify every batch, sync through the threshold guard, delete the batch's sources, sync again, batched so no trailing sync this run makes can ever trip the guard after sources are already gone. The recomputed plan leaves out a data disk in removal the same way `planRebalance` does. A wrong or missing confirmation is refused (`confirmation_required`) before anything runs.