Add reserve nodes to existing deployment

This article describes how to add nodes to an existing deployment and define them as reserve nodes.

Prerequisites

An existing Exasol 8 deployment.

This method should only be used if you already have a deployment and want to add reserve nodes to it. If you have not created the deployment yet, use the procedure in Define reserve nodes when creating a deployment.

It is not possible to remove active nodes from an Exasol database. If you want to reduce the number of active data nodes in a cluster, you must delete the database and the data volume and create a new deployment.

Setting the config path

When you make changes to an existing deployment you must use the same configuration that was used when creating the deployment. Unless that configuration is in the current working directory (on the host where you run c4), you must prepend the c4 commands with the path to the configuration using CCC_CONFIG=<path-to-config>. For example:

CCC_CONFIG=./path_to_config/my_config c4 <command>

In the following examples, the default configuration file config is used.

Procedure

The following examples use the c4 and confd_client command-line tools in a Linux terminal. For more information about these tools, see Exasol Deployment Tool (c4)Exasol Deployment Tool (c4)Exasol Deployment Tool (c4)Exasol Deployment Tool (c4) and ConfD.

Step 1: Connect to COS

Connect to EXAClusterOS (COS) on the cluster using c4 connect -t <DEPLOYMENT>[.<NODE>]/cos. For example:

./c4 connect -t 1.11/cos

If you do not specify a node, c4 will connect to the first active node in the deployment.

For more information about how to use c4 connect, see How to use c4.

The following examples use ConfD through the command-line tool confd_client, which is available on all database nodes. You can also access ConfD through XML-RPC in your own Python programs. For more information, see ConfD.

Placeholder values are indicated with UPPERCASE characters. Replace the placeholders with your own values.

Step 2: Add the nodes to the deployment

To add the nodes to the deployment, use the ConfD job infra_instances_add with the following parameters:

Parameter name Data type Description
nid integer ID of an existing node. The configuration of this node will be cloned to create the new nodes.
num_nodes integer The number of nodes that you want to create.
Example:

This example adds two nodes by cloning the node with ID 11.

confd_client infra_instances_add nid: 11 num_nodes: 2

The added nodes will automatically start up and reach deployment stage c (COS service running, database not running). At this point the nodes are not yet part of the cluster.

Step 3: Add the nodes to the cluster

To add the new nodes to the cluster as reserve nodes, use the ConfD job db_add_reserve_nodes with the following parameters:

Parameter Name Data type Description
db_name string The name of the database
node_list list List of node IDs (integers) to add as reserve nodes
Example:
confd_client db_add_reserve_nodes db_name: MY_DATABASE node_list: '[15, 16]'

Step 4: Verify that the nodes are added

To verify that the nodes are added, use the ConfD job node_list.

confd_client node_list