Primary Shard:提升系统存储容量
- 分片是Elasticsearch分布式存储的基石
- 主分片 / 副本分片
- 通过主分片,将数据分布在所有节点上
- Primary Shard,可以将一份索引的数据,分散在多个Data Node上,实现存储的水平扩展
- 主分片(primary Shard)数在索引创建时指定,后续默认不能修改,如果修改,需重建索引
Replica Shard:提高数据可用性
- 数据可用性
- 通过引入副本分片(Replica Shard)提高数据的可用性。一旦主分片丢失,副本分片可以Promote成主分片。副本分片数可以动态调整。每个节点上都有完备的数据。如果不设置副本分片,一旦出现节点硬件故障,就有可能造成数据丢失
- 提升系统的读取性能
- 副本分片由主分片同步,通过支持增加replica数,一定程度可以提高读取的吞吐量
分片数的设定
- 如何规划一个索引的主分片数和副本分片数
- 主分片过小:例如创建了1个Primary Shard的Index
- 如果该索引增长很快,集群无法通过增加节点实现对这个索引的数据扩展
- 主分片数设置过大:导致单个Shard容量很小,引发一个节点上有过多分片,影响性能
- 副本分片数设置过多,会降低集群整体的写入性能
- 主分片过小:例如创建了1个Primary Shard的Index
单节点集群
- 副本无法分片,集群状态黄色
设置副本及分片
集群状态黄色
增加一个数据节点
- 集群状态转为绿色
- 集群具备故障转移能力
- 尝试着将Replica设置成2和3,查看集群的状态
增加数据节点
故障转移
- 3个节点共同组成。包含了一个索引,索引设置了3个主分片和1个副本
- 节点1是Master节点,节点意外出现故障。集群重新选举Master节点
- Node3上的R0提升成P0,集群变黄
- R0和R1分配,集群变绿
故障转移示意图
集群健康状态
- Green:健康状态,所有的主分片和副本分片都可用
- Yellow:亚健康,所有的主分片可用,部分副本分片不可用
- Red:不健康状态,部分主分片不可用
小提示
我电脑磁盘不够,这里需关闭es的磁盘保护,实例如下:
关闭es磁盘保护