【发布时间】:2022-01-09 09:42:07
【问题描述】:
我们有一个 Cassandra 2.0.17 集群,有 3 个 DC,每个 DC 有 8 个节点,RF 为 3。我们没有对其进行定期修复。
由于其中一个驱动器出现硬件问题,一个节点已停机 2 个月。 我们终于得到了一个新的驱动器来替换故障驱动器,并且正在尝试找出将节点带回集群的最佳方法。
我们最初以为只运行nodetool repair,但从我目前的研究来看,似乎只有在节点关闭时间少于 gc_grace_seconds (即 10 天)时才会这样做。
似乎这意味着删除节点,然后将其作为新节点重新添加。
有人在某处提到,与其完全删除节点然后将其引导回,我可能会使用与替换节点相同的过程,使用replace_address 标志(或replace_address_first_boot,如果可用),将节点替换为本身。但我找不到任何真正的文档或案例研究。
这似乎不是典型的情况 - 通常,一个节点会在短时间内出现故障,您可以对其进行修复,或者需要完全更换它。但是很难在我们的确切用例上找到很多现有技术。
什么是让这个节点以安全的方式重新投入使用的最佳选择,最好是对集群的其余部分影响最小? 在这里维修真的不是一个好选择吗?
另外,无论答案是什么,我将如何监控流程并确保其成功?
【问题讨论】: