INSTALLING CELESTE
To install Celeste you'll need to choose one or more network connected computers to provide storage, computation, and communication for the Celeste system. You can run Celeste on a wide range and combination of systems ranging from a single laptop, a desktop, large servers, to entire clusters. A Celeste node is simply a running instance of the Celeste application program. Each instance of the program uses local CPU, some persistent local storage, TCP ports, and induces some network traffic.
To experiment with Celeste you may run all of the nodes on a single computer.
System Requirements
There is no specific hardware requirement for a Celeste node. It is not necessary for a computer to be exclusively a Celeste node. Celeste is designed to accommodate dynamic differences in performance, network latency, storage capacity, mobility, and connectivity of the nodes participating in the system.
Celeste is implemented entirely in Java and requires at least Java SE 1.6 for its run-time environment. The Java runtime can be obtained from java.sun.com.
Each Celeste node will use CPU proportional to the amount of data the node hosts. Local storage consumption for each node is a linear function of the amount of data the node is hosting and the number of nodes in the entire system. CPU consumption is low when the system is at rest and network traffic is periodic and is highest at node startup.
The stored data used by each Celeste node consists of both persistent data, such as file data, and temporary state data for system operation. Each instance of a Celeste node constructs its own private directory relative to a top-level directory specified by a configuration parameter (See configuration below). If the name of the top-level directory is not specified at startup, it defaults to the directory /tmp/celeste on the first filesystem returned by the Java function File.listRoots(). Typically on unix-like systems, this is "/".
All interaction with a Celeste node occurs through three different TCP network ports. In addition to these ports used by each node, each running Java Virtual Machine may optionally provide JMX management through another TCP network port. When running more than one Celeste node on the same machine, you must use different port numbers for each node. See the Starting Up section for
details on the TCP port numbers.
Because Celeste anticipates failed nodes and nodes that are malicious, it requires a minimum system size that is dependent upon the numbers of expected failed nodes (f) and malicious (b, for "byzantine") nodes. The algorithm that determines the minimum size requires U nodes, where U = 3f + 2b + 1 .
For example, if you are running a system that can tolerate 1 failed node, and 1 malicious node, the minimum system size is 6. Likewise, if you expect 1 failed node, and no malicious nodes, the minimum system size is 4 nodes.
Note that these values are for failures that occur when the system is running having already stored data. To initially create a Celeste file, it is necessary for U number of nodes to be available at create time.
Celeste is distributed as a compressed tar file containing a complete run-time system consisting of all the files necessary to install and run Celeste, and also as source, which you can find in the
OpenSolaris Project Celeste repository.
Installing From Compressed Tar File
To install the system image from a compressed tar file (an image created as the binary-dist target in the build process), create the directory in which the system will be installed, and extract the contents of the tar file into that directory.
$ cd /opt $ mkdir celeste $ cd celeste $ tar xzf ~/celeste-yyyymmdd.tgz $
The default Celeste directory is /opt/celeste, but you can install and use the system in any directory if you follow the additional rules listed below.
If you install the Celeste system in a directory other than /opt/celeste, you must either start the system and invoke the command line programs from the top-level directory, or you must set the environment variable CELESTEHOME to the name of the directory.
$ mkdir ~/my-celeste
$ cd ~/my-celeste
$ tar xzf ~/celeste-yyyymmdd.tgz
$ ./bin/celeste start
NOTICE: The current directory looks like a Celeste runtime installation.
Using the current directory instead of /opt/celeste
Explicitly set the environment variable CELESTEHOME to override this.
Installing From A Build
If you wish to build the system from source obtained from the repository, see HOWTO Build Celeste and use the binary-dist target to produce a runtime system compressed tar file and follow the instructions above to install the compressed tar image.