Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In normal use you should probably start 2-3 instances of the coordinator on different machines. They will decide among themselves which one is initially active; the others will wait in standby mode until the active coordinator crashes. The coordinator does not typically use a lot of resources, so you can run it on the same nodes that run ZooKeeper, and you should be able to run a storage server on that node as well. If you have compiled RAMCloud in the standard fashion, the RAMCloud binaries will be in the subdirectory obj.master. Start the coordinator with a command line like this:

...

obj.master/coordinator

...

-C

...

infrc:host=`hostname

...

-s`,port=11100

...

-x

...

zk:rcmaster:2181

For production use, you should probably write a shell script that runs this command  and then immediately restarts the coordinator if it terminates for any reason. The -C argument gives the service locator for the coordinator. This indicates how other machines will communicate with the coordinator. In this example the coordinator will use Infiniband reliable connections for communication, and TCP port 11100 will be used to set up those connections. For details on service locators, see Service Locators. The -x argument tells the coordinator where it should store its configuration information; the "zk:" prefix indicates that ZooKeeper will be used for external storage, and the remainder of the argument is a comma-separated list of ZooKeeper server addresses. If you omit this argument, the coordinator will not storage its configuration information externally, so we coordinator crash will cause all of the information in the cluster to be lost.

...

Each storage server should be started with a command like the following:

...

obj.master/server

...

-L

...

infrc:host=`hostname

...

-s`,port=1101

...

-x

...

zk:rcmaster:2181

...

--totalMasterMemory

...

16000

...

-f

...

/dev/sda2

...

--segmentFrames

...

10000

...

-r

...

2

As with the coordinator, in a production setting you should probably run each server with a shell script that restarts the server if it should terminate or crash. The meaning of the command-line switches is as follows:

...