Performances attendues de la multiplication des ports e-SATA?

10

Pour une certaine charge de travail en lecture / écriture, j'obtiens 30 Mio / s à partir d'une baie de 4 disques en utilisant la multiplication de port esata. Lorsque je déplace exactement la même baie vers quatre connexions SATA individuelles, j'obtiens 90 Mio / s pour la même charge de travail. Est-ce là l'impact attendu sur les performances du multiplicateur? Sinon, comment puis-je réduire le problème entre le logiciel, le contrôleur ou le boîtier?

J'ai obtenu exactement les mêmes résultats même après avoir essayé un grand nombre de variables au fil des ans:

  • De nombreuses versions Linux (RHEL5, Fedora 9, 11, 13, 16) et tous les noyaux que cela implique.
  • Deux types de boîtiers (les deux modèles bas de gamme à 4 disques de 100 $), quatre boîtiers au total.
  • Deux types de chipsets de contrôleur SATA (Marvell 88SE91xx et Silicon Image 3132)
  • Quatre contrôleurs SATA (environ 30 $ - 60 $ cartes d'interface pci-x1 et un PCI, tous basés sur la commutation FIS).
  • Trois vitesses SATA (1,5, 3,0 et 6,0 Gbit / s)
  • Quatre types de disques durs (Samsung Spinpoint F1 1 To, WD Caviar Black 2 To, Seagate Barracuda XT 3 To).
  • Trois ordinateurs (Athlon 3 GHz + 1 Go de RAM lorsque j'ai créé la première baie e-sata, puis Core 2 Duo + 4 Go, maintenant un Core i5 750 + 8 Go).

Lorsque j'ai créé mon premier boîtier eSATA il y a toutes ces années, j'ai supposé que la vitesse lente était liée à l'utilisation d'une carte PCI (33 MHz), de pilotes SATA immatures ou peut-être des disques SATA-1,5 Gbit / s 5400 tr / min. Mais maintenant, avec un contrôleur x1 6Gbps, un noyau 3.0 et un HDDS 6Gbps 7200rpm, rien n'a changé. J'obtiens toujours les mêmes 30 Mio / s pour cette charge de travail particulière jusqu'à ce que je le déplace vers des connexions SATA individuelles.

Est-ce une limitation fondamentale de toutes les implémentations de multiplication de ports?

Daniel Browning
la source
3
Wow, c'est un effort de test :)
kubanczyk

Réponses:

10

Oui. Des performances médiocres sont à prévoir.

Le protocole ATA n'a jamais été destiné à transporter des données vers plus d'un lecteur (il était en fait basé sur le bus ISA, étendant le canal de communication à un lecteur de stockage). L'interface IDE a triché cette limitation en transportant des données pour les appareils "maître" et "esclave". SATA n'a cependant pas de mécanisme équivalent, car il était destiné à un seul appareil par connexion par câble.

Les multiplicateurs de port eSATA fonctionnent comme une cible ATA qui peut sélectionner plusieurs supports physiques (donc un seul périphérique physique peut être adressé à la fois, et il y a une légère latence lors du passage à un autre périphérique). Vous pouvez comparer cela aux anciennes bibliothèques optiques.

Ceci est radicalement différent de SAS qui a été construit avec des extenseurs et un routage initiateur / cible intégré (SAS 2.0+ fonctionne un peu comme un réseau Ethernet commuté). SAS est également capable de lier plusieurs lignes dans des lignes réseau, permettant un accès simultané à plusieurs appareils sur les lignes réseau multiples.

Mise à jour:
Apparemment, il existe de nouveaux contrôleurs qui prennent en charge FIS, ce qui permet à plusieurs disques d'être "actifs" en même temps. Cela devrait permettre des performances beaucoup plus élevées que celles décrites ci-dessus. Apparemment, à l'heure actuelle, un seul fabricant fabrique ces puces. Je recommanderais toujours fortement de partir de SATA dans les environnements de serveur. Si vous devez utiliser des disques SATA, envisagez d'utiliser toujours des contrôleurs SAS et des expandeurs.

Chris S
la source
La forme plurielle du médium est le média;)
Mark Henderson
à moins de faire référence à un médium spirituel ou à des objets de taille moyenne.
Chris S
Touché mon ami
Mark Henderson
3

Êtes-vous sûr d'avoir essayé le contrôleur et le multiplicateur de ports prenant en charge la multiplication de ports FIS (Frame Information Structure) ?

Seuls les contrôleurs et multiplicateurs Silicon Image AFAIK (SiI3726) le prennent en charge, mais les performances sont similaires à celles de SAS de même vitesse (80-90% de saturation de liaison).

Hubert Kario
la source
Je ne savais pas que le multiplicateur de ports lui-même devrait également prendre en charge FIS, mais rétrospectivement, cela est parfaitement logique. Peut-être que le multiplicateur de ports intégré dans tous mes boîtiers bon marché (100 $ / pièce, par exemple Mediasonic HF2-SU3S2) ne prend en charge que la commutation basée sur les commandes. Existe-t-il un moyen de le dire par programme (par exemple, sortie dmesg)? Ce n'est pas mentionné dans leur manuel ou site Web, sauf pour cet extrait, "Lors de la connexion via l'interface eSATA, le matériel informatique du client doit avoir un multiplicateur de ports avec une commutation basée sur FIS afin d'accéder simultanément à plusieurs disques durs."
Daniel Browning
1
@DanielBrowning: il y avait un drapeau qui montrait le support FIS pour le contrôleur, mais je ne pense pas qu'il y en ait un pour le multiplicateur. Il pourrait également y avoir des problèmes d'interopérabilité (SiI refusant de travailler avec JMicron). Utiliser le chipset et lire les spécifications du chipset serait le seul moyen d'être sûr, je pense ...
Hubert Kario
J'ai retiré le ventilateur du boîtier HF2-SU3S2 et publié les photos ici: thebrownings.name/images/2012/2012-01-01-esata - Il ressemble à un multiplicateur de port JMicron JMB321, et je ne vois rien à propos de FIS sur leur site internet: jmicron.com/Product_JMB321.htm - qu'en pensez-vous?
Daniel Browning
Cela pourrait être le problème. Le SiI coûte autant que votre boîtier entier: amazon.com/5-Port-Port-SATA-II-Multiplier-SiI3726/dp/B004G9SKEE J'essaierais certainement ceci avant de passer ATAoE ou SCSI complet (SAS ou iSCSI )
Hubert Kario