Desempenho esperado da multiplicação de porta e-SATA?

10

Para uma determinada carga de trabalho de leitura / gravação, recebo 30 MiB / s de uma matriz de 4 discos usando multiplicação de porta esata. Quando eu movo exatamente a mesma matriz para quatro conexões sata individuais, obtenho 90 MiB / s para a mesma carga de trabalho. Esse é o impacto esperado no desempenho do multiplicador? Se não, como reduzir o problema entre o software, o controlador ou o gabinete?

Eu obtive os mesmos resultados mesmo depois de tentar um grande número de variáveis ao longo dos anos:

  • Muitas versões do Linux (RHEL5, Fedora 9, 11, 13, 16) e todos os kernels que isso implica.
  • Dois tipos de gabinetes (ambos modelos de quatro discos de baixo custo de US $ 100), quatro gabinetes no total.
  • Dois tipos de chipsets SATA (Marvell 88SE91xx e Silicon Image 3132)
  • Quatro controladores SATA (cerca de US $ 30 - US $ 60 placas de interface pci-x1 e um PCI, comutação baseada em FIS).
  • Três velocidades SATA (1,5, 3,0 e 6,0 Gbps)
  • Quatro tipos de HDD (Samsung Spinpoint F1 1 TB, WD Caviar Black 2 TB, Seagate Barracuda XT 3 TB).
  • Três computadores (Athlon 3ghz + 1GB de RAM quando fiz o primeiro array e-sata, depois Core 2 Duo + 4GB, agora um Core i5 750 + 8GB).

Quando fiz meu primeiro eSATA todos esses anos atrás, presumi que a baixa velocidade estava relacionada ao uso de uma placa PCI (33 mhz), drivers SATA imaturos ou talvez às unidades SATA-1.5Gbps de 5400 RPM. Mas agora com um controlador x1 de 6 Gbps, 3.0 kernel e 6Gbps 7200rpm HDDS, ainda nada mudou. Eu ainda recebo os mesmos 30 MiB / s para essa carga de trabalho em particular até movê-la para conexões SATA individuais.

Esta é uma limitação fundamental de todas as implementações de multiplicação de portas?

    
por Daniel Browning 05.01.2012 / 19:59

2 respostas

10

Sim. O fraco desempenho é esperado.

O protocolo ATA nunca foi planejado para transportar dados para mais de uma unidade (na verdade, ele foi baseado no barramento ISA, estendendo o canal de comunicação para uma unidade de armazenamento). A interface IDE enganou essa limitação, carregando dados para dispositivos "Master" e "Slave". No entanto, o SATA não possui mecanismo equivalente, já que era destinado a apenas um único dispositivo por conexão de cabo.

Os Multiplicadores de Porta eSATA funcionam como um destino ATA que pode selecionar várias mídias físicas (portanto, apenas um dispositivo físico pode ser endereçado de cada vez e há uma ligeira latência ao alternar para um dispositivo diferente). Você pode comparar isso com bibliotecas ópticas antigas.

Isso é radicalmente diferente do SAS, que foi construído com expansores e built-in de roteamento de iniciador / destino (funções SAS 2.0+ um pouco como uma rede Ethernet comutada). O SAS também é capaz de unir várias linhas em troncos, permitindo o acesso simultâneo a vários dispositivos nas várias linhas troncais.

Atualização:
Aparentemente, há controladores mais novos que suportam o FIS, que permite que várias unidades sejam "ativas" ao mesmo tempo. Isso deve permitir um desempenho muito superior ao descrito acima. Aparentemente, neste momento, apenas um fabricante fabrica esses chips. Eu ainda recomendo começar longe de SATA em ambientes de servidor. Se você precisar usar unidades SATA, considere a possibilidade de usar controladores e expansores SAS.

    
por 05.01.2012 / 20:18
3

Tem certeza de que tentou o multiplicador de porta e do controlador com suporte FIS (estrutura de informações de quadros) multiplicando a porta?

Apenas na AFAIK os controladores e multiplicadores Silicon Image (SiI3726) suportam isso, mas o desempenho é similar ao da mesma velocidade (80-90% de saturação de link).

    
por 05.01.2012 / 21:53