更新时间:2025-08-22 GMT+08:00
分享

扩容Elasticsearch集群

当Elasticsearch集群的数据量持续增长或内存占用过高时,集群可能无法有效应对业务负载和性能需求。此时,可以通过横向扩展方式增加节点数量和类型,或纵向扩展方式提升节点的存储容量。

表1 扩容场景介绍

扩容类型

适用场景

变更流程

增加节点数量

当集群的数据量持续增长或内存占用过高时,可以扩容“节点数量”保证集群的可用性。

增加数据节点数或冷数据节点数的变更流程如下:

  1. 创建新节点并修改集群配置。
  2. 系统自动触发分片重平衡机制,逐步将部分数据分片迁移至新节点。
  3. 分片迁移完成后,新节点将开始承接查询和索引请求。

增加Master节点数或Client节点数不涉及数据迁移。

整个扩容过程中,系统会确保每个分片至少保留可用副本,保障服务连续性,不会中断现有业务。

增加节点类型

当集群本身没有独立的Master节点或Client节点时,随着数据面业务增长,需要动态增加节点类型时,可以选择添加“Master节点”“Client节点”

添加节点类型的变更流程:创建新节点并修改集群配置。由于添加Master节点或Client节点不涉及数据迁移,因此该变更也不会中断现有业务。

添加Client节点会改变集群访问地址,从原来的数据节点地址变更为Client节点地址,建议客户端同步修改访问地址,否则Client节点无法起作用。

增加节点存储容量(扩容磁盘)

  • 当集群的数据量持续增长,磁盘容量不够时,可以扩容“节点存储容量”
  • 当集群的磁盘使用率持续偏高时,可以扩容“节点存储容量”
  1. 给云硬盘EVS服务下发所有集群节点的云硬盘扩容请求。
  2. 云硬盘扩容完成后,所有节点一起扩展已有磁盘卷的大小。

整个扩容过程中,不会中断现有业务。

介绍视频

本视频为您演示扩容Elasticsearch集群的操作,包括增加节点数量、增加节点存储容量和增加节点类型。

因不同版本操作界面可能存在差异,相关视频供参考,具体以实际环境为准。

前提条件

  • 确认集群处于“可用”状态,且无正在进行的任务。
  • 确认CSS服务有足够的配额支持变更规格,在形态变更页面可以查看当前可用资源。
    图1 查看可用资源

计费影响

如果是按需计费的集群,在扩容确认页面可以查看变更后的价格。变更完成后,集群将按照更新后的价格计费,计费规则请参见云搜服务价格计算器

如果是包周期的集群,在扩容确认页面会触发新的订单,可以查看价格信息。

约束限制

  • 集群的节点存储容量只支持扩容不支持缩容,请基于业务量合理选择节点存储容量。
  • 按需集群支持同时扩容“节点数量”“节点存储容量”,包周期集群不支持。
  • 集群的Master节点和Client节点的存储容量不支持扩容。
  • 本地盘类型的数据节点不支持扩容节点存储容量。
  • 扩容集群的节点数量时,不同节点类型的取值范围请参见表2
    表2 节点数量的取值说明

    节点类型

    取值范围

    数据节点

    • 集群没有Master节点时:1~32
    • 集群有Master节点时:1~200

    Master节点

    3、5、7、9(必须是3~9之间的奇数)

    Client节点

    1~32

    冷数据节点

    1~32

变更影响

在扩容前,您需要了解以下关键影响和操作建议,以便合理规划变更,最小化业务影响。

扩容节点存储容量(纵向扩展)对业务没有影响,而增加节点数量或增加节点类型(横向扩展)可能产生以下影响:

  • 性能影响

    扩容节点不会中断业务,但是扩容过程中数据分片需要均衡到新节点以分摊负载。此过程会消耗IO性能,建议在业务低峰期执行。

    建议在业务低峰期提高数据迁移速率以缩短任务耗时,并在业务高峰期降低迁移速率以减轻对集群性能的影响。数据迁移速率由“indices.recovery.max_bytes_per_sec”参数决定,该参数值默认是“CPU核数 x 32MB”(如4核CPU默认128MB)。该参数取值范围为40MB至1000MB,可根据业务需求调整。
    PUT /_cluster/settings  
    {  
      "transient": {  
        "indices.recovery.max_bytes_per_sec": "1000MB"  
      }  
    }
  • 变更过程特性

    扩容任务一旦启动就无法中止,直到任务成功或失败才会结束。

扩容时长

  • 增加节点数量或增加节点类型(横向扩展)的时长预计为10~30分钟,主要和集群本身的调度能力相关。
  • 扩容节点存储容量(纵向扩展)的时长预计为10~15分钟。

增加节点数量或节点存储容量

当集群的数据量持续增长或内存占用过高时,可以扩容节点数量或节点存储容量,提升节点的可用性和数据的持久性。

  1. 登录云搜索服务管理控制台
  2. 在左侧导航栏,选择“集群管理 > Elasticsearch”
  3. 在集群列表,选择目标集群,单击操作列的“更多 > 形态变更”进入形态变更页面。
  4. 选择“更改集群规格”页签。
  5. 在更改集群规格页面,设置扩容参数。
    表3 扩容节点数量和节点存储容量

    参数

    说明

    变更类型

    选择“扩容”

    变更的资源

    显示本次变更任务增加的资源。

    变更的角色

    “节点数量”列和“节点存储”列增加节点数量和节点存储容量。支持多种节点类型同时变更。

    • 节点数量的取值范围请参见约束限制
    • 节点存储容量的取值范围由“节点规格”决定,且只支持配置为20的倍数。
    说明:

    按需集群支持同时扩容“节点数量”“节点存储容量”,包周期集群不支持。

    图2 集群扩容
  6. 单击“下一步”
  7. 确认变更信息后,单击“提交申请”
  8. 单击“返回集群列表”跳转到集群列表页面。集群的“任务状态”列显示为“扩容”,表示集群正在扩容。当集群状态变为“可用”,则表示扩容成功。

增加节点类型

当集群本身没有独立的Master节点或Client节点时,随着数据面业务增长,需要动态增加节点类型时,可以添加“Master节点”“Client节点”

  1. 登录云搜索服务管理控制台
  2. 在左侧导航栏,选择“集群管理 > Elasticsearch”
  3. 在集群列表,选择目标集群,单击操作列的“更多 > 形态变更”进入形态变更页面。
  4. 选择“添加Master/Client节点”页签。

    当集群同时拥有Master节点和Client节点时,形态变更页面将不存在“添加Master/Client节点”页签。

  5. 在添加Master/Client节点页面,完成节点配置。
    表4 添加Master或Client节点

    参数

    说明

    启用节点类型

    勾选本次要添加的节点类型。

    • 只能选择一种节点类型,当需要同时添加Master和Client节点时,就需要执行2次“添加Master/Client节点”任务。
    • 当集群本身已经有Master节点或Client节点时,则此处只显示另一种节点类型供选择。

    节点规格

    根据需求选择节点规格。

    节点数量

    设置该节点的节点数量,取值范围请参见约束限制

    节点存储

    设置该节点的存储类型。Master节点和Client节点的存储容量为40GB,且不支持修改。

    图3 添加Master/Client节点
  6. 单击“下一步”
  7. 确认变更信息后,单击“提交申请”

    返回集群列表页面,集群的“任务状态”列中显示为“扩容中”

    • 如果添加Master节点,当“集群状态”变为“可用”时表示节点添加成功。

      如果集群版本小于7.x,当“集群状态”变为“可用”时,还需要重启集群的所有数据节点和冷数据节点,使新增节点的配置生效。如果不重启使新增节点配置生效,使用集群时因为上报机制问题可能显示不可用状态(集群业务并未不可用)。重启操作请参见重启Elasticsearch集群

    • 如果添加Client节点,当“集群状态”变为“可用”时表示节点添加成功。可选择是否重启数据节点和冷数据节点,下线数据节点上的Cerebro和Kibana的进程。

相关文档

相关文档