卡桑德拉移动 data_file_firectories

Cassandra moving data_file_firectories

关于cassandra创建的数据文件和系统文件的位置,我需要移动"commitlog_directory"、"data_file_directories"和"saved_caches_directory",它们在"cassandra.yaml"配置中有设置文件。它当前位于默认位置“/var/lib/cassandra”。数据只是一些测试数据,当然系统生成的keyspace是

dse_perf  
dse_system  
OpsCenter  
system  
system_traces

还有commitlog和saved_caches.db要移动。

我正在考虑使用 linux shell 命令移动 keyspace 目录,但我不确定它们是否会以某种方式损坏。默认驱动器中根本没有 space,我们需要将所有内容移动到第二和第三安装驱动器。

现在我正在移动所有文件并重置 yaml 设置。

我有两个问题 -

  1. 关于 cassandra.yaml 文件,除此之外是否还有其他文件依赖于具有 commitlog_directory 和 data_file_directories 和 saved_caches_directory,一旦我移动所有这些文件,它们的 'wrong location' 会导致失败吗?我还担心表本身中的文件(如 db 文件)引用了它们自己的位置,并在移动后导致失败。

  2. 如果我只是移动三个设置commitlog_directory和data_file_directories和saved_caches_directory,dse/cassandra实际上会创建所有系统密钥spaces(system_traces、dse_perf、系统、OpsCenter、dse_system)、commitlof 和 saved_caches.db,以及任何其他上游配置文件是否会与那(与问题 1 的第一部分相同)?

这是一个非常新的安装,所以重新安装不会是世界末日,但我真的不想这样做,因为我们现在在这个集群之上有 kerberos 和各种其他东西。

这个OS是ubuntu14.0.4,DSE版本是4.7。

我也能够移动所有文件和提交日志。我更改了 yaml 并将其指向我想要它去的地方。之后记得 运行 以下命令 -

chown -R cassandra:cassandra

瞧!一切都是 reading/writing 应该的。 Cassandra 是 neato。

我刚做完这个。我的实例在 AWS EC2 中,因此您的过程可能会有所不同,但本质上:

  1. 创建一个新卷并将其附加到实例。我的新设备是 /dev/xvdg.
  2. 创建新的挂载点sudo mkdir /new_data
  3. 格式化新卷sudo mkfs -t ext4 /dev/xvdg
  4. 编辑 /etc/fstab 以便您的坐骑在重启后仍然存在并添加此 第 /dev/xvdg /new_data ext4 defaults,nofail,nobootwait 0 2
  5. 安装新卷sudo mount -a
  6. 创建新目录sudo mkdir -p /new_data/lib/cassandra/commitlog
  7. 拥有所有权 sudo chown -R cassandra:cassandra /new_data/lib/cassandra
  8. 更改 cassandra.yaml 以指向新目录
  9. 耗尽节点。如果您要移动数据目录,请复制数据 从旧位置到新位置。如果你要搬家 仅提交日志,只需重新启动 cassandra。