如何在cassandra中从多个磁盘切换到单个磁盘?

时间:2013-09-15 20:37:25

标签: cassandra

因为我在洗牌时耗尽了空间,所以我不得不在我的Cassandra节点上添加多个磁盘。

当我完成压缩,清理和修复时,我想删除它们并返回每个节点的一个磁盘。

进行切换的步骤是什么?
我可以杀死cassandra,将数据从一个磁盘移动到另一个磁盘,删除第二个磁盘的配置,然后重新启动cassandra吗?

我认为文件名称不同,因此不会被覆盖,是这种情况吗?

1 个答案:

答案 0 :(得分:1)

  • 从nodetool运行 disablegossip disablethrift ,这样 其他节点将节点视为DOWN。
  • flush / 排除 memtables,运行压缩以合并SSTables,如果有的话
  • [可选,拍摄快照作为预防措施]
  • 这会阻止所有其他节点/客户端写入此节点,因为memtables被刷新到磁盘
  • 停止Cassandra(虽然此节点已关闭,但群集可用于 写/读,所以零停机时间)
  • 将数据/日志内容从其他磁盘移动到您想要的磁盘
  • 在cassandra.yaml中进行更改以更改以下路径:     的 commitlog_directory     saved_caches_directory     data_file_directories     log_directory
  • 重新启动cassandra

为所有节点执行此操作。