I'm currently running a very simple single-node Cassandra box with the data files on a single disk. I'm about to add a couple of SSDs to the box and intend to add each SSD as another data directory to the cassandra.yaml file. If I stop Cassandra, install the SSD's, move the data files from the (current) mechanical drive to one of the SSDs and then add the SSD directories to the yaml file and then start Cassandra up again, will it automatically start balancing between the two disks? Are there any issues surrounding reconfiguring disk and disk space setup that I should be aware of?


In the newer versions of Cassandra (since v1.1.0 IIRC) you can choose where individual column families are stored on disk - so yes you can spread the load of specific column families (and the transaction log) out across your SSDs.

If you are adding the SSDs behind a RAID layer (say raid 0 striping - cassandra writes in 32K blocks so 32k blocks seems a good choice for stripe size) then you'd benefit from only having to worry about putting it all in one location and you'd get a very significant increase in throughput and I/O ops.

Your approach for doing the move also seems fine to me.

As an aside, I really like ZFS for this application. I can choose to have most storage provided by cheap spinning rust, and then speed up reads by putting an L2 ARC cache on SSDs and speed up writes if needed by putting the ZIL on SSDs (less relevant in my experience with cassandra).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.