Creating RAIDZ ZFS Pools With Large ashift/physical-block-size VDEVs May Result In Lower Than Expected Usable Capacity
Last updated on DECEMBER 21, 2016
Applies to:Solaris Operating System - Version 10 8/07 U4 and later
F40 Flash Accelerator Card - Version All Versions and later
Flash Accelerator F80 PCIe Card - Version All Versions and later
Sun Flash F20 PCIe Card - Version All Versions and later
Sun Flash F5100 Array - Version All Versions and later
Information in this document applies to any platform.
Newer storage devices, particularly Solid State Disks (SSD), Non-Volatile Memory on PCI (NVME), and Flash Module (FMOD) HBAs, are being released with increasing native physical-block-sizes. Traditional spinning disks have a physical-block-size of 512 bytes. SSD, NVME, and FMODS typically have 4K or 8K native block sizes with backwards compatability to 512e (512 byte emulated). For optimal performance the native physical-block-size should be used. This avoids multiple Read-Modify-Write (RMW) operations within the device itself that can lead to premature wear failures and mis-aligned IOs. Usually this requires the 'physical-block-size' parameter to be added to the driver configuration file. Refer to the product documentation for the recommended settings. For example:
For F40 or F80 flash devices, add the following entry to /kernel/drv/sd.conf. In the entry below, ensure that "ATA " is padded to 8 characters. String length of "ATA 2E256" is 13, and string length of "ATA 3E128" is also 13. Note that this should be a single line in sd.conf.