Um grande RAID 10 contra vários arrays menores?

8

Minha pergunta é: quando é apropriado simplesmente criar um grande array com leitura rápida & escrever desempenho, como o RAID 10, em vez de criar matrizes menores para aplicativos específicos?

Parece que se meus requisitos gerais de E / S não forem muito pesados, um único array com excelente desempenho de leitura e gravação poderia fornecer melhor desempenho geral para todos os aplicativos, exceto naqueles (talvez raros) momentos em que aplicativos com acesso diferente padrões atingiram o pico ao mesmo tempo (copiando grandes quantidades de arquivos grandes enquanto um banco de dados está sendo atingido).

Se eu dedicar um par de fusos a uma tarefa específica, como logs de transações, e eles nem mesmo derem suor com a carga de trabalho ... por que não colocar essa carga de trabalho em um RAID 10 maior? Esses fusos poderiam, então, contribuir para outras cargas de trabalho, em vez de ficarem se coçando em 60% do tempo.

PS, no meu caso particular a sobrecarga de custo do RAID 10 não é um fator, porque eu estou olhando para criar múltiplos arranjos RAID 1 e um pequeno RAID 5. Ir RAID 10 para a quantidade de espaço que eu preciso seria comparável.

    
por Boden 07.01.2010 / 18:05

4 respostas

9

Saber como configurar seu armazenamento tem tudo a ver com medir e orçar a IOPS e a largura de banda. (Eu estou sendo simplista aqui porque o tamanho do percentual mix de leitura / gravação, média de IOs, tamanho da faixa RAID e porcentagens de acertos do cache são muito importantes. Se você conseguir esses números, poderá tornar seus cálculos ainda mais precisos). / p>

Há uma pequena e interessante calculadora de E / S aqui que uso com frequência ao planejar o armazenamento. O diretório de armazenamento do wmarow também é bom para obter números de desempenho de disco bastante contemporâneos.

If I dedicate a pair spindles to a particular task, such as transaction logs, and they're not even breaking a sweat with the workload...why not just put that workload onto a larger RAID 10?

Lembre-se de que colocar IO sequencial em um fuso com E / S aleatório torna esse IO seqüencial aleatório. Seus discos de log de transações podem parecer que não estão suando, porque você está vendo operações sequenciais de E / S. Seqüenciais leituras e gravações em um volume RAID-1 serão bastante rápidas, por isso, se você estiver baseando-se em "não suar a camisa" na duração da fila de disco, por exemplo, não está obtendo toda a história.

Meça ou calcule a IOPS aleatória máxima possível para o volume de destino pretendido, obtenha uma linha de base da carga de trabalho atual nesse volume e, em seguida, decida se você tem espaço suficiente para colocar essas IOPS de log de transação no IO aleatório restante no destino volume. Além disso, certifique-se de orçamentar o espaço necessário para a carga de trabalho (obviamente). Se você é tão inclinado, crie uma porcentagem de "headroom" adicional em sua carga de trabalho / alocação de espaço IO.

Continue com essa metodologia para todas as outras cargas de trabalho que você deseja colocar no volume RAID-10 de destino. Se ficar sem IOPS aleatória, você estará se empilhando demais no volume - adicione mais discos ou coloque um pouco da carga de trabalho em volumes dedicados. Se você ficar sem espaço, adicione mais discos.

    
por 07.01.2010 / 18:39
4

Li mais artigos recentemente dizendo que o RAID 5 é um mau caminho para obter confiabilidade. Eu acredito que mais depois de ter um disco ir mal em uma matriz RAID 5, substituiu a unidade, e não poderia recuperar porque um segundo disco tinha um erro de leitura latente irrecuperável que nos obrigou a reformatar e restaurar a partir do backup.

À medida que as unidades estão ficando maiores, as chances de ter um erro de leitura não detectado nesses discos enormes também estão aumentando, e com a RAID 5 a confiabilidade simplesmente não está mais cortando. Se você não está espelhando, aparentemente, o conselho é ir com o RAID 10.

A menos que você esteja fazendo algo que seja muito sensível a questões de velocidade, eu não me preocuparia em dividir as coisas em pequenos arrays ou algo assim. Coloque-o em um RAID 10 e veja se seu desempenho é bom. Com bom caching e memória no sistema, tudo deve ficar bem. Os números para benchmarks nunca serão exatamente o que você realmente obterá, pois depende do seu uso real, da carga real, do desempenho da unidade de disco, do cache do controlador, do cache de disco, da fragmentação, etc.

A melhor regra é simplificar a configuração o máximo possível, pois mesmo que você afunde um dia ou uma semana para suar essa configuração em um ano ou dois, será necessário solucionar algum problema nesse servidor Isso fará com que você fique imaginando por que o configurou da maneira que fez se adicionou alguma complexidade desnecessária à configuração.

    
por 07.01.2010 / 18:21
2

Quão previsível você deseja que as latências dos seus aplicativos sejam?

Digamos, por exemplo, que você tenha um aplicativo realmente sensível à latência e compartilhe um sistema de arquivos com seu banco de dados financeiro. No fechamento fiscal, de repente você recebe chamadas sobre o tempo limite de aplicativos sensíveis à latência. Como você vai descobrir isso?

Por outro lado, eu sou um grande fã de simplificar tudo, então eu verifico que você não tem nenhum requerimento excepcional, e consolide e simplifique suas configurações se suas necessidades não caírem em nenhum tipo especial estranho. casos.

    
por 07.01.2010 / 18:13
0

Claro - porque não. é, lembre-se de construir seu array multi-disco grande corretamente, errar e você terá um longo tempo de reconstrução.

O RAID 10 vem em dois tipos:

  • RAID 1 + 0, onde você cria 2 arrays RAID 1 e, em seguida, distribui-os.
  • RAID 0 + 1, onde você cria 2 arrays RAID 0 e os espelha.

Uma vez que um disco morre, em um você só precisará reconstruir um único array raid1. Com o outro, você terá que reconstruir todo o array raid0.

    
por 07.01.2010 / 19:44