Commands to correctly clear/reset a used SSD and create an aligned partition for overprovisioned ZIL


Apr 8, 2016
I googled this but I don't have the experience and certainty so I thought it's worth asking here.

I have a decent SSD (Intel P3700 NVMe) that I plan to redeploy as a ZIL. It's a lot bigger than the ZIL needs to be, and web pages make clear that many SSDs can gain phenomenal performance if they are very highly (25 - 75%) overprovisioned. This one could be 95% overprovisioned and the other 5% would still be more than I need, so it's ideal to set it up that way. Even though it's a good and consistent SSD, it would probably be even better if I did, and the rest of its space is unused by the pool anyhow. But I'm not sure how to do it correctly.

The drive is already GPT formatted and used, so I have to wipe all partition data, gpt reformat, and create an aligned 10GB partition for ZIL (leaving the rest unallocated). But some pages say to use gpart, others say to use camcontrol hpa related commands, yet others say to use the manufacturer's config utility on a Windows machine. There might also be some special section to reset, so it "knows" it can use the rest for overprovisioning, as far as I can tell. Also Intel might have some special proprietary approach which is optimal for their datacentre SSDs that wouldn't apply to other makes.

How do I correctly reset my SSD and get it ready for optimal ZIL use?


Documentation Engineer
Nov 14, 2014
ZIL is built in. This is a SLOG.

The "reset" is probably a secure erase. On FreeBSD/FreeNAS, that can only be done with camcontrol. I've never gotten it to work, possibly due to the SSDs I had or the man page procedures not being clear. Also, it's a rarely-done thing, so there are not a lot of opportunities for testing.

The Intel SLOG SSDs have a good reputation. Erasing it is probably unnecessary. Either way, the next step is to use gpart to destroy the partitioning and create new partitioning. Give it a 16G partition for the SLOG, because that is all ZFS will use. Align that partition to at least an 8K boundary. Really, might as well align it to a 1M boundary ( gpart add -t freebsd-zfs -a1m 16G da8). Do not partition it and try to use it for SLOG devices for several pools, that defeats the purpose.

Of course, this is all only relevant if your workload has lots of synchronous writes.


Oct 12, 2012
gpart add -t freebsd-zfs -a1m 16G da8

More info needed about your setup. Particularly, is your SLOG disk da8? If it isn't but another disk is, you could easily have trashed da8 in your pool doing this without knowing how it works.