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

10

Para uma certa carga de trabalho de leitura / gravação, recebo 30 MiB / s de uma matriz de 4 discos usando a multiplicação de portas esata. Quando movo exatamente o mesmo array para quatro conexões SATA individuais, recebo 90 MiB / s para a mesma carga de trabalho. Esse é o impacto esperado no desempenho do multiplicador? Caso contrário, como reduzo o problema entre o software, o controlador ou o gabinete?

Eu obtive exatamente 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 low-end de US $ 100 com 4 discos), quatro gabinetes no total.
  • Dois tipos de chipsets controladores SATA (Marvell 88SE91xx e Silicon Image 3132)
  • Quatro controladores SATA (cerca de US $ 30 - US $ 60 placas de interface pci-x1 e uma PCI, todas com comutação baseada em FIS).
  • Três velocidades SATA (1,5, 3,0 e 6,0 Gbps)
  • Quatro tipos de discos rígidos (Samsung Spinpoint F1 1TB, WD Caviar Black 2TB, Seagate Barracuda XT 3TB).
  • Três computadores (Athlon 3ghz + 1GB RAM quando criei o primeiro array e-sata, depois Core 2 Duo + 4GB, agora Core i5 750 + 8GB).

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

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

Daniel Browning
fonte
3
Uau, isso é algum esforço de teste :)
kubanczyk

Respostas:

10

Sim. É esperado um fraco desempenho.

O protocolo ATA nunca teve a intenção de transportar dados para mais de uma unidade (na verdade, 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 "Mestre" e "Escravo". No entanto, o SATA não possui mecanismo equivalente, pois foi projetado para apenas um 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 (para que apenas um dispositivo físico possa ser endereçado por vez e haja uma ligeira latência na mudança para um dispositivo diferente). Você pode comparar isso com as bibliotecas ópticas antigas.

Isso é radicalmente diferente do SAS, que foi criado com os expansores e o roteador de iniciador / destino embutido (o SAS 2.0+ funciona como uma rede Ethernet comutada). O SAS também é capaz de conectar várias linhas em troncos, permitindo acesso simultâneo a vários dispositivos nas várias linhas de tronco.

Atualização:
Aparentemente, existem controladores mais novos que suportam o FIS, o 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 faz esses chips. Eu ainda recomendo sair do SATA em ambientes de servidor. Se você precisar usar unidades SATA, considere ainda usar controladores e expansores SAS.

Chris S
fonte
A forma plural de meio é a mídia;)
Mark Henderson
a menos que se refira a um meio espiritual ou itens do tamanho médio.
Chris S
Touché meu amigo
Mark Henderson
3

Tem certeza de que tentou o multiplicador de controladores e portas que suporta a multiplicação de portas FIS (Frame Information Structure) ?

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

Hubert Kario
fonte
Eu não sabia que o próprio multiplicador de portas também teria de suportar o FIS, mas, em retrospecto, isso faz todo o sentido. Talvez o multiplicador de portas embutido em todos os meus gabinetes baratos (US $ 100 / cada, por exemplo, Mediasonic HF2-SU3S2) suporte apenas comutação baseada em comando. Existe alguma maneira de saber programaticamente (por exemplo, saída dmesg)? Não é mencionado no manual ou no site, exceto neste trecho: "Ao conectar via interface eSATA, o hardware do computador do cliente precisa ter o multiplicador de portas com comutação baseada em FIS para acessar vários HDDs simultaneamente".
Daniel Browning
1
@ DanielBrowning: havia uma bandeira que mostrava o suporte do FIS ao controlador, mas não acho que houvesse uma para multiplicador. Também pode haver problemas de interoperabilidade (SiI se recusando a trabalhar com o JMicron). Obtendo o chipset usado e ler as especificações do chipset seria a única maneira de ter certeza, eu acho ...
Hubert Kario
Puxei o ventilador do gabinete HF2-SU3S2 e postei as fotos aqui: thebrownings.name/images/2012/2012-01-esata - Parece um multiplicador de portas JMicron JMB321 e não vejo nada sobre o FIS no site deles: jmicron.com/Product_JMB321.htm - o que você acha?
Daniel Browning
Este poderia ser o problema. O SiI one custa tanto quanto todo o seu gabinete: amazon.com/5-Port-Port-SATA-II-Multiplier-SiI3726/dp/B004G9SKEE Eu definitivamente tentaria isso antes de usar o ATAoE ou o SCSI completo (SAS ou iSCSI )
Hubert Kario