On Feb 14, 2014, at 8:24 AM, Warren Block <[email protected]> wrote:

> The Problem
> 
> More and more disk devices have native 4K blocks.  The ability to align MBR 
> slices to arbitrary values is consequently becoming more important. 
> Misaligned filesystems might read or write at less than half the speed of 
> aligned filesystems on the same disk.
> 
> Microsoft recognized this problem, and at least since the release of Vista in 
> 2007, MBR-formatted disks created by Microsoft operating systems have started 
> the first or main filesystem slice at block 2048 (1M).  Despite the official 
> standard for MBR alignment to CHS values, this second non-CHS but 4K-aligned 
> de facto standard has become extremely common.

Aligning to 4K *and* CHS is possible. If there are 63 sectors
per track, then a 4K aligned partition that starts at a track
boundary starts in track 8 (LBA 504).

Are you absolutely sure that 4K alignment resulted in non-CHS
alignment?



> When MBR slices are created with gpart(8) on FreeBSD, their starting block 
> and size are silently rounded to multiples of CHS values.  This happens even 
> when specific values for -a (alignment) or -b (starting block) are given.  
> This silent rounding violates POLA.

That's argumentative.

> At present, the only way to create an MBR with 4K-aligned slices on FreeBSD 
> is with fdisk(8), a legacy tool.

False. With some math, you can do the same thing with gpart.
What is missing is good behaviour when -a 4K is specified.

> Suggested Solution
> 
> gpart(8) should be allowed to override the CHS rounding with -a and -b values 
> when creating MBR slices.  If CHS rounding occurs when the options are not 
> given, gpart(8) should give a warning that default values were used to avoid 
> surprising the user.
> 
> The warning is really secondary.  Primarily and pragmatically, gpart(8) needs 
> the ability to create MBR slices with arbitrary alignment so FreeBSD can deal 
> gracefully with modern storage hardware.
> 

There are alternatives to consider:
1. Don't change anything
2. Align to both CHS and the specified alignment (-a).
3. Add an option to allow precise control over the behaviour
   and thus avoid causing POLA violations when the MBR scheme
   suddenly behaves differently and creates incompatible
   slices.

-- 
Marcel Moolenaar
[email protected]


Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to