Wie richte ich SSD-RAID- und TRIM-Unterstützung ein?

9

Ich möchte einen neuen Server einrichten. Ich kann nur 240-Gbit-MLC-SSDs der Intel 520-Serie oder Standard-Seagate-Festplatten mit 7200 U / min verwenden.
Dies sind die nicht verhandelbaren Optionen.

Natürlich wird hier MySQL ausgeführt, wobei die Hauptaufgabe ein MySQL-Server ist. Als größter Leistungsengpass bei Festplatten-E / A würde ich lieber SSDs verwenden.

Ich muss fast 1 TB Speicherplatz haben. Jetzt bietet RAID5 nicht die beste Leistung und es wird gemunkelt, dass es nicht die beste Leistung für SSDs ist. Daher schaue ich mir ein Raid 10 (1 + 0) -Setup an, das mir 720 GB (240 GB * 3) geben würde.

Ich muss wissen, wie ich dies mit Ubuntu 12.04.01 LTS mithilfe von Software-RAID einrichten kann, und sicherstellen, dass die TRIM-Unterstützung (Discard, glaube ich, unter Linux aufgerufen) für die RAID-Konfiguration aktiviert ist.

Hat jemand das nicht erfolgreich? Alle Anleitungen und Dinge, auf die Sie achten sollten, und im Grunde genommen, welche Tools Sie verwenden sollten, wären eine große Hilfe.

Idealerweise muss ich auch in der Lage sein, das SSD-RAID-Array zu starten.

Kann mich jemand in die richtige Richtung weisen?

Vielen Dank.

Ross
quelle
1
Vor kurzem gab es große Probleme bei der Verwendung von TRIM auf SSD in RAID. Der Fehler hat TRIM dazu gebracht, aktive Dateien zufällig auf Null zu setzen. Es sollen nur Samsung-SSDs betroffen sein, AFAIK jedoch, weil nur Samsung-SSDs getestet wurden. Aus diesem Grund empfehle ich Ihnen dringend, über die Verwendung von BTRFS RAID10 anstelle von mdadmoder LVM nachzudenken .
Barafu Albino

Antworten:

4

Die Antwort lautet "es kommt darauf an" und Sie sollten wirklich verstehen, was TRIM tut, bevor Sie eine solch unflexible Position behaupten.

http://www.spinics.net/lists/raid/msg39641.html

MD RAID benötigt spezielle Unterstützung, um DISCARD-Anforderungen weiterzuleiten, und dies wurde erst in Version 3.6 vorgeschlagen. Daher wird die Unterstützung nicht im genauen Kernel enthalten sein. Ich habe nur geschaut, es ist nicht da.

https://lkml.org/lkml/2012/3/11/261

SSDs sind nett und alle, aber sie sind am kostengünstigsten, wenn sie mit einem Magnetspeicher mit hoher Drehzahl kombiniert werden. Verwenden Sie beispielsweise ein RAID 1-SSD-Array, um das Dateisystemjournal aufzunehmen, während das Dateisystem von einem RAID 10 unterstützt wird, das aus 15-KB-Festplatten besteht.

http://insights.oetiker.ch/linux/external-journal-on-ssd/

Je höher die Drehzahl, desto kürzer ist Ihre schlechteste Suchzeit. Zufällige E / A-Belastungen profitieren am meisten von Backing-Speichern mit hoher Drehzahl. SQL kann schreibintensiv sein, daher ist jede Paritätsberechnung eine schlechte Idee, z. B. RAID 4 und 5.

Die Organisation des RAID und des Dateisystems ist ebenso wichtig wie der Sicherungsspeicher.

Sie können Ihre Festplatten jederzeit manuell TRIMMEN. Der wöchentliche Start ist in Ordnung. Sie sollten die Auswirkungen auf die Leistung beobachten, bevor Sie sie häufiger ausführen. Oh, sie brennen aus, daher ist es eine gute Idee, zu schätzen, wie viele Schreib- / Löschzyklen Ihre SSDs haben, und das RAID 1 Bein für Bein zu warten.

https://wiki.archlinux.org/index.php/Solid_State_Drives#Apply_TRIM_via_cron

ppetraki
quelle
4

Ich weiß, dass ich in letzter Zeit ein Johnny bin, der diese Frage beantwortet, aber ich würde gerne sehen, ob ich für jeden, der etwas sucht, etwas Licht ins Dunkel bringen kann.

Erstens ist die Antwort von @ ppetraki ausgezeichnet.

Die kurze Antwort auf "Kann ich SSDs RAIDEN und von ihnen booten" lautet "Ja!". Hier finden Sie Anweisungen für den 14.04. Die Anweisungen für die RAID-Konfiguration unter 12.04.x ​​sind identisch, aber dieses Tutorial mit 9.10 enthält Bilder. Im Folgenden sind einige wichtige Fallstricke und Details aufgeführt, die ich durch persönliche Erfahrung auf die harte Tour herausfinden musste:

Ich verwende Ubuntu 12.04.5 mit dem 3.8-Kernel auf einer MD RAID0-Konfiguration und dem SSD-freundlichen Btrfs-Dateisystem. Ich laufe fstrim als wöchentlicher Cron.

Meine zusätzlichen Btrfs-Mount-Optionen von fstab:

defaults,ssd,ssd_spread,space_cache,compress=no,noatime

Der 3.8-Kernel ist erforderlich, wenn Sie ihn compress=noals Btrfs-Mount-Option verwenden möchten, und möglicherweise auch für die Verwendung des fstrimmanuellen Trimmbefehls, der für das geplante Trimmen verwendet wird.

Sie müssen Partitionen auf den SSDs auch manuell ausrichten (bei jedem Setup mit mehreren Partitionen, ob RAID oder nicht), bevor Sie das Installationsprogramm starten, da je nach Seitengröße Ihrer SSD nur die erste Partition ordnungsgemäß ausgerichtet wird (es hat eine Weile gedauert) um es zu fangen) und dies kann die Lebensdauer des Laufwerks erheblich beeinträchtigen. Sie können dies über eine Eingabeaufforderung im Installationsprogramm oder über eine Live-USB / -Disk tun, bevor Sie die Installation versuchen. Vorsichtsmaßnahme: Rechnen Sie selbst. Fdisk wird über die Ausrichtung lügen.

Lesen Sie weiter: Ich denke, Btrfs kann sogar eigene Raid-Arrays erstellen .

In Bezug auf TRIM:

Dank Überprovisionierung ist dies wohl unnötig

14.04 ist die erste Version, die die TRIM-Unterstützung sofort aktiviert. Die Aktivierung ist jedoch bei früheren Distributionen trivial, sofern Sie Kernel 2.6.33+ verwenden.

Abhängig von Ihrem gewählten Dateisystem können Sie das Trimmen / Verwerfen aktivieren, indem Sie Ihre fstab bearbeiten und die entsprechende Mount-Option festlegen. Der Unterschied zwischen dem Ausführen und dem Ausführen über Cron besteht darin, dass der erste Vorgang im laufenden Betrieb zugeschnitten / verworfen wird und der zweite Vorgang in einem Klumpen nach einem Zeitplan ausgeführt wird. Ich benutze die zweite.

Ist das wichtig? Angeblich ist das Online-Verwerfen (mit der Mount-Option) nicht wunderbar implementiert und langsam, so dass es "nicht empfohlen" wird. Ich kann Ihnen sagen, dass meine "HDD" -Lichter (hehe) 10 bis 20 Minuten lang verrückt werden, wenn der wöchentliche Cron-Job ausgeführt wird, aber die Reaktionsfähigkeit des Betriebssystems fast völlig unberührt bleibt.

Booten vom Array

Obwohl ich dies nicht in einem schnellen Scan der Ubuntu 14.04-Anweisungen sehe, musste ich eine zusätzliche primäre Partition erstellen, die NICHT Teil meiner RAID-Arrays ist. Datenträger 0 verfügt über eine 500-MB-Primärpartition von ext3fs. Während der Installation habe ich dem Installationsprogramm mitgeteilt, dass dies unter "/ boot" gemountet werden soll, und ich habe das Boot-Flag gesetzt. Der Bootloader wird dann hier installiert, damit das Betriebssystem das RAID starten und dann mounten kann. Der verbleibende Speicherplatz für Datenträger 0 wird auf zwei Partitionen aufgeteilt, die später für die MD-Arrays verwendet werden, die zu "/" und "/ swap" werden. Datenträger 1 hat dieselbe, aber keine Startpartition. Außerdem habe ich den Swap nur für den Fall erstellt, dass ich ihn irgendwann brauche und btrfs keine Swap-Dateien unterstützt. Diese Partition wird niemals gemountet. Nach der Installation habe ich es in meiner fstab auskommentiert.

Verzeihen Sie alle Änderungen und versuchen Sie nur, alles herauszubekommen.

Darth Cookie
quelle
Vielen Dank für diese aufschlussreiche Information. Ich werde dies bei meiner nächsten Systembereitstellung ausprobieren
Steed