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



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

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

我是 SmartOS 的完全新手,据我了解,我将磁盘添加到存储池中,然后将它们作为一个磁盘进行管理?

Psanford 解释了如何使用两个磁盘,但这可能不是你想要的。 通常建议这样做来解决操作系统 I/O 调度中的缺陷。 ZFS 具有写入限制以避免磁盘饱和[0],并且可以将 SmartOS 配置为限制 I/O,以确保当某些用户(可能是同一用户)进行大量写入时,读取器会看到良好的性能[1]。 如果开箱即用的配置还不够,我会感到惊讶,但如果您看到性能不佳,最好对其进行量化。

[0] http://dtrace.org/blogs/ahl/2014/02/10/the-openzfs-write-throttle/[1] http://dtrace.org/blogs/wdp/2011/03/our-zfs-io-throttle/

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

您可以在 SmartOS 中设置多个池,但必须手动设置。Solaris文档仍然相当不错,适用于现代Illumos发行版(包括SmartOS)。第 4 章包含创建新 ZFS 池的所有相关信息,但它可以像以下那样简单:

zpool create some_new_pool_name c1t0d0 c1t1d0

这假定您有权访问全局区域。

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

最新更新