Cassandra 如何处理磁盘空间不足的问题?



我想知道Cassandra集群如何处理磁盘空间不足的成员。

我读过它可能让他们错误地倒下,但那是在回来的时候。

如果这仍然是真的,是否有任何明智的方法来防止它们在不停机的情况下耗尽整个磁盘,例如将它们转换为只读模式?

Cassandra有四种处理这种情况的方法。 您可以使用cassandra.yaml中的disk_failure_policy属性配置此行为。 默认值为:

disk_failure_policy: stop

stop禁用与节点的八卦和客户端连接,但使其保持运行。 这允许通过基于 JMX 的工具对其进行分析。

其他选项包括:

  • die停止 Cassandra 进程以查找文件系统错误。
  • stop_paranoid停止 Cassandra 进程以查找 SSTable 错误和启动错误。
  • best_effortCassandra 将尝试根据它可以获取的剩余 SSTable 响应请求,但将不再使用已满/故障磁盘。
  • ignore本质上,可以处理的请求,允许失败的请求失败。

对于你所说的,ignore可能会起作用。

从理论上讲,这种情况不会导致停机。 您的其他节点应该能够弥补不足,并允许您尽早修复整个节点。 如果这只是一个单节点群集,那么修复故障磁盘或附加额外存储确实没有办法绕过停机时间。

最新更新