ZFS: alignment/boundary for partition type freebsd-zfs

Allan Jude allanjude at freebsd.org
Tue Dec 26 16:50:59 UTC 2017

On 2017-12-26 11:24, O. Hartmann wrote:
> Running recent CURRENT on most of our lab's boxes, I was in need to replace and restore a
> ZFS RAIDZ pool. Doing so, I was in need to partition the disks I was about to replace.
> Well, the drives in question are 4k block size drives with 512b emulation - as most of
> them today. I've created the only and sole partiton on each 4 TB drive via the command
> sequence
> gpart create -s GPT adaX
> gpart add -t freebsd-zfs -a 4k -l nameXX adaX
> After doing this on all drives I was about to replace, something drove me to check on
> the net and I found a lot of websites giving "advices", how to prepare large, modern
> drives for ZFS. I think the GNOP trick is not necessary any more, but many blogs
> recommend to perform
> gpart add -t freebsd-zfs -b 1m -a 4k -l nameXX adaX
> to put the partition boundary at the 1 Megabytes boundary. I didn't do that. My
> partitions all start now at block 40.
> My question is: will this have severe performance consequences or is that negligible?
> Since most of those websites I found via "zfs freebsd alignement" are from years ago, I'm
> a bit confused now an consideration performing all this days-taking resilvering process
> let me loose some more hair as the usual "fallout" ...
> Thanks in advance,
> Oliver

The 1mb alignment is not required. It is just what I do to leave room
for the other partition types before the ZFS partition.

However, the replacement for the GNOP hack, is separate. In addition to
aligning the partitions to 4k, you have to tell ZFS that the drive is 4k:

sysctl vfs.zfs.min_auto_ashift=12

(2^12 = 4096)

Before you create the pool, or add additional vdevs.

Allan Jude

More information about the freebsd-current mailing list