Erwartete Leistung der e-SATA-Portmultiplikation?

10

Für eine bestimmte Lese- / Schreibauslastung erhalte ich 30 MiB / s von einem 4-Platten-Array unter Verwendung der Esata-Port-Multiplikation. Wenn ich genau dasselbe Array auf vier einzelne SATA-Verbindungen verschiebe, erhalte ich 90 MiB / s für dieselbe Arbeitslast. Ist dies die erwartete Auswirkung des Multiplikators auf die Leistung? Wenn nicht, wie kann ich das Problem zwischen Software, Controller oder Gehäuse eingrenzen?

Ich habe genau die gleichen Ergebnisse erzielt, selbst nachdem ich im Laufe der Jahre eine große Anzahl von Variablen ausprobiert habe:

  • Viele Linux-Versionen (RHEL5, Fedora 9, 11, 13, 16) und alle dazugehörigen Kernel.
  • Zwei Arten von Gehäusen (beide Low-End-Modelle mit 4 Festplatten für 100 US-Dollar), insgesamt vier Gehäuse.
  • Zwei Arten von SATA-Controller-Chipsätzen (Marvell 88SE91xx und Silicon Image 3132)
  • Vier SATA-Controller (ca. 30 - 60 US-Dollar für pci-x1-Schnittstellenkarten und eine PCI, alle FIS-basiertes Switching).
  • Drei SATA-Geschwindigkeiten (1,5-, 3,0- und 6,0-Gbit / s)
  • Vier Arten von Festplatten (Samsung Spinpoint F1 1 TB, WD Caviar Black 2 TB, Seagate Barracuda XT 3 TB).
  • Drei Computer (Athlon 3 GHz + 1 GB RAM, als ich das erste E-Sata-Array erstellt habe, dann Core 2 Duo + 4 GB, jetzt Core i5 750 + 8 GB).

Als ich vor all den Jahren mein erstes eSATA-Gehäuse herstellte, ging ich davon aus, dass die langsame Geschwindigkeit mit der Verwendung einer PCI-Karte (33 MHz), unreifen SATA-Treibern oder vielleicht der SATA-1,5-Gbit / s-Laufwerke mit 5400 U / min zusammenhängt. Aber jetzt mit einem x1 6Gbps-Controller, einem 3.0-Kernel und einem 6Gbps-HDDS mit 7200 U / min hat sich immer noch nichts geändert. Ich erhalte immer noch die gleichen 30 MiB / s für diese bestimmte Arbeitslast, bis ich sie auf einzelne SATA-Verbindungen verschiebe.

Ist dies eine grundlegende Einschränkung aller Portmultiplikationsimplementierungen?

Daniel Browning
quelle
3
Wow, das ist ein Testaufwand :)
Kubanczyk

Antworten:

10

Ja. Eine schlechte Leistung ist zu erwarten.

Das ATA-Protokoll sollte niemals Daten auf mehr als ein Laufwerk übertragen (es basierte tatsächlich auf dem ISA-Bus und erweiterte den Kommunikationskanal auf ein Speicherlaufwerk). Die IDE-Schnittstelle hat diese Einschränkung umgangen, indem sie Daten für "Master" - und "Slave" -Geräte übertragen hat. SATA hat jedoch keinen äquivalenten Mechanismus, da es nur für ein einziges Gerät pro Kabelverbindung vorgesehen war.

eSATA-Portmultiplikatoren fungieren als ATA-Ziel, das mehrere physische Medien auswählen kann (sodass jeweils nur ein physisches Gerät adressiert werden kann und die Umstellung auf ein anderes Gerät geringfügig verzögert ist). Sie können dies mit alten optischen Bibliotheken vergleichen.

Dies unterscheidet sich grundlegend von SAS, das mit integrierten Expandern und integriertem Initiator- / Ziel-Routing erstellt wurde (SAS 2.0+ funktioniert ähnlich wie ein Switched-Ethernet-Netzwerk). SAS kann auch mehrere Leitungen zu Amtsleitungen verbinden und so den gleichzeitigen Zugriff auf mehrere Geräte über mehrere Amtsleitungsleitungen ermöglichen.

Update:
Anscheinend gibt es neuere Controller, die FIS unterstützen, wodurch mehrere Laufwerke gleichzeitig "aktiv" sein können. Dies sollte eine Leistung ermöglichen, die viel höher ist als oben beschrieben. Anscheinend stellt derzeit nur ein Hersteller diese Chips her. Ich würde immer noch empfehlen, in Serverumgebungen von SATA weg zu starten. Wenn Sie SATA-Laufwerke verwenden müssen, sollten Sie weiterhin SAS-Controller und Expander verwenden.

Chris S.
quelle
Die Pluralform des Mediums ist Medien;)
Mark Henderson
es sei denn, es bezieht sich auf ein spirituelles Medium oder Gegenstände der Größe Medium.
Chris S
Touché mein Freund
Mark Henderson
3

Sind Sie sicher, dass Sie versucht haben, einen Controller- und Port-Multiplikator zu verwenden, der die FIS- Port-Multiplikation (Frame Information Structure) unterstützt ?

AFAIK nur Silicon Image Controller und Multiplikatoren (SiI3726) unterstützen dies, aber die Leistung ist ähnlich wie bei SAS mit gleicher Geschwindigkeit (80-90% Verbindungssättigung).

Hubert Kario
quelle
Ich wusste nicht, dass der Port-Multiplikator selbst auch FIS unterstützen müsste, aber im Nachhinein macht das durchaus Sinn. Möglicherweise unterstützt der in alle meine spottbilligen Gehäuse eingebettete Port-Multiplikator (jeweils 100 US-Dollar, z. B. Mediasonic HF2-SU3S2) nur befehlsbasiertes Umschalten. Gibt es eine Möglichkeit, programmgesteuert zu sagen (z. B. dmesg-Ausgabe)? Es wird in ihrem Handbuch oder auf ihrer Website nicht erwähnt, mit Ausnahme dieses Auszugs: "Bei der Verbindung über die eSATA-Schnittstelle muss die Computerhardware des Kunden über einen Port-Multiplikator mit FIS-basierter Umschaltung verfügen, um auf mehrere Festplatten gleichzeitig zugreifen zu können."
Daniel Browning
1
@ DanielBrowning: Es gab ein Flag, das die FIS-Unterstützung für den Controller zeigte, aber ich glaube nicht, dass es eines für den Multiplikator gab. Es könnte auch Interoperabilitätsprobleme geben (SiI weigert sich, mit JMicron zu arbeiten). Die Verwendung des Chipsatzes und das Lesen der Chipsatzspezifikationen wäre der einzige Weg, um sicher zu sein, denke ich ...
Hubert Kario
Ich habe den Lüfter vom HF2-SU3S2-Gehäuse abgezogen und die Bilder hier gepostet: thebrownings.name/images/2012/2012-01-esata - Es sieht aus wie ein JMicron JMB321-Portmultiplikator, und ich sehe nichts über FIS auf ihrer Website: jmicron.com/Product_JMB321.htm - was denkst du?
Daniel Browning
Dies könnte das Problem sein. Das SiI One kostet genauso viel wie Ihr gesamtes Gehäuse: amazon.com/5-Port-Port-SATA-II-Multiplier-SiI3726/dp/B004G9SKEE Ich würde es auf jeden Fall versuchen, bevor Sie ATAoE oder Full SCSI (entweder SAS oder iSCSI) verwenden )
Hubert Kario