Update RAMCloud start-up procedure
This patch will enable RAMCloud coordinator failover and
server failover if number of replica is properly configured.
- Update onos.sh RAMCloud start-up procedure
- Use ZooKeeper to manage cluster member
- Specify cluster name, num replicas,...
- WARN: ramcloud.coordinator.ip is now a configuration to specify listen address
- Specify ZooKeeper address/ClusterName in RAMCloud client config (conf/ramcloud.conf)
- Note: conf/ramcloud.conf ramcloud.coordinatorIp, etc. is no longer used for connection
- Enable failure detector, which is required for fail-over feature
- Undocumented maintenance option "deldb" to remove:
- RAMCloud coordination info in ZK
- Note: ZooKeeper must be running in order to execute "./onos.sh rc-c deldb"
- BackupData file created by RAMCloud Storage Server
- Update RAMCloud Java bindings
- Expose API to specify RAMCloud ClusterName
- Expose ClientExeption
- Note: You need to run ./build-ramcloud-java-bindings.sh to update Java bindings
- Utility function to check if ZooKeeper is running
- Utility function to wait for ZooKeeper to start
- Modified kill-processes() to try killing process gracefully first then KILL
- Specify absolute path to pgrep/pkill
- Added "rc" to manipulate both server and coordinator
Change-Id: Ia8a282f81bf82810a4d000883611ce12f504bd16
diff --git a/conf/onos_node.conf b/conf/onos_node.conf
index 07716fd..75f9aa0 100644
--- a/conf/onos_node.conf
+++ b/conf/onos_node.conf
@@ -19,6 +19,9 @@
# myid will be assigned incrementally according to order of list
#zookeeper.hosts = onosdev1,onosdev2,onosdev3,onosdev4
+# RAMClouod clusterName (ONOS-RC by default)
+#ramcloud.clusterName = ONOS-RC
+
# Protocol used by RAMCloud coordinator (fast+udp by default)
#ramcloud.coordinator.protocol = fast+udp
@@ -28,6 +31,10 @@
# Port number of RAMCloud coordinator (12246 by default)
#ramcloud.coordinator.port = 12246
+# RAMCloud coordinator option deadServerTimeout (1000 by ONOS default)
+# Increase this value if server failing due to false positive failure detection.
+#ramcloud.coordinator.deadServerTimeout = 1000
+
# Protocol used by RAMCloud server (fast+udp by default)
#ramcloud.server.protocol = fast+udp
@@ -38,13 +45,23 @@
#ramcloud.server.port = 12242
# RAMCloud server option masterServiceThreads (5 by default)
-#ramcloud.masterServiceThreads = 5
+#ramcloud.server.masterServiceThreads = 5
# RAMCloud server option logCleanerThreads (1 by default)
-#ramcloud.logCleanerThreads = 1
+#ramcloud.server.logCleanerThreads = 1
-# RAMCloud server option detectFailures [0=disabled] (0 by default for ONOS development)
-#ramcloud.detectFailures = 0
+# RAMCloud server option detectFailures [0=disabled] (1 by default)
+#ramcloud.server.detectFailures = 1
+
+# RAMCloud server option replicas (0 by default)
+# This value must be the same cluster wide.
+# On N node cluster, maximum value will be N-1 replicas
+#ramcloud.server.replicas = 0
+
+# RAMCloud server option file (/var/tmp/ramclouddata/backup.`hostname`.log by default)
+# Note: Cannot be placed int ONOS_HOME, if it is on VirtualBox sharedfolder.
+# File specified must be open()-able with O_DIRECT | O_SYNC options.
+#ramcloud.server.file = /var/tmp/ramclouddata/backup.${ONOS_HOST_NAME}.log
# Port number of Hazelcast (5701 by default)
#hazelcast.host.port = 5701