跨AZ高可用性介紹
更新時間 2023-11-30 17:34:08
最近更新時間: 2023-11-30 17:34:08
分享文章
本章節主要介紹云搜索服務的跨AZ高可用性。
為了防止數據丟失并在服務中斷時最大限度地減少集群停機時間,您可以在創建集群時,選擇同一個區域中的兩個或三個可用區,系統將在選擇的可用區之間分配節點。
關于節點數的選擇
當創建集群,可用區選擇了兩個或者三個時,云搜索服務自動為您開啟跨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 //ip:9200/{index_name}/_settings -d '{"number_of_replicas":2}'
也可以通過在模板中指定所有索引的副本個數,如:
curl -X PUT //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 | 無業務中斷時間。 |