# HG changeset patch
# User Ian Campbell <ian.campbell@citrix.com>
# Date 1323448636 0
# Node ID 3b7ac401f144206c30440fbb41c74b13fa20b8cb
# Parent 74f94e15bfe1dad412d0342aeabdbd895657f54f
Linux/xencommons: Use oxenstored by default when available
oxenstored is an ocaml implementation of the xenstore daemon. It is faster,
more scalable and more reliable than the C xenstored.
In particular the transaction model in oxenstored does not involve taking a
complete copy of the database and aborting on any (even non-conflicting) other
change.
There is a paper on the design and implementation of oxenstored at
http://gazagnaire.org/pub/GH09.pdf which includes a performance evaluation and
comparison with the C daemon etc.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
diff -r 74f94e15bfe1 -r 3b7ac401f144 tools/hotplug/Linux/init.d/sysconfig.xencommons
--- a/tools/hotplug/Linux/init.d/sysconfig.xencommons Fri Dec 09 16:35:56 2011 +0000
+++ b/tools/hotplug/Linux/init.d/sysconfig.xencommons Fri Dec 09 16:37:16 2011 +0000
@@ -1,6 +1,9 @@
# Log xenconsoled messages (cf xl dmesg)
XENCONSOLED_TRACE=guest
+# Select xenstored implementation
+#XENSTORED=[oxenstored|xenstored]
+
# Log xenstored messages
#XENSTORED_TRACE=[yes|on|1]
diff -r 74f94e15bfe1 -r 3b7ac401f144 tools/hotplug/Linux/init.d/xencommons
--- a/tools/hotplug/Linux/init.d/xencommons Fri Dec 09 16:35:56 2011 +0000
+++ b/tools/hotplug/Linux/init.d/xencommons Fri Dec 09 16:37:16 2011 +0000
@@ -70,8 +70,19 @@ do_start () {
rm -f "$XENSTORED_ROOTDIR"/tdb* &>/dev/null
test -z "$XENSTORED_TRACE" || XENSTORED_ARGS=" -T /var/log/xen/xenstored-trace.log"
- echo -n Starting xenstored...
- xenstored --pid-file=/var/run/xenstored.pid $XENSTORED_ARGS
+ if [ -n "$XENSTORED" ] ; then
+ echo -n Starting $XENSTORED...
+ $XENSTORED --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
+ elif [ -x /usr/sbin/oxenstored ] ; then
+ echo -n Starting oxenstored...
+ /usr/sbin/oxenstored --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
+ elif [ -x /usr/sbin/xenstored ] ; then
+ echo -n Starting C xenstored...
+ /usr/sbin/xenstored --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
+ else
+ echo "No xenstored found"
+ exit 1
+ fi
# Wait for xenstored to actually come up, timing out after 30 seconds
while [ $time -lt $timeout ] && ! `xenstore-read -s / >/dev/null 2>&1` ; do
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
# User Ian Campbell <ian.campbell@citrix.com>
# Date 1323448636 0
# Node ID 3b7ac401f144206c30440fbb41c74b13fa20b8cb
# Parent 74f94e15bfe1dad412d0342aeabdbd895657f54f
Linux/xencommons: Use oxenstored by default when available
oxenstored is an ocaml implementation of the xenstore daemon. It is faster,
more scalable and more reliable than the C xenstored.
In particular the transaction model in oxenstored does not involve taking a
complete copy of the database and aborting on any (even non-conflicting) other
change.
There is a paper on the design and implementation of oxenstored at
http://gazagnaire.org/pub/GH09.pdf which includes a performance evaluation and
comparison with the C daemon etc.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
diff -r 74f94e15bfe1 -r 3b7ac401f144 tools/hotplug/Linux/init.d/sysconfig.xencommons
--- a/tools/hotplug/Linux/init.d/sysconfig.xencommons Fri Dec 09 16:35:56 2011 +0000
+++ b/tools/hotplug/Linux/init.d/sysconfig.xencommons Fri Dec 09 16:37:16 2011 +0000
@@ -1,6 +1,9 @@
# Log xenconsoled messages (cf xl dmesg)
XENCONSOLED_TRACE=guest
+# Select xenstored implementation
+#XENSTORED=[oxenstored|xenstored]
+
# Log xenstored messages
#XENSTORED_TRACE=[yes|on|1]
diff -r 74f94e15bfe1 -r 3b7ac401f144 tools/hotplug/Linux/init.d/xencommons
--- a/tools/hotplug/Linux/init.d/xencommons Fri Dec 09 16:35:56 2011 +0000
+++ b/tools/hotplug/Linux/init.d/xencommons Fri Dec 09 16:37:16 2011 +0000
@@ -70,8 +70,19 @@ do_start () {
rm -f "$XENSTORED_ROOTDIR"/tdb* &>/dev/null
test -z "$XENSTORED_TRACE" || XENSTORED_ARGS=" -T /var/log/xen/xenstored-trace.log"
- echo -n Starting xenstored...
- xenstored --pid-file=/var/run/xenstored.pid $XENSTORED_ARGS
+ if [ -n "$XENSTORED" ] ; then
+ echo -n Starting $XENSTORED...
+ $XENSTORED --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
+ elif [ -x /usr/sbin/oxenstored ] ; then
+ echo -n Starting oxenstored...
+ /usr/sbin/oxenstored --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
+ elif [ -x /usr/sbin/xenstored ] ; then
+ echo -n Starting C xenstored...
+ /usr/sbin/xenstored --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
+ else
+ echo "No xenstored found"
+ exit 1
+ fi
# Wait for xenstored to actually come up, timing out after 30 seconds
while [ $time -lt $timeout ] && ! `xenstore-read -s / >/dev/null 2>&1` ; do
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel