[OmniOS-discuss] 4kn or 512e with ashift=12

Chris Siebenmann cks at cs.toronto.edu
Mon Mar 21 19:26:56 UTC 2016


> > Adding the ashift argument to zpool was discussed every few years
> > and so far was always deemed not enterprisey enough for the Solaris
> > heritage, so the setup to tweak sd driver reports and properly rely
> > on that layer was pushed instead.
>
> The issue is that once a drive model lies, then the Solaris approach
> is to encode the lie into a whitelist, so that the lie is always
> handled properly. The whitelist is in the sd.conf file.
>
> By contrast, the ZFSonLinux approach requires that the sysadmin knows
> there is a lie and manually corrects for every invocation. This is
> unfortunately a very error-prone approach.

 This implicitly assumes that the only reason to set ashift=12 is if
you are currently using one or more drives that require it. I strongly
disagree with this view. Since ZFS cannot currently replace a 512n
drive with a 512e one, I feel that you really want to force-create
all pools with ashift=12 even on 512n drives unless you're absolutely
confident that you will be able to obtain replacement 512n drives over
the lifetime of your pool (or unless the impact of using ashift=12 is so
drastic on your usage case that you will need to totally rethink your
pool if you become unable to get 512n replacement drives).

 For many usage cases, somewhat more space usage and perhaps somewhat
slower pools are vastly preferable to a loss of pool redundancy over
time. I feel that OmniOS should at least give you the option here (in
a less crude way than simply telling it that absolutely all of your
drives are 4k drives, partly because such general lies are problematic
in various situations).

	- cks


More information about the OmniOS-discuss mailing list