在 Cassandra 节点上增加磁盘大小时要考虑什么?

What's to think of when increasing disk size on Cassandra nodes?

我 运行 生产中的 10 节点 Cassandra 集群。 99% 写; 1% 读取,0% 删除。节点有 32 GB RAM; C* 运行s 8 GB 堆。每个节点都有一个用于提交日志的 SDD 和用于数据的 2x4 TB 旋转磁盘 (sstables)。该架构仅使用密钥缓存。 C* 版本为 2.1.2.

可以预见,集群将运行 out of free disk space 用不了多久。所以它的存储容量需要增加。客户端更喜欢增加磁盘大小而不是添加更多节点。因此,计划是在每个节点中使用 2x4 TB 旋转磁盘并替换为 3x6 TB 旋转磁盘。

这是 Cassandra 中的反模式。分布式数据库是 Cassandra 的关键特性

我建议添加节点而不是增加当前节点的数据大小。添加节点将通过具有易于更换的小型节点来利用 Cassandra 的分布特性。

此外,对于旋转磁盘,集群中单个节点的推荐大小约为 1 TB。一旦高于该值,我只能想象性能会显着下降。

更不用说如果一个节点丢失了它的数据,恢复它需要很长时间,因为它必须从其他节点流式传输大量数据。

Can C* handle up to 18 TB data size per node with this amount of RAM?

这在很大程度上取决于您的工作量。

Is it feasible to increase the disk size by mounting a new (larger) disk, copy all SS tables to it, and then mount it on the same mount point as the original (smaller) disk (to replace it)?

我看不出它不起作用的原因。