部署跨AZ集群
为了防止数据丢失,或者在服务中断时能够最大限度地减少集群停机时间,CSS服务支持集群选择跨AZ部署,提升集群的高可用能力。在创建集群时选择同一个区域中的两个或三个可用区,系统自动在选择的可用区之间分配节点。
选择节点数
当创建集群时,选择了两个或者三个可用区时,CSS服务将自动为开启跨AZ高可用特性,节点将会被均衡的分布在不同的AZ,不同节点数量的AZ分布情况可以参见表1。
- 创建集群时,选择的节点数量要大于等于AZ数量,否则不支持跨AZ部署。
- 部署跨AZ集群时,如果选择了“启用Master节点”,Master节点也会被均匀的分布在不同的AZ上。
- 系统分配的节点,满足各个AZ之间节点数量差小于等于1。
设置副本
设置副本能较大的利用AZ的高可用能力。
- 在跨两个可用区的部署中,当其中一个AZ不可用时,剩下的AZ需要继续提供服务,因此索引的副本个数至少为1个。由于Elasticsearch默认副本数为1个,因此如果您对读性能没有特殊要求,可以直接使用默认值。
- 在跨三个可用区部署中,为了保证其中任意一个AZ不可用时,剩余的AZ需要继续提供服务,因此索引的副本数至少要为1个。为了提高集群的查询能力,也可以设置更多的副本。由于Elasticsearch默认的副本数为1个,因此需要用户修改setting配置来实现修改索引副本个数。
curl -XPUT http://ip:9200/{index_name}/_settings -d '{"number_of_replicas":2}'
也可以通过在模板中指定所有索引的副本个数,如:
curl -XPUT http://ip:9200/ _template/templatename -d '{ "template": "*", "settings": {"number_of_replicas": 2}}'
- ip:内网访问地址。
- index_name:索引名称。
- number_of_replicas:修改后的索引副本个数。命令中的取值表示修改为2个索引副本。
可用区中断的行为分析
当创建集群时,选择两个或三个AZ,如果一个AZ故障,业务故障行为分析如表1所示。
选择的AZ数量 |
开启主节点个数 |
业务中断行为 |
---|---|---|
2 |
0 |
|
2 |
3 |
有50%机会的停机时间。当两个专用主节点分配到一个可用区中,一个主节点分配到另一个可用区中时:
|
3 |
0 |
当您选择3个可用区,节点个数为4,三个可用区的节点分布数为2,1,1,如果节点个数为2的可用区故障,那么此时业务中断,建议您选择三个可用区时避免选择4个节点。 一般不会出现业务中断时间。 |
3 |
3 |
无业务中断时间。 |