Eu tenho lido muito sobre controladores / configurações RAID e uma coisa que surge muito é como os controladores de hardware sem cache oferecem o mesmo desempenho que o RAID de software. É este realmente o caso?
Eu sempre pensei que as placas RAID de hardware ofereceriam melhor desempenho, mesmo sem cache. Quero dizer, você tem hardware dedicado para executar as tarefas. Se for esse o caso, qual é o benefício de obter uma placa RAID que não possui cache, algo como um LSI 9341-4i que não é exatamente barato.
Além disso, se um ganho de desempenho só for possível com o cache, existe uma configuração de cache que grava no disco imediatamente, mas mantém os dados no cache para operações de leitura, tornando a BBU uma prioridade?
raid
performance
lsi
Sou só eu
fonte
fonte
Respostas:
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:
fonte
fsync()
. Consulte este artigo , que mostra que um SSD Samsung NVMe sem capacitor realiza apenas ~ 250 fsyncs por segundo (eu também medi isso). SSDs com capacitor fornecem ~ 30x mais fsyncs / s, um controlador RAID de hardware com bateria 100x mais.Você desejará uma solução de bateria ou cache com flash para qualquer controlador de hardware que comprar. A maioria se arrepende de não ter feito isso .
Mas, para responder à sua pergunta, a maioria dos controladores possui taxas de cache configuráveis ... portanto, 100% do cache de leitura e 0% do cache de gravação negam a necessidade de proteção da BBU. Seu desempenho de gravação será péssimo.
Não consigo responder à sua pergunta sobre RAID de software porque depende. O Linux MD RAID é diferente do Windows Software RAID, que é diferente de algo como o ZFS . Soluções como o ZFS podem ter um desempenho melhor que o hardware, porque utilizam os recursos de RAM e CPU do servidor.
fonte
O controlador RAID que você vê é barato e é basicamente um falso. Depende até da sua placa principal fornecer algumas funções, como memória, e poucas placas possuem suporte, o que resulta em que você não pode carregar o driver.
Sobre o HW vs o próprio SW-RAID. Não uso mais o HW-RAID, a menos que seja uma caixa com o logotipo da EMC, por exemplo. Para todo o resto, mudei de volta para o SW-RAID muitas luas novamente por alguns motivos muito simples.
Você precisa de hardware adicional e precisa combiná-los. Você também precisa combinar o firmware e mantê-lo sincronizado. Muitos discos não funcionarão corretamente e você terá picos na latência de IO sem motivo claro.
O hardware adicional é caro, portanto você pode usar US $ 1000 adicionais (controlador decente com dois / três discos) para uma solução pequena melhor. Invista em mais discos e controladores padrão, memória ECC, CPU mais rápida. E um disco sobressalente no local, talvez se você planeja executá-lo por um período maior que o período de garantia ou não deseja pagar as taxas expressas pelo envio noturno.
A atualização é uma dor, pois você precisa acompanhar os patches e o firmware do SO para disco e controlador. Isso pode resultar em uma situação em que a atualização / atualização não é mais possível.
Em formatos de disco. Fornecedores suficientes usam algum layout interno para armazenar dados vinculados a uma revisão da combinação de hardware e firmware. Isso pode resultar em uma situação em que uma peça de reposição impossibilita o acesso aos seus dados.
É um SPOF e um gargalo. Ter apenas um controlador atrás de apenas uma ponte PCI não oferece o desempenho e a redundância de que você realmente precisa. Com isso, também não há caminho de migração para migrar dados para outro conjunto de discos fora do alcance dos controladores.
A maioria desses pontos foi resolvida com as novas gerações de software ou soluções SW-RAID, como ZFS e BtrFS. Lembre-se de que, no final, você deseja proteger seus dados e não ter acesso rápido, mas lixo redundante.
fonte
Passei o último ano (ininterruptamente até 2014-2015) testando várias configurações paralelas do CentOS 6.6 RAID 1 (espelhado) usando 2 LSI 9300 HBA versos 2 controladores LSI 9361-8i RAID com sistemas construídos sobre o seguinte: 2U Supermicro CSE- Chassi 826BAC4-R920LPB, uma placa-mãe ASUS Z9PE-D16, 2 processadores Intel Xeon E5-2687W v2 de oito núcleos e 3,4 GHz de 3,4 GHz, espelhado Seagate ST6000NM0014 SAS de 6 TB 12 GB, 512 GB de RAM. Observe que esta é uma configuração totalmente compatível com SAS3 (12Gbps).
Vasculhei artigos escritos sobre software de ajuste e uso o RAID do software Linux há mais de 10 anos. Ao executar testes básicos de E / S (dd-oflag = arquivos diretos de 5k a 100G, hdparam -t etc.), o RAID de software parece se acumular favoravelmente ao ataque de hardware. O RAID do software espelhado através de HBAs separados. Fui até o ponto de testar com as configurações padrão do kernel CentOS 6, kernel-lt e kernel-ml. Também experimentei vários ajustes de mdadm, sistema de arquivos, subsistema de disco e o / s sugeridos por vários artigos on-line escritos sobre o RAID de software Linux. Apesar de ajustar, testar, ajustar e testar, ao executar em um mundo de leitura, sistema de processamento de transações (com um banco de dados MySQL ou Oracle), eu descobri que executar um controlador RAID de hardware resulta em um aumento de 50 vezes no desempenho.
Por muitos e muitos meses eu não estava convencido de que o RAID de hardware poderia ser muito melhor; no entanto, após uma pesquisa exaustiva sobre o RAID do software Linux, testes e ajustes, esses foram meus resultados.
fonte
A maioria dos escritores aqui são ignorantes do " buraco da gravação ". Essa é a base que permite a criação de unidades de backup de batalhas de RAIDs de hardware versus a ausência de um desses RAIDs de software. Bem, por exemplo, a implementação de RAID do software Linux suporta bitmaps de operações de gravação ou faz um recálculo completo de "paridade" em caso de desligamento não limpo. O ZFS sempre se esforça para escrever faixas completas para evitar essa inconsistência ou adiar a verificação novamente. Então, como um resumo, o RAID de software suficientemente inteligente hoje em dia costuma ser bom o suficiente para ser usado em vez de "quem sabe o que está dentro" do chamado "RAID de hardware".
Quanto à parte do cache da pergunta, isso realmente não importa muito, porque o próprio cache de gravação do sistema operacional pode ser muito maior do que o adaptador de "hardware".
fonte
Eu trabalho isso o tempo todo. Depende muito do que você está fazendo e do nível de ataque que você apoia. Um controlador SW executando um Raid 0 ou 1 para o sistema operacional e nada de especial está bem. A execução de um controlador SW com um Raid 5 em um banco de dados está causando problemas! ALGUNS controladores de hardware oferecem melhor desempenho, mas isso depende se ele pode armazenar em cache e o chipset do processador da placa RAID. Além disso, nem todos os controladores de software são suportados por todos os sistemas operacionais. Às vezes, você pode precisar comprar um HW para executar o ESXi ... A menos que você use conexões sata.
fonte