Installing Rhino

Interactive Rhino install

The following parameters need to have values entered when installing Rhino interactively. See the Rhino Getting Started Guide’s page on unpacking and gathering information for more information.

Parameter Expected Value

Clustering mode

POOL

Cassandra contact points

Comma-separated list of contact points (as host:port pairs) for your Cassandra database cluster.

Cassandra datacentre

The name of the local datacentre present at the specified contact points.

In addition to above parameters, it is recommended to review the defaults for the following parameters:

Parameter Default Value Guidance

Database keyspace name for the pool maintenance subsystem

rhino_pool_maintenance

Ensure that this keyspace is not used by anything else in the deployment.

Rhino interconnect listen address

0.0.0.0

It is highly recommended to select a specific network interface in production environments. For ease of use in replicating pool cluster nodes, the bind address can be specified as an address range, expressed in CIDR notation, where the relevant network interface can be found.

This allows each node to determine the correct IP address to bind without any further manual configuration requirement.

Rhino interconnect listen port range start

22020

The listen port range typically does not need to be changed unless a smaller range is desired for security reasons, or more than ten nodes are expected to be running on the same host.

Rhino interconnect listen port range end

22029

Unattended Rhino install

The answer file used in an unattended installation of Rhino (using rhino-install.sh) should have values of the following config variables as specified. See the Rhino Getting Started Guide’s page on installing unattended for more information.

Config Variable Expected Value

DEFAULT_CLUSTERING_MODE

POOL

DEFAULT_CASSANDRA_CONTACT_POINTS

Comma-separated list of contact points (as host:port pairs) for your Cassandra database cluster.

DEFAULT_CASSANDRA_DATACENTRE

The name of the local datacentre present at the specified contact points.

DEFAULT_POOL_MAINTENANCE_KEYSPACE

rhino_pool_maintenance

DEFAULT_RHINO_INTERCONNECT_LISTEN_ADDRESS

The interfaces the node interconnect server should bind to. It is highly recommended to select a specific network interface in production environments. For ease of use in replicating pool cluster nodes, the bind address can be specified as an address range, expressed in CIDR notation, where the relevant network interface can be found.

This allows each node to determine the correct IP address to bind without any further manual configuration requirement.

DEFAULT_RHINO_INTERCONNECT_LISTEN_PORT_RANGE_MIN

The low end of the range of ports that the Rhino interconnect server will try to bind to.

DEFAULT_RHINO_INTERCONNECT_LISTEN_PORT_RANGE_MAX

The high end of the range of ports that the Rhino interconnect server will try to bind to.

Creating pool nodes

After installation, a pool node can be created by following the instructions in the create new nodes page.

Configuration of Cassandra for Rhino pools

After a pool node is created, Rhino’s Cassandra configuration and the Cassandra deployment have to be verified and provisioned respectively before pool mode can start working.

Verify Rhino’s Cassandra driver configuration

There are additional Cassandra configuration options that should be checked and updated if necessary. These settings are configured in two separate configuration files: config/rhino-config.xml and config/persistence.xml.

Note

The config/persistence.xml file does not normally exist until the node has been started at least once. The default initial content for this file can be found in config/defaults.xml under the <persistence> element.

In rhino-config.xml, check the settings for the pool maintenance subsystem in the <pool-maintenance> element. If the key/value store (<key-value-store> element) or session ownership store (<session-ownership-store> element) has also been enabled, these should also be checked as well. The key/value store and session ownership store define the keyspace name with the keyspaceNamePrefix property.

The additional Cassandra configuration options depend on how Cassandra’s deployment topology is set up. See the page on requirements for databases in Rhino pools for more information on these options.

Property Reason to check

keyspaceName

By default, the property refers to the POOL_MAINTENANCE_KEYSPACE variable in the node-xxx/config/config_variables file. Verify that both contain the expected value and update as necessary.

keyspaceReplication

This specifies how keyspaces are replicated across the Cassandra cluster. Ensure that the replication strategy class and replication factors match with the Cassandra deployment’s topology. The Requirements for Databases page gives further information on this.

readTimeout writeTimeout

These properties specify the maximum number of milliseconds that reads and writes to the database are expected to complete in. Smaller values may result in more frequent sporadic read/write failures, while larger values may result in longer application pauses when the database is under heavy load or otherwise unable to respond.

In persistence.xml check the configuration parameters for the cassandra persistence instance. These parameters configure the driver that Rhino uses to communicate with Cassandra. Refer to the DataStax Java Driver reference configuration for more detail on the driver configuration options.

Setting up keyspaces and tables in Cassandra

A node in a Rhino pool stores the data that is required to maintain the pool in a Cassandra database. Administrators must manually create the necessary keyspaces and tables in the Cassandra database before the pool can function. Follow the instructions in the Initialise the Cassandra Database page to create the required keyspaces and tables from a Rhino node.

Generally, a Rhino cluster using the pool clustering mode will also make use of the key/value store and session ownership store for the replication and management of application state between cluster nodes. Support for these additional subsystems can be enabled during the installation process. Each of these subsystems require additional Cassandra-related configuration, such as a database keyspace name prefix used to determine the keyspaces that the subsystems will use for their own tables.

Warning Ensure that any database keyspace names or prefixes specified for the Rhino install are available for exclusive use by the cluster. Unexpected problems can occur if different Rhino clusters access the same database keyspaces.

Duplicating pool nodes

Duplicating pool nodes involves transferring an installation to another host and then updating some configuration.

Follow the instructions in the Transfer Installations page to transfer a pool installation to another host.

After transfer, the following variables in node-xxx/config/config_variables file should be updated to reflect the new host and node id.

Variable Reason to change

RHINO_HOME

New node may be installed in a different directory to where it was in the original node.

JAVA_HOME

JDK may be installed in a different directory to where it was in the original node.

MANAGEMENT_DATABASE_NAME MANAGEMENT_DATABASE_HOST MANAGEMENT_DATABASE_PORT MANAGEMENT_DATABASE_USER MANAGEMENT_DATABASE_PASSWORD

Every node in the pool needs to have a separate management database.

NODE_ID

Every node in the pool must have a unique node id.

Deleting pool nodes

To delete all nodes of the pool, follow instructions in the Uninstallation page for each node in the pool.

To delete only a single node in the pool, follow all the instructions in the Rhino Uninstallation page except for the section titled Removing Cassandra database keyspaces. The Cassandra database is shared by all nodes in the pool and deleting keyspaces in it will make other nodes non-functional.

Viewing pool cluster state

The state of a Rhino pool can be monitored with the rhino-console command getpoolstate.

Previous page Next page
Rhino Version 3.2