2.10. Installing Storage Nodes Before Installing the Server

It is possible to create multiple storage nodes before installing a server, and then install the server with those pre-installed nodes. This is also useful if the storage database will be on a separate, dedicated machine.

Warning

This is an advanced configuration. If the storage node or nodes within the cluster are not properly configured, then the cluster may not properly function.

Warning

Deploying a node lists that node's host in the cluster configuration and any allowed host can gain access to the data in the storage cluster.
Restrict access to the rhq-storage-auth.conf file so that the allowed hosts list cannot be altered to allow an attacker to gain access to the cluster and the stored data.

Important

Every storage node must use the same client (CQL) and gossip ports.
Additionally, the hostname and IP address of every storage node system must be fully resolvable in DNS or must be configured on each system's hosts file.
  1. Determine the node and cluster configuration information to use.
    • Identify the hostname or IP address of each system which will host a node.
    • Define the two ports which the cluster uses for communication (9142 and 7100 by default).
  2. Before installing any storage node, edit the storage properties file with all of the node and cluster information.
    [root@server ~]# vim serverRoot/jon-server-3.2.0.GA/bin/rhq-storage.properties
    For example, this configures three nodes, set in the rhq.storage.seeds parameter.
    rhq.storage.cql-port=9142
    rhq.storage.gossip-port=7100
    rhq.storage.seeds=192.68.0.0, 192.68.0.1, 192.68.0.2
    start=false
  3. Install the storage node on each system, with its companion agent. This requires the IP address of the JBoss ON server, even though the server is not yet installed.
    Do not start the storage node or the agent at this point. Do not use the --start option with the installation script.
    [root@server ~]# serverRoot/jon-server-3.2.0.GA/bin/rhqctl install --storage --agent-preference="rhq.agent.server.bind-address=192.68.0.2"
  4. For each storage node, edit its local rhq-storage-auth.conf file. This lists the hostnames or IP addresses for all of the storage nodes in the cluster, one per line.
    [root@server ~]# vim serverRoot/jon-server-3.2.0.GA/rhq-storage/conf/rhq-storage-auth.conf 
    
    192.68.0.0
    192.68.0.1
    192.68.0.2
    After the server is configured, the local agent will update the rhq-storage-auth.conf file with node hostnames or IP addresses as nodes are deployed and removed from the cluster.
  5. Start each node.
    [root@server ~]# serverRoot/jon-server-3.2.0.GA/bin/rhqctl.sh start --storage
  6. Before installing the server, edit the rhq-server.properties file to include the connection information for the storage nodes.
    Add each storage node in a comma-separated listed to the rhq.storage.nodes parameter. Then, add the client and gossip port values.
    [root@server ~]# vim serverRoot/jon-server-3.2.0.GA/bin/rhq-server.properties
    
    rhq.storage.nodes=192.68.0.0,192.68.0.1,192.68.0.2
    rhq.storage.cql-port=9142
    rhq.storage.gossip-port=7100
  7. Install the server and an agent. Specifying the --server and --agent options only installs those two components; the storage database is excluded.
    [root@server ~]# serverRoot/jon-server-3.2.0.GA/bin/rhqctl.sh install --server --agent --start
    If you are upgrading an existing JBoss ON agent, then run the upgrade script with the --use-remote-storage-note option, to load the storage database information from the properties file rather than installing a storage node.
    [root@server]# serverRoot/jon-server-3.2.0.GA/bin/rhqctl.sh upgrade --use-remote-storage-node=true