Elvis 5 can be run as a stand-alone cluster consisting of 1 node or as a cluster consisting of many nodes (see The Elvis 5 structure: clusters and nodes).
This article describes how to upscale an existing stand-alone cluster to a multi-node cluster.
Note: It is assumed here that the stand-alone cluster is already fully up and running and uses manual discovery.
Step 1. Stop the current node.
Step 2. Install Elvis 5 Server on as many additional machines as needed.
Step 3. On each system, access the config folder of Elvis Server.
- Windows: Start menu > Elvis > Elvis Server > click Open config
- Mac OS X: Applications > Elvis Server > click Open config
- Linux: Access /srv/elvis-server/config
Step 4. In the node-config.properties.txt file, configure the following options:
- Set the cluster name to the same name by setting the clusterName option:
Example: clusterName=ElvisDemo
- Set the shared data location by setting the sharedDataLocation option:
Example: sharedDataLocation=${appDataDir}/Elvis Shared Data
- Set the IP addresses of the other nodes in the cluster by updating the cluster.join.tcpip.members option.
Step 5. In the cluster-config.properties.txt file, configure the following options:
Note: The cluster-config.properties.txt file needs to be identical for all node configurations. After setting up the first node and configuring subsequent nodes, make sure that any changes to a cluster property are implemented in the cluster-config.properties file for all nodes. See also Changing the Elvis 5 Server configuration for a running cluster.
- Set the cluster count to the total number of nodes in the cluster:
Example: cluster.nodeCount=3
- Set the Search node count to the total number of Search nodes in the cluster:
Example: cluster.searchNodeCount=3
- When the sharedDataLocation is different on each node, make sure that the elasticsearch.backup.location (which references this location by default) is also configured correctly for the cluster.
Step 6. (Optional, for Elvis 5.14 and higher) By default, the index.numberOfShards setting matches the cluster.searchNodeCount setting. When changing the cluster.searchNodeCount setting therefore, the index.numberOfShards setting should also be changed.
One shard per Search node is best from a performance point of view.
If you expect your number of Search nodes to grow, configure the index.numberOfShards setting to match your expected maximum number of Search nodes.
If your indices have already been created and you change the number of Search nodes or change the index.numberOfShards setting, you will need to update the Elvis Server index.
For more information, see the comment for the index.numberOfShards setting in the cluster-config.properties.txt file.
Step 7. Start the original node.
Step 8. Wait a minimum of 15 seconds and start the other nodes.
Step 9. On any of the nodes, access the Elvis Server Admin page.
Note: Through the Admin pages the full cluster can be controlled from each node.
Enter the following URL:
http://<yourserver>:<port>/admin
Step 10. Open the Paramedic page and notice that only the config indices are replicated.
Do one of the following:
- For Elvis 5.15 and lower: click Server Status > ES Monitoring plug-ins
- For Elvis 5.16 and higher: click Support Tools
Step 11. Return to the Elvis Server Admin page and click Update index or Index revisions.
Step 12. In the "Choose index to update" section, click on each index except "config".
This will increase the current revision for each of the indices and trigger the shards to replicate on the other node.
Document history
- 21 August 2018: Updated the information in step 10 about where the 'Paramedic' page can be found.
- 21 August 2018: Updated screenshots.
Comment
Do you have corrections or additional information about this article? Leave a comment! Do you have a question about what is described in this article? Please contact Support.
0 comments
Please sign in to leave a comment.