We use '-s' option as a hint of weighting. This actually doesn's stop sheep from using extar space that '-s' specifies. Ask users to give weight hint is nonsense if we can weight the node transparently. '-s' would be meaningless too when we add reweight support. This is a prepare patch for reweight patch. Signed-off-by: Liu Yuan <namei.unix at gmail.com> --- sheep/sheep.c | 14 +-------- 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/058 | 6 ++-- tests/058.out | 16 +++++----- tests/common.filter | 7 ++++- 12 files changed, 88 insertions(+), 79 deletions(-) diff --git a/sheep/sheep.c b/sheep/sheep.c index 7326b3b..2461f16 100644 --- a/sheep/sheep.c +++ b/sheep/sheep.c @@ -56,7 +56,6 @@ static struct sd_option sheep_options[] = { {'o', "stdout", false, "log to stdout instead of shared logger"}, {'p', "port", true, "specify the TCP port on which to listen"}, {'P', "pidfile", true, "create a pid file"}, - {'s', "disk-space", true, "specify the free disk space in megabytes"}, {'u', "upgrade", false, "upgrade to the latest data layout"}, {'v', "version", false, "show the version"}, {'w', "enable-cache", true, "enable object cache"}, @@ -498,7 +497,7 @@ int main(int argc, char **argv) char *dir, *p, *pid_file = NULL, *bindaddr = NULL, path[PATH_MAX], *argp = NULL; bool is_daemon = true, to_stdout = false, explicit_addr = false; - int64_t zone = -1, free_space = 0; + int64_t zone = -1; struct cluster_driver *cdrv; struct option *long_options; const char *log_format = "default"; @@ -573,17 +572,6 @@ int main(int argc, char **argv) } sys->this_node.zone = zone; break; - case 's': - free_space = strtoll(optarg, &p, 10); - if (optarg == p || free_space <= 0 || - UINT64_MAX < free_space || *p != '\0') { - fprintf(stderr, "Invalid free space size '%s': " - "must be an integer between 0 and " - "%"PRIu64"\n", optarg, UINT64_MAX); - exit(1); - } - sys->disk_space = free_space * 1024 * 1024; - break; case 'u': sys->upgrade = true; break; diff --git a/tests/010 b/tests/010 index b8f9c36..6800c2e 100755 --- a/tests/010 +++ b/tests/010 @@ -16,7 +16,7 @@ status=1 # failure is the default! _cleanup for i in `seq 0 4`; do - _start_sheep $i '-s 100' + _start_sheep $i done _wait_for_sheep 5 @@ -56,7 +56,7 @@ ls $STORE/*/obj/* | _filter_store | sort $COLLIE cluster recover disable for i in `seq 3 7`; do - _start_sheep $i '-s 100' + _start_sheep $i done _wait_for_sheep 8 diff --git a/tests/016 b/tests/016 index ae9608b..52a8bb8 100755 --- a/tests/016 +++ b/tests/016 @@ -16,7 +16,7 @@ status=1 # failure is the default! _cleanup for i in 0 1 2; do - _start_sheep $i "-s 4096" + _start_sheep $i done _wait_for_sheep 3 @@ -45,4 +45,4 @@ echo there should be no vdi $COLLIE vdi list echo there should be no object -$COLLIE node info +$COLLIE node info | _filter_node_info diff --git a/tests/016.out b/tests/016.out index f142181..271e028 100644 --- a/tests/016.out +++ b/tests/016.out @@ -4,9 +4,9 @@ there should be no vdi Name Id Size Used Shared Creation time VDI id Copies Tag there should be no object Id Size Used Use% - 0 4.0 GB 12 MB 0% - 1 4.0 GB 12 MB 0% - 2 4.0 GB 12 MB 0% -Total 12 GB 36 MB 0% +0 MASKED GB 12 MB MASKED +1 MASKED GB 12 MB MASKED +2 MASKED GB 12 MB MASKED +Total MASKED GB 36 MB MASKED Total virtual image size 0.0 MB diff --git a/tests/042 b/tests/042 index 576bf9e..7cbcb04 100755 --- a/tests/042 +++ b/tests/042 @@ -28,7 +28,7 @@ ln -s $STORE/0/sheep2.log $STORE/2/sheep.log ln -s $STORE/0/sheep3.log $STORE/3/sheep.log for i in `seq 0 3`; do - _start_sheep $i "-s $((1024 * 1024))" + _start_sheep $i done _wait_for_sheep 4 diff --git a/tests/042.out b/tests/042.out index 8f697c9..a7056cf 100644 --- a/tests/042.out +++ b/tests/042.out @@ -47,57 +47,57 @@ Failed to write VDI Failed to create VDI test2: Failed to write to requested VDI Failed to create VDI test3: Failed to write to requested VDI Id Size Used Use% - 0 1.0 TB 96 MB 0% - 1 1.0 TB 80 MB 0% - 2 1.0 TB 0.0 MB 0% - 3 1.0 TB 8.0 MB 0% -Total 4.0 TB 184 MB 0% + 0 1.1 GB 104 MB 9% + 1 1.1 GB 104 MB 9% + 2 4.0 MB 4.0 MB 100% + 3 4.0 MB 4.0 MB 100% +Total 2.1 GB 216 MB 9% Total virtual image size 200 MB M Id Host:Port V-Nodes Zone -- 0 127.0.0.1:7000 64 0 -- 1 127.0.0.1:7001 64 1 -- 2 127.0.0.1:7002 64 2 -- 3 127.0.0.1:7003 64 3 +- 0 127.0.0.1:7000 126 0 +- 1 127.0.0.1:7001 126 1 +- 2 127.0.0.1:7002 2 2 +- 3 127.0.0.1:7003 2 3 Id Size Used Use% - 0 1.0 TB 96 MB 0% - 1 1.0 TB 80 MB 0% - 2 1.0 TB 0.0 MB 0% - 3 1.0 TB 8.0 MB 0% -Total 4.0 TB 184 MB 0% + 0 1.1 GB 104 MB 9% + 1 1.1 GB 104 MB 9% + 2 4.0 MB 4.0 MB 100% + 3 4.0 MB 4.0 MB 100% +Total 2.1 GB 216 MB 9% Total virtual image size 200 MB M Id Host:Port V-Nodes Zone -- 0 127.0.0.1:7000 64 0 -- 1 127.0.0.1:7001 64 1 -- 2 127.0.0.1:7002 64 2 -- 3 127.0.0.1:7003 64 3 +- 0 127.0.0.1:7000 126 0 +- 1 127.0.0.1:7001 126 1 +- 2 127.0.0.1:7002 2 2 +- 3 127.0.0.1:7003 2 3 Id Size Used Use% - 0 1.0 TB 96 MB 0% - 1 1.0 TB 80 MB 0% - 2 1.0 TB 0.0 MB 0% - 3 1.0 TB 8.0 MB 0% -Total 4.0 TB 184 MB 0% + 0 1.1 GB 104 MB 9% + 1 1.1 GB 104 MB 9% + 2 4.0 MB 4.0 MB 100% + 3 4.0 MB 4.0 MB 100% +Total 2.1 GB 216 MB 9% Total virtual image size 200 MB M Id Host:Port V-Nodes Zone -- 0 127.0.0.1:7000 64 0 -- 1 127.0.0.1:7001 64 1 -- 2 127.0.0.1:7002 64 2 -- 3 127.0.0.1:7003 64 3 +- 0 127.0.0.1:7000 126 0 +- 1 127.0.0.1:7001 126 1 +- 2 127.0.0.1:7002 2 2 +- 3 127.0.0.1:7003 2 3 Id Size Used Use% - 0 1.0 TB 96 MB 0% - 1 1.0 TB 80 MB 0% - 2 1.0 TB 0.0 MB 0% - 3 1.0 TB 8.0 MB 0% -Total 4.0 TB 184 MB 0% + 0 1.1 GB 104 MB 9% + 1 1.1 GB 104 MB 9% + 2 4.0 MB 4.0 MB 100% + 3 4.0 MB 4.0 MB 100% +Total 2.1 GB 216 MB 9% Total virtual image size 200 MB M Id Host:Port V-Nodes Zone -- 0 127.0.0.1:7000 64 0 -- 1 127.0.0.1:7001 64 1 -- 2 127.0.0.1:7002 64 2 -- 3 127.0.0.1:7003 64 3 +- 0 127.0.0.1:7000 126 0 +- 1 127.0.0.1:7001 126 1 +- 2 127.0.0.1:7002 2 2 +- 3 127.0.0.1:7003 2 3 STORE/0/obj/00fd32fc00000000 STORE/0/obj/00fd32fc00000001 STORE/0/obj/00fd32fc00000002 @@ -118,29 +118,37 @@ STORE/0/obj/00fd34af00000005 STORE/0/obj/00fd34af00000006 STORE/0/obj/00fd34af00000007 STORE/0/obj/00fd34af00000008 +STORE/0/obj/00fd34af00000009 STORE/0/obj/00fd34af0000000a STORE/0/obj/80fd32fc00000000 STORE/0/obj/80fd34af00000000 +STORE/0/obj/80fd366200000000 STORE/0/obj/80fd381500000000 STORE/1/obj/00fd32fc00000000 STORE/1/obj/00fd32fc00000001 STORE/1/obj/00fd32fc00000002 STORE/1/obj/00fd32fc00000003 +STORE/1/obj/00fd32fc00000004 STORE/1/obj/00fd32fc00000005 STORE/1/obj/00fd32fc00000006 STORE/1/obj/00fd32fc00000007 STORE/1/obj/00fd32fc00000008 +STORE/1/obj/00fd32fc00000009 +STORE/1/obj/00fd32fc0000000a STORE/1/obj/00fd34af00000000 STORE/1/obj/00fd34af00000001 STORE/1/obj/00fd34af00000002 STORE/1/obj/00fd34af00000003 STORE/1/obj/00fd34af00000004 +STORE/1/obj/00fd34af00000005 STORE/1/obj/00fd34af00000006 +STORE/1/obj/00fd34af00000007 +STORE/1/obj/00fd34af00000008 STORE/1/obj/00fd34af00000009 STORE/1/obj/00fd34af0000000a STORE/1/obj/80fd32fc00000000 STORE/1/obj/80fd34af00000000 STORE/1/obj/80fd366200000000 STORE/1/obj/80fd381500000000 -STORE/3/obj/80fd32fc00000000 +STORE/2/obj/80fd32fc00000000 STORE/3/obj/80fd34af00000000 diff --git a/tests/044 b/tests/044 index a774bb5..c823ed5 100755 --- a/tests/044 +++ b/tests/044 @@ -20,7 +20,7 @@ fi _cleanup for i in 0 1 2; do - _start_sheep $i '-s 4096 -w size=1000' + _start_sheep $i "-w size=1000" done _wait_for_sheep 3 @@ -80,6 +80,6 @@ echo there should be no vdi $COLLIE vdi list echo there should be no object -$COLLIE node info +$COLLIE node info | _filter_node_info find $STORE/*/cache -type f | sort diff --git a/tests/044.out b/tests/044.out index c5edb88..49c19d4 100644 --- a/tests/044.out +++ b/tests/044.out @@ -4,9 +4,9 @@ there should be no vdi Name Id Size Used Shared Creation time VDI id Copies Tag there should be no object Id Size Used Use% - 0 4.0 GB 144 MB 3% - 1 4.0 GB 144 MB 3% - 2 4.0 GB 144 MB 3% -Total 12 GB 432 MB 3% +0 MASKED GB 144 MB MASKED +1 MASKED GB 144 MB MASKED +2 MASKED GB 144 MB MASKED +Total MASKED GB 432 MB MASKED Total virtual image size 0.0 MB diff --git a/tests/054 b/tests/054 index 80a404c..0649021 100755 --- a/tests/054 +++ b/tests/054 @@ -12,10 +12,18 @@ status=1 # failure is the default! . ./common.rc . ./common.filter +_need_to_be_root + _cleanup + +_make_device 0 $((1024 ** 3)) +_make_device 1 $((2 * 1024 ** 3)) +_make_device 2 $((3 * 1024 ** 3)) +_make_device 3 $((3 * 1024 ** 3)) + #start three in different size for i in 0 1 2; do - _start_sheep $i "-s $(($i+1))000" + _start_sheep $i done _wait_for_sheep 3 $COLLIE cluster format @@ -25,7 +33,7 @@ $COLLIE vdi create test 100M -P $COLLIE cluster info | _filter_cluster_info #start recovery - _start_sheep 3 "-s 3000" +_start_sheep 3 _wait_for_sheep 4 _wait_for_sheep_recovery 0 diff --git a/tests/058 b/tests/058 index 0eddc81..5c47fbc 100755 --- a/tests/058 +++ b/tests/058 @@ -15,16 +15,16 @@ status=1 # failure is the default! _cleanup for i in 0 1 2; do - _start_sheep $i "-s 1000" + _start_sheep $i done _wait_for_sheep 3 $COLLIE cluster format sleep 1 $COLLIE vdi create test 100M -P -$COLLIE node info +$COLLIE node info | _filter_node_info qemu-io -c "discard 0 100m" sheepdog:test | _filter_qemu_io $COLLIE vdi check test for i in `seq 0 24`; do $COLLIE vdi object test -i $i; done -$COLLIE node info +$COLLIE node info | _filter_node_info diff --git a/tests/058.out b/tests/058.out index f736eaa..1243a8d 100644 --- a/tests/058.out +++ b/tests/058.out @@ -1,10 +1,10 @@ QA output created by 058 using backend plain store Id Size Used Use% - 0 1000 MB 104 MB 10% - 1 1000 MB 104 MB 10% - 2 1000 MB 104 MB 10% -Total 2.9 GB 312 MB 10% +0 MASKED GB 104 MB MASKED +1 MASKED GB 104 MB MASKED +2 MASKED GB 104 MB MASKED +Total MASKED GB 312 MB MASKED Total virtual image size 100 MB discard 104857600/104857600 bytes at offset 0 @@ -36,9 +36,9 @@ The inode object 0x7c2b25 idx 22 is not allocated The inode object 0x7c2b25 idx 23 is not allocated The inode object 0x7c2b25 idx 24 is not allocated Id Size Used Use% - 0 1000 MB 4.0 MB 0% - 1 1000 MB 4.0 MB 0% - 2 1000 MB 4.0 MB 0% -Total 2.9 GB 12 MB 0% +0 MASKED GB 4.0 MB MASKED +1 MASKED GB 4.0 MB MASKED +2 MASKED GB 4.0 MB MASKED +Total MASKED GB 12 MB MASKED Total virtual image size 100 MB diff --git a/tests/common.filter b/tests/common.filter index 019f952..13ceb9e 100644 --- a/tests/common.filter +++ b/tests/common.filter @@ -165,7 +165,12 @@ _filter_store() _filter_md_info() { - awk '{if ($4 ~ /^[0-9]+$/) $4="MASKED";print $0}' | _filter_store + awk '{if ($4 ~ /^[0-9.]+$/) $4="MASKED";print $0}' | _filter_store +} + +_filter_node_info() +{ + awk '{if ($2 ~ /^[0-9.]+$/) {$2="MASKED";$6="MASKED"};print $0}' } # make sure this script returns success -- 1.7.9.5 |