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?
fuente
Respuestas:
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.
fuente
¿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).
fuente