1

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

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

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

4

2 回答 2

2

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-油门/

于 2014-05-12T17:16:52.420 回答
1

默认情况下,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。我不希望与我的数据库机器发生任何资源争用,因此我不会在该硬件上运行任何其他区域或 VM(这是 SmartOS 真正擅长的)。

于 2013-10-31T21:11:06.160 回答