Warum schreibt open-iscsi zweimal langsamer als Samba über 10G-Ethernet?

9

Auf meinem lokalen Dateiserver habe ich raid-6 auf 7x HDD-Laufwerken.

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync

Der lokale Geschwindigkeitstest gibt mir eine Schreibgeschwindigkeit von 349 MB / s.

Remote-Schreibvorgänge von SSD nach Samba (> 2 Gbit / s Lesegeschwindigkeit) geben mir 259 MB / s Schreibvorgänge. Durch Remote-Schreibvorgänge auf das iSCSI-Laufwerk (unter Win10 iSCSI-Initiator) werden jedoch nur 151 MBit / s geschrieben.

raid6 config - 128K-Blockgröße, stripe_cache_size = 8191. Die Bitmap mit Schreibabsicht befindet sich auf einer SSD (Samsung 860 PRO, 4096K-Bitmap-Block).

Array mit Optionen montiert: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

open-iscsi setup: Ziel basiert auf einer 4-TB-Datei.

Gibt es Hinweise, warum iSCSI beim Schreiben langsamer ist als Samba? Gibt es Hinweise zur Verbesserung der Schreibgeschwindigkeit von iSCSI?

Ich gehe davon aus, dass dies etwas mit dem Wunsch von open-iscsi zu tun hat, Schreibvorgänge nach jeder Operation auf die Festplatte zu leeren, was die Schreibverstärkung bei raid6 aufgrund übermäßiger Paritätsumschreibungen erhöht. Aber ich bin nicht sicher, wie ich das beheben soll. Beschleunigen Sie es wichtiger als die Sicherheit der aktuell geschriebenen Daten bei Stromausfall.

Als Randnotiz hatte das ältere ietd iSCSI-Ziel die Möglichkeit, den Rückschreibemodus (unter Verwendung IOMode=wb) zu aktivieren, und die anhaltende Schreibgeschwindigkeit war viel schneller. Leider scheint es derzeit nicht gewartet zu werden.

BarsMonster
quelle
2
Wie ist das Netzwerk? 10GigE? Was ist die Server-Betriebssystemversion, Kernel-Version? Was ist das iscsi-Ziel und die iscsi-Version? ietd, scst oder lio? Open-iscsi bietet nur einen Initiator, kein Ziel ... Womit messen Sie die Schreibgeschwindigkeit? Welches Dateisystem wird auf dem Ziel verwendet?
Wazoox
In Windows 10 wurde QoS von der Netzwerkkarte entfernt?
yagmoth555
2
In diesem Fall ist es auch ratsam, die Konfiguration Ihres iSCSI-Ziels und aller angepassten Netzwerk-Tunables zu veröffentlichen. Sie können auch einen Test mit einem open-iscsi-Initiator auf einem Linux-Client mit einem modernen Kernel in Betracht ziehen, um einen klaren Vergleich zwischen Initiatoren mit demselben Ziel zu erhalten, da der vorhandene Test vom Windows-Initiator möglicherweise zu stark eingeschränkt wird. Mehr Daten == mehr besser.
Spooler
1
Was die eigentliche Frage betrifft: iSCSI und Samba sind sehr unterschiedlich, und Sie verwenden eine VFS-Caching-Schicht, wenn Sie Samba verwenden, das in einem Bare-Block-Gerät nicht vorhanden ist. Ich verstehe, dass Sie von den Leistungsunterschieden überrascht sind, aber interessiert Sie dieser Vergleich mehr oder dass iSCSI Ihr Netzwerk überlastet? Wenn iSCSI Ihr Hauptanliegen ist und die Samba-Leistung ein kleines Detail für den Kontext ist, können Sie die Frage bearbeiten, um dies klarer zu machen (und wahrscheinlich bessere Antworten zu erhalten).
Spooler
Sie haben für den Test Windows 10 verwendet, aber ich sehe nirgendwo Details des verwendeten Computers. (und warum ein Windows-Client-Betriebssystem für einen solchen Test verwenden?)
yagmoth555

