Quão inteligentes são os controladores / gabinetes RAID?

4

Qual a inteligência dos controladores RAID quando estão sob carga?

Dado um controlador e gabinete de moderado a alto (ou seja, kit Dell atual padrão da Dell ou HP ...), RAID 5, fibra de 10 gb, pelo menos 3/4 de espaço utilizado, e muitos pequeno não sequencial com acesso pesado de leitura / gravação a arquivos como os encontrados em um arquivo ou servidor de e-mail ...

Pergunta prática de implementação : dada a mesma quantidade de espaço, o que seria mais rápido, um pequeno número de drives grandes e de alta velocidade (ou seja, 4x 1TB 15.000 rpm) ou um número maior de ou drives de baixa velocidade (ou seja, 9x 500GB 7200 ou 10.000 rpm)?

Pergunta teórica : Os gabinetes / controladores de RAID sabem onde a cabeça de uma unidade está atualmente e a localização que precisam procurar para poder atribuir leituras à unidade com o menor deslocamento de cabeça. distância? Ou isso importa?

Quais outras variáveis entram em ação com a redução do tempo de resposta e a maximização da taxa de transferência com um grande número de arquivos pequenos não sequenciais em um storage array compartilhado? Observe que o cache não é muito afetado por causa da natureza dos dados.

    
por Karl Katzke 26.06.2009 / 07:53

7 respostas

4

A partir da sua descrição, sua carga de trabalho será um acesso altamente aleatório, portanto, o fator limitante é a operação de E / S aleatória por segundo. Em um RAID-5, você obterá (na prática) um pouco menos de uma leitura / gravação de E / S por revolução do disco por fuso físico. Nessa situação, mais discos físicos e RPM mais rápido significam maior taxa de transferência.

Em uma situação de E / S altamente aleatória, em que o conjunto de trabalho das solicitações de dados estourar o cache, a taxa de transferência do sistema é uma função do número de discos físicos x da velocidade do disco. Quanto mais discos, melhor, quanto mais rápido, melhor.

Em sua questão teórica, os discos suportam um recurso conhecido como ' tagged command queuing '. Isso permite que o controlador despache solicitações de E / S para os discos e receba as solicitações de forma assíncrona. A placa interna no disco está ciente da posição das cabeças de disco e pode otimizar as operações, completando-as na ordem que decidir ser a ideal. O algoritmo para isso é uma variante em ' Buscador do Elevador '

Os resultados podem ser retornados fora de ordem, mas são marcados com o número da solicitação, de modo que o controlador RAID saiba qual solicitação corresponde à resposta (portanto, a "tagged"). O SATA tem um protocolo ligeiramente diferente conhecido como ' enfileiramento de comandos nativos ' que faz algo semelhante.

Nesse caso, o controlador RAID não precisa estar ciente da posição física dos cabeçotes do disco, pois isso é gerenciado pelo firmware no próprio disco.

Em uma carga de trabalho de acesso altamente aleatório, um único par de loops FC suportará muitos discos. Para uma carga de trabalho de streaming, como o FC de vídeo, o gargalo será mais rápido.

Alguns controladores podem suportar tamanhos de cache impressionantemente grandes. Você pode querer estimar o tamanho do conjunto de trabalho e ver se você pode realmente atualizar o cache do seu controlador para acomodá-lo. Se você tiver experiência em estatísticas, poderá construir um modelo de monte-carlo com base nas estatísticas de uso coletadas das solicitações.

Outra possibilidade de melhorar o desempenho pode ser usar uma camada de discos de estado sólido para armazenamento rápido, embora isso dependa do fato de o seu controlador suportar essa configuração.

    
por 26.06.2009 / 11:55
2

IOPS, IOPS e IOPS. Isso é o que você precisa considerar. Você pode obter mais IOPS de uma unidade de rotação mais rápida. Como alternativa, você pode obter mais IOPS de uma contagem maior de fusos.

Existe um bom artigo comparativo da Adaptec que responde quase exatamente da mesma forma pergunta.

