Cassandra

在 Cassandra 中備份數據的最佳解決方案是什麼?

  • August 27, 2011

在 Cassandra 中備份數據的最佳解決方案是什麼?

有幾種不同的選項可供選擇,這實際上取決於您的最佳情況,但這裡是可用技術的快速概述。

備份數據儲存時,基本上有兩件事要嘗試保護:

  • 由於底層儲存卷故障導​​致的數據失去
  • 由於在儲存中插入或刪除無效數據而導致數據失去

Cassandra 在其設計中內置了數據複製功能。複製因子配置選項告訴 cassandra 每條記錄要儲存多少個副本。複製因子的常見選擇是 3,因為它在性能和耐用性之間取得了不錯的折衷。如果您的複制因子大於 1,則您可以承受至少一些節點的失去。關於這個主題還有很多話要說,但你可以在其他地方閱讀。

但是,複製並不能保護您免受通過 API 進行的不良數據更改,因為大量刪除將複製與良好插入相同的內容。為了幫助您解決這個問題,cassandra 提供了快照功能。基本上,它將數據文件硬連結到數據目錄中的快照文件夾。這可能是一種非常便宜的方法,具體取決於您的數據更改的頻率和隨機程度。一種可能的方法是在 cassandra 機器的磁碟上保留多個快照,前提是您有足夠的空間。

如果你有空閒的 IO 容量,你實際上可以將這些備份轉移到不同的機器上。以我的經驗,這對磁碟和網路吞吐量都有很大影響。

最後,從 Cassandra 0.7 開始,您可以配置多數據中心複製。本質上,您可以在世界各地分佈多個集群副本。如果將此與快照結合使用,當出現問題時,您有很多不同的選擇來恢復數據。

請記住,您將獲得 1 分進行備份和 10,000 分進行恢復。想想你將如何測試你的備份,以確保它們在時機成熟時可以真正恢復。

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