为了防止数据丢失并在服务中断时最大限度地减少集群停机时间,您可以在创建集群时,选择同一个区域中的两个或三个可用区,系统将在选择的可用区之间分配节点。
关于节点数的选择
当创建集群,可用区选择了两个或者三个时,云搜索服务自动为您开启跨AZ高可用特性,节点将会均衡的分布在不同的AZ。
关于节点的数量分布您可以参考下表:
集群节点个数 单AZ 两AZ 三AZ - AZ1
AZ1
AZ2
AZ1
AZ2
AZ3
1节点
1
不支持
不支持
2节点
2
1
1
不支持
3节点
3
2
1
1
1
1
4节点
4
2
2
2
1
1
…
…
…
…
…
…
…
说明l 云搜索服务不强制要求节点个数要为AZ数量的倍数。
l 创建集群时,选择的节点数量要大于等于AZ数量。
l 各个AZ之间节点数量差小于等于1。
关于副本设置
设置副本能最大程度的利用AZ的高可用能力。
- 在跨两个可用区的部署中,当其中一个AZ不可用时,剩下的AZ需要继续提供服务,因此索引的副本个数至少为1个 。 由于Elasticsearch默认副本数为1个,因此如果您对读性能没有特殊要求,可以直接使用默认值。
- 在跨三个可用区部署中,为了保证其中任意一个AZ不可用时,剩余的AZ需要继续提供服务,因此索引的副本数至少要为1个。当然,为了提高集群的查询能力,也可以设置更多的副本。由于Elasticsearch默认的副本数为1个,因此需要用户修改setting配置来实现修改索引副本个数。
可以通过如下命令修改索引的副本个数,如:
curl -X PUT http://ip:9200/{index_name}/_settings -d '{"number_of_replicas":2}'
也可以通过在模板中指定所有索引的副本个数,如:
curl -X PUT http://ip:9200/ _template/templatename -d '{ "template":"*","settings": {"number_of_replicas": 2}}'
说明l ip:表示内网访问地址。
l number_of_replicas:修改后的索引副本个数。命令中的取值表示修改为2个索引副本。
关于独立Master节点
创建集群时,如果选择了“启用Master节点”,选择多个AZ后,Master节点也会均匀的分布在不同的AZ上面。
关于可用区中断
当创建集群时,选择两个或三个AZ,如果一个AZ故障,业务故障行为分析如下表所示。
一个AZ故障的业务故障行为分析
选择的AZ数量 | 开启主节点个数 | 业务中断行为 |
---|---|---|
2 | 0 | 如果节点个数为2的倍数: − 一半的数据节点故障,需要替换故障可用区中的一个节点,才能继续选择主节点。 如果节点数为奇数: − 故障AZ含多一个节点,需要替换故障可用区中一个节点,才能继续选择主节点。相关替换请联系技术支持。 − 故障AZ含少一个节点,不中断业务,能够继续选主。 |
2 | 3 | 有50%机会的停机时间。当两个专用主节点分配到一个可用区中,一个主节点分配到另一个可用区中时: 如果具有一个专用主节点的可用区遇到中断,则剩余可用区具有两个专用主节点,这两个专用主节点可以选择出主节点。 如果具有两个专用主节点的可用区遇到中断,剩余可用区只有一个专用主节点,无法选择出主节点,业务中断,需要联系技术支持。 |
3 | 0 | 当您选择3个可用区,节点个数为4,三个可用区的节点分布数为2,1,1,如果节点个数为2的可用区故障,那么此时业务中断,建议您选择三个可用区时避免选择4个节点。 一般不会出现业务中断时间。 |
3 | 3 | 无业务中断时间。 |