On 2012年08月03日 13:59, MORITA Kazutaka wrote: > At Wed, 1 Aug 2012 10:56:12 +0800, > levin li wrote: >> >> From: levin li <[email protected]> >> >> For sheep's first boot, we get the free disk space either by syscall >> or by user's determination though command line argement, and then we >> store the size into config file, and for later boot, we just read the >> size from config file, the space size can never be changed after first >> boot. >> >> The free space size of every node is notified to every other node though >> join message, and stored in sd_node, every time a new node joins or an >> old node leaves, we recalculate the vnodes number for every nodes. >> >> levin li (4): >> sheep: get the free disk space and store it in the config file >> sheep: add user-defined free disk space size >> sheep: recalculate the vnodes number when epoch changes >> sheep: remove command line argument --vnodes >> >> include/internal_proto.h | 1 + >> sheep/group.c | 24 +++++++++++++ >> sheep/sheep.c | 22 +++++++----- >> sheep/sheep_priv.h | 3 ++ >> sheep/store.c | 86 >> ++++++++++++++++++++++++++++++++++++++++++++++ >> 5 files changed, 127 insertions(+), 9 deletions(-) > > This patchset doesn't pass the following test: > > == > #!/bin/bash > > set -ex > > dd if=/dev/zero of=/tmp/0.img seek=$((2 * 1024 ** 3 - 1)) bs=1 count=1 > dd if=/dev/zero of=/tmp/1.img seek=$((4 * 1024 ** 3 - 1)) bs=1 count=1 > dd if=/dev/zero of=/tmp/2.img seek=$((8 * 1024 ** 3 - 1)) bs=1 count=1 > > for i in 0 1 2; do > mkfs.xfs /tmp/$i.img > mkdir /store/$i > mount -o loop /tmp/$i.img /store/$i > sheep -d /store/$i/ -z $i -p 700$i > done > > sleep 1 > > for i in 0 1 2; do > collie node list -p 700$i > done > == > > The expected result is: > > + collie/collie node list -p 7000 > M Id Host:Port V-Nodes Zone > - 0 127.0.0.1:7000 27 0 > - 1 127.0.0.1:7001 54 1 > - 2 127.0.0.1:7002 109 2 > + for i in 0 1 2 > + collie/collie node list -p 7001 > M Id Host:Port V-Nodes Zone > - 0 127.0.0.1:7000 27 0 > - 1 127.0.0.1:7001 54 1 > - 2 127.0.0.1:7002 109 2 > + for i in 0 1 2 > + collie/collie node list -p 7002 > M Id Host:Port V-Nodes Zone > - 0 127.0.0.1:7000 27 0 > - 1 127.0.0.1:7001 54 1 > - 2 127.0.0.1:7002 109 2 > > But I got the following output: > > + collie/collie node list -p 7000 > M Id Host:Port V-Nodes Zone > - 0 127.0.0.1:7000 42 0 > - 1 127.0.0.1:7001 85 1 > + for i in 0 1 2 > + collie/collie node list -p 7001 > M Id Host:Port V-Nodes Zone > - 0 127.0.0.1:7000 42 0 > - 1 127.0.0.1:7001 85 1 > + for i in 0 1 2 > + collie/collie node list -p 7002 > M Id Host:Port V-Nodes Zone > - 0 127.0.0.1:7002 64 2 > > > Thanks, > > Kazutaka > I just tested this patch set using your script, and it gives the output:
+ mkdir /store/2 + mount -o loop /tmp/2.img /store/2 + sheep/sheep -d /store/2/ -z 2 -p 7002 + sleep 1 + for i in 0 1 2 + collie/collie node list -p 7000 M Id Host:Port V-Nodes Zone - 0 127.0.0.1:7000 27 0 - 1 127.0.0.1:7001 54 1 - 2 127.0.0.1:7002 110 2 + for i in 0 1 2 + collie/collie node list -p 7001 M Id Host:Port V-Nodes Zone - 0 127.0.0.1:7000 27 0 - 1 127.0.0.1:7001 54 1 - 2 127.0.0.1:7002 110 2 + for i in 0 1 2 + collie/collie node list -p 7002 M Id Host:Port V-Nodes Zone - 0 127.0.0.1:7000 27 0 - 1 127.0.0.1:7001 54 1 - 2 127.0.0.1:7002 110 2 I think it's what we expected, as for your result, I think it's due to not rebase to the latest master which has just merged the delay recovery patch set, later I'll resend this patch set. thanks, levin -- sheepdog mailing list [email protected] http://lists.wpkg.org/mailman/listinfo/sheepdog