Se você tiver algumas unidades em mente (ou seja, de um fornecedor específico), poderá executar as contas.

    
por 26.06.2009 / 11:37
1

Não há discos de 1 TB 15krpm atualmente, portanto, isso é teórico, mas temos cenários de uso semelhantes e, para um sistema de nível médio, como o que você está procurando, recomendo vivamente o uso de discos SAS de 2,5 "SFF Idealmente a 15krpm.Um conjunto de tamanho decente destes não é muito caro e é seriamente rápido para o tráfego seqential e extremamente rápido para aleatória também.Há um olhar para o HP MSA 70.

    
por 26.06.2009 / 09:07
1

Eu fiz muitos testes em servidores Dell com controladores Perc5 / i e 6 / i. Revendemos Dells, e raramente consigo resistir à tentação de acelerar os testes sempre que um novo servidor ou uma nova configuração de disco passa pelas nossas portas. NB eu testo usando um testador de disco do meu próprio planejamento. Eu não faço nenhuma reclamação especial para o meu testador, além de vários anos de experiência, o que sugere que ele se correlaciona bem com a velocidade do servidor quando está no site. Consulte o link para obter detalhes.

De qualquer forma, minha experiência sugere que, pelo menos, até seis discos RAID5, cada disco extra produz um aumento útil na velocidade. Eu testei com discos SAS de 15K e também com discos SATA (Western Digital RE2 e RE3), e embora os discos SATA sejam obviamente muito mais lentos no acesso aleatório, um disco SATA de seis RAID5 é pelo menos tão bom quanto um SAS de quatro disco RAID5. Então eu iria para discos mais baratos.

Sua pergunta sobre o posicionamento da cabeça em leituras só se aplica a RAID1 ou RAID10, e eu não as uso mais, então não posso comentar. Da minha memória um pouco fraca, um RAID1 em um Perc 4e / Di é visivelmente mais rápido que um único disco, sugerindo que há algum benefício. No entanto, a diferença foi pequena, talvez um aumento de 10 a 20% na velocidade, e isso pode ter ocorrido devido ao melhor armazenamento em cache no controlador RAID.

Por acaso, se você baixar meu aplicativo diskthrasher, incluirei muitos resultados de teste de várias configurações de disco.

JR

    
por 26.06.2009 / 10:36
0

Em geral, a resposta dependerá do sistema que você está vendo. Se você quer que o sistema seja rápido, eu normalmente observaria o IOP do qual a unidade é capaz e usa isso para decidir. No entanto, eu teria uma tendência a preferir um grande número de unidades do que um menor.

Existem várias outras coisas que podem ser feitas no Linux para aumentar o desempenho.

Geralmente as cabeças em um sistema Raid devem estar sincronizadas em um sistema Raid5 / 6. Certifique-se de que não precisa ler uma área antes de poder escrevê-la, tornando as gravações suficientemente grandes.

    
por 26.06.2009 / 08:07
0

Eu acho que há apenas way muitas variáveis a serem consideradas aqui para poder fazer uma sugestão geral. Comparar o número de drives e suas velocidades não é prático, porque outros fatores como o número de heads e platters também entrarão em jogo, então também depende do modelo do drive.

O ideal seria escolher alguns modelos diferentes que atendem aos requisitos de seu aplicativo e compará-los com sua carga de trabalho real e, em seguida, comprar aquele que se encaixa na fatura.

    
por 26.06.2009 / 08:42
0

Desde que você se lembre de que as SANs "grandes" têm ~ 50% de sobrecarga, o resultado final geralmente é bastante rápido.

O principal é que os front-ends do NAS (até o momento, com exceção da NetApp) não suportam nenhuma carga de metadados séria, por isso tome cuidado.

Controladores de Raid em teoria poderiam saber a última localização de cabeça esperada e usá-la ao reordenar pedidos (isso é afinal uma parte tradicional dos algoritmos de elevador), mas atualmente os caches RAM gigantes são mais fáceis.

    
por 26.06.2009 / 11:19

Tags