wiki:disk_alignment

Version 1 (modified by Daniel Kahn Gillmor, 14 years ago) ( diff )

--

Disk Alignment

We use a complex stack of block device tools. As it turns out, these tools will perform slightly better if they all agree on block boundaries.

setting up

here are the things to think about when setting up a disk:

  • physical disk partitions -- should start at a multiple of 8192s (where s means "512Byte sector")
  • RAID -- mdadm should use 0.90 or 1.0 superblocks, which are written at the end of the device. If metadata version 1.1 or 1.2 are used, then the data_offset field needs to be a multiple of 8192.
  • dm_crypt/LUKS -- cryptsetup LuksFormat should use --align-payload=8192
  • LVM
    • pvcreate should use --dataalignment 8192s
    • vgcreate should use --physicalextentsize 8192s (this is currently the default)

checking

  • Partitions: (look at Start column -- you want multiples of 8192) parted /dev/sda unit s print
  • RAID: mdadm --examine $COMPONENTDEVICE | grep Version
  • dm_crypt/LUKS: cryptsetup luksDump $BASEDEVICE | grep '^Payload offset:'
  • LVM
    • Physical volumes: (look at "1st PE"): pvs --units s -o +pe_start
    • Volume groups: (look at "Ext"): vgs --units s -o +vg_extent_size

fixing

if any of these are wrong, what do we do?

Note: See TracWiki for help on using the wiki.