一、容灾策略
- ES对索引进行分片,每个分片会有副本,保证同一个分片及其副本不会分配到同一个节点上
- 当集群中的一个节点宕机后:
- 如果该节点是master节点,那么ES集群重新选举master节点
- 如果该节点上包括某个分片的主分片,那么将该分片分配在其他节点上的某一副本提升为主分片
- 如果该节点上包括某个分片的副分片,那么会在非宕机节点上用主分片复制一个副分片作为补充
集群状态说明:
green(很健康)所有的主分片和副本分片都正常运行。
yellow(亚健康)所有的主分片都正常运行,但存在副本分片故障。
red(不健康)存在主分片故障
还是不明白?举个简单的例子
二、举例
1. 原状态
原集群具有三个节点:node1、node2、node3
在这个集群上存在一个索引:该索引分为3个分片,每个分片有一个副本。
因此我们有P0、P1、P2三个主分片和R0、R1、R2三个副分片共六个分片
这六个分片此时均匀分布在三个节点上
所有主分片和副分片都正常运行,集群状态为green
2. 节点宕机
假设此时node1发生了宕机,且node1为master节点,node1上包含P0和R2
此时,不是所有的主节点都是active状态(P0),所以集群状态转为red
3. 容灾恢复
- 由于node1为master节点,所以ES集群会重新选举一个master节点,假设新节点为node2
- 由于node1上包含P0,所以将副本分片R0提升为主分片
- 由于node1上包含R2,所以在node2上重新复制一份R2
恢复工作完成后,所有主分片都能正常运行,但不是所有的副本分片都能正常运行(R0),所以集群状态转为yellow