当您的业务存在高低峰期或其他变化,导致集群节点规格高于业务所需规格时,可通过阿里云Elasticsearch(简称ES)的集群降配功能,降低节点规格配置、变更节点磁盘类型等,以便更好地保障业务发展并控制成本。
前提条件
确保集群为正常(绿色)状态。
在Kibana控制台执行以下命令,检查集群中是否存在状态为close的索引。如果存在,需要将对应索引的状态暂时设置为open,否则变更不成功。
查看索引状态
GET /_cat/indices?v
将close状态的索引暂时设置为open状态
POST /<index_name>/_open
<index_name>需要替换为状态为close的索引名称。
登录Kibana控制台,执行以下命令,查看索引副本数,副本数需要至少为1。
说明对于多可用区实例,在变更时需要确保集群中任意一个索引的副本数都小于可用区数,建议副本数设置为1,待变更完成后,您可以根据业务需求手动增加副本数,详情请参见索引模板。
如果集群负载高且索引没有副本,同时在降配过程中存在大量的写入或查询等情况,业务可能会出现偶发的访问超时现象,无法保证高可用机制,业务稳定性无法保证。
GET _cat/indices?v
使用限制
不支持弹性数据节点降配。
集群需满足以下条件才可降配:
操作时间间隔
对于同一集群,两次降配操作时间间隔不得少于30分钟。
集群负载
针对不同角色的节点,为了保证降配中集群的稳定性,负载必须满足以下条件才可触发降配。
节点类型
CPU使用率
JVM堆内存使用率
专有主节点
近1天单节点CPU使用率最大值 < 30%
近1天单节点JVM堆内存使用率最大值 < 25%
其他角色节点
同时满足以下条件:
近1天单节点CPU使用率最大值 < 50%
近1天所有节点CPU使用率平均值 < 30%
同时满足以下条件:
近1天单节点JVM堆内存使用率最大值 < 50%
近1天所有节点JVM堆内存使用率平均值 < 30%
规格
降配所选的目标规格的CPU和内存均需大于或等于当前规格的1/2,且不支持将节点规格降配至1核2 GiB、2核2 GiB、2核4 GiB和4核4 GiB。
说明kibana节点仅不支持降配至1核2 GiB。
如果您需要降配至2核4 GiB或4核4 GiB,请新建一个2核4 GiB或4核4 GiB的实例,然后通过数据迁移的方式(例如通过Logstash)将数据迁移到新实例中。
云盘类型降配
支持存储性能较高的云盘降配到存储性能较低的云盘,云盘存储性能由高到低依次为:ESSD云盘、SSD云盘、高效云盘,您可以根据需求进行降配。云盘更多详细信息请参见云盘概述。
说明系统不支持将ESSD-PL0降配到SSD。
仅ES 7.16、8.5和8.9等高版本,支持数据节点存储空间降配。从集群稳定性角度出发,变更期间磁盘使用率需保持在相对安全的水位以下,所以降配后的磁盘空间水位不能超过60%,即
当前磁盘空间使用量/降配后的磁盘空间 < 60%
。
注意事项
如果集群索引存在副本分片且集群负载处于正常水平(CPU使用率在60%左右,堆内存使用率在50%左右,load_1m低于CPU核数),一般情况下,在集群变更过程中可持续对外提供服务。
降配集群会触发集群重启,重启时间与集群规格、数据结构和大小等因素有关,建议在业务低峰期操作。一般情况下,重启耗时较长,在小时级别。详细信息,请参见重启实例或节点。
降配过程中不会出现数据丢失的现象,但如果集群负载高或状态异常,访问可能出现偶发的超时抖动,建议您业务上做好重试机制并加副本数。
操作步骤
- 登录阿里云Elasticsearch控制台。
在顶部菜单栏,选择资源组和地域。再在左侧导航栏,单击Elasticsearch实例。
在实例列表中,选择目标实例右侧操作列下的 。
选择待降配的节点类型,单击修改。
在展开的节点配置中,修改节点的规格或存储类型。
重要系统只展示可变更的规格。
每次只能变更一种节点类型的配置,同时支持同一类型节点的多种变更。例如支持变更数据节点规格的同时,变更其存储类型。
变更节点数后,集群不会自动重新规划分片,可能导致数据在分片上的分配不均匀。分片分配不均的排查方法和解决方案请参见集群负载不均问题的分析方法及解决方案。
查看并选中服务协议和风险提示,单击立即购买。
购买后,集群会重启,重启成功后即可完成集群降配。
常见问题
相关文档
降配集群的API,请参见UpdateInstance。
请结合规格容量评估和使用限制,确保降配后集群有足够的存储空间。如果降配后集群负载较高,建议及时升配,具体操作请参见升配集群。