Große RAID-Stripe-Größe verschwendet Platz mit kleinen Dateien?


7

Ich plane einen Maildir-Speicher mit RAID 0 + 1 (oder RAID 10, RAID 5) auf dem XFS-Dateisystem, und XFS wird mit der von RAID verwendeten Stripe-Einheit und Breite erstellt.

Ich bestimme die Größe des RAID-Strips noch nicht, aber der Standardwert in meinem RAID-System beträgt 128 KB. Wenn ich für den Maildir-Speicher eine Streifengröße von 128 KB verwende, wird dann Platz für eine Datei verschwendet, die kleiner als die Streifengröße ist?

Ich denke, die durchschnittliche Größe von Dateien in Maildir beträgt 10 KB. Welche Streifengröße ist also die beste für diese Umgebung?

Antworten:


13

Nein, Sie verlieren (oder gewinnen) keinen Speicherplatz durch Anpassen der RAID-Stripe-Größe. Bei der Streifengröße geht es darum, Ihrem RAID-System mitzuteilen, wie Daten für E / A-Vorgänge aufgeteilt werden sollen.

Wie Sie die Stripe-Größe betrachten, hängt vom RAID-Level ab.

Bei paritätsberechnenden RAIDs (4,5,6) verursacht ein Schreibvorgang, der kleiner als eine Stripe-Größe ist, einen Lese-, Änderungs- und Schreibzyklus, da die Parität immer für einen gesamten Stripe berechnet wird. Wenn Sie also einen 10.000-Schreibzugriff auf einen 128.000-Streifen haben, führt dies dazu, dass der RAID 128.000 Daten liest, relevante Sektoren im Speicher ändert, die Parität neu berechnet und den gesamten Streifen schreibt. Schlechte Sache (TM).

Bei RAID ohne Parität (0, 1, Mehrfachspiegel 1) bestimmt der Streifen (und die Anzahl der Festplatten), wie viel Arbeit pro E / A (statistisch) von einer einzelnen Spindel (Lügen, verdammte Lügen und Statistiken) erledigt wird. Wenn Sie über große sequentielle E / A verfügen, ist ein großer Streifen gut, da jede Festplatte in einem RAID einen schönen, sequentiellen Datenblock zum Lesen / Schreiben erhält. Wenn Sie viel auf kleine Dateien zugreifen, ist ein kleinerer Streifen besser, da es wahrscheinlicher ist, dass zwei unabhängige E / A auf zwei verschiedene Spindeln gehen und parallel behandelt werden.

Soviel zur Theorie, in der Praxis besteht der beste Ansatz darin, verschiedene Größen auszuprobieren und zu testen. Wenn Sie eine Remote-Möglichkeit zulassen, dass Ihr System festplattengebunden ist, verzichten Sie auf die Idee von RAID5 / 6 für die Maildir-Dateisysteme. Die Strafe für das Schreiben, Ändern und Schreiben von Dateien in kleinen Dateien beeinträchtigt Ihre Leistung.

Eine weitere Sache: Lesen Sie diesen Thread zum Optimieren von XFS auf RAID für hohe E / A-Werte (hohe Anzahl von 1M-IOPs in der Nachbarschaft).


2
Verlieren. Nicht locker. Bitte.
Michael B

3
@Kyle - Sie können die grammatikalischen und / oder sachlichen Fehler aus jeder Antwort auf der Website heraus bearbeiten.
EEAA

7

Ich wäre versucht, mich an die Standard-XFS-Blockgröße von 4 KB zu halten, da sie eine verzögerte Zuweisung verwendet. Sie werden also einige sehr reale Effizienzvorteile sehen, wenn Sie eine kleinere Größe verwenden. Ich würde mir auf keinen Fall Sorgen machen, wenn ich versuchen würde, die Größe der Maildir-Datei an Blöcke anzupassen. Sie werden verrückt, lassen Sie den FS einfach seinen Job machen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.