Cassandra

每個節點上的 cassandra 複製不是 100%

  • September 29, 2019

我有 3 個節點的 Cassandra 集群。我正在執行一些 colud 遷移活動,為此,我在現有集群中添加了兩個節點,結果如下。

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address      Load       Tokens       Owns (effective)  Host ID                               Rack
UN  192.168.1.5    24.07 GB   256          59.4%             804b855f-78f3-42d6-8abf-b9aec73699df  rack1
UN  192.168.1.6    24.77 GB   256          59.8%             21f2066f-1794-485c-9c4f-d6d1b286a551  rack1
UN  172.16.2.20  15.96 GB   256          60.3%             2c2f512d-5743-4632-a4b5-cd2cac967897  rack1
UN  172.16.2.21  12.76 GB   256          60.0%             657ff1b6-773a-4782-a506-c4899cdf2a4f  rack1
UN  192.168.1.7    17.69 GB   256          60.5%             c8c4bc41-4b5c-41e6-bb71-ab90c2ed5eb0  rack1

OWNS 欄位以前對於所有節點都是 100%,現在它顯示不同的數字,所以是否像整個 100% 數據不在每個節點上一樣,假設我通過關閉 Cassandra 來關閉任何節點,那麼是否存在數據失去的風險?

這是正常情況。

很可能您的複制因子為 3,並且對於 3 個節點,這導致每個節點都有所有其他節點的副本。當您再添加 2 個節點時,每個節點將保留 3/5 的數據 - 它自己的範圍(數據的 1/5)+ 副本(數據的 2/5)。這不是精確的 60%,因為數據可能不會在節點之間完全拆分 - 某些分區可能比其他分區更大,等等。

我建議您閱讀DataStax 架構指南- 它會讓您更好地了解 Cassandra 的工作原理以及數據的複制方式。

引用自:https://serverfault.com/questions/986086