[parted-devel] [rfc] SSD partition alignment

Jim Meyering jim at meyering.net
Sun Feb 22 13:53:23 UTC 2009


Daniel J Blueman wrote:
...
>> But let's back up a step.
>> Do we really need to change anything?
>> Or are you proposing (like I think Eric was) a way to
>> make this merely more convenient?
>
> The question is: will the average user know and be prepared to do
> this? Probably not, so will experience a performance/longevity penalty
> which could have been avoided perhaps...

I sincerely hope that the average user does not use parted ;-)
Even for those of us who have braved its murky depths, sometimes
it's hard to remember (or discover) how to do things the parted way.

>> I can already create partitions aligned to 128KiB boundaries.
>> This creates a first partition of just less than 1GiB,
>> and the second taking up the remainder of the space
>> and also using a size that's a multiple of 128KiB:
>>
>>    dev=file; : > $file
>>    k=1024 m=$(($k*$k)) g=$(($k*$k*$k))
>>    dd if=/dev/null of=$dev bs=1 seek=32GiB
>>    parted -s $dev mklabel gpt
>>    parted -s $dev u B mkpart primary $((128*$k)) $(($g-1))
>>    parted -s $dev u B mkpart primary $g $((32*$g - $m - 1))
>>    parted -s $dev u B p
>>
>>    Model:  (file)
>>    Disk /t/file: 34359738368B
>>    Sector size (logical/physical): 512B/512B
>>    Partition Table: gpt
>>
>>    Number  Start        End           Size          File system  Name     Flags
>>     1      131072B      1073741823B   1073610752B                primary
>>     2      1073741824B  34358689791B  33284947968B               primary
>>
>>
>> Now, I think that this functionality
>> (snap-to-user-specified-or-system-derived-alignment) belongs in gparted,
>> and not in parted.
>
> Yes, if we propose to add an option to say "tick, I know I have an
> SSD", but this adds more unnecessary user complexity, when the cost to
> non-SSDs is so low.
>
> What's (at worst) 128KB slack in partition layouts, when we already
> skip the first 63 sectors anyway?

If that were the only cost, we'd switch right away.
However, parted's code is very fragile, and changing how it handles
constraints/alignment seems like it'd be very risky.  Why go there
if it's not absolutely necessary?  Besides, the functionality I think
you want (to make the process convenient or mandatory) belongs in a
higher-level tool.

If the programmers and tools invoking parted cannot be bothered to
do a little modulo arithmetic and be aware of alignment, then they
shouldn't be choosing partition boundaries in the first place.



More information about the parted-devel mailing list