当您的业务存在高低峰期或其他变化,导致集群节点规格高于业务所需规格时,可通过阿里云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。
请结合规格容量评估和使用限制,确保降配后集群有足够的存储空间。如果降配后集群负载较高,建议及时升配,具体操作请参见升配集群。