Antworten:

6

Zunächst ist das RAID-6 aufgrund der Doppelparitätsberechnung das Problem. Zweitens können Sie das iSCSI-Ziel in MS iSCSI Initiator zweimal verbinden, RR oder Least Queue Depth aktivieren (Win10 unterstützt leider kein Multipathing, sodass Sie es stattdessen mit Windows Server testen können).

Tatsächlich muss der Zugriff auf Blockebene schneller sein als der Zugriff auf Dateiebene. Welche Art von Benchmarking-Tool verwenden Sie von der Windows-Site? Ich würde empfehlen, diskspd oder FIO zu verwenden. Darüber hinaus können Sie Starwind als viel schnelleres iSCSI-Ziel verwenden.

https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V

Stuka
quelle
2
Raid 6 ist in Hardware - nicht in Software. Es ist seit etwa 20 Jahren kein Leistungsproblem mehr.
Nils
RAID-6 ist das Problem? Paritätsberechnungen erfolgen unabhängig vom Protokoll.
Daniel
2
RAID6 ist nicht aufgrund von Paritätsberechnungen langsamer, sondern aufgrund eines sogenannten "Schreiblochs", das aus einer RAID-Natur mit Lese-, Änderungs- und Schreibparität resultiert.
BaronSamedi1958
3
"Raid 6 ist in Hardware - nicht in Software. Es ist seit ungefähr 20 Jahren kein Leistungsproblem mehr. - Nils 21. März um 10:05" -> Dies ist einfach nicht wahr :( Lesen Sie dies -> theithollow.com/
2012/03/21
1

iSCSI sollte auf Blockebene verwendet werden. Ihre Setup-Beschreibung klingt so, als würden Sie ein Dateisystem verwenden, eine Datei darauf platzieren und diese Datei dann als iSCSI-Blockebene ausführen.

Dies ist alles andere als ideal und definitiv kein Setup für den Vergleich von Geschwindigkeiten. Versuchen Sie, lvm über raid6 zu verwenden, um den Speicherplatz zu segmentieren und auf der Blockebene für iSCSI zu bleiben, oder verwenden Sie raid6 direkt als iSCSI-Gerät.

In Ihrem aktuellen Setup werden Daten über das Netzwerk übertragen und treffen auf eine Datei im Dateisystem, die (höchstwahrscheinlich) nicht für diese Art von Arbeitslast optimiert ist und auch für andere Prozesse freigegeben wird. Es ist möglich, ein solches Setup mit iSCSI durchzuführen, sollte jedoch als nicht optimierte Fallback-Lösung betrachtet werden.

Hargut
quelle
1

Bitte beachten Sie, dass dies ddein sehr einfacher Benchmark ist und SEHR anfällig für Verzerrungen ist. Zum Beispiel ddschreiben Sie Nullen - wenn etwas einen Sonderfall für Daten voller Nullen hat (z. B. weil es eine Komprimierung durchführen kann), werden Sie eine fantastische Leistung sehen, aber wechseln Sie zum Schreiben von "echten Daten" ungleich Null, und plötzlich kann diese Leistung verschwinden. ..

Um Ihre Frage zu beantworten (wie bei jedem Benchmarking), müssen Sie die Teile wirklich isolieren, um das Bit zu identifizieren, das das Problem einführt. Ist beispielsweise das direkte Schreiben in das Windows-Dateisystem (und nicht über iSCSI) auch extrem schnell? Wenn Sie dieselbe Hardwarekonfiguration verwenden und Linux anstelle von Windows ausführen, ist dies genauso schnell oder verlangsamt es sich? Was passiert, wenn Sie ein Benchmark-Tool wie fio verwenden ?

Leider gibt es zu viele Möglichkeiten, um eine solche Frage gut beantworten zu können ...

Anon
quelle