Add Reserve Nodes to Existing Deployment
This procedure describes how to add nodes to an existing deployment and define them as reserve nodes.
Before continuing, read the introduction in Add Reserve Nodes.
Prerequisites
-
A new Exasol 8 deployment
-
The parameter
CCC_HOST_CLEANUP
must be set tofalse
in the configuration that was used to create the deployment. If you created the deployment withCCC_HOST_CLEANUP=true
, you will not be able to add nodes using this method.
Setting the config path
When you make changes to an existing deployment you must run 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:
In the following examples, the default configuration file config
is used.
Procedure
The following procedures 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: Prepare the hosts
Prepare the new host machines according to the hardware, network, and operating system requirements described in System Requirements.
To enable parallel IMPORT and EXPORT operations, the nodes must have consecutive and evenly spaced static IPv4 addresses in the same subnet.
Step 2: Reserve the nodes in the configuration
On a jump host that has SSH access to the cluster, run the c4 command c4 host reserve <PLAY_ID>
. Add the following parameters as environment variables before the command:
Parameter | Description |
---|---|
CCC_CONFIG
|
Path to the configuration file that was used when creating the deployment. |
|
List of private IP addresses of the hosts to be reserved, separated by spaces. |
CCC_HOST_RESERVED_EXTERNAL_ADDRS
|
List of public IP addresses of the hosts to be reserved, separated by spaces. This parameter is only required if the existing data nodes were deployed with public IP addresses (if |
-
For more details about how to use environment variables in c4 commands, see Parameters in c4.
-
To find the
PLAY_ID
of the deployment, usec4 ps
.
Example:
CCC_CONFIG=config c4 ps
N PLAY_ID NODE MEDIUM INSTANCE EXTERNAL_IP INTERNAL_IP STAGE STATE UPTIME TTL
┌─ 1 3a4a7d8d 11 host c5d.2xlarge 203.0.113.11 10.0.0.11 d running 04:35:16 +∞
│ 1 3a4a7d8d 12 host c5d.2xlarge 203.0.113.12 10.0.0.12 d running 04:35:16 +∞
│ 1 3a4a7d8d 13 host c5d.2xlarge 203.0.113.13 10.0.0.13 d running 04:35:16 +∞
└─ 1 3a4a7d8d 14 host c5d.2xlarge 203.0.113.14 10.0.0.14 d running 04:35:16 +∞
CCC_CONFIG=config CCC_HOST_RESERVED_ADDRS="10.0.0.15 10.0.0.16" CCC_HOST_RESERVED_EXTERNAL_ADDRS="203.0.113.15 203.0.113.16" c4 host reserve 3a4a7d8d
INFO[2024-06-18 08:53:46] Reserving new nodes for deployment: ****************************
INFO[2024-06-18 08:53:49] Done
The c4 host reserve
command will overwrite any previously reserved IP addresses in CCC_HOST_RESERVED_ADDRS
and CCC_HOST_RESERVED_EXTERNAL_ADDRS
in the configuration file.
Step 3: Connect to COS
Connect to EXAClusterOS (COS) on the cluster using c4 connect -t <DEPLOYMENT>[.<NODE>]/cos
. For example:
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.
Placeholder values are indicated with UPPERCASE characters. Replace the placeholders with your own values.
Step 4: 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.
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 5: 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:
Step 6: Verify that the nodes are added
To verify that the nodes have been added, use the ConfD job node_list.