Tanneks site of Life

'baun, schrauben, wiegen und schmieden Platinen, Kabelsalat, programmieren Maschinen..

Neues Raid, Neues Glück: 4k Disk Alignment mit RAID, dmcrypt, LVM und ext4

Die 4k-Blöcke Problematik ist ja nichts neues, da mich das aber einen
langen Abend googlen und man-pages lesen gekostet hat fasse ich mal
zusammen.


Das Problem hat am Beispiel einer InnoDB in diesem Blogpost
ausführlichst erklärt. Im Bild dazu wird deutlich, warum man auf jeder
Schicht (RAID,LVM,..) auf das richtige alignment achten muss:


Beispiel anhand von innoDB


Außerdem lässt sich erahnen, warum beim Filesystem auf einem RAID5 die Aufteilung der Strides und Stripes eine wichtige Rolle spielen. Aber dazu später.



Bevors ans Einrichten geht, muss man sich Überlegen in welcher Reihenfolge man RAID,dmcrypt und LVM aufeinaner stapelt.
Ich habe mich bei meiner Konfiguration für folgendes Vorgehen entschieden:



  1. Burn-In. Klingt übertrieben, aber ich kenne da wen der nach einer Datenrettung auf ein neue Platte nochmals Daten retten musste..

  2. Da nicht jede 4TB Festplatte exakt 4TB groß ist, sollte man zu erst eine Partition erstellen die ein tick kleiner ist (parted -a optimal aligned automatisch).

  3. Dann kommt das RAID5. Entgegen diverser Anleitungen geht das mit dem 4k Alignment auch bei Superblock-1.2 (default).

  4. Dann LVM mit alignment.

  5. dmcrypt (mit --align-payload=8192 und auf embedded Geräten mit -i 10000)

  6. ext4 mit je nach Anzahl der Platten im Raid5 passenden Stripes und strides.


Am Ende sollte man das ganze nochmal Überprüfen und macht am besten noch einen Benchmark mit hdparm -tT oder bonnie++ und vergleicht das Ergebnis.