Cassandra

4 節點 cassandra - 跳過冗餘?

  • February 16, 2015

經過多次懇求和案例建構,我的團隊獲得了購買 4 個節點並啟動 cassandra 集群的預算。每台機器都有 3x1Tb 驅動器,所以我想知道跳過 1 路冗餘並鏡像數據驅動器是否合理。

數據將被備份,因此這不是問題。

似乎在如此小的分組中失去機器的可能性很低。

這是合理的還是我錯過了一些更大的問題/因素?

這真的取決於你使用 cassandra 的目的。您是否將其用於數據可用性、數據分區或兩者兼而有之?從它的聲音來看,您更多地使用它來對數據進行分區,以便您可以擴展數據。

您希望在 cassandra 中複製數據的部分原因是為了可用性。例如,如果您有一個複制因子為 3 的 4 節點集群,您可以在失去一個節點的情況下倖免於難,而無需進行任何維護(具有仲裁一致性級別,2 個節點具有“一個”一致性級別)。另一方面,您的每個節點都將保存集群上 75% 的數據,這可能是您希望避免的。這就是為什麼我會嘗試再請求一兩台伺服器的原因,儘管您可能不會立即需要它,並且隨著數據需求的增加,您可以添加更多伺服器。

雖然您提到失去機器的可能性不大,但在我看來,以 1 的複制因子執行是自找麻煩。您可能永遠不會遇到問題,但是當您遇到問題時,它不會很有趣。如果您使用 1 台巨型伺服器來為您的數據庫提供服務,那麼 4 台單獨伺服器中的 1 台失敗的可能性聽起來更小,對吧?

還有其他一些事情可能導致 cassandra 節點失敗或無響應(作業系統故障、垃圾收集、網路問題等)

當您開始使用分佈式數據庫時,容錯應該比使用傳統的單一數據庫設置更受關注,而 cassandra 專注於並擅長這一點。

我過去的經驗是很難證明硬體購買和環境配置與管理的合理性。讓他們了解其影響的最佳方法是概述失敗場景以及它是否可以接受,例如:

如果一台伺服器出現硬體故障、數據損壞或 cassandra 崩潰,我們可以容忍多長時間的停機?

如果答案是“0 分鐘”,您將希望使用至少 3 的複制因子。這樣做還有更多好處。複製因子為 3,這意味著更多節點可以為單個讀取請求提供服務,從而可能提高讀取性能。

此外,對於您的數據,鏡像/RAID 1 被認為是 Cassandra 的一種反模式(儘管對於送出日誌來說這不是一個壞主意)。最好使用 RAID 0 或多個數據目錄,將複製因子設置為 3,讓 cassandra 為您處理冗餘。

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