SSD + Festplatte: Schnell und ausfallsicher

Verbindet man SSD und Festplatte zu einem RAID 1, steigert das sowohl die Ausfallsicherheit als auch die Leseperformance. Der RAID-Verbund muss dazu aber speziell konfiguriert werden.

In Pocket speichern vorlesen Druckansicht 8 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Thorsten Leemhuis

Unter Linux können Sie Festplatten und SSDs zu einem RAID 1 (Mirroring) verbinden, bei dem Sie von der hohen Leseperformance der SSD profitieren und die Ausfallsicherheit durch doppelte Speicherung der Daten auf beiden Medien steigern. Kommt es auf hohe Verfügbarkeit an, eignet sich solch ein SSD-HDD-RAID (manchmal auch Hybrid RAID genannt) daher besser als SSD-Caching-Lösungen wie Bcache oder Dm-Cache. Letztere steigern zwar neben der Lese- auch die Schreibgeschwindigkeit, erhöhen durch die weitere Abstraktionsschicht aber das Ausfallrisiko.

Damit ein mit Mdadm erstelltes Linux-Software-RAID von der Leseperformance einer SSD profitiert, muss der Linux-Kernel die an den RAID-1-Verbund gestellten Leseanforderungen größtenteils mit der SSD bedienen. Solch ein RAID legen Sie mit einem Befehl wie dem folgenden an, der die erste Partition der SSD /dev/sda mit der ersten Partition der Festplatte /dev/sdb zu einem RAID 1 verbindet:

mdadm --create -n 2 --level=1 /dev/md0 \
/dev/sda1 --write-mostly /dev/sdb1

Mit der Option --write-mostly versucht der Linux-Kernel vorwiegend von den Datenträgern zu lesen, die Sie vor diesem Parameter angeben – in diesem Beispiel also /dev/sda1. Wie bei einem RAID 1 üblich bestimmt die Größe des kleinsten Datenträgers im Verbund dessen Kapazität. Idealerweise verbinden Sie daher einzelne Partitionen von SSD und HDD zu einem RAID, denn dann können Sie den restlichen Festplattenplatz für andere Daten nutzen.

Bei unseren Tests erzielte ein SSD-HDD-RAID beim sequenziellen Lesen von Daten Werte auf dem Niveau der SSD; damit war der RAID-Verbund deutlich flotter als ein Bcache- oder Dm-Cache-Verbund. Beim verstreuten Lesen von 4 KByte kleinen Blöcken konnte das RAID allerdings nicht mit der SSD mithalten und lieferte nur eine halb so große Performance. Bcache war bei diesem Test deutlich schneller, wenn die Daten bereits auf der SSD lagen.

Beim Schreiben lagen die Messergebnisse wie erwartet auf dem Niveau der Festplatte – das ist bei dieser Konstellation normal, da Schreibaufforderungen erst als abgeschlossen gelten, wenn SSD und Festplatte die Daten gespeichert haben. Laut einigen Tipps soll die Schreibgeschwindigkeit eines SSD-HDD-RAIDs steigen, wenn man dem Mdadm-Aufruf noch die Parameter

--write-behind=16383 --bitmap=internal

mitgibt. Dadurch nutzt der Software-RAID-Code für Write-Mostly-Datenträger einen Write-Back-Cache, dessen Verwaltungsinformationen bei den Metadaten des Software-RAIDs unterkommen. Auf die dortigen Schreibzugriffe wird aber gewartet, daher gibt es letztlich keinen nennenswerten Geschwindigkeitszuwachs. Der ließe sich durch Speichern der Metadaten in einer Datei auf einer eigenen SSD-Partition erreichen – das gelingt allerdings nur mit manchen Dateisystemen (darunter jenen der Ext-Familie) und soll Anwenderberichten zufolge nicht zuverlässig arbeiten. (thl)

Dieser Text ist ein überarbeiteter Auszug des Artikels Schnellschalter: SSDs unter Linux als Festplatten-Cache einsetzen aus c't 19/13, S. 164 (derzeit am Kiosk). (thl)