在 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 旋转磁盘。
- 这里有什么明显的 pitfalls/caveats 需要注意吗?像:
- C* 能否使用这种 RAM 处理每个节点高达 18 TB 的数据大小?
- 是否可以通过安装新的(更大的)磁盘来增加磁盘大小,将所有 SS 表复制到其中,然后将其安装到与原始(较小的)磁盘相同的安装点(以替换它) ?
这是 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)?
我看不出它不起作用的原因。
我 运行 生产中的 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 旋转磁盘。
- 这里有什么明显的 pitfalls/caveats 需要注意吗?像:
- C* 能否使用这种 RAM 处理每个节点高达 18 TB 的数据大小?
- 是否可以通过安装新的(更大的)磁盘来增加磁盘大小,将所有 SS 表复制到其中,然后将其安装到与原始(较小的)磁盘相同的安装点(以替换它) ?
这是 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)?
我看不出它不起作用的原因。