Solid State Drives (SSD)

Revision as of 10:04, January 10, 2014 by 108.4.83.226 (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page aims to highlight SSD relevant options for commands commonly used during system setup/install.
SSD
WARNING
Avoid using dd command to overwrite data on SSD. The SSD controller has its own algorithms for allocating writes based on its internal topology. Trying to overwrite data the usual way (e.g. dd if=/dev/zero of=/dev/sda ) is not only futile but will reduce the remaining number of writes to the flash cells. To inform the controller that all data can be purged use hdparm --security-erase. <ref>https://wiki.archlinux.org/index.php/SSD_Memory_Cell_Clearing</ref>
Partitioning
The default alignment of 1MiB provides for proper SSD performance. For gdisk, ensure each partition starts at integer multiple of 2048 (sectors). If you change gdisk's default boundary then the default for other programs may change as a result.
LUKS
cryptsetup luksFormat --align-payload 2048 (default)
cryptsetup luksOpen --allow-discards
MDADM
mdadm -c 512 Aligns chunksize to 512KB erase block size times 1 data disk (for raid1)
LVM
pvcreate --data-alignment 512 (equal to value given as chunksize) ?default? --data-alignment-offset (should not be needed for correctly aligned partitions)
vgcreate -s 4M (default)
MKFS
mkfs.ext4 -b 4096 -E stride=128,stripe_width=128 (erase block size / 4096) (for raid1)
mkfs.xfs -b 4096 -d sunit=1024,swidth=1024 OR -d su=512K,sw=512K (for raid1)