我有一個包含3個複製的20個節點的生產集羣,我希望將一部分數據(即〜600GB(帶有3個複製))複製到我的測試環境中,只有一個複製。將數據從cassandra複製到cassandra
我知道我們可以使用sstableloader,但是我們是否需要將網絡上的所有600GB複製到另一個羣集?
他們是否只將一個數據副本移動到其他集羣?
這樣做的最佳方法是什麼?
我有一個包含3個複製的20個節點的生產集羣,我希望將一部分數據(即〜600GB(帶有3個複製))複製到我的測試環境中,只有一個複製。將數據從cassandra複製到cassandra
我知道我們可以使用sstableloader,但是我們是否需要將網絡上的所有600GB複製到另一個羣集?
他們是否只將一個數據副本移動到其他集羣?
這樣做的最佳方法是什麼?
我假設你正在使用RandomPartitioner。你在做什麼取決於你的測試環境中有多少個節點。
在SimpleStrategy的情況下:
答:如果您使用的是20個節點在測試環境:
B.如果使用低於生產節點的數量:
如果您不關心恢復的測試版本中某個時間點的數據一致性,則可以跳過快照並直接複製數據目錄。
需要考慮的事項:
此過程會顯着影響磁盤I/O。如果您是在活動羣集上執行此操作,請使用快照至少鎖定某個時間點的狀態並逐漸複製。
在NetworkTopologyStrategy的情況下:
您可以重複上述過程,但只有從處於一個機架,並形成數據的100%的節點的組合複製。如果您絕對關心可能錯過的寫入其他機架上未複製到此機架中的節點的節點,那麼您將不得不復制上述所有節點中的所有內容。
的理想解決方案:
如果你要天天做這個測試就像我爲我的公司做的,你想使周圍的一些自動化。在我看來,備份和恢復的最佳自動化是Netflix的Priam https://github.com/Netflix/Priam
我在S3中存儲了生產備份。代碼將啓動測試中的新機器,爲一個區域分配相同的標記,並將priam快照時間設置爲最後一天備份的範圍,然後測試節點將自動從s3備份接收數據。
希望我的回答對你有幫助。
謝謝你arya。但我們使用murmur3partitioner和vnodes而不是令牌。我們使用SimpleStrategy和CF進行大小分層壓縮。測試集羣中只有3個節點。如何將20個節點數據複製到3個節點中。我需要將數據分配到3個節點嗎? – Rock