假设有3台机器,9个shard,那么每个机器上都有一个primary shard和两个replica shard,并且这两个replica shard属于另外两个primary shard。其中有一台机器是master。
master故障的一瞬间,其上的primary shard丢失,那么集群中就不是所有的primary shard都是active的了,集群状态变为red,下面的流程就会发生:
一 master选举,自动选举另外一个node成为新的master,承担起master的责任。
二 新master将丢失的primary shard对应的某个replica shard升级为primary shard,此时集群中所有primary shard都是active的了,但是每个primaryshard都少了一个replica shard,所以集群状态变为yellow。
三 重启故障的node,第二步选举的master会将缺失的副本拷贝一份到该node上去,并且该node会使用之前已有的数据,只是同步一下故障之后发生过的修改。集群状态变为green。