[Sheepdog] [PATCH] sheep: add support for gateway mode

MORITA Kazutaka morita.kazutaka at gmail.com
Sun May 6 21:36:17 CEST 2012


The gateway nodes only forwards requests to the sheepdog cluster, and
doesn't store objects in local at all.  Running a gateway daemon on
localhost and connecting to it would be an alternative to implementing
sheepdog fail-over support in qemu because the gateway node
automatically choose the correct target nodes.

Currently, this options is just an alias for '--vnodes 0'.  Note that
a small storage to store epoch information is still required for
gateway nodes.

Signed-off-by: MORITA Kazutaka <morita.kazutaka at gmail.com>
---
 sheep/sheep.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/sheep/sheep.c b/sheep/sheep.c
index 6645e8d..4e6e266 100644
--- a/sheep/sheep.c
+++ b/sheep/sheep.c
@@ -40,6 +40,7 @@ static struct option const long_options[] = {
 	{"directio", no_argument, NULL, 'D'},
 	{"foreground", no_argument, NULL, 'f'},
 	{"nr_gateway_worker", required_argument, NULL, 'g'},
+	{"gateway", no_argument, NULL, 'G'},
 	{"help", no_argument, NULL, 'h'},
 	{"nr_io_worker", required_argument, NULL, 'i'},
 	{"loglevel", required_argument, NULL, 'l'},
@@ -50,7 +51,7 @@ static struct option const long_options[] = {
 	{NULL, 0, NULL, 0},
 };
 
-static const char *short_options = "ac:dDfg:hi:l:op:v:z:";
+static const char *short_options = "ac:dDfg:Ghi:l:op:v:z:";
 
 static void usage(int status)
 {
@@ -68,6 +69,7 @@ Options:\n\
   -D, --directio          use direct IO when accessing the object from object cache\n\
   -f, --foreground        make the program run in the foreground\n\
   -g, --nr_gateway_worker set the number of workers for Guests' requests (default 4)\n\
+  -G, --gateway           make the progam run as a gateway mode (same as '-v 0')\n\
   -h, --help              display this help and exit\n\
   -i, --nr_io_worker      set the number of workers for sheep internal requests (default 4)\n\
   -l, --loglevel          specify the level of logging detail\n\
@@ -156,6 +158,10 @@ int main(int argc, char **argv)
 				exit(1);
 			}
 			break;
+		case 'G':
+			/* same as '-v 0' */
+			nr_vnodes = 0;
+			break;
 		case 'i':
 			nr_io_worker = strtol(optarg, &p, 10);
 			if (optarg == p || nr_io_worker < 4 || nr_io_worker > UINT32_MAX) {
-- 
1.7.2.5




More information about the sheepdog mailing list