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

Nathan Whitehorn nwhitehorn at freebsd.org
Sun Jun 1 16:32:27 UTC 2014


On 06/01/14 09:14, Steven Hartland wrote:
>
> ----- Original Message ----- From: "Nathan Whitehorn" 
> <nwhitehorn at freebsd.org>
> To: "Steven Hartland" <killing at multiplay.co.uk>; 
> <freebsd-hackers at freebsd.org>; <freebsd-fs at freebsd.org>
> Sent: Sunday, June 01, 2014 5:07 PM
> Subject: Re: fdisk(8) vs gpart(8), and gnop
>
>
>> 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?
>>>>>>
>>>>>> 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.
>>>
>>> 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 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).
>
> I wasn't aware of that but it should do #3
>
> min_auto_ashift is a bigger discussion.

Fair enough. I'm going to decide not to worry about (2) while 
integrating some installer patches then. If we do either (1) or (3), I'm 
perfectly happy. It would be nice if that discussion happened, however, 
rather than dying now.
-Nathan


More information about the freebsd-fs mailing list