【问题标题】:issue with multiple data directory in cassandracassandra中的多个数据目录问题
【发布时间】:2019-12-31 16:58:03
【问题描述】:

我们在 EC2 上的 cassandra 中使用了多个数据目录。其中一个数据目录的容量为 100%,而另一个为 30%。 发布许多写入失败并最终卡桑德拉停止的帖子。我调试并意识到我的disk_failure_policy 设置为stop。后来我将其更改为best_effort 并尝试启动 cassandra。如herebest_effort 所述,如果 cassandra 无法写入磁盘,该磁盘将被列入写入黑名单。因此,理想情况下,应该将 100% 满的卷列入写入黑名单。但是我在启动 cassandra 时发现没有剩余磁盘空间并且它没有启动。那么,在我们有多个数据目录并且其中一个已满的情况下,我们应该怎么做。我期望得到更好的答案,而不仅仅是增加整个卷的大小。

【问题讨论】:

  • 有可以删除的快照吗?至少这样 cassandra 会启动。此外,出于临时目的,我有时会绑定安装另一个卷以提供更多磁盘空间。

标签: cassandra datastax cassandra-3.0


【解决方案1】:

我要检查的一件事是提交日志的位置。在memtable_cleanup_threshold 太高的写入繁重的情况下,提交日志可能会累积到不希望的水平。在旧的旋转磁盘世界中,将提交日志保存在不同的物理磁盘上是一种公认​​的做法(出于磁盘 I/O 吞吐量的考虑)。无论如何,我会确保提交日志不会导致磁盘占用空间增加。

Cassandra 将尝试在数据目录中均匀分布数据。话虽这么说,如果一个比另一个增长得快,您可能会写入几个分区,而不成比例地高于其他分区。如果是这种情况,那么您可能需要查看您的数据模型。

否则,如果节点变砖并且目录不平衡,IMO 最好的选择是擦除它,然后重新引导它。 Cassandra 应该将数据均匀分布在 bootstrap 的各个目录中。

【讨论】:

    【解决方案2】:

    我们有一个使用多个数据目录的系统。在大多数情况下,Cassandra 让事情分布得相当均匀。但是,如果您有一些很大的 Size Tiered Compaction 表,您可能会在压缩期间用完空间。一般来说,数据分布应该在卷之间接近,因为 Cassandra 试图保持这一点。但同样,不能保证 100% 平等。如果您的空间不足,请在事情“满”并停止之前添加另一个目录,希望 cassandra 可以在为时已晚之前更好地展开事情。此时,您可能必须关闭节点,添加另一个卷并在自己周围移动东西以使其更好地平衡,然后重新启动它。

    【讨论】:

      猜你喜欢
      • 2013-04-02
      • 2015-03-31
      • 1970-01-01
      • 2019-06-29
      • 2017-10-13
      • 2015-06-11
      • 2020-10-04
      • 2013-10-29
      • 1970-01-01
      相关资源
      最近更新 更多