fdisk(8) vs gpart(8), and gnop

Adam McDougall mcdouga9 at egr.msu.edu
Sun Jun 1 19:47:02 UTC 2014


On 06/01/2014 12:07, Nathan Whitehorn wrote:
> On 06/01/14 09:00, Steven Hartland wrote:
>>
>> ----- Original Message ----- From: "Nathan Whitehorn"
>> <nwhitehorn at freebsd.org>
>> To: <freebsd-hackers at freebsd.org>; <freebsd-fs at freebsd.org>
>> Sent: Sunday, June 01, 2014 4:55 PM
>> Subject: Re: fdisk(8) vs gpart(8), and gnop
>>
>>
>>> On 06/01/14 08:52, Steven Hartland wrote:
>>>> ----- Original Message ----- From: "Mark Felder" <feld at freebsd.org>
>>>>
>>>>> On May 31, 2014, at 20:57, Freddie Cash <fjwcash at gmail.com> wrote:
>>>>>
>>>>>> There's a sysctl where you can set the minimum ashift for zfs.
>>>>>> Then you
>>>>>> never need to use gnop.
>>>>>>
>>>>>> I believe it's part of 10.0?

The new sysctl is not yet part of a release:

11 r264850 Thu Apr 24
10 r266122 Thu May 15
9  r266123 Thu May 15

>>>>>
>>>>> I've not seen this yet. What we need is to port the ability to set
>>>>> ashift at pool creation time:
>>>>>
>>>>> $ zpool create -o ashift=12 tank mirror disk1 disk2 mirror disk3 disk4
>>>>>
>>>>> I believe the Linux zfs port has this functionality now, but we
>>>>> still do not.
>>>>
>>>> We don't have that direct option yet but you can achieve the
>>>> same thing by setting: vfs.zfs.min_auto_ashift=12
>>>>
>>> Does anyone have any objections to me changing this default, right
>>> now, today?
>>> -Nathan
>>
>> I think you will get some objections to that, as it can have quite an
>> impact
>> on the performance for disks which are 512, due to the increased
>> overhead of
>> transfering 4k when only 512 is really required. This has a more dramatic
>> impact on RAIDZx due too.

Another drawback is space consumption.  Using 4k when not needed
consumes a considerable amount of extra space.  The loss can be on the
order of terabytes when using many 2TB drives in a raidz for example.

>>
>> Personally we run a custom kernel on our machines which has just this
>> change
>> in it to ensure capability with future disks, so I can confirm it does
>> indeed
>> have the desired effect :)
> 
> So the discussion here is related to what to do about the installer. The
> current ZFS component unconditionally creates gnops all over the place

The 10.0-RELEASE installer ZFS configuration defaults to gnop but easily
allows the user to opt out with the "Force 4K Sectors" menu option.  I
think we should keep that end result with the opt-out (replace opt-in
gnop with opt-out sysctl?) and reflect that default in the installed
kernel since it can be overridden easily.

> to set ashift to 4k. That's across the board worse: it has exactly the
> performance impact of changing the default of this sysctl (whatever that
> is), it can't easily be overridden (which the sysctl can), and it's a
> horrible hack to boot. There are a few options:
> 
> 1. Change the default of vfs.zfs.min_auto_ashift
> 2. Have the same effect but in a vastly worse way by adjusting the
> installer to create gnops
> 3. Have ZFS choose by itself and decide to do that permanently.
> 
> Our ATA code is good about reporting block sizes now, so (3) isn't a big
> issue except for the mixed-pool case, which is a huge PITA.
> 
> We need to choose one of these. I favor (1).
> -Nathan
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"



More information about the freebsd-fs mailing list