SSD-Einsatz mit Linux

Dies ist ein kleiner Merkzettel, was man beachten sollte, v.a. die Dinge beinhalten, die man nachträglich schlecht ändern kann.

SSD-Firmware

Nicht Linux-spezifisch, aber trotzdem erwähnenswert: als allererstes checken, ob auf der SSD die aktuelle Release-Firmware drauf ist, bevor man Daten draufspielt - erspart einem das Backup.

fdisk

Neuere fdisk-Versionen alignen automatisch, man sieht es daran, dass im Sektor-Modus ("u" und "c") der Partitionsstart der ersten Partition bei 2048 (== 1MB) angezeigt wird.

Man kann aber auch mit älteren fdisks im C/H/S-Modus alignen:

Partitions-Alignment auf 128KB:

fdisk -H 224 -S 56 /dev/sdb  # Cylinder = 49 * 128KB

Hinweis: Wenn man die erste Partition wie üblich auf Cyl 1, Head 1, Sect 1 anfängt (also bei Sektor 56), ist sie nur auf 4KB aligned, aber fuer /boot wenig relevant, da wenig Schreibzugriffe. Alternativ kann man, wenn man kein /boot möchte auch einfach einen Cylinder verschenken und auf Cyl 2 Head 0 Sect 1 (also bei Sektor 12544) anfangen, dann ist man 128KB-aligned und auf Cylinder-Grenze schon bei der ersten Partition.

Einzelne SSD

TODO

Alternativ: RAID1 aus SSD und HDD

Idee:

Beispiel-Layout:

TODO: mehr Details zu --write-mostly --write-behind bitmap ...

md Alignment: metadata 0.90 oder 1.0 liegen am ENDE, daher kein Einfluss. 1.1/1.2 liegt am Anfang - die eigentlichen Daten beginnen aber erst ab Sektor 2048, sind also auf 1MB aligned.

sda ist ssd, sdb ist hdd
# boot, keine optimierung:
mdadm --create /dev/md1 -l1 -n2 /dev/sda1 /dev/sdb1
# root / home, schreiboptimiert:
mdadm --create /dev/md2 -l1 -n2 --bitmap=internal /dev/sda2 --write-behind --write-mostly /dev/sdb2
mdadm --create /dev/md3 -l1 -n2 --bitmap=internal /dev/sda3 --write-behind --write-mostly /dev/sdb3

mkfs

ext3

Fuer /boot nehmen wir vorsichtshalber mal ext3, ansonsten ext4:

mke2fs -j /dev/md1

ext4

Fuer root und home ext4, da besserer Support fuer SSD/Alignment:

# 32 blocks * 4KB/block = 128KB
mke2fs -t ext4 -E stripe-width=32,resize=500G /dev/md2
mke2fs -t ext4 -E stripe-width=32,resize=2000G /dev/md3

mount

TODO: noatime,nodiratime oder relatime, /tmp auf tmpfs,

Tuning

TODO: io scheduler

Anmerkung

Ich war auf der Suche nach einer Seite, die Hinweise gibt, was zu beachten ist, wenn in einem Linux system eine SSD Platte zum Einsatz kommt. Aber diese Seite ist leider nur verständlich für Menschen die fdisk und Partitionen im Blut haben. Für mich als ambitionierter Laie und Computerfreund, sagen solche Sätze wenig:

Neuere fdisk-Versionen alignen automatisch, man sieht es daran, dass im Sektor-Modus ("u" und "c") der Partitionsstart der ersten Partition bei 2048 (== 1MB) angezeigt wird.

Was ist aligen? Was ist ein Sektor Modus?

Auch die weitere Erklärung zum fdisk Befehl ist sehr kryptisch:

Hinweis: Wenn man die erste Partition wie üblich auf Cyl 1, Head 1, Sect 1 anfängt (also bei Sektor 56), ist sie nur auf 4KB aligned, aber fuer /boot wenig relevant, da wenig Schreibzugriffe. Alternativ kann man, wenn man kein /boot möchte auch einfach einen Cylinder verschenken und auf Cyl 2 Head 0 Sect 1 (also bei Sektor 12544) anfangen, dann ist man 128KB-aligned und auf Cylinder-Grenze schon bei der ersten Partition.

Vielleicht kann bei Gelgenheit jemand etwas hilfreichere Hinweise hier einbauen? Danke.

SSD (last edited 2013-06-18 21:28:42 by p57A29D13)