云搜索服务 CSS-OpenSearch集群规划建议:规划集群可用区
规划集群可用区
为防止数据丢失,并确保在服务中断情况下能降低集群的停机时间,从而增强集群的高可用性, CSS 服务支持跨可用区(即多可用区)部署。用户可以在同一个区域内选择两个或三个不同的可用区进行集群部署。
- 在创建集群时,选择的任意类型的节点数量都要大于等于所选的AZ数量,否则跨可用区部署会失败。
- 部署跨AZ集群时,任意类型的节点都会被均匀的分布在不同的AZ上,满足各个AZ之间节点数量的差小于等于1。
- 当集群中数据节点和冷数据节点的数量和可用区的数量不是整数倍关系时,集群的数据会分布可能会不均匀,从而影响数据查询或写入业务。
- 在跨两个可用区的部署中,当其中一个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个索引副本为例。
可用区数量 |
主节点个数 |
业务中断行为及应对建议 |
---|---|---|
2 |
0 |
|
2 |
3 |
有50%机会的停机时间。当两个专用主节点分配到一个可用区中,一个主节点分配到另一个可用区中时:
|
3 |
0 |
当您选择3个可用区,节点个数为4,三个可用区的节点分布数为2,1,1,如果节点个数为2的可用区故障,那么此时业务中断,建议您选择三个可用区时避免选择4个节点。 一般不会出现业务中断时间。 |
3 |
3 |
无业务中断时间。 |
当集群创建完成后,支持切换可用区,具体操作请参见切换OpenSearch集群可用区。
- 可用区高可用改造:适用于单AZ改造成两AZ、单AZ改造成三AZ或两AZ改造成三AZ的场景,目的是为了提升集群的高可用性。
- 可用区平移切换:适用于从一个AZ完全迁移到另一个AZ的场景,目的是为了解决当前可用区资源不足的问题。