cassandra数据从生产服务器上的常规驱动器迁移到SSD

时间:2016-05-04 00:41:55

标签: cassandra datastax-enterprise data-migration ssd

我们希望将数据从生产服务器上的常规驱动器迁移到新的SSD驱动器。我们怎么能做到这一点,如果不节点不超过4小时(暗示交接是4小时)我们的数据是几百千兆字节。

我在想的是一次停止一个节点上的cassandra将数据刷新到磁盘,然后将数据从旧驱动器传输到新驱动器并卸载旧磁盘并将节点恢复到联机状态。这是正确的方法吗?如果是这样 我主要担心的是,迁移到新磁盘的数据平均耗时超过4小时,而我将失去提示。

有没有更好的方法将数据迁移到新磁盘?

1 个答案:

答案 0 :(得分:0)

添加磁盘。

使用rsync -avz --delete /old/data/dir /new/data/dir将sstables从一个(旋转)驱动器复制到另一个(ssd)驱动器。您可以在cassandra运行时运行此命令 - 除了由于IO争用而导致的延迟增加之外没有其他风险。您可以使用niceionice来控制延迟的增加。

运行rsync后,您将了解迁移过程的上限。您还将拥有初始快照。再次运行它,并再次计时 - 它可能会明显更快 - 它将保留未更改的文件,删除已删除的文件,并复制任何新文件。如果这超过4小时(可能会超过4小时),那么您可以继续运行nodetool flushnodetool drain,停止cassandra,并第三次运行rsync。 rsync完成后,更改yaml中数据文件目录的路径,然后启动cassandra - 提示将被提供,你就可以了。

或者,您可以执行完全相同的操作,如果它需要的时间超过4小时提示窗口,请使用nodetool repair跟随它以获取提示过期时错过的任何写入。