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?
fonte
Respostas:
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.
fonte
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).
fonte