Advanced Format Drives
There are two types of Advanced Format drives: 512 emulation (512e) and 4K native (4Kn). The ZEVO implementation supports both. However, 512 emulation drives need to be identified by passing the ashift=12 property when using the zpool create command.
The 512e (emulated) hard drives always report 512 even though the actual physical sector size is 4Kib. This is problematic for a file system like ZFS which doesn’t have static block sizes. Without intervention, ZFS would incorrectly assume that it could atomically and efficiently access data in units of 512 bytes.
In addition to the 512e obfuscation, we have discovered that some USB and Firewire bridges also hide the true native sector size.
The following command will set the ashift value to 12 as expected for a 4096 native sector size:
$ sudo zpool create -o ashift=12 tank mirror /dev/disk2 /dev/disk4
You can verify the results (ashift = 12) using the zdb -l command, as follows:
$ sudo zdb -l /dev/rdisk2s2 | grep ashift
ashift: 12
ashift: 12
ashift: 12
ashift: 12