Hardware Selection — ZFS is only as good as the metal it runs on.
ZFS is highly dependent on disk latency and throughput. The wrong hardware doesn't just slow things down — it can cause data loss. Consumer SSDs, RAID controllers, and SMR drives are the three most common hardware mistakes.
The golden rule
NEVER use ZFS on top of hardware RAID. Use IT-mode HBAs only.
ZFS requires direct access to raw disks. RAID controllers hide disk errors, alter write patterns, and inject caching that interferes with ZFS's integrity guarantees. The most popular choice is the LSI 9211-8i (or 9207-8i) flashed to IT (Initiator Target) mode firmware. This exposes disks directly to the OS without RAID or caching logic.
RAID-mode controllers mask drive errors, break S.M.A.R.T. passthrough, and defeat ZFS checksumming. Just don't do it. Period.
Disk selection
SLOG devices
Must have power loss protection (PLP). Enterprise NVMe only. Intel Optane (discontinued but excellent), Samsung PM9A3, Micron 7400 PRO. Consumer SSDs without PLP risk data loss on power failure — the one scenario SLOG exists to protect against.
L2ARC devices
High-endurance NVMe or SSD. Needs to handle sustained random reads. Write endurance matters less than SLOG but still important. Avoid QLC drives.
Data disks (SSD)
Enterprise SSDs with DRAM cache and high endurance (DWPD > 1). Consumer SSDs (especially QLC and DRAM-less models) have high write amplification under ZFS and fail early. They're fine for L2ARC reads but terrible for primary storage.
Data disks (HDD)
Avoid SMR (Shingled Magnetic Recording) drives. SMR performs terribly under sustained writes and causes resilver times to explode. Use CMR (Conventional Magnetic Recording) drives. WD Red Plus, Seagate Exos, HGST Ultrastar — enterprise or NAS-rated drives only.
Verify your setup
# Verify disks are directly visible (not behind RAID controller)
ls -l /dev/disk/by-id/
# Should show entries like: scsi-35000c500a0b12345
# Check for SMR drives (look for "Host Managed" or "Device Managed")
smartctl -a /dev/sdX | grep "Rotation Rate"
# SMR drives often show lower RPM or "Shingled" in marketing
# Verify SLOG device has power loss protection
smartctl -a /dev/nvme0 | grep -i "power loss"