[sheepdog] [PATCH 03/10] sheep: remove '-s' option

Liu Yuan namei.unix at gmail.com
Sun May 26 15:45:02 CEST 2013


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




More information about the sheepdog mailing list