我正在组建一个 16 节点的 cassandra 集群(复制因子 2),并且想要为其设置一个计划nodetool repair
。GC_Grace_seconds 属性为默认设置。
两个问题:
- 我的第一个想法是为每台机器设置一个 cron 作业,并尝试手动随机安排一周的时间表。有没有更好的方法?
- 必须
nodetool repair
运行每个系统或者每 # 个系统/复制因子系统?(例如,对于我的 16 个节点,复制因子为 2 - 8 个系统 - 每对一个)
答案1
我不会随机安排。最好的办法是安排维修时间,这样它们就不会互相影响。
运行修复时,您应该在每个节点上使用 -pr 选项。
如果您使用的是 Cassandra 2.1,您可以选择增量修复,这将大大加快速度。
RF=2 也会导致灾难。如果节点不可用,仲裁查询将失败。我建议 RF=3。