集群变配说明与建议
更新时间:2023-05-16
百度智能云Elasticsearch(BES)服务为用户提供灵活扩缩容的变配能力,用户可以根据业务的增长变化随时调整集群的配置规模。BES提供了多种变配模式,以下将详细介绍各种变配模式的原理和操作建议。
变配模式介绍
直调模式
直调模式适合对线上业务无影响,且速度较快的变配操作,例如集群添加节点、增加磁盘容量等。
冷重启模式
直接将集群中所有节点重启并完成变配,期间系统服务中断,会影响线上访问,但总体变配持续时间较短,适合需要短时间变更配置的操作。
蓝绿模式
不会重启集群,在原集群中添加相同数量的配置不同的新节点。添加节点后进行数据迁移,待数据迁移完成后,无缝切换并去除掉原节点。
注意:
- 蓝绿变换整个过程业务端无感知,且扩容平滑,适合对集群可用性要求较高的场景。
- 蓝绿变换完成后节点 IP 会发生变化。
- 由于涉及数据迁移,蓝绿变换耗时和集群数据量有关,总体变配持续时间从数分钟到数小时或更长。如果急需提升数据迁移的速度,可以通过如下命令修改 ES 的配置:
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.node_concurrent_recoveries": "8",
"indices.recovery.max_bytes_per_sec": "80mb"
}
}
滚动模式
对集群中节点逐个滚动重启完成变配,期间服务不会中断,但可能对线上性能造成影响。总体变配持续时间与节点个数、集群数据量有关。
注意:
- 由于不需要迁移数据,总体变配过程相比于蓝绿模式能够快速完成。适合于集群遇到性能瓶颈,期望快速完成扩容变配的场景。
- 每重启一个节点后,会等待ES集群恢复为
green
状态后,才会重启下一个节点。 - 由于需要滚动重启集群的每一个节点,所以当集群存在无副本索引的情况下会造成集群健康状态变成
red
,且会有丢失数据的风险。因此不建议当集群存在无副本索引的情况下选择滚动模式。 - 滚动模式过程中会对集群的性能有一定的影响,因此不建议在业务高峰期间选择滚动模式。
变配行为与变配模式选择
变配行为 | 适用场景 | 变配模式 | 简介 | 特点 |
---|---|---|---|---|
变更节点数量 | 节点规格较高,但集群整体计算资源不足 | 直调模式 | 直接向集群中加入更多相同规格的节点。 | 扩容平滑 无需停服 流程时间短,不受节点数量影响,预计5 - 10分钟完成 |
变更节点磁盘 | 计算资源充足,磁盘存储空间不足 | 直调模式 滚动模式/冷重启模式 |
直接增加集群中节点上挂载的磁盘扩容容量。 对于2021年3月19日0点之前的集群暂只能支持滚动变更,其中总节点个数小于2的集群仅支持冷重启变更。 |
直调模式变更平滑扩容不停服,流程时间短,预计2- 5分钟完成。 滚动模式会对集群性能造成影响,但服务不会中断,变配时间与节点数量、集群数据量有关。冷重启会导致服务短时间暂时中断。 |
变更节点规格 | 节点规格较低,集群整体计算资源不足 | 冷重启模式 蓝绿模式 |
可选择冷重启模式或蓝绿模式。 | 冷重启模式会造成服务短时间暂时中断,变更规格后会恢复。 蓝绿模式的总持续时间跟集群数据量有关。 |