如何让Cassandra在SmartOS的ZFS上使用两个磁盘?

如何让Cassandra在SmartOS的ZFS上使用两个磁盘?,cassandra,solaris,opensolaris,zfs,smartos,Cassandra,Solaris,Opensolaris,Zfs,Smartos,我听说当Cassandra可以将日志文件写入一个磁盘,将SS表写入另一个磁盘时,会有很大的改进。我有两个磁盘,如果我运行Linux,我会将每个磁盘安装在不同的路径上,并配置Cassandra在这些磁盘上进行写操作 我想知道的是如何在ZFS和SmartOS中做到这一点 我是SmartOS的新手,据我所知,我将磁盘添加到存储池中,然后它们是否作为一个整体进行管理?默认情况下,SmartOS将所有磁盘聚合到一个ZFS池中(SmartOS将此池命名为“区域”)。从这个池中,您可以创建ZFS数据集,这些数

我听说当Cassandra可以将日志文件写入一个磁盘,将SS表写入另一个磁盘时,会有很大的改进。我有两个磁盘,如果我运行Linux,我会将每个磁盘安装在不同的路径上,并配置Cassandra在这些磁盘上进行写操作

我想知道的是如何在ZFS和SmartOS中做到这一点


我是SmartOS的新手,据我所知,我将磁盘添加到存储池中,然后它们是否作为一个整体进行管理?

默认情况下,SmartOS将所有磁盘聚合到一个ZFS池中(SmartOS将此池命名为“区域”)。从这个池中,您可以创建ZFS数据集,这些数据集既可以看起来像块设备(用于KVM虚拟机),也可以像文件系统(用于SmartOS区域)

您可以在SmartOS中设置多个池,但必须手动设置。该版本仍然很好,适用于现代Illumos发行版(包括SmartOS)。提供了创建新ZFS池的所有相关信息,但可以简单到:

zpool create some_new_pool_name c1t0d0 c1t1d0
这假定您可以访问全局区域


如果我在裸机上运行Cassandra集群,并且希望从ZFS和DTrace之类的东西中获益,我可能会使用它而不是SmartOS。我不想与我的数据库机器争夺任何资源,因此我不会在该硬件上运行任何其他区域或虚拟机(这正是SmartOS真正擅长的)

psanford解释了如何使用两个磁盘,但这可能不是您想要的。这通常被推荐用于解决操作系统I/O调度中的缺陷。ZFS有一个写限制以避免磁盘饱和[0],SmartOS可以配置为限制I/O,以确保读卡器在某些用户(可能是同一用户)执行大量写操作时具有良好的性能[1]。如果开箱即用的配置不够,我会感到惊讶,但是如果您看到性能不好,那么最好对其进行量化

[0]
[1]

请参见@dave pacheco的答案。他知道他在说什么。