【问题标题】:What is current recommended max storage space for Cassandra 2021?Cassandra 2021 目前推荐的最大存储空间是多少?
【发布时间】:2021-05-29 16:38:35
【问题描述】:
经过多年的开发,已经为 Cassandra NoSQL 引入了许多功能。然而,很少有关于硬件和架构的信息以及真实世界的示例。
在互联网上(以及在 stackoverflow 上)有一些声音要求将存储空间保持在 1 TB 以下。但是几乎每次都没有解释是 1TB“活动磁盘空间”(因此使用 x3 复制总共大约 3TB)还是 1TB“原始磁盘空间”。此外,没有解释为什么不应该超过这样的 1TB(为什么不拥有 2TB 或 5TB?)。
此外,我想知道它在过去几年中是否发生了变化?是否可以在单台机器上存储 50+TB 而对性能没有太大影响。多台机器的存储空间很小(例如,每台机器 1TB)通常会出现问题。
我想知道 3 件事:
- 单个 Cassandra 机器(服务器)的最大可能存储空间 (hdd/ssd) 是多少?
- 单个 Cassandra 机器(服务器)的推荐存储空间(hdd/ssd)是多少?
- 是否有任何解决方案可以在每台 NoSQL 机器(带/不带 Cassandra)上存储 50+ TB?
【问题讨论】:
标签:
amazon-web-services
cassandra
nosql
storage
【解决方案1】:
答案很大程度上取决于您的要求 - 是始终在线、随机访问的数据,还是某种存档(只有部分数据被主动访问)等等。所以没有这些信息很难说。您还需要考虑维护操作 - 将新节点添加到集群或删除它需要多长时间 - 现在在 10Tb 上可能需要 3-5 天(4.0 的改进有助于减少该时间) .
一般建议是每台机器有 1-2Tb(磁盘大小,压缩,考虑到复制)。根据访问模式和 Cassandra 的版本(例如,即将推出的具有大量改进和优化的 4.0),可能会增加到 2-4Tb/机器。但这需要仔细测试。我建议使用 NoSQLBench 之类的东西来模拟您的架构和测试访问模式。
我见过每台机器的数据量为 10-12Tb(我的同事看到的甚至更多)的设置(磁盘大小、压缩数据),但在大多数情况下,大部分数据很少被访问的系统,并且主要是为了合规而保留。
【解决方案2】:
这取决于您的访问模式与压缩策略的匹配程度。在大多数情况下,按大小分层和分级压缩是通用压缩策略,很难将访问模式与它们对齐。它们严重依赖压缩过程来优化读取。
您可以通过时间窗口压缩和时间序列数据实现最高密度,因为读写访问模式与时间窗口对齐(最佳情况)。
在任何一种情况下,增加密度和减少节点数量都会降低操作复杂性,但会增加操作事件的复杂性。随着节点变得密集,移动数据变得具有挑战性。添加新节点、重建节点甚至备份都可能成为高风险。