首页 > 解决方案 > Cassandra 如何处理磁盘空间不足的问题?

问题描述

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

我已经读过它可能会让他们出错,但那是在回来的时候。

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

标签: cassandra

解决方案


Cassandra 有四种处理这种情况的方法。您可以disk_failure_policy使用cassandra.yaml. 默认值为:

disk_failure_policy: stop

stop禁用到节点的 gossip 和客户端连接,但让它继续运行。这允许通过基于 JMX 的工具对其进行分析。

其他选项是:

  • die针对文件系统错误停止 Cassandra 进程。
  • stop_paranoid针对 SSTable 错误和启动错误停止 Cassandra 进程。
  • best_effortCassandra 将尝试根据它可以获取的剩余 SSTables 来响应请求,但将不再使用已满/失败的磁盘。
  • ignore从本质上讲,可以服务的请求得到服务,失败的请求被允许失败。

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

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


推荐阅读