[CentOS] Stripe vs Cylinder alignement...

NiftyCluster Tom Mitchell niftycluster at niftyegg.com
Fri Oct 30 19:57:18 UTC 2009

On 10/30/09, John Doe <jdmls at yahoo.com> wrote:
> Hi,
> I modified my kickstart to do some custom partioning and formating in a
> pre-install script.
> I am trying to align the partitions on the RAID stripe (and format with a
> correct stride).
> But, sfdisk complains that it does not start/end on a cylinder boundary
> (used -L option to limit complaining).
> Since the cylinder size is not a multiple of the stripe size, I cannot align
> on both.
> I tried to align the begining on the stripe and the end on the end of a
> cylinder, but sfdisk still compains...
> Basicaly, I have a 128KB (256 sectors) stripe, and 255*32 = 8160 sectors
> cylinders.
> What I am doing is:
> begin = ( begin / 256 ) * 256
> end = ( end / 8160 ) * 8160 -1
> So, for my first partition (96MB):
>   begin=256
>   size = ( ( 96 * 1024 * 2 ) / 8160 ) * 8160 = 195840 sectors
>   end = 195840 - 1 - 256 = 195583
> Any idea what I am doing wrong in my calculations or logic?

Logic!  Well not logic but knowledge about the physical layer inside the disk.

Most disks today do not have a constant number of blocks
per track/ cylinder.   Most disk partitioning tools just guess
and do some rounding.   There can be one, two or even three
zones on the surface with different blocks per track on each.

One strategy is to look at the buffer setup and size of a disk
and match stripe sizes to work with memory not blocks per cylinder.
Note that a drive with an 8MB buffer uses some for read and some
for write.   Some research or testing can expose the ratio.

Another strategy is to partition devices exactly the same.

LBA (Logical block addressing) hides the physical layer....


        T o m   M i t c h e l l

More information about the CentOS mailing list