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?
la source
Réponses:
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.
la source
Ê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).
la source