What is the best Solid State File System (SSDFS) for Linux?

EXT4 is not a solid state file system. It won't take full advantage of the hardware and it will ware out the drive. So what is the best Solid State File System for Linux? I am looking forward to ButterFS (btrfs), but its not suitable for production systems. I'm also interested to know why you like a particular ssdfs.


Solution 1:

First and foremost, modern SSD drives and especially the kind I'd use for 'enterprise' workloads have sufficient wear-leveling built in that even poorly behaved filesystems won't seriously degrade the lifespan of the drive itself. Even file-systems that use the same blocks over and over again for metadata operations or the journal won't do this, since the drives are smart enough to move that logical hot-block onto different physical blocks as the drive ages.

A file-system that is good for maximum SSD lifespan will be one that causes a minimum of write I/O operation overhead when writing storage blocks. Overhead generally comes from metadata and journal operations. This is not unique to SSDs though, as those kinds of write amplification features impact rotational media as well.

Where true Solid State Drive oriented file-systems, such as LogFS, come into their own is when they're managing storage that doesn't have wear leveling built in. If you're building storage based off of Compact Flash or SD cards, these filesystems will indeed perform the wear-leveling that modern Solid State Drives do internally. Embedded devices will probably use these file-systems far more often than end-users or server admins.

If you have a real SSD on your hands, it still pays dividends to ensure your legacy rotational media oriented filesystems align block boundaries on logical drive block boundaries. This prevents write amplification due to misaligned writes, which both increases performance and lifespan of the device.

Even on SSDs I still like XFS for my filesystem. But EXT4 looks promising for other workloads. I'm far more confident that fiddling XFS to do block-aligned writes will give me both lifespan and performance than I am confident that experimental file-systems like LogFS will survive the test of time.

Solution 2:

Wearing out the drive is not addressed by the filesystem, generally. Wear-leveling technology is built into the drive. Make sure you are using a kernel that supports the trim command. This will keep you from experiencing performance issues as the drive ages. I highly recommend staying away OCZ and other 2nd tier brands. I've had good luck with the cheaper MLC intel SSDs with the newest firmware. You will need to install this firmware manually, I don't believe intel is shipping MLC drives with it yet.

I would also consider not writing log files or swap files to this drive if possible.