O controlador como um afunilamento de desempenho é bastante verdadeiro e pode representar um ponto único de falha em algumas arquiteturas. Isso é conhecido há algum tempo. Por um tempo, houve técnicas específicas de fornecedores para contornar isso, mas desde então a indústria como um todo convergiu para algo chamado MPIO ou Multi-Path I / O.
Com o MPIO, você pode apresentar o mesmo LUN em vários caminhos em uma malha de armazenamento. Se o HBA do servidor e o HBA da matriz de armazenamento tiverem duas conexões à malha de armazenamento, o servidor poderá ter quatro caminhos separados para a LUN. Pode ir além disso, se o armazenamento suportar isso; É bastante comum ter configurações de controlador duplo nos sistemas de matriz de disco maiores, com cada controlador apresentando uma conexão ativa ao LUN. Adicione em um servidor com duas placas HBA separadas, além de dois caminhos fisicamente separados conectando os pares controlador / HBA, e você pode ter um caminho de armazenamento sem pontos únicos de falha.
Os controladores mais sofisticados serão de fato um par Ativo / Ativo completo, com ambos os controladores realmente conversando com o armazenamento (geralmente há alguma forma de cache compartilhado entre os controladores para ajudar na coordenação). Os dispositivos da camada intermediária podem fingir estar ativos / ativos, mas apenas um único dispositivo está realmente realizando o trabalho a qualquer momento, mas o controlador em espera pode atender imediatamente se a primeira ficar silenciosa e nenhuma operação de E / S for interrompida. Dispositivos de camada inferior estão em ativa / espera simples, onde todas as E / S seguem um caminho e só se movem para outros caminhos quando o caminho ativo é interrompido.
Ter vários controladores ativos pode, de fato, fornecer melhor desempenho do que um único controlador ativo. E sim, adicione sistemas suficientes para armazenamento e armazenamento rápido suficiente atrás do controlador, e você pode saturar os controladores o suficiente para que todos os servidores conectados percebam. Uma boa maneira de simular isso é fazer com que um volume RAID de paridade tenha que ser reconstruído.
Nem todos os sistemas são capazes de aproveitar o MPIO para usar vários caminhos ativos , o que ainda é um pouco novo. Além disso, um dos problemas que precisam ser resolvidos por parte de todos os controladores é assegurar que todas as operações de E / S sejam comprometidas em ordem, apesar do caminho em que a E / S entrou e em qualquer controlador que recebeu a operação. Esse problema fica mais difícil quanto mais controladores você adicionar. E / S de armazenamento é uma operação serializada fundamentalmente e não funciona bem com paralelização massiva.
Você pode obter alguns ganhos adicionando controladores, mas os ganhos desaparecem rapidamente à luz da complexidade adicional necessária para que funcione.