installation & operation
Overview
Citrusleaf is designed for ease of deployment. Deploying and maintaining your own cluster is very simple - these pages explain in detail what equipment you need to have and what you need to do.
Requirements
A Citrusleaf server node has the following requirements:
- A 64-bit Intel or AMD processor
- Physical memory of 4G or more
- Gigabit Ethernet
- Linux distribution as specified in the Quick Start Section
- (optional, but needed for zero-config operation) An interface open in the cluster's multicast IP domain
- Persistent storage in the form of HDD (rotational disk) or directly attached SSD (flash storage)
- (optional) Raw devices running on directly attached SSD devices
A Citrusleaf cluster can work with one or more nodes, but a minimum cluster size of three server nodes is commonly used for production installations. Nodes communicate amongst themselves through a TCP-based internal cluster interconnect, which runs on top of IP (Gigabit Ethernet).
Once you have identified the hardware, it is a simple three step process to deploy: Install, Configure and Startup.
Trial installation requirements
For simple trial use, Citrusleaf can be installed in any supported 64-bit Linux environment. Citrusleaf runs well within laptop environments using virtualization products such as VMWare and Spaces, or with cloud environments such as EC2. In these situations, please be aware that Citrusleaf may have different operational characteristics than the supported deployment environments, and should be used to simply get a feel for installation and use.
Install
Installing a Citrusleaf server is simple and involves installing a few packages on each server node chosen to be part of the cluster. You can find instructions in the Quick Start Section.
Configure
Before initial startup, each Citrusleaf server needs to be configured with a few settings that are customised for the installation. These are:
- Configure your database containers (known as 'namespaces') as described in the Namespace Settings Section.:
- Specify whether the data should be stored only in memory, in both memory and persistent storage, or only in persistent storage.
- Configure appropriate memory and disk resources for each namespace based on the node's hardware specs.
- Use multicast heartbeat (preferred) or set up a mesh based cluster, as described in the Network Settings Section.
Startup
Once the configuration has been determined, ensure that the configuration file is in the appropriate location (/etc/citrusleaf/citrusleaf.conf) on each server, and start the servers in the cluster one by one as described in the Quick Start Section. After starting each server, you can check the server log (the location of the log is specified in the configuration file). The server will print the cluster size in the log file every few seconds. Here is a sample log line from one of the servers that is part of a 4 node cluster:
Mar 26 2011 19:34:49: INFO (info): (base/thr_info.c:1542)
migrates in progress ( 0 , 0 ) ::: ClusterSize 4 ::: objects 341545376
After the first machine in the cluster comes up, the Citrusleaf database is open for business and clients can start accessing the service even while the other servers come up. The Citrusleaf Client includes cluster load balancing support and the client requests are automatically routed to the optimal nodes in the cluster.
Monitor
Once the cluster is up, you can use the techniques described in the Monitoring Section to obtain cluster wide statistics and setup production alerts.

