Resumindo: se estiver usando uma placa RAID low-end (sem cache), faça um favor e mude para o RAID de software. Se estiver usando uma placa de médio a alto nível (com BBU ou NVRAM), o hardware é frequentemente (mas nem sempre! Veja abaixo) uma boa opção.
Resposta longa: quando o poder de computação era limitado, as placas RAID de hardware tinham a vantagem significativa de descarregar o cálculo de paridade / síndrome para os esquemas RAID que os envolviam (RAID 3/4/5, RAID6, etc.).
No entanto, com o desempenho cada vez maior da CPU, essa vantagem basicamente desapareceu: até a CPU antiga do meu laptop (Core i5 M 520, geração Westmere) tem desempenho XOR acima de 4 GB / se desempenho da síndrome RAID-6 acima de 3 GB / s durante um núcleo de execução única .
A vantagem que o RAID de hardware mantém hoje é a presença de um cache DRAM protegido contra perda de energia, na forma de BBU ou NVRAM. Esse cache protegido fornece latência muito baixa para acesso aleatório de gravação (e lê esse hit) e basicamente transforma gravações aleatórias em gravações sequenciais. Um controlador RAID sem esse cache é quase inútil . Além disso, alguns controladores RAID low-end não apenas vêm sem um cache, mas desativam à força o cache DRAM privado do disco, levando a um desempenho mais lento do que sem a placa RAID. Um exemplo são as placas PERC H200 e H300 da DELL: se o firmware mais recente não tiver alterado isso, eles desativarão totalmente o cache privado do disco (e não poderá ser reativado enquanto os discos estiverem conectados ao controlador RAID). Faça um favor a si mesmo e façanunca, nunca, nunca compre esses controladores. Embora mesmo os controladores mais avançados desabilitem o cache privado do disco, eles pelo menos têm seu próprio cache protegido - tornando o cache privado do HDD (mas não do SSD!) Um tanto redundante.
Este não é o fim, no entanto. Mesmo controladores capazes (aquele com cache BBU ou NVRAM) podem fornecer resultados inconsistentes quando usados com SSD, basicamente porque os SSDs realmente precisam de um cache privado rápido para uma programação / apagamento eficiente da página FLASH. E enquanto alguns (a maioria?) Controladores permitem reativar o cache privado do disco (por exemplo: PERC H700 / 710 / 710P permite ao usuário reativá-lo), se esse cache privado não estiver protegido contra gravação, você corre o risco de perder dados. de perda de energia. O comportamento exato é realmente controlador e dependente firmware (por exemplo: em um Dell S6 / i com 256 MB de cache WB e de cache do disco habilitado , tive há perdas durante múltipla, testes de queda de energia planejado), dando incerteza e muita preocupação.
Os RAIDs de software de código aberto, por outro lado, são muito mais controláveis - seu software não está dentro de um firmware proprietário e possui padrões e comportamentos de metadados bem definidos. O RAID de software supõe (certo) que o cache DRAM privado do disco não está protegido, mas ao mesmo tempo é crítico para um desempenho aceitável - para que eles normalmente não o desabilitem, em vez disso, usam os comandos ATA FLUSH / FUA para garantir que os dados críticos dados pousam em armazenamento estável. Como eles geralmente são executados a partir das portas SATA conectadas ao chipset SB, a largura de banda é muito boa e o suporte ao driver é excelente.
No entanto, se usado com HDDs mecânicos, o padrão de acesso de gravação aleatório sincronizado (por exemplo: bancos de dados, máquinas virtuais) sofrerá muito em comparação com um controlador RAID de hardware com cache WB. Por outro lado, quando usado com SSDs corporativos (ou seja, com um cache de gravação protegido contra powerloss), o RAID de software geralmente se destaca e fornece resultados ainda mais altos do que o que é possível com as placas RAID de hardware. Dito isso, é necessário lembrar que os SSDs do consumidor (leia-se: com cache de write-back não protegido), embora sejam muito bons em leitura e gravação assíncrona, oferecem IOPS muito baixo em cargas de trabalho de gravação sincronizada.
Considere também que os RAIDs de software não são todos iguais. O RAID de software do Windows tem uma má reputação, desempenho e até o Storage Space não parece muito diferente. O Linux MD Raid é excepcionalmente rápido e versátil, mas a pilha de E / S do Linux é composta de várias partes independentes que você precisa entender com cuidado para extrair o máximo desempenho. O RAID de paridade do ZFS (ZRAID) é extremamente avançado, mas, se não estiver configurado corretamente, pode oferecer IOPs muito ruins; o espelhamento + striping, por outro lado, funciona muito bem. De qualquer forma, ele precisa de um dispositivo SLOG rápido para o tratamento de gravação síncrona (ZIL).
Bottom line:
- se suas cargas de trabalho não são sensíveis à gravação aleatória sincronizada, você não precisa de um cartão RAID
- se você precisar de uma placa RAID, não compre um controlador RAID sem cache WB
- se você planeja usar o software SSD, o RAID é o preferido, mas lembre-se de que, para gravações aleatórias sincronizadas e altas, é necessário um SSD protegido por powerloss (por exemplo: Intel S4600, Samsung PM / SM863, etc.). Para um desempenho puro, a melhor opção provavelmente é o Linux MD Raid, mas hoje em dia geralmente uso espelhos ZFS distribuídos. Se você não puder perder metade do espaço devido aos espelhos e precisar dos recursos avançados do ZFS, use o ZRAID, mas pense cuidadosamente na configuração dos seus VDEVs.
- se você, mesmo usando SSD, realmente precisa de uma placa RAID de hardware, use SSDs com caches protegidos contra gravação (o Micron M500 / 550/600 tem proteção parcial - não é suficiente, mas melhor do que nada - enquanto as séries Intel DC e S têm perda total de energia proteção e o mesmo pode ser dito para os SSDs corporativos da Samsung)
- se você precisar de RAID6 e usar HDDs mecânicos normais, considere comprar uma placa RAID rápida com cache WB de 512 MB (ou mais). O RAID6 possui uma penalidade de alto desempenho de gravação e um cache WB de tamanho adequado pode pelo menos fornecer um armazenamento intermediário rápido para pequenas gravações síncronas (por exemplo: diário do sistema de arquivos).
- se você precisar de RAID6 com HDDs, mas não puder / não quiser comprar uma placa RAID de hardware, pense cuidadosamente na configuração do RAID do software. Por exemplo, uma solução possível com o Linux MD Raid é usar duas matrizes: uma pequena matriz RAID10 para gravações de diário / logs de banco de dados e uma matriz RAID6 para armazenamento bruto (como servidor de arquivos). Por outro lado, o software RAID5 / 6 com SSDs é muito rápido, portanto você provavelmente não precisa de uma placa RAID para uma configuração de todos os SSDs.