重新配置现有 Cassandra 节点中的数据目录

重新配置现有 Cassandra 节点中的数据目录

我目前正在运行一个非常简单的单节点 Cassandra 盒,数据文件位于单个磁盘上。我即将向该盒中添加几个 SSD,并打算将每个 SSD 作为另一个数据目录添加到 cassandra.yaml 文件中。如果我停止 Cassandra,安装 SSD,将数据文件从(当前)机械驱动器移动到其中一个 SSD,然后将 SSD 目录添加到 yaml 文件,然后重新启动 Cassandra,它会自动开始在两个磁盘之间进行平衡吗?重新配置磁盘和磁盘空间设置时是否存在我应该注意的问题?

答案1

在较新版本的 Cassandra(自 v1.1.0 IIRC 以来)中,您可以选择在磁盘上存储各个列族的位置 - 因此,您可以将特定列族(和事务日志)的负载分散到您的 SSD 上。

如果您将 SSD 添加到 RAID 层后面(比如 raid 0 条带化 - cassandra 以 32K 块写入,因此 32k 块似乎是条带大小的一个不错的选择),那么您只需担心将其全部放在一个位置,而且吞吐量和 I/O 操作会显着增加。

我认为您采取的行动方法也很好。

顺便说一下,我真的就像这个应用程序的 ZFS 一样。我可以选择让廉价的 spinning rust 提供大部分存储,然后通过在 SSD 上放置 L2 ARC 缓存来加快读取速度,并在需要时通过将 ZIL 放在 SSD 上来加快写入速度(根据我使用 cassandra 的经验,这不太重要)。

相关内容