变更Elasticsearch集群节点规格
当Elasticsearch或OpenSearch集群的数据面业务变化,需要动态调整集群的节点规格和磁盘类型时,可以参考本文变更规格。
场景描述
场景 |
描述 |
约束限制 |
---|---|---|
升级节点规格 |
基于某一节点类型变更集群的“节点规格”。变更规格过程中,会依次对节点进行关机,完成更改后再依次开机,是一个滚动的变更过程。 一般用于小规格变更为大规格,常用于如下场景:
|
|
变更磁盘类型 |
基于某一节点类型变更集群的节点存储类型。通过重建节点的方式删除原类型的磁盘,再挂载新类型的磁盘,实现更改节点的磁盘类型。 |
|
在集群数据量比较大的情况下,变更节点规格耗时比较长,建议在业务低峰期更改节点规格,利于更快完成规格更改。
前提条件
- 确认集群处于“可用”状态,且无正在进行的任务。
- 确认CSS服务有足够的配额支持集群扩容。
更改集群规格
- 登录云搜索服务管理控制台。
- 在左侧菜单栏,选择对应的集群类型,进入集群管理页面。
- 确认业务数据是否都有副本,确保变更规格过程中不会中断业务。
- 在集群列表选择目标集群,单击操作列的Kibana,登录Kibana。
- 选择左侧导航栏的“Dev Tools”,进入操作页面。
- 在Kibana中执行命令GET _cat/indices?v。
- 当返回的“rep”值大于“0”时,则表示有副本,请继续执行下一步。
- 当返回的“rep”值等于“0”时,则表示没有副本,建议先为集群手动创建快照再变更规格。
- 选择目标集群,单击操作列的“更多>形态变更”进入形态变更页面。
- 选择“更改集群规格”页签。
- 在更改集群规格页面,设置变更规格的参数。
表2 变更规格 参数
说明
变更类型
选择“变更规格”。
变更的资源
显示本次变更规格的资源变化量。
变更的角色
先在“节点类型”列选择本次要变更的节点类型,只能选择一种类型。再在“节点规格”列选择新规格,或“节点存储”列选择新磁盘类型。节点规格和磁盘类型,不支持同时变更。
图1 变更规格
- 单击“下一步”。
- 确认变更信息后,单击“提交申请”。
- 在弹窗中确认检测项,单击“确认”启动集群规格变更。
- 当变更节点规格时,需要确认是否勾选“进行索引副本校验”和“检测集群状态”。
- 当变更磁盘类型时,需要确认是否勾选“索引副本校验”和“检测集群负载”。
表3 检测项说明 检测项
说明
索引副本校验
索引副本校验用于保证索引正常提供服务。如果跳过校验,变更规格操作将不会要求每一个索引都有副本,变更过程中可能会影响业务。
- 当没有Master节点的集群更改节点规格时,如果选择进行索引副本校验,则要求所有索引至少有1个副本,且“节点数量”总和不小于3。
- 当有Master节点的集群更改节点规格时,如果选择进行索引副本校验,则要求所有索引至少有1个副本。
检测集群状态
默认检测集群状态,变更规格为滚动变更,变更过程中,为了保证变更成功率以及数据安全,会确保每个节点进程拉起来后继续后续节点操作。当集群负载过高业务故障,无法正常下发变更请求,依赖更多的资源才能恢复的紧急情况下可忽略检测集群状态,忽略后,变更过程中因为忽略集群状态检测可能会导致集群故障并中断业务,请谨慎跳过。
检测集群负载
更改磁盘类型过程中节点数据的迁移以及节点下线再上线的动作,会占用集群资源,使集群负载升高。集群负载检测能够识别集群当前可能存在的负载风险,能降低因为集群负载过高而导致的集群更改磁盘类型失败。
“集群负载检测”检测项包含:
- 最大search队列排队数小于1000(nodes.thread_pool.search.queue < 1000)
- 最大write队列排队数小于200(nodes.thread_pool.write.queue < 200)
- 最大cpu使用率小于90%(nodes.process.cpu.percent < 90)
- 最大load相对核数占比小于80%( nodes.os.cpu.load_average / cpu核数 < 80%)
如果提交失败,提示需要升级集群,则表示当前集群版本过旧,不支持变更磁盘类型,请先升级集群到最新的镜像版本再变更。升级指导请参见升级Elasticsearch集群版本。
- 单击“返回集群列表”跳转到集群管理页面。集群的“任务状态”列中显示为“规格修改”,表示集群正在更改规格。当集群状态变为“可用”,则表示规格变更成功。