Changing the Node Specifications and Storage Type of an Elasticsearch Cluster

If the workloads on an Elasticsearch cluster's data plane change, you can scale the cluster vertically by changing its node specifications or node storage type.

Table 1 Change scenarios

Change Type

Scenario

Change Process

Changing node specifications

Typically, you increase node specifications instead of decreasing them. Common scenarios include:

  • If the allocation of new indexes or shards takes too long or the coordination and scheduling of nodes are inefficient, increase the master node specifications.
  • If too many requests need to be handled or too many results need to be aggregated, increase the client node specifications.
  • If data nodes are becoming slower in responding to data writing and query requests, increase the specifications of the data nodes.
  • If cold data query becomes slow, increase the cold data node specifications.
  • If the CPU or JVM metrics of cluster nodes show performance bottlenecks, increase node specifications to improve cluster performance.

Alternatively, you may also decrease node specifications, but doing so will decrease the cluster's data processing and storage capacities. Exercise caution.

  1. Bring a node offline.
  2. Change the node specifications.
  3. Restart the node and restore its data.
  4. After the node recovers, proceed to another node and repeat the steps above. This goes on until all nodes are changed.

The node specifications are changed one node at a time. This is to ensure that there are sufficient resources to keep services running.

Changing the node storage type (disk type)

Change the node storage type if disk I/O has become a performance bottleneck, which impacts query and write performance.

  1. Select a random node and migrate its data to other nodes.
  2. Rebuild the node using the new storage type.
  3. Add the node back into the cluster. The system automatically triggers a shard reallocation, migrating some of the shards to the new node.
  4. After the node recovers, proceed to another node and repeat the steps above.

The nodes are changed one at a time to prevent service interruptions.

Impact on Billing

For a pay-per-use cluster, you can see its new price when confirming the node specifications or storage type change on the console. After the change is complete, the new price will apply. For pricing details, see .

Constraints

Change Impact

Before changing a cluster's node specifications or storage type, it is essential to assess the potential impacts and review operational recommendations. This enables proper scheduling of the change, minimizing service interruptions.

Change Durations

Prerequisites

Changing the Node Specifications and Storage Type

  1. Log in to the CSS management console.
  2. In the navigation pane on the left, choose Clusters > Elasticsearch.
  3. Check that all service data has replicas so that services will not be interrupted during the change.
    1. In the displayed cluster list, find the target cluster, and click Access Kibana in the Operation column to log in to the Kibana console.
    2. In the left navigation pane, choose Dev Tools.
    3. Run the GET _cat/indices?v command in Kibana.
  4. In the cluster list, find the target cluster, and choose More > Modify Configuration in the Operation column. The Modify Configuration page is displayed.
  5. Click the Scale Cluster tab.
  6. Click Change specifications to set parameters.
    Table 2 Changing the node specifications and storage type

    Parameter

    Description

    Action

    Select Change specifications.

    Resources

    Shows the change of resources for this operation.

    Nodes

    Configure the changes you want to make.

    1. Select a node type in the Node Type column.
    2. Select a new flavor in the Node Specifications column, or select a new storage type in the Node Storage column.

    The node specifications and storage type cannot be changed at the same time.

  7. Click Next.
  8. Confirm the information and click Submit.
  9. In the displayed dialog box, confirm check items, and click OK to start the specifications change.
    • Check items for node specifications change: Verify index copies and Cluster status check.
    • Check items for node storage type change: Check cluster load.
    Table 3 Check item description

    Item

    Description

    Verify index copies

    By default, CSS checks for indexes that do not have any replicas created for them. You can skip this step, but the lack of index replicas may impact service availability during a node specifications change.

    • If you select Verify index copies and the cluster has no master nodes, each index is required to have at least one replica and the cluster must have at least three nodes.
    • If you select Verify index copies and the cluster has a master node, each index is required to have at least one replica, but there is no requirement on how many nodes the cluster must have.

    Cluster status check

    During a node specifications change, the cluster status is checked by default to improve the success rate and ensure data security. The nodes are changed one at a time. For each node, the system changes its specifications, restarts it, and checks that all its processes are started successfully before moving on to the next node.

    In emergencies (for example, when a cluster is overloaded and services are faulty, which may prevent a specifications change request from being delivered), you can skip cluster status check so that more resources can be made available for cluster recovery. However, doing so may cause the cluster to become faulty and interrupt services. Exercise caution.

    Check cluster load

    During a node storage type change, data migration between nodes and the stopping and restarting of nodes will consume cluster resources, causing the cluster load to increase. A cluster load check can identify possible overload risks for a cluster and reduce the likelihood of an overload condition causing the node storage type change to fail.

    The cluster load check items are as follows:

    • nodes.thread_pool.search.queue < 1000: Check that the maximum number of requests in the search queue is less than 1000.
    • nodes.thread_pool.write.queue < 200: Check that the maximum number of requests in the write queue is less than 200.
    • nodes.process.cpu.percent < 90: Check that the maximum CPU usage is less than 90%.
    • nodes.os.cpu.load_average/Number of vCPUs < 80%: Check that the number of running processes plus the number of processes waiting for CPUs is less than 80% of the total number of vCPUs.

    If the change request fails to be submitted and a message is displayed indicating that the cluster needs to be upgraded, it means the current cluster version does not support a node storage type change. Upgrade the cluster to the latest image version and then try again. For a detailed upgrade guide, see Upgrading the Version of an Elasticsearch Cluster.

  10. Click Back to Cluster List to go back to the Clusters page. The Cluster Status is Configuration modified. When Cluster Status changes to Available, the cluster node specifications have been successfully changed.