Pregunta ¿Rendimiento esperado de la multiplicación de puertos e-SATA?


Para una cierta carga de trabajo de lectura / escritura, obtengo 30 MiB / s de una matriz de 4 discos utilizando la multiplicación de puertos esata. Cuando muevo exactamente la misma matriz a cuatro conexiones sata individuales, obtengo 90 MiB / s para la misma carga de trabajo. ¿Es este el impacto de rendimiento esperado del multiplicador? Si no es así, ¿cómo puedo reducir el problema entre el software, el controlador o el gabinete?

He obtenido exactamente los mismos resultados incluso después de probar una gran cantidad de variables a lo largo de los años:

  • Muchas versiones de Linux (RHEL5, Fedora 9, 11, 13, 16) y todos los núcleos que conlleva.
  • Dos tipos de envolventes (ambos modelos de 4 discos de gama baja de $ 100), cuatro recintos en total.
  • Dos tipos de conjuntos de chips de controlador SATA (Marvell 88SE91xx y Silicon Image 3132)
  • Cuatro controladores SATA (alrededor de $ 30 - $ 60 tarjetas de interfaz pci-x1 y una PCI, todas con conmutación basada en FIS).
  • Tres velocidades SATA (1.5, 3.0 y 6.0 Gbps)
  • Cuatro tipos de hdds (Samsung Spinpoint F1 1TB, WD Caviar Black 2TB, Seagate Barracuda XT 3TB).
  • Tres computadoras (Athlon 3ghz + 1GB RAM cuando hice la primera matriz e-sata, luego Core 2 Duo + 4GB, ahora un Core i5 750 + 8GB).

Cuando hice mi primer gabinete eSATA hace tantos años, asumí que la velocidad lenta estaba relacionada con el uso de una tarjeta PCI (33 mhz), controladores SATA inmaduros o quizás las unidades SATA-1.5Gbps 5400 RPM. Pero ahora, con un controlador x1 de 6Gbps, kernel 3.0 y HDDS de 6Gbps a 7200 rpm, aún no ha cambiado nada. Todavía obtengo los mismos 30 MiB / s para esa carga de trabajo en particular hasta que los muevo a conexiones SATA individuales.

¿Es esta una limitación fundamental de todas las implementaciones de multiplicación de puertos?


10
2018-01-05 18:59


origen


Wow, eso es un esfuerzo de prueba :) - kubanczyk


Respuestas:


Sí. Es de esperar un bajo rendimiento.

El protocolo ATA nunca fue pensado para llevar datos a más de una unidad (en realidad estaba basado en el bus ISA, extendiendo el canal de comunicación a una unidad de almacenamiento). La interfaz IDE evitó esta limitación al transportar datos para dispositivos "maestros" y "esclavos". Sin embargo, SATA no tiene un mecanismo equivalente, ya que estaba destinado a un solo dispositivo por conexión de cable.

Los Multiplicadores de Puerto eSATA funcionan como un objetivo ATA que puede seleccionar múltiples medios físicos (por lo que solo se puede abordar un dispositivo físico a la vez, y existe una ligera latencia al cambiar a un dispositivo diferente). Podrías comparar esto con las antiguas bibliotecas ópticas.

Esto es radicalmente diferente de SAS, que fue construido con Expanders e iniciador / enrutamiento de destino integrado (SAS 2.0+ funciona de alguna manera como una red Ethernet conmutada). SAS también puede unir varias líneas en troncales, permitiendo el acceso simultáneo a múltiples dispositivos a través de múltiples líneas troncales.

Actualizar:
Al parecer, hay controladores más nuevos que admiten FIS, lo que permite que varias unidades estén "activas" al mismo tiempo. Esto debería permitir un rendimiento muy superior al descrito anteriormente. Aparentemente en este momento solo un fabricante fabrica estos chips. Todavía recomendaría encarecidamente comenzar fuera de SATA en entornos de servidor. Si debe utilizar unidades SATA, considere seguir utilizando controladores SAS y expansores.


10
2018-01-05 19:18



La forma plural del medio es media;) - Mark Henderson♦
a menos que se refiera a un medio espiritual o elementos del medio de tamaño. - Chris S
Touché mi amigo - Mark Henderson♦


¿Estás seguro de que has probado el controlador? y soporte de multiplicador de puerto FIS (Estructura de información del marco) puerto multiplicando?

Solo los controladores y multiplicadores de imagen de silicio de AFAIK (SiI3726) admiten esto, pero el rendimiento es similar al SAS de la misma velocidad (80-90% de saturación de enlace).


3
2018-01-05 20:53



No me di cuenta de que el multiplicador de puertos tendría que soportar FIS también, pero en retrospectiva eso tiene mucho sentido. Quizás el multiplicador de puertos integrado en todos mis recintos baratos ($ 100 / cada uno, por ejemplo, Mediasonic HF2-SU3S2) solo admita la conmutación basada en comandos. ¿Hay alguna forma de decirlo programáticamente (por ejemplo, la salida de dmesg)? No se menciona en su manual o sitio web, excepto en este extracto: "Cuando se conecta a través de la interfaz eSATA, el hardware de la computadora del cliente debe tener un Multiplicador de puertos con conmutación basada en FIS para poder acceder a múltiples HDD simultáneamente". - Daniel Browning
@DanielBrowning: había una bandera que mostraba soporte FIS para el controlador, pero no creo que hubiera una para el multiplicador. También podría haber problemas de interoperabilidad (SiI se niega a trabajar con JMicron). Utilizar el conjunto de chips y leer las especificaciones del conjunto de chips sería la única forma de estar seguro, creo ... - Hubert Kario
Saqué el ventilador del gabinete HF2-SU3S2 y publiqué las fotos aquí: thebrownings.name/images/2012/2012-01-esata - Parece un multiplicador de puertos JMicron JMB321, y no veo nada sobre FIS en su sitio web: jmicron.com/Product_JMB321.htm -- ¿Qué piensas? - Daniel Browning
Este podría ser el problema. El SiI one cuesta tanto como todo su recinto: amazon.com/5-Port-Port-SATA-II-Multiplier-SiI3726/dp/B004G9SKEE Definitivamente intentaría esto antes de usar ATAoE o SCSI completo (ya sea SAS o iSCSI) - Hubert Kario