Optimales RAID-Array auf Centos 6

Optimales RAID-Array auf Centos 6

Ich habe 4 x 2 TB-Festplatten und möchte ein leistungsstarkes RAID5-Array erstellen (der Server ist ein HP N40L-Mikroserver mit 8 GB RAM, der von einer 64 GB SSHD bootet). Das Betriebssystem ist Centos 6.3, x86_64.

Ich habe das RAID-Array mit diesem Befehl erstellt:

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Wenn ich dann mache:

mdadm --examine /dev/sda1

… Mir wurde gesagt, meine „Chunk-Größe“ betrage 512 KB (anscheinend ist dies der neue Standardwert von mdadm).

Nun möchte ich das Array mit XFS formatieren. Mir wurde gesagt (zumindesthttp://www.mythtv.org/wiki/Optimizing_Performance#Optimizing_XFS_on_RAID_Arrays), dass „sunit“ meiner Chunk-Größe entspricht, ausgedrückt als Anzahl von 512-Byte-Blöcken – in meinem Fall also 512 KB = 1024 512-Byte-Blöcke. Ähnlich ist „swidth“ die Anzahl der effektiven Festplatten in meinem Array mal sunit. In meinem Fall habe ich 4 Festplatten in RAID 5, also 3 effektive Festplatten und 3 x 1024 = 3072. Daher formatierte ich mein neues Array mit dem folgenden Befehl:

mkfs.xfs -b size=4096 -d sunit=1024,swidth=3072 /dev/md0

Ich habe jetzt zwei Fragen. Der obige Befehl hat mir diesen Fehler angezeigt:

mkfs.xfs -b size=4096 -d sunit=1024,swidth=3072 /dev/md0
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB [...]

... und ich möchte wissen, ob das bedeutet, dass ich etwas falsch gemacht habe oder ob ich am Ende irgendwie ein nicht optimales Dateisystem habe oder ob ich den Fehler aus irgendeinem Grund einfach ignorieren kann.

Die zweite Frage ist einfach, ob ich die XFS-Parameter richtig berechnet habe oder ob ich auf dem Holzweg bin (falls es hilft: Das Array speichert zumeist große Musik- und Videodateien). Habe ich beispielsweise „Chunk Size“ und „Stripe Size“ richtig verstanden? Ist die Blockgröße von 4096 in meinem mkfs-Befehl optimal? Und so weiter.

Ich würde mich über jeden Ratschlag hierzu freuen.

Antwort1

XFS unterstützt keine Stripe-Einheiten größer als 256 KB. Erstellen Sie Ihr RAID-Array also einfach mit einem 256 KB-Stripe neu. Dies ist der --chunkParameter von mdadm.

Eine Blockgröße von 4 KB ist für Ihren Verwendungszweck möglicherweise zu klein. Wenn Sie viele kleine Dateien speichern, ist 4 KB wahrscheinlich idealer. XFS kann bis zu 64 KB große Blöcke verarbeiten. Das Lesen und Schreiben zusammenhängender Blöcke ist schneller, aber Sie verlieren etwas Platz durch den Overhead größerer Blöcke.

Sie können nur in Blöcken zuweisen. Wählen Sie Ihre Blockgröße also basierend auf der Größe der Dateien aus, die Sie voraussichtlich verarbeiten werden. Bei einer Blockgröße von 4 KB benötigt eine Datei mit 1 KB 4 KB Speicherplatz (1 Block) und eine Datei mit 65 KB 68 KB Speicherplatz (17 Blöcke). Bei einer Blockgröße von 64 KB benötigt eine Datei mit 1 KB 64 KB (einen Block) und eine Datei mit 65 KB 128 KB (2 Blöcke).

Wenn Sie mit kleinen Dateien arbeiten, verschwenden Sie mit einer großen Blockgröße viel Platz. Wenn Sie mit Videodateien von Hunderten Gigabyte arbeiten, sind Ihnen 64 KB hier oder da wahrscheinlich egal, und der Leistungsvorteil der größeren Blockgröße macht einen größeren Unterschied.

Eine weitere Sache, die Sie verstehen müssen, sind Zuordnungsgruppen. Jede AG erhält einen separaten IO-Thread. Der XFS-Allocator versucht, jedes Verzeichnis in eine andere AG zu setzen. Eine grundlegende Theorie ist eine AG pro physischem Gerät.

Lesen Sie die XFS-Dokumentation und erfahren Sie, wie das Dateisystem aufgebaut ist:

Machen Sie einige fundierte Vermutungen und entscheiden Sie, welche Faktoren für Sie am wichtigsten sind. Besorgen Sie sich einige Dateien, die Ihre Produktionsdaten darstellen (oder eine Kopie der tatsächlichen Produktionsdaten) und führen Sie einige Benchmarks für die für Sie wichtigen Daten durch. Wählen Sie eine Metrik aus, z. B. wie schnell Ihre Video- oder Audiosoftware Dateien basierend auf unterschiedlichen Blockgrößen liest und schreibt. Wie wirkt sich der gleichzeitige Zugriff mehrerer Audio-/Videotechniker auf den Durchsatz mit unterschiedlichen AGs aus?

XFS ist für riesige Dateisysteme mit Hunderten von Terabyte konzipiert, die auf SANs leben, die mehr wert sind als ein Haus, und riesige unkomprimierte Mediendateien speichern, wie sie professionelle Filmstudios benötigen. Wenn Sie es verwenden, um Ihre raubkopierte Musik und Fernsehsendungen auf einer billigen Linux-Box zu speichern, verwenden Sie einfach ext4. Es ist viel einfacher, Fehler zu beheben, falls jemals Probleme auftreten.

verwandte Informationen