Ist JBOD oder Striping besser für viele kleine Dateien?

Ist JBOD oder Striping besser für viele kleine Dateien?

Ich habe einen Server in Multi-Disk-Konfiguration mitLVM-auf-LUKSim JBOD-Modus. Aber ich stelle fest, htopdass die Kernelzeit in der CPU-Auslastung (un)gewöhnlich sehr hoch ist, und in iotopderjbd2/dm-5-8Unddmcrypt_write/2Prozesse beanspruchen häufig den Großteil der IO%

Ich habe nachgeprüft fiound festgestellt, dass die 4K zufälligen IOPS auch weit unter dem Wert für jedes Laufwerk liegen, ganz zu schweigen vom gesamten Satz von LVM-Festplatten. Ich dachte, wenn ich dem JBOD-Satz weitere Festplatten hinzufüge, kann LVM parallele Zugriffe auf einzelne Festplatten ermöglichen. Wenn ich also beispielsweise 4 SSD-Laufwerke mit jeweils 600k IOPS habe, sollte es in der Lage sein, ~4×600k IOPS zu erreichen, aber das scheint nicht der Fall zu sein

Ich versuche also, einige Anpassungen vorzunehmen, möglicherweise indem ich den Laufwerkssatz von Grund auf neu aufbaue. Da der Server viele kleine Dateien (durchschnittlich 40-80 KB) verarbeiten soll, denke ich, dass JBOD besser sein sollte, da selbst die standardmäßige RAID0-Streifengröße größer ist als die Dateien selbst. Außerdem würden im RAID0-Modus bei jedem Lesen/Schreiben einer kleinen Datei alle Streifen auf allen Laufwerken unnötigerweise aufgerufen.

Habe ich das richtig verstanden? Wie kann ich in diesem Fall die IOPS verbessern? Würde es helfen, zu Btrfs oder ZFS zu wechseln und die LVM-Schicht zu entfernen?

Antwort1

Update – Meine ursprüngliche Antwort ist immer noch hilfreich, aber beim erneuten Lesen sehe ich, dass Sie SSDs verwenden. Das lässt mich denken, dass Sie an der falschen Stelle suchen. Ich vermute, dass die Verschlüsselung/Entschlüsselung Ihrer Daten Sie verlangsamt. Vielleicht können Sie versuchen, dies in die SSD-Firmware zu verschieben.

Erste Antwort -

Ich gehe davon aus, dass RAID0 eine bessere Leistung bietet als JBOD, da die Wahrscheinlichkeit, dass sich die Dateien auf unterschiedlichen Datenträgern befinden, erheblich steigt und dadurch das Lesen beschleunigt wird.

(Nehmen wir einmal an, das Array bestünde aus 5 gleich großen Festplatten, die zu einem Fünftel voll und nicht fragmentiert wären. Bei RAUD0 wären die Daten auf 5 Festplatten verteilt, bei JBOD jedoch alle auf 1 Festplatte. Selbst wenn die Festplatte voll wäre (aber einigermaßen voll), wären alle neuesten Dateien auf 1 Festplatte. Vorgänge, die nur die neuesten Dateien betrachten, würden bei JBOD also wieder nur auf 1 Festplatte ausgeführt.)

Wenn sich Dateien im selben Sektor/Festplattenblock befinden, bietet JBOD gegenüber RAID0 immer noch keinen Vorteil. Die Vorteile von JBOD liegen in der Möglichkeit, Festplatten unterschiedlicher Größe zu verwenden, Daten teilweise wiederherzustellen und den Festplattenspeicher einfacher zu vergrößern.

verwandte Informationen