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

10

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

Obtuve 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 gabinetes (ambos modelos de 4 discos de $ 100 de gama baja), cuatro gabinetes en total.
  • Dos tipos de chipsets de controlador SATA (Marvell 88SE91xx y Silicon Image 3132)
  • Cuatro controladores SATA (alrededor de $ 30 - $ 60 tarjetas de interfaz pci-x1 y un PCI, todos conmutación basada en FIS).
  • Tres velocidades SATA (1.5-, 3.0- y 6.0-Gbps)
  • Cuatro tipos de discos duros (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, supuse que la baja velocidad 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 6 Gbps, kernel 3.0 y HDD de 6 Gbps a 7200 rpm, todavía no ha cambiado nada. Todavía obtengo los mismos 30 MiB / s para esa carga de trabajo en particular hasta que lo muevo a conexiones SATA individuales.

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

Daniel Browning
fuente
3
Wow, eso es un esfuerzo de prueba :)
kubanczyk

Respuestas:

10

Si. Se espera un bajo rendimiento.

El protocolo ATA nunca tuvo la intención de transportar datos a más de una unidad (en realidad se basó en el bus ISA, extendiendo el canal de comunicación a una unidad de almacenamiento). La interfaz IDE engañó 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 direccionar un dispositivo físico a la vez, y hay una ligera latencia al cambiar a un dispositivo diferente). Puede comparar esto con las antiguas bibliotecas ópticas.

Esto es radicalmente diferente de SAS, que fue construido con expansores y enrutador de iniciador / destino incorporado (SAS 2.0+ funciona de manera similar a una red Ethernet conmutada). SAS también puede unir varias líneas en troncales, lo que permite el acceso simultáneo a múltiples dispositivos a través de las múltiples líneas troncales.

Actualización:
Aparentemente, 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 mucho más alto que el descrito anteriormente. Aparentemente, en este momento, solo un fabricante fabrica estos chips. Todavía recomendaría comenzar desde SATA en entornos de servidor. Si debe utilizar unidades SATA, considere seguir utilizando controladores SAS y expansores.

Chris S
fuente
La forma plural del medio es media;)
Mark Henderson
a menos que se refiera a un medio espiritual o artículos del tamaño medio.
Chris S
Touché mi amigo
Mark Henderson
3

¿Está seguro de que probó el controlador y el multiplicador de puertos que admiten la multiplicación de puertos FIS (Estructura de información de trama) ?

AFAIK solo los controladores y multiplicadores de Silicon Image (SiI3726) lo admiten, pero el rendimiento es similar al SAS de la misma velocidad (80-90% de saturación del enlace).

Hubert Kario
fuente
No me di cuenta de que el multiplicador de puerto en sí tendría que ser compatible con FIS también, pero en retrospectiva, eso tiene mucho sentido. Quizás el multiplicador de puertos integrado en todos mis gabinetes muy baratos ($ 100 por cada uno, por ejemplo, Mediasonic HF2-SU3S2) solo admite la conmutación basada en comandos. ¿Hay alguna forma de saber mediante programación (por ejemplo, salida dmesg)? No se menciona en su manual o sitio web, excepto por este extracto: "Al conectarse 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 acceder a múltiples HDD simultáneamente".
Daniel Browning el
1
@DanielBrowning: había una bandera que mostraba soporte FIS para el controlador, pero no creo que haya una para el multiplicador. También podría haber problemas de interoperabilidad (SiI se niega a trabajar con JMicron). Primeros utiliza el chipset y la lectura de las especificaciones del chipset sería la única manera 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 puerto JMicron JMB321, y no veo nada sobre FIS en su sitio web: jmicron.com/Product_JMB321.htm : ¿qué te parece?
Daniel Browning el
Este podría ser el problema. El SiI one cuesta tanto como su gabinete completo: amazon.com/5-Port-Port-SATA-II-Multiplier-SiI3726/dp/B004G9SKEE Definitivamente probaría esto antes de usar ATAoE o SCSI completo (ya sea SAS o iSCSI )
Hubert Kario el