3.11. 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.
- 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).
- Before installing any storage node, edit the storage properties file with all of the node and cluster information.
[jsmith@server ~]# vim serverRoot/jon-server-3.3.2.GA/bin/rhq-storage.properties
For example, this configures three nodes, set in therhq.storage.seeds
parameter.rhq.storage.cql-port=9142 rhq.storage.gossip-port=7100 rhq.storage.seeds=192.168.0.1, 192.168.0.2, 192.168.0.3 start=false
- 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.ImportantDo not start the storage node or the agent at this point. Do not use the
--start
option with the installation script.[jsmith@server ~]# serverRoot/jon-server-3.3.2.GA/bin/rhqctl install --storage --agent-preference="rhq.agent.server.bind-address=192.168.0.2"
NoteFor Windows users, see Section 3.5.9, “Components Managed as Windows Services” for specific requirements for using--agent-preference
. - 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.[jsmith@server ~]# vim serverRoot/jon-server-3.3.2.GA/rhq-storage/conf/rhq-storage-auth.conf 192.168.0.1 192.168.0.2 192.168.0.3
After the server is configured, the local agent will update therhq-storage-auth.conf
file with node hostnames or IP addresses as nodes are deployed and removed from the cluster. - Start each node.
[jsmith@server ~]# serverRoot/jon-server-3.3.2.GA/bin/rhqctl start --storage
- 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 therhq.storage.nodes
parameter. Then, add the client and gossip port values.[jsmith@server ~]# vim serverRoot/jon-server-3.3.2.GA/bin/rhq-server.properties rhq.storage.nodes=192.168.0.1,192.168.0.2,192.168.0.3 rhq.storage.cql-port=9142 rhq.storage.gossip-port=7100
- Specify the database settings in the
rhq-server.properties
file.The following database properties must be set to have the storage node properly register with the JBoss ON database.- rhq.server.database.connection-url
- rhq.server.database.user-name
- rhq.server.database.password
These are the same settings used when installing an RHQ Server. See Section 3.6.2, “Attributes in the Properties File” for a description of these parameters. - Install the server and an agent. Specifying the
--server
and--agent
options only installs those two components; the storage database is excluded.[jsmith@server ~]# serverRoot/jon-server-3.3.2.GA/bin/rhqctl install --server --agent --start
If you are upgrading an existing JBoss ON agent, then run the upgrade script with the--use-remote-storage-node
option, to load the storage database information from the properties file rather than installing a storage node.[jsmith@server]# serverRoot/jon-server-3.3.2.GA/bin/rhqctl upgrade --use-remote-storage-node=true