Balancer needs to balance with in a storage tier. A couple of works:
- add an option of storageType in balancer CLI to balance data on a specific storage type.
- add storageType to BalancingPolicy
- need new API (getDatanodeReport(StorageType) peer with getDatanodeReport() before) in ClientProtocol to get storage related info from NN so that balancer can choose storages as <source, target> balancing pair.
- update chooseDatanodes() algorithm to choose storages on the same DN first in setting up <under-utilization, over-load> pairs.