【问题标题】:How do I bring back a Cassandra 2.0 node that's been down for a long time如何恢复已关闭很长时间的 Cassandra 2.0 节点
【发布时间】: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,如果可用),将节点替换为本身。但我找不到任何真正的文档或案例研究。

这似乎不是典型的情况 - 通常,一个节点会在短时间内出现故障,您可以对其进行修复,或者需要完全更换它。但是很难在我们的确切用例上找到很多现有技术。

什么是让这个节点以安全的方式重新投入使用的最佳选择,最好是对集群的其余部分影响最小? 在这里维修真的不是一个好选择吗?

另外,无论答案是什么,我将如何监控流程并确保其成功?

【问题讨论】:

    标签: cassandra cassandra-2.0


    【解决方案1】:

    所以我会这样做:

    • 如果您还没有,请在“死”节点的主机 ID 上运行 removenode。
    • 启动旧节点,确保它不是种子节点并且auto_bootstrap 是true 或未指定。除非另有明确设置,否则默认为 true。
    • 它应该立即加入并重新传输其数据。
    • 您可以通过运行 nodetool netstats | grep Already 来监控它的进度,它会返回每个节点流式传输的状态,根据流式传输的文件数与文件总数来指定完成进度。

    这样做的好处是节点在引导完成之前不会尝试服务请求。

    如果您遇到问题,请随时在此处发表评论或在DataStax's Discord servercassandra-admins 频道寻求帮助。

    【讨论】:

    • 作为第二步,我还会继续清除数据、提示、commitlog、saved_caches 目录并只保留安装文件以确保
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2018-04-29
    相关资源
    最近更新 更多