扩容Elasticsearch集群
当Elasticsearch或OpenSearch集群的数据面业务变化,需要动态调整集群节点的数量、容量、规格和类型时,可以参考本文扩容集群。
场景描述
CSS服务支持多种扩容场景,如表1所示。
场景 |
描述 |
相关文档 |
---|---|---|
增加节点数量和容量 |
只支持基于节点类型扩容集群的“节点数量”和“节点存储容量”。适用于如下场景:
|
|
升级节点规格 |
只支持基于节点类型变更集群的“节点规格”。一般用于小规格变更为大规格,常用于如下场景:
|
|
增加节点类型 |
当集群本身没有Master节点(ess-master)和Client节点(ess-client)时,随着数据面业务增长,需要动态调整集群形态时,可以选择增加“Master节点”或“Client节点”。 |
约束限制
- 集群的节点存储容量只支持扩容不支持缩容,请基于业务量合理选择节点存储容量。
- 包周期集群不支持同时扩容“节点数量”和“节点存储容量”。
- 在集群数据量比较大的情况下,变更节点规格耗时比较长,建议在业务低峰期更改节点规格,利于更快完成规格更改。
- 变更节点规格也支持将大规格更改为小规格,但是此变更会降低集群的处理性能,进而影响业务能力,请谨慎使用。
- 当集群包含多种节点类型时,一次只支持变更一种类型的节点规格,且变更完成后只生效所选类型的节点规格。
- 变更规格过程中,Kibana不可用。
- 变更规格过程中,会依次对节点进行关机,完成更改后再依次开机,是一个滚动的变更过程。在这过程中,Kibana不可用。
- 当一个集群包含的节点类型不同时,各节点类型支持的节点数量不同,扩容节点数量时请参考表2。
表2 集群的节点数量取值说明 一个集群包含的节点类型
节点数量的取值范围
ess
ess:1~32
ess、ess-master
ess:1~200
ess-master:3~9的奇数
ess、ess-client
ess:1~32
ess-client:1~32
ess、ess-cold
ess:1~32
ess-cold:1~32
ess、ess-master、ess-client
ess:1~200
ess-master:3~9的奇数
ess-client:1~32
ess、ess-master、ess-cold
ess:1~200
ess-master:3~9的奇数
ess-cold:1~32
ess、ess-client、ess-cold
ess:1~32
ess-client:1~32
ess-cold:1~32
ess、ess-master、ess-client、ess-cold
ess:1~200
ess-master:3~9的奇数
ess-client:1~32
ess-cold:1~32
说明:- ess:数据节点,即创建集群时必配的节点类型,其他3种节点类型都是基于业务需要可选的类型。
- ess-master:Master节点。
- ess-client:Client节点。
- ess-cold:冷数据节点。
前提条件
- 确认集群处于“可用”状态,且无正在进行的任务。
- 确认CSS服务有足够的配额支持集群扩容。
扩容节点数量和节点存储容量
- 登录云搜索服务管理控制台。
- 在左侧菜单栏,选择对应的集群类型,进入集群管理页面。
- 选择目标集群,单击操作列的“更多>形态变更”进入更改集群规格页面。
- 选择“更改集群规格”页签。
- 在更改集群规格页面,设置扩容参数。
表3 扩容节点数量和节点存储容量 参数
说明
变更类型
选择“扩容”。
变更的资源
显示本次扩容的资源变化量。
变更的角色
在“节点数量”列和“节点存储”列增加节点数量和节点存储容量。支持多种节点类型同时变更。
- 节点数量的取值范围请参见表2。
- 节点存储容量的取值范围由“节点规格”决定,且只支持配置为20的倍数。
说明:包周期集群不支持同时扩容“节点数量”和“节点存储容量”。
图1 集群扩容
- 单击“下一步”。
- 确认变更信息后,单击“提交申请”。
- 单击“返回集群列表”跳转到集群管理页面。集群的“任务状态”列显示为“扩容”,表示集群正在扩容。当集群状态变为“可用”,则表示扩容成功。
变更节点规格
- 登录云搜索服务管理控制台。
- 在左侧菜单栏,选择对应的集群类型,进入集群管理页面。
- 确认业务数据是否都有副本,确保变更规格过程中不会中断业务。
- 在集群列表选择目标集群,单击操作列的Kibana,登录Kibana。
- 选择左侧导航栏的“Dev Tools”,进入操作页面。
- 在Kibana中执行命令GET _cat/indices?v。
- 当返回的“rep”值大于“0”时,则表示有副本,请继续执行下一步。
- 当返回的“rep”值等于“0”时,则表示没有副本,建议先为集群手动创建快照再变更规格。
- 选择目标集群,单击操作列的“更多>形态变更”进入形态变更页面。
- 选择“更改集群规格”页签。
- 在更改集群规格页面,设置变更规格的参数。
表4 变更节点规格 参数
说明
变更类型
选择“变更规格”。
变更的资源
显示本次变更规格的资源变化量。
变更的角色
先在“节点类型”列选择本次要变更的节点类型,只能选择一种类型。再在“节点规格”列选择新规格。
图2 集群变更规格
- 单击“下一步”。
- 确认变更信息后,单击“提交申请”。
- 在弹出的窗口确认是否勾选“进行索引副本校验”和“检测集群状态”,单击“确认”启动集群规格变更。
- 索引副本校验:索引副本校验用于保证索引正常提供服务。如果跳过校验,变更规格操作将不会要求每一个索引都有副本,变更过程中可能会影响业务。
- 没有Master节点的集群更改节点规格时,如果选择进行索引副本校验,则要求所有索引至少有1个副本,且“节点数量”总和不小于3。
- 有Master节点的集群更改节点规格时,如果选择进行索引副本校验,则要求所有索引至少有1个副本。
- 检测集群状态:默认检测集群状态,变更规格为滚动变更,变更过程中,为了保证变更成功率以及数据安全,会确保每个节点进程拉起来后继续后续节点操作。当集群负载过高业务故障,无法正常下发变更请求,依赖更多的资源才能恢复的紧急情况下可忽略检测集群状态,忽略后,变更过程中因为忽略集群状态检测可能会导致集群故障并中断业务,请谨慎跳过。
- 索引副本校验:索引副本校验用于保证索引正常提供服务。如果跳过校验,变更规格操作将不会要求每一个索引都有副本,变更过程中可能会影响业务。
- 单击“返回集群列表”跳转到集群管理页面。集群的“任务状态”列中显示为“规格修改”,表示集群正在更改规格。当集群状态变为“可用”,则表示规格变更成功。
添加Master或Client节点
- 登录云搜索服务管理控制台。
- 在左侧菜单栏,选择对应的集群类型,进入集群管理页面。
- 选择目标集群,单击操作列的“更多>形态变更”进入形态变更页面。
- 选择“添加Master/Client节点”页签。
当集群同时拥有Master节点和Client节点时,形态变更页面将不存在“添加Master/Client节点”页签。
- 在添加Master/Client节点页面,勾选需要添加的节点,并配置“节点规格”、“节点数量”和“节点存储”。
表5 添加Master或Client节点 参数
说明
启用节点类型
勾选本次要添加的节点类型。
- 只能选择一种节点类型,当需要同时添加Master和Client节点事,就需要执行2次“添加Master/Client节点”任务。
- 当集群本身已经有Master节点或Client节点时,则此处只显示另一种节点类型供选择。
节点规格
根据需求选择节点规格。
节点数量
设置该节点类型的节点数量,取值范围请参见表2。
节点存储
设置该节点类型的存储类型和容量,节点存储容量的取值范围由“节点规格”决定,且只支持配置为20的倍数。
图3 添加Master/Client节点
- 单击“下一步”。
- 确认变更信息后,单击“提交申请”。
返回集群列表页面,集群的“任务状态”列中显示为“扩容中”。
- 如果添加Master节点,当“集群状态”变为“可用”时表示节点添加成功。
如果集群版本小于7.x,当“集群状态”变为“可用”时,还需要重启集群的所有数据节点和冷数据节点,使新增节点的配置生效。如果不重启使新增节点配置生效,使用集群时因为上报机制问题可能显示不可用状态(集群业务并未不可用)。重启操作请参见重启Elasticsearch集群。
- 如果添加Client节点,当“集群状态”变为“可用”时表示节点添加成功。可选择是否重启数据节点和冷数据节点,下线数据节点上的Cerebro和Kibana的进程。
- 如果添加Master节点,当“集群状态”变为“可用”时表示节点添加成功。