更新时间:2024-04-19 GMT+08:00

部署跨AZ集群

为了防止数据丢失,或者在服务中断时能够最大限度地减少集群停机时间,CSS服务支持集群选择跨AZ部署,提升集群的高可用能力。在创建集群时选择同一个区域中的两个或三个可用区,系统自动在选择的可用区之间分配节点。

选择节点数

当创建集群时,选择了两个或者三个可用区时,CSS服务将自动为开启跨AZ高可用特性,节点将会被均衡的分布在不同的AZ,不同节点数量的AZ分布情况可以参见表1

  • 创建集群时,选择的节点数量要大于等于AZ数量,否则不支持跨AZ部署。
  • 部署跨AZ集群时,如果选择了“启用Master节点”,Master节点也会被均匀的分布在不同的AZ上。
  • 系统分配的节点,满足各个AZ之间节点数量差小于等于1。
表1 节点数量和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

设置副本

设置副本能有效的利用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故障,业务故障行为分析如表2所示。

表2 AZ故障的业务故障行为分析

选择的AZ数量

开启主节点个数

业务中断行为

2

0

  • 如果节点个数为2的倍数:
    • 一半的数据节点故障,需要替换故障可用区中的一个节点,才能继续选择主节点。
  • 如果节点数为奇数:
    • 故障AZ含多一个节点,需要替换故障可用区中一个节点,才能继续选择主节点。相关替换请联系技术支持。
    • 故障AZ含少一个节点,不中断业务,能够继续选择主节点。

2

3

有50%机会的停机时间。当两个专用主节点分配到一个可用区中,一个主节点分配到另一个可用区中时:

  • 如果具有一个专用主节点的可用区遇到中断,则剩余可用区具有两个专用主节点,这两个专用主节点可以选择出主节点。
  • 如果具有两个专用主节点的可用区遇到中断,剩余可用区只有一个专用主节点,无法选择出主节点,业务中断,需要联系技术支持。

3

0

当您选择3个可用区,节点个数为4,三个可用区的节点分布数为2,1,1,如果节点个数为2的可用区故障,那么此时业务中断,建议您选择三个可用区时避免选择4个节点。

一般不会出现业务中断时间。

3

3

无业务中断时间。