更新时间:2024-08-15 GMT+08:00
分享

扩容Elasticsearch集群

当Elasticsearch或OpenSearch集群的数据面业务变化,需要动态调整集群节点的数量、容量、规格和类型时,可以参考本文扩容集群。

场景描述

CSS服务支持多种扩容场景,如表1所示。

表1 扩容场景

场景

描述

相关文档

增加节点数量和容量

只支持基于节点类型扩容集群的“节点数量”“节点存储容量”。适用于如下场景:

  • 当集群数据节点(ess)的写入与查询压力大、响应时间过长时,可以通过扩容数据节点的“节点存储容量”保证数据的持久性。如果因数据量过大或操作不当导致数据节点状态异常时,可以扩容“节点数量”保证集群的可用性。
  • 冷数据节点(ess-cold)主要用于分担数据节点(ess)的压力,当发现冷数据有丢失的风险时,可以扩容冷数据节点的“节点存储容量”保证冷数据的持久性,同时也支持扩容节点个数保证集群的可用性。

扩容节点数量和节点存储容量

升级节点规格

只支持基于节点类型变更集群的“节点规格”。一般用于小规格变更为大规格,常用于如下场景:

  • 当新增索引或分片分配的处理时间过长,或管理集群各个节点的协调、调度不足时,可以升级Master节点(ess-master)的“节点规格”保证集群的正常使用。
  • 当数据节点任务分发量、结果汇聚量过大时,可以升级Client节点(ess-client)的“节点规格”
  • 当数据的写入与查询突然变得缓慢时,可以升级数据节点(ess)的“节点规格”提高数据节点的查询与写入效率。
  • 当存在冷数据查询缓慢时,可以升级冷数据节点(ess-cold)的“节点规格”提高对数据查询的效率。

变更节点规格

增加节点类型

当集群本身没有Master节点(ess-master)和Client节点(ess-client)时,随着数据面业务增长,需要动态调整集群形态时,可以选择增加“Master节点”“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服务有足够的配额支持集群扩容。

扩容节点数量和节点存储容量

  1. 登录云搜索服务管理控制台。
  2. 在左侧菜单栏,选择对应的集群类型,进入集群管理页面。
  3. 选择目标集群,单击操作列的“更多>形态变更”进入更改集群规格页面。
  4. 选择“更改集群规格”页签。
  5. 在更改集群规格页面,设置扩容参数。
    表3 扩容节点数量和节点存储容量

    参数

    说明

    变更类型

    选择“扩容”

    变更的资源

    显示本次扩容的资源变化量。

    变更的角色

    “节点数量”列和“节点存储”列增加节点数量和节点存储容量。支持多种节点类型同时变更。

    • 节点数量的取值范围请参见表2
    • 节点存储容量的取值范围由“节点规格”决定,且只支持配置为20的倍数。
    说明:

    包周期集群不支持同时扩容“节点数量”“节点存储容量”

    图1 集群扩容
  6. 单击“下一步”
  7. 确认变更信息后,单击“提交申请”
  8. 单击“返回集群列表”跳转到集群管理页面。集群的“任务状态”列显示为“扩容”,表示集群正在扩容。当集群状态变为“可用”,则表示扩容成功。

变更节点规格

  1. 登录云搜索服务管理控制台。
  2. 在左侧菜单栏,选择对应的集群类型,进入集群管理页面。
  3. 确认业务数据是否都有副本,确保变更规格过程中不会中断业务。
    1. 在集群列表选择目标集群,单击操作列的Kibana,登录Kibana。
    2. 选择左侧导航栏的“Dev Tools”,进入操作页面。
    3. 在Kibana中执行命令GET _cat/indices?v
      • 当返回的“rep”值大于“0”时,则表示有副本,请继续执行下一步。
      • 当返回的“rep”值等于“0”时,则表示没有副本,建议先为集群手动创建快照再变更规格。
  4. 选择目标集群,单击操作列的“更多>形态变更”进入形态变更页面。
  5. 选择“更改集群规格”页签。
  6. 在更改集群规格页面,设置变更规格的参数。
    表4 变更节点规格

    参数

    说明

    变更类型

    选择“变更规格”

    变更的资源

    显示本次变更规格的资源变化量。

    变更的角色

    先在“节点类型”列选择本次要变更的节点类型,只能选择一种类型。再在“节点规格”列选择新规格。

    图2 集群变更规格
  7. 单击“下一步”
  8. 确认变更信息后,单击“提交申请”
  9. 在弹出的窗口确认是否勾选“进行索引副本校验”“检测集群状态”,单击“确认”启动集群规格变更。
    • 索引副本校验:索引副本校验用于保证索引正常提供服务。如果跳过校验,变更规格操作将不会要求每一个索引都有副本,变更过程中可能会影响业务。
      • 没有Master节点的集群更改节点规格时,如果选择进行索引副本校验,则要求所有索引至少有1个副本,且“节点数量”总和不小于3。
      • 有Master节点的集群更改节点规格时,如果选择进行索引副本校验,则要求所有索引至少有1个副本。
    • 检测集群状态:默认检测集群状态,变更规格为滚动变更,变更过程中,为了保证变更成功率以及数据安全,会确保每个节点进程拉起来后继续后续节点操作。当集群负载过高业务故障,无法正常下发变更请求,依赖更多的资源才能恢复的紧急情况下可忽略检测集群状态,忽略后,变更过程中因为忽略集群状态检测可能会导致集群故障并中断业务,请谨慎跳过。
  10. 单击“返回集群列表”跳转到集群管理页面。集群的“任务状态”列中显示为“规格修改”,表示集群正在更改规格。当集群状态变为“可用”,则表示规格变更成功。

添加Master或Client节点

  1. 登录云搜索服务管理控制台。
  2. 在左侧菜单栏,选择对应的集群类型,进入集群管理页面。
  3. 选择目标集群,单击操作列的“更多>形态变更”进入形态变更页面。
  4. 选择“添加Master/Client节点”页签。

    当集群同时拥有Master节点和Client节点时,形态变更页面将不存在“添加Master/Client节点”页签。

  5. 在添加Master/Client节点页面,勾选需要添加的节点,并配置“节点规格”、“节点数量”和“节点存储”。
    表5 添加Master或Client节点

    参数

    说明

    启用节点类型

    勾选本次要添加的节点类型。

    • 只能选择一种节点类型,当需要同时添加Master和Client节点事,就需要执行2次“添加Master/Client节点”任务。
    • 当集群本身已经有Master节点或Client节点时,则此处只显示另一种节点类型供选择。

    节点规格

    根据需求选择节点规格。

    节点数量

    设置该节点类型的节点数量,取值范围请参见表2

    节点存储

    设置该节点类型的存储类型和容量,节点存储容量的取值范围由“节点规格”决定,且只支持配置为20的倍数。

    图3 添加Master/Client节点
  6. 单击“下一步”
  7. 确认变更信息后,单击“提交申请”

    返回集群列表页面,集群的“任务状态”列中显示为“扩容中”

    • 如果添加Master节点,当“集群状态”变为“可用”时表示节点添加成功。

      如果集群版本小于7.x,当“集群状态”变为“可用”时,还需要重启集群的所有数据节点和冷数据节点,使新增节点的配置生效。如果不重启使新增节点配置生效,使用集群时因为上报机制问题可能显示不可用状态(集群业务并未不可用)。重启操作请参见重启Elasticsearch集群

    • 如果添加Client节点,当“集群状态”变为“可用”时表示节点添加成功。可选择是否重启数据节点和冷数据节点,下线数据节点上的Cerebro和Kibana的进程。

相关文档