降配集群

更新时间:
复制 MD 格式

若您的业务存在流量波动(如高低峰期),导致集群资源利用率长期偏低,通过降配操作可缩减节点规格、数量或调整存储类型等实现资源与业务需求匹配,有效优化成本。

降配须知

重要

降配操作可能引发服务延迟、配置冲突及费用变更,请务必提前完整阅读以下须知内容。

  • 服务稳定性

    • 集群变更期间服务稳定性规则:

      集群

      服务状态

      应对措施

      高负载+无副本

      高负载:降配时高并发写入或者查询,CPU>60%、堆内存>50%

      偶发访问超时

      • 客户端启用重试机制

      • 降配前增加索引副本数(至少为1)

      降配后数据节点数≤2

      可能造成数据丢失

    • 操作窗口:业务低峰期进行。

  • 配置约束

    • v3部署架构下的集群支持降配数据节点存储空间。

    • 不支持在降配集群时升级版本。

    • 一次降配操作仅支持变更一种类型的节点。

    • 不支持降配弹性数据节点。

    • 同一集群连续两次降配操作需间隔≥30分钟。

    • v2管控部署模式下的集群不支持直接缩小单节点磁盘容量。若需降低总磁盘容量,需通过缩容数据节点实现,此操作会导致节点数量变化。

    • 降配对节点数量的影响取决于变更方式:

      • 原地变更:不改变节点数量,仅变更节点规格或存储空间。

      • 蓝绿变更:先添加与当前相同数量的新节点并迁移数据,迁移完成后移除旧节点,最终节点数量与降配目标规格的节点数量一致。此过程中临时节点增多属于正常现象。

  • 降配后CPU规格约束

    • 基础规则:目标规格CPU和内存 ≥ 当前规格的一半。

    • 禁止降配至:12GiB22GiB24GiB44GiB(Kibana节点可降配至22GiB

      特殊规格处理:需降配至禁用规格时,需新建集群后进行数据迁移。

  • 成本影响

    提交降配订单后,系统将按照更新后的配置单计费。计费规则请参见按量付费包年包月

降配前检查

重要

未完成以下检查直接降配可能导致集群崩溃、数据丢失或服务不可用,请逐项检查验证。

  • 集群健康

    执行GET _cluster/health 确保集群为状态为GREEN。

  • 负载安全

    集群满足以下条件,可支持降低配置:

    节点类型

    CPU使用率

    JVM堆内存使用率

    专有主节点

    1天单节点峰值 < 30%

    1天单节点峰值 < 25%

    其他角色节点

    同时满足:

    • 近1天单节点峰值 < 50%

    • 近1天所有节点均值 < 30%

    同时满足:

    • 近1天单节点峰值 < 50%

    • 近1天所有节点均值 < 30%

    上表中 CPU 使用率和 JVM 堆内存使用率的校验指标,统计周期均为近 1 天(即最近 24 小时),而非监控页面显示的当前实时值。其中,峰值指近 1 天内单个节点出现过的最高使用率,均值指近 1 天内所有节点使用率的平均值。因此,即使当前实时值不高,只要近 1 天内出现过单节点峰值超标或所有节点均值超标,在实例列表页单击降配并提交订单时,仍会被校验拦截。

    若提交订单时出现 CPU 使用率高于校验水位的提示,请对照上表逐项核对近 1 天的单节点峰值与所有节点均值(各节点类型的具体阈值以上表为准),待两项指标均回落至阈值以下后重新提交降配订单。

  • 索引就绪

    • 执行GET /_cat/indices?v检查是否存在状态为CLOSE的索引。如果存在,需执行POST /<index_name>/_open临时打开这些索引,否则配置变更可能失败,原因说明:

      • 存在CLOSE状态的索引时,集群状态无法达到GREEN。ES在执行某些敏感配置变更(如分片分配规则调整)前会强制要求集群状态为GREEN。

      • 变配过程中集群会重新分配分片:

        • 关闭索引的分片无法参与重分配。

        • 导致依赖GREEN状态的操作失败。

        • 导致集群状态无法达到GREEN(最高只能达到YELLOW)。

    • 执行GET _cat/indices?v检查索引副本数是否至少为1。

      对于多可用区实例,在变更时需确保集群中任意一个索引的副本数小于可用区数,建议副本数设置为1,变更完成后,手动增加副本数。

    • 如果索引中存在大量 Delete 碎片,这些碎片会占用较多磁盘空间。此时直接进行磁盘降配,可能因剩余空间不足而导致磁盘降配校验失败或报错。建议在业务低峰期先执行 Force Merge 清理 Delete 碎片并释放磁盘空间,再进行磁盘降配

方式一:通过控制台降配

降配规格、磁盘类型和空间

  1. 实例列表,单击降配

    单击目标实例右侧的更多操作图标,在下拉菜单中选择 降配

    更多操作入口:在基本信息页面,单击配置变更 > 集群降配

  2. 降配页面,根据业务需要调整配置项参数。

    重要

    可调整的配置项参数因集群类型和版本不同而有所出入,以降配页面为准。

    • 支持节点规格(节点存储类型)降配,按性能从高到低排序:

      1. 本地盘:本地SSD盘型(NVMe SSD本地盘)->本地SATA盘型(SATA HDD本地盘) 。

        说明

        本地盘ECS实例所在物理机上的本地硬盘设备,为ECS实例提供本地存储访问能力,适用于对存储I/O性能、海量存储性价比有极高要求的业务场景。

      2. ESSD云盘:ESSD(Enterprise SSD)云盘结合25 GE网络和RDMA技术,为您提供单盘高达100万的随机读写能力和单路低时延性能。

        说明

        ESSD-PL0不可降为SSD云盘。

      3. 上一代云盘:SSD云盘->高效云盘-> 云盘(普通云盘)。

        说明

        已在部分地域及可用区逐步停止售卖,您在选择云盘时,建议选用ESSD云盘。

    • 数据节点存储空间降配(仅限v3管控部署模式下的集群):为确保集群稳定性,降配后磁盘空间使用率应低于60%,即降配前需确保:当前磁盘使用量 < 降配后磁盘空间 × 0.6。

      在实例的基本信息页面,查看管控部署模式,确认其值为云原生新管控(v3)

      v2管控部署模式下的集群不支持通过控制台或者API降配存储空间,如需降配请联系技术支持。
    • 数据节点数量降配(缩容数据节点):在选择变更项区域单击数据节点,减小数据节点数量即可缩容数据节点。

      说明

      部分集群的降配页面不支持减少节点数量。若减小数据节点数量后页面提示当前页面暂不支持减少该类型节点的数量,数据节点请前往集群数据节点缩容页变更,请切换至缩容数据节点页签,通过集群数据节点缩容入口完成缩容。

    • 降配弱校验(默认关闭,不建议开启):开启后系统会放宽降配前的资源校验。集群降配可能导致资源不足,进而影响集群稳定性和服务,且开启后降配引发的服务不可用问题将不计入SLA保障范围,请充分评估风险后再开启。

    • 变更方式无需手动指定,系统会根据变配项自动选择最优变更方式(原地变更或蓝绿变更)。

  3. 单击查看产品服务协议服务等级协议,无异议后,单击立即购买,系统根据变配项自动选择最优变更策略,同时按照付费方式收取费用。

    变更期间,集群状态变为生效中,集群性能可能出现短暂波动,可能出现请求闪断;变更完成后,集群状态更新为正常,集群内节点IP会发生变化。

缩容数据节点

缩容数据节点支持两个入口:本页签介绍的集群数据节点缩容页面,以及降配页面中的数据节点数量云原生新管控(v3)管控部署模式下的集群可以直接在降配页面减小数据节点数量完成缩容,操作请参见降配规格、磁盘类型和空间页签;若降配页面提示当前页面暂不支持减少该类型节点的数量,数据节点请前往集群数据节点缩容页变更,请按以下步骤操作。

  1. 在实例基本信息页面,单击配置变更 > 集群数据节点缩容

  2. 根据业务需要选择节点类型以及需要减少的节点个数。

    重要
    • 阿里云ES在缩容前将自动执行节点安全校验,若校验失败,请根据报错提示排除错误后重试缩容。

    • 可调整的配置项参数因集群类型和版本不同而有所出入,以控制台页面为准,本示例为引擎增强版8.17.0版。

    请选择节点类型可选数据节点冷数据节点(可选项以集群实际配置为准),当前节点个数为该类型节点的现有数量,在缩节点个数中输入本次要减少的节点个数。

  3. 单击 确定,系统执行缩容操作,同时根据集群配置以及付费方式计量费用。

    变更期间,集群状态变为生效中,集群性能可能出现短暂波动,可能出现请求闪断;变更完成后,集群状态更新为正常,集群内节点IP会发生变化。

方式二:调用API降配

集群降配API文档:UpdateInstance

数据迁移和回滚

为保证数据的安全,进行缩容的数据节点中不应该存在数据。如果所选数据节点中有数据,系统会提示您进行数据迁移。迁移后所选节点上不再有任何索引数据,新的索引数据也不会被写入该节点。

数据迁移

  1. 缩容配置区域,单击提示栏中的数据迁移辅助工具

    数据迁移辅助工具通过Elasticsearch分片过滤器实现数据平滑迁移,数据迁移过程业务无感知。

  2. 集群数据节点迁移对话框,选择节点迁移方式。

    设置迁移节点类型数据节点,输入迁移节点个数。系统会根据数据分布和集群健康状况智能推荐迁移节点IP,请二次确认数据安全。勾选同意阿里云Elasticsearch数据迁移服务协议后,单击确认

    参数

    说明

    系统建议

    通过系统建议自动选择需要迁移的数据节点。

    自定义

    手动选择需要迁移的数据节点。

  3. 选中数据迁移协议,单击确认

数据回滚

数据迁移是一个周期很长的过程,在此期间集群状态和数据的变更可能会导致迁移失败,具体可在任务列表中查看。当数据迁移失败或者迁移完成后,可通过以下步骤对迁移节点进行回滚:

  1. 登录目标阿里云Elasticsearch实例的Kibana控制台,根据页面提示进入Kibana主页。

    登录Kibana控制台的具体操作,请参见登录Kibana控制台

    说明

    本文以阿里云Elasticsearch 6.7.0版本为例,其他版本操作可能略有差别,请以实际界面为准。

  2. 在左侧导航栏,单击Dev Tools

  3. Console中执行以下命令,获取迁移节点的IP地址。

    GET _cluster/settings

    执行成功后,返回如下结果。

    {
      "transient": {
        "cluster": {
          "routing": {
            "allocation": {
              "exclude": {
                "_ip": "192.168.xx.xx,192.168.xx.xx,192.168.xx.xx"
              }
            }
          }
        }
      }
    }                        
  4. 执行以下命令,回滚迁移节点数据。

    • 回滚部分节点数据。配置中要去掉需要回滚的节点,但要保留不回滚的节点。

      PUT _cluster/settings
      {
        "transient": {
          "cluster": {
            "routing": {
              "allocation": {
                "exclude": {
                  "_ip": "192.168.xx.xx,192.168.xx.xx"
                }
              }
            }
          }
        }
      }
    • 回滚全部节点数据。

      PUT _cluster/settings
      {
        "transient": {
          "cluster": {
            "routing": {
              "allocation": {
                "exclude": {
                  "_ip": null
                }
              }
            }
          }
        }
      }                            
  5. 执行以下命令,校验是否完成数据回滚。

    GET _cluster/settings

    执行成功后,如果返回结果中不包含迁移节点的IP地址,则表示已经完成该节点的迁移回滚任务。您也可以通过观察相应节点是否被重新分配shard来判断。

    说明

    数据迁移或回滚时,均可以通过GET _cat/shards?v命令查看任务状态。

进度监控与降配后验证

  • 在实例详情页右上角,单击更多图标(三横线),打开任务列表浮层。在变更进度页签下,可查看变更开始时间、变更类型、变更状态及完成百分比等信息。

    单击展开详情查看变更明细。

  • 降配完成后通过集群基本信息页确认配置是否生效:

    • 集群状态恢复为正常

    • 节点数和存储规格:确认节点数、存储规格、存储空间是否跟预期一致。

    • 分片均衡:GET _cat/allocation?v 检查分片分布,如遇分片不均衡,请参考集群负载不均解决方案进行解决。

常见问题

  • 集群无法变配,如何处理?

  • ES实例支持变更云盘类型吗?

  • 变更集群配置会影响ES服务吗?

  • 变更节点数后,集群会自动重新规划分片吗?

  • 购买ES实例时选错配置,如何处理?

  • 升级了实例规格后,可以降低配置吗,如何操作?

  • 为什么冷数据节点无法降配?

  • 为什么磁盘降配后节点数增多?

    ES通过调整节点数量来达到目标磁盘容量,因此磁盘降配后节点数可能增多。

  • Logstash 实例是否支持降配?

    Logstash 实例不支持降配操作。如需调整 Logstash 实例配置,请创建新实例并迁移数据。本文档所述降配操作仅适用于 Elasticsearch 实例。

  • 降配后为什么没有收到退款?降配退款金额如何计算?

    降配退款金额 = 原规格剩余费用 − 新规格购买费用。若按该规则计算的结果小于 0,即原规格剩余费用不足以覆盖新规格的购买费用,则不产生退款,降配后未退款属于正常结果。您可以按上述规则核对本次降配费用,退款到账时间、可退渠道等细则以降配退款规则说明为准。

  • 包年包月转按量付费提示“订单配置参数不符合校验条件”怎么办?

    单击转按量付费后出现该报错,通常由实例架构版本的兼容性导致。建议先将实例架构升级至 V3 版本,再重新提交转按量付费。若升级后仍提示订单配置参数不符合校验条件,或该实例无法升级架构版本,请记录报错返回的 RequestID,并通过工单反馈,由技术支持排查处理。

  • 降配时提示无法操作或资源不足警告怎么办?

    控制台降配页面最下方找到并开启降配弱校验选项,可跳过部分资源检查,例如缩容时的资源不足警告。缩容完成后,请重新进行分片均衡操作。开启弱校验或执行强制降配存在集群稳定性风险,可能导致服务不可用或数据丢失。请务必确认您已知晓并接受相关风险后再操作。