Bancos de dados transacionais
O RAID-5 é relativamente lento para gravar, pois o controlador precisa carregar dados suficientes para recalcular a paridade em uma gravação. As operações de gravação incorrerão em pelo menos quatro operações de disco:
Leitura no bloco de paridade
Leitura no bloco antigo (supondo que ainda não esteja no cache) para XOR o valor com o bloco de paridade.
Escrevendo o novo bloco de paridade (bloco de paridade antigo XOR bloco de dados antigo XOR novo bloco de dados)
Escrevendo o novo bloco de dados.
Se o sistema não usar o cache de write-back, isso significa que todas essas operações estão no caminho crítico para a conclusão de E / S. Geralmente, esse é o caso das gravações de banco de dados - de fato, a Microsoft (por exemplo) possui um programa de certificação para equipamentos SAN para uso com o servidor SQL que exige que os fornecedores garantam esse comportamento. Às vezes, equipamentos RAID-5 mais antigos não usavam essa otimização e precisavam recalcular a paridade de toda a faixa.
O RAID-10 possui um espelho para cada unidade e não precisa ler dados adicionais para calcular a paridade. Isso significa que as gravações precisam de muito menos E / S física.
O RAID-50 fica em algum lugar no meio, com o volume dividido em vários volumes RAID-5, que por sua vez são distribuídos. Em um RAID-50 feito de grupos distribuídos em um esquema 3 + 1, uma gravação gera no máximo três solicitações de E / S de disco adicionais. Se você se sentir tão inclinado, poderá visualizar o RAID-5 e o RAID-10 como casos especiais do RAID-50. O RAID-50 é usado principalmente para fornecer grandes volumes em muitos discos físicos
Outros esquemas de paridade, como o RAID-6 (um esquema de paridade com dois discos redundantes por conjunto), também existem. Os discos modernos são grandes o suficiente para que a reimplantação de uma matriz possa demorar bastante tempo - tempo suficiente para o risco de uma segunda falha de disco durante o processo. reconstruir é bastante significativo. O RAID-6 reduz esse risco ao ter um segundo disco de paridade, exigindo três falhas de disco para causar perda de dados. Um truque semelhante aos esquemas RAID-50 pode ser usado para criar matrizes RAID-60.
Finalmente, um único par espelhado (conhecido como RAID-1) pode fornecer redundância e desempenho suficientemente bom para algumas tarefas. Em particular, você provavelmente descobrirá que o RAID-1 fornece uma taxa de transferência suficiente para bastante tráfego de log do banco de dados. Mais sobre isso abaixo.
Se você tiver uma carga de trabalho com muita gravação, provavelmente obterá um ganho de desempenho com um volume RAID-10. Isso pode ser uma vitória, pois você provavelmente pode obter a taxa de transferência necessária a partir de um número menor de discos físicos, desde que os discos tenham espaço suficiente). Alguns itens, como logs ou áreas temporárias em um servidor de banco de dados, devem estar nos volumes RAID-1 ou RAID-10, pois eles recebem muito tráfego de gravação.
Histórico
Os volumes de log são caracterizados por um padrão de acesso a dados principalmente seqüencial e são essencialmente um buffer de anel que consiste em comandos ao longo das linhas de 'gravar esses dados neste bloco'. Eles são gravados como produtor pelo mecanismo DBMS principal e processados como um contador. pela função de leitor de log. Um único par espelhado realmente processa bastante tráfego de log.
Sistemas de leitura pesada e servidores de arquivos
Em um sistema com muita leitura, como um data warehouse, você pode querer usar um ou mais volumes RAID-5. Em um servidor de arquivos, os acessos ao disco serão em grande parte feitos com base em um arquivo inteiro; portanto, as gravações provavelmente gravarão a maioria dos blocos que compõem o bloco de paridade. Nesse caso, a penalização de desempenho para o RAID-5 será mais leve.
No passado, a economia de custos em disco pode ter sido significativa, mas é menos provável que isso seja um problema agora.
Cache de write-back e RAID-5
Em uma SAN ou em um controlador RAID interno com um cache com bateria, você poderá habilitar o cache 'Write-back'. Isso armazena em cache as gravações e retorna o controle para o aplicativo. A E / S é relatada pelo controlador como concluída. No entanto, ele não necessariamente grava os dados no disco imediatamente. Esse recurso permite que as operações de leitura / gravação por paridade RAID-5 sejam substancialmente otimizadas e pode diminuir a penalidade no desempenho de gravação para volumes RAID-5x.
No entanto, isso ainda apresenta um pequeno risco de problemas de integridade dos dados. Foi informado ao sistema host que essa gravação foi concluída quando esse não é realmente o caso. É possível que uma falha de hardware crie inconsistências de dados entre (digamos) logs e volumes de dados em um servidor de banco de dados. Por esse motivo, o cache de write-back não é recomendado para sistemas transacionais, embora possa ser uma conquista de desempenho para algo como um processo ETL.
Sumário
Atualmente, o espaço em disco é tão barato que os sistemas transacionais provavelmente devem usar RAID-1 ou RAID-10 para volumes de log e RAID-10 para volumes de dados. É provável que o tamanho do disco físico seja muito maior que o banco de dados e o RAID-10 permitirá maior taxa de transferência de gravação para o mesmo número de discos, reduzindo potencialmente o número de volumes de disco necessários para dar suporte ao sistema.
Em algo como um data warehouse, você ainda pode ocupar espaço com tabelas de fatos grandes e altamente indexadas para obter um pequeno ganho de preço com os volumes de dados RAID-5 ou RAID-50. No entanto, os logs e o tempdb ainda devem ser colocados em um volume RAID-10, pois provavelmente terão muito trabalho durante o processamento de ETL. No entanto, é provável que a economia de custos no disco seja bastante pequena.