iT邦幫忙

0

ELK cluster shard 與 replication 容錯問題

  • 分享至 

  • xImage

Hi, 想請教 ELK cluster 容錯問題,是這樣的,這是我的架構,有三台 ES

                |----|| kibana-01 -- es-01 ||       # instance01 
client -> nginx |----|| kibana-02 -- es-02 ||       # instance02
                |----|| kibana-03 -- es-03 ||       # instance03

最近讀到 shard 與 replication,
shard 是把容量切片,比方說 1T 切成四片分散在主機
replication 是複製,把資料備份後存在跟 primary shard 不一樣的主機上。

預計我可能有 1T 左右的資料要儲存。
請問
那我設定上我是不是 不能 把 shard 設定切成3份?
這是因為 1T的資料量切成三份,在沒有副本的情況下,任何一台 es倒掉,假設他切成是
ABC三個部分,C的部分永遠也找不回來。

又假設,
replication 我就備份一份吧,應該就可以,感覺就沒問題了?

shard       ABC
replication A-R1,B-R1,C-R1

一台機器倒下了,失去的是 A跟C-R1,這樣就可以拼的起來完整的 ABC

那我是不是可以這樣規劃
1T 的資料量,三台叢集每個給他 666GB 硬碟(1T/32 分片1副本),然後開一個 S3 使用 ELK 他們文件的 kibana 介面上的備份機制做備份,(所以估S3也是1T),最後怕死一點用 AWS snapshot 對三個主機分別做快照。

主機 容量
es-1 666G
es-2 666G
es-3 666G
. S3 1T

我覺得對三台機器做快照沒有什麼意義,因為快照會有時差間,主機死掉後起來資料還是會消失。

不過既然都用 AWS 了,後續維護方便的話,硬碟沒有地端空間上限的問題,
好像三台都開1T不做 shard,只做複製1份的話,對主管他們理解比較容易,
這樣將會有一台主機是很閒的狀況,因為 replication 只會到同一台主機上
應該是不會到第三台主機上才對,(要做叢集投票,要基數個所以留著)

主機 容量 工作
es-1 1T 沒事做
es-2 1T 副本1.
es-3 1T 主要.

我最終的目標只是希望任何一台
機器倒了,資料不要消失,服務不要停掉,災害復原能快點回來

其實我有在想要不要推 ELK cloud or aws openserach
但 ELK cloud 我按起來要 3萬一個月,aws opensearch 不是 ELK 最新版的,
都不想用...只好自建

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Ray
iT邦大神 1 級 ‧ 2023-09-26 18:28:09

你這樣建, 不就 Shard+Replica 都有了:

P0/R0 互為 Replica, P1/R1 互為 Replica, P2/R2 互為 Replica
Px 自己是總資料切成三份 Shard, Rx 則是這些 Shard 的 Replica:
https://nidhig631.medium.com/primary-shards-replica-shards-in-elasticsearch-269343324f86

是的,
看來跟我原本所想的,就是必須要在一副本的情況下,做 shard 才有保障,謝謝。

我要發表回答

立即登入回答