两天前,我们的一个节点宕机了,花了大半天时间才恢复。我还在学习,所以不太熟悉修复选项,但根据这里的文章:http://www.datastax.com/dev/blog/repair-service-opsc4
我可以启用修复服务吗?这样是否就无需手动运行 nodetool repair 了?手动运行 nodetool repair 很麻烦,因为它是手动的,而且显然会占用大量 I/O,这让我很担心。
此外,假设该服务在现实世界中运行如文章中所述,我是否可以确信以他们建议的间隔启动服务不会导致性能问题?
答案1
定期维修
建议您每周经常运行修复,作为反熵机制。如果您不运行修复,您可能会遇到问题(僵尸数据)比你的 gc grace 秒更频繁设置并有很多墓碑。
在现实生活中运行维修服务
简短的回答是肯定的。维修服务通过自动执行此操作使您的生活更轻松,它还将维修分成小部分,以减轻工作量并防止您在维修期间遇到资源争用和性能问题。它应该适用于大多数集群,在某些情况下,您可能需要调整一些默认设置有用的杠杆包括--max_parallel_repairs、min_repair_time、snapshot_override
恢复宕机节点
对于这种特定情况,您知道一个节点大约一天左右不同步,我预计您的集群在修复期间会承受压力。创建默克尔树需要大量 CPU 和 IO。修复服务计算的较小切片应该有助于简化此过程。