This patch set mainly add reweight support after sizes of nodes get changed by plug/unplug. The rationale for reweighting instead of auto-reweighting for every plug/unplug event is that, people don't want plug/unplug or disk crashes in one node put the the whole cluster in recovery. Instead, people can do manual reweighting at their will because md event doesn't degrade the data reliability or availibility. Also fixes 'node info' output usage: $ collie cluster reweight # trigger reweighting and data rebalance across cluster Liu Yuan (10): sheep: reanme {set,get}_cluster_space as _node_space tests: use mkfs.ext3 only for _make_device sheep: remove '-s' option collie: fix 'node info' sheep: fix 'md info' collie: show available command only for subcommand recovery: don't assume old_epoch is sys->eopch - 1 sheep: add 'cluster reweight' support recovery: don't notify completion for md recovery tests: add 063 to test reweight collie/cluster.c | 14 +++++++ collie/collie.c | 7 ++-- collie/node.c | 13 +++--- include/internal_proto.h | 4 +- sheep/config.c | 4 +- sheep/group.c | 22 +++++++++- sheep/md.c | 27 ++++++++---- sheep/ops.c | 105 +++++++++++++++++++++++++++++++++++++--------- sheep/plain_store.c | 12 +++--- sheep/recovery.c | 32 ++++++++++---- sheep/sheep.c | 14 +------ sheep/sheep_priv.h | 9 ++-- sheep/store.c | 6 +-- tests/010 | 4 +- tests/016 | 4 +- tests/016.out | 8 ++-- tests/042 | 2 +- tests/042.out | 82 ++++++++++++++++++++---------------- tests/044 | 4 +- tests/044.out | 8 ++-- tests/054 | 12 +++++- tests/057.out | 48 ++++++++++----------- tests/058 | 6 +-- tests/058.out | 16 +++---- tests/063 | 44 +++++++++++++++++++ tests/063.out | 30 +++++++++++++ tests/common.filter | 7 +++- tests/common.rc | 20 +-------- tests/group | 1 + 29 files changed, 383 insertions(+), 182 deletions(-) create mode 100755 tests/063 create mode 100644 tests/063.out -- 1.7.9.5 |