ZFS Storage recommendations for ZFS intent log

We've got a system with FreeBSD 10.2 with root on ZFS running on 4 x 1TB drives in a raidz2 array with 16GB RAM. zfs.arc_max is set to 12GB.

We're thinking of putting in (1 or 2) SSDs for swap, ZIL and at some point L2ARC. The system is doing web hosting (JIRA), MySQL, GIT and Subversion and a bit of file serving for a small team.

Firstly, can someone recommend a relatively inexpensive PCIe SATA controller with internal connectors?

Secondly, we'll probably add 2 x 128GB SSDs. I'm planning on 3 partitions on each drive, swap, ZIL and L2ARC (although we may not enable this yet). Does it matter on the order of the partitions or the block alignment on the disk?

What would you recommend for the size of the ZIL? There's a post on here mentioning 4GB. Does that sound adequate? I think 16GB swap would be adequate for us. I'd set both up mirrored. That would leave about 104GB on each SSD for L2ARC at some point. Should the arc be mirrored or doesn't it really matter because if it's checksummed, if there's an issue, I assume ZFS will just revert to reading back from the zpool?

Does this sound a sensible setup?


  • Thanks
Reactions: Oko
Did you consider NVMe for the SSD?

Loss of cache device should not cause data loss, only degraded read performace, depends on your scenario how important it is. You may be able to get better performance without mirroring when ZFS reads simultaneously from multiple cache devices, however quick googling didn't reveal any authoritative confirmation for this.
You can probably do with very small ZIL device. The way ZIL is used is that it holds temporarily the transactions that haven't yet been committed for real on physical medium, after the real write happens the temporary contents are discarded. Unless you do NFS sharing with many clients that all write on the shares I can't imagine the ZIL getting a big backlog of transactions under any conditions. You might not even need a separate ZIL device.
  • Thanks
Reactions: Oko
Thanks. We will have NFS (and Samba) enabled but usage of these will be very light, the primary purpose is the bug tracking system, database and version control.

Performance is fine for us as the moment, but want to add the SSDs for mirrored swap so just thought it would be a good idea to partition them up now for ZIL/L2ARC while we're setting them up.
Should be supported, see nvme(4) and nvd(4). These are available in the M.2 format you already found, 2.5" HDD/SSD form factor and as PCIe x4 cards. Because you asked for controller, I would consider either something like the Intel DC P3x00 or two for redundancy or some 1 x PCIe x8 to 2 x M.2 connectors. Be aware that there are multiple same form factor devices with different interfaces, so you may buy for example 2.5" SATA SSD or 2.5" NVMe SSD which looks almost the same. Also the M.2 connectors have some quirks, you are looking for devices with the M key, do little research on this topic before order.
The Intel drives look a little large capacity-wise and expensive for what we're looking for at the moment. I'll look in to the spec stuff but something like this might work then



Looks a fairly inexpensive. The adapter says Samsungs can't be used for system booting but we're not worried about that. The Samsung is NVME but the controller says NGFF.

I guess this wouldn't handle 2 Samsungs as it says it's 2 x M.2 SATA but only 1 x M.2 so would still need a controller per board. Do you know of any adapters that would support 2x NVME?
There is something from Dell and HP, both for 4 modules http://www.servethehome.com/the-dell-4x-m-2-pcie-x16-version-of-the-hp-z-turbo-quad-pro/

I am not aware of any server grade 2 x M.2 card, however I did last research on this topic about 8 month ago. One possible solution is 2/4 x adapter for the 2.5" form factor http://www.servethehome.com/4-solutions-tested-add-2-5-sff-nvme-current-system/ but it looks less elegant to me.

There is also possibility you already have one M.2 slot on your motherboard and need only one another.