How to make Cassandra use two disks on ZFS in SmartOS?

732 views Asked by At

I heard that there's a huge improvement when Cassandra can write it's logfiles to one disk, and the SS Tables to another. I have two disks, and if I was running Linux I would mount each in a different path and configure Cassandra to write on those.

What I would like to know is how to do that in ZFS and SmartOS.

I'm a complete newbie in SmartOS, and from what I understood I add the disks to the storage pool, are they then managed as being one ?

2

There are 2 answers

1
psanford On BEST ANSWER

By default SmartOS aggregates all your disks together into a single ZFS pool (SmartOS names this pool "zones"). From this pool you create ZFS datasets which can either look like block devices (used for KVM virtual machines) or as filesystems (used for SmartOS zones).

You can setup more than one pool in SmartOS, but you will have to do it manually. The Solaris documentation is still quite good and applicable to modern Illumos distributions (including SmartOS). Chapter 4 has all the relevant information for creating a new ZFS pool, but it can be as simple as:

zpool create some_new_pool_name c1t0d0 c1t1d0

This assumes that you have access to the global zone.

If I were running a Cassandra cluster on bare metal and I wanted to benefit from things like ZFS and DTrace I would probably use OmniOS instead of SmartOS. I don't want any contention for resources with my database machines, so I wouldn't run any other zones or VMs on that hardware (which is what SmartOS is really good at).

0
Dave Pacheco On

psanford explained how to use two disks, but that's probably not what you want here. That's usually recommended to work around deficiencies in the operating system's I/O scheduling. ZFS has a write throttle to avoid saturating disks[0], and SmartOS can be configured to throttle I/Os to ensure that readers see good performance when some users (possibly the same user) are doing heavy writes[1]. I'd be surprised if the out-of-the-box configuration wasn't sufficient, but if you're seeing bad performance, it would be good to quantify that.

[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/