Recentemente, fui informado sobre alguns problemas relacionados a Parity-RAIDs sem um cache não volátil. Controladores HW mais caros têm caches alimentados por bateria para concluir as operações de gravação em caso de falta de energia. Agora, algumas pessoas dizem que essa falha, talvez em combinação com uma matriz degradada, pode matar todo o sistema de arquivos. Outros afirmam que esses problemas estão desatualizados e / ou equívocos .
Infelizmente, ninguém fornece referências concretas e nem procura md RAID e cache não volátil , nem cache de bitmap fornece respostas confiáveis sobre se md-RAID5 é aconselhável ou não.
Alguma informação sobre isso?
Respostas:
Presumo que o RAID de software do Linux seja tão confiável quanto uma placa RAID de hardware sem uma BBU e com o cache de write-back ativado. Afinal, os dados não confirmados em um sistema RAID de software residem no cache de buffer do kernel, que é uma forma de cache de write-back sem backup de bateria.
Como todas as placas RAID-5 de hardware que já usei permitem ativar o cache de write-back sem ter uma BBU, espero que o software RAID-5 funcione bem para pessoas com um certo nível de tolerância a riscos.
ObWarStory:
Dito isto, experimentei pessoalmente uma séria perda de dados devido a não haver um BBU instalado em uma placa RAID-5, embora o cache de write-back estivesse ativado. (Sem UPS também. Não grite comigo, não é minha ligação.)
Meu chefe me chamou de pânico enquanto eu estava de férias porque um de nossos sistemas de produção não voltava depois de uma queda de energia. Ele ficou sem coisas para tentar. Eu tive que sair para a beira da estrada, puxar o laptop, ligar o Wi-Fi no meu telefone,
ssh
entrar no sistema danificado e consertá-lo, enquanto minha família ficava comigo na beira da estrada até terminar restaurando uma tabela de banco de dados roqueada do backup. (Estávamos a cerca de um quilômetro e meio de perder a recepção de células na época.)Então me diga: quanto você pagaria por um cartão RAID + BBU agora ?
fonte
Apenas um aviso: as operações de gravação RAID-5/6 levam um tempo significativo da CPU enquanto a matriz está degradada. Se seu servidor já estiver totalmente carregado quando um disco falhar, ele poderá cair em um abismo de falta de resposta. Esse problema não acontecerá com um controlador RAID de hardware. Portanto, eu desaconselho fortemente o uso do software RAID-5/6 em um servidor de produção. Para uma estação de trabalho ou servidor com pouca carga, tudo bem.
fonte
O SW RAID tem um modo de falha - se o servidor ficar inativo no meio de uma gravação, você poderá obter uma faixa corrompida. Um controlador HW RAID com uma BBU não é tão caro e reterá blocos sujos até que você possa reiniciar os discos.
A BBU no cache não garante gravações em caso de falta de energia (ou seja, não energiza os discos). Ele alimenta o cache por alguns dias até que você possa reiniciar os discos. Em seguida, o controlador liberará os buffers sujos para o disco.
Algumas notas sobre SW vs. HW RAID-5
As gravações em um volume SW RAID-5 podem ser lentas se o cache de gravação for usado com o bloqueio de E / S, pois a chamada não retornará até que todas as E / S tenham sido concluídas. Um controlador RAID HW com um BBWC pode otimizar isso consideravelmente, para que você possa ver um desempenho substancialmente melhor.
A última vez que procurei, não era possível fazer E / S direta (ou seja, DMA de cópia zero) em um volume SW RAID. Isso pode ter mudado e é realmente relevante apenas para aplicativos como gerenciadores de banco de dados que usam partições brutas.
Um controlador RAID SAS moderno pode extrair ou enviar 1 GB / s ou mais de dados de uma matriz de disco, principalmente se formatado com um tamanho de faixa grande (por exemplo, 256 kb). Eu até comparei um Adaptec ASR-2200s mais antigo a velocidades que indicavam que ele estava saturando ambos os canais scsi a 600MB / s + em agregado (discos de 10x15k) com muito pouca carga de CPU na máquina host. Não tenho certeza de que você possa tirar isso do software RAID-5 sem muita carga de CPU, mesmo em uma máquina moderna. Talvez você possa ler isso rapidamente.
A configuração para inicializar a partir de um volume HW RAID é simples - o volume RAID é transparente para o sistema operacional.
Um controlador RAID low-end de um fornecedor de nível 1, como a adaptec, não é tão caro a preços de varejo e pode ser comprado por amendoins fora do ebay. Mas lembre-se, se você comprar de segunda mão, atenha-se aos fornecedores de nível 1 e verifique o modelo e verifique a disponibilidade dos drivers em seu site.
Edit: No comentário do @ psusi, certifique-se de não ter um controlador fakeraid (SW RAID transparente escondido no driver), mas a maioria das ofertas dos nomes maiores (Adaptec, 3Ware ou LSI) não são unidades fakeraid. Qualquer coisa que possa pegar uma BBU não será falsificada.
fonte
Se você tiver dados no cache, mas ainda não no disco, e a energia falhar, os dados desaparecerão e é provável que o disco esteja em um estado inconsistente. A probabilidade disso não é muito alta, a menos que você tenha um sistema que esteja constantemente escrevendo, mas eu ainda não gostaria de apostar meus dados em jogos de probabilidade.
Uma reviravolta interessante seria criar um sistema de arquivos principal no RAID5 / 6, mas colocar um diário em uma unidade comum, para que os dados sejam despejados primeiro na unidade comum. O desempenho provavelmente iria para o crapper, pois você estaria limitado à velocidade de gravação de uma única unidade, mas a confiabilidade aumentaria. Então, acho que em uma situação em que seu desempenho de gravação não é importante, mas sua leitura é que pode funcionar bem.
Ou você pode simplesmente gastar outros US $ 100,00 e adquirir o cartão com a BBU ou uma pequena UPS e evitar todas essas complicações;)
fonte
O ataque mdadm do software Linux foi projetado para ser tão confiável quanto um ataque de hardware com cache com bateria. Não há problemas com perda súbita de energia, além daqueles que também se aplicam à perda súbita de energia em um único disco.
Quando o sistema retorna após falha de energia, a matriz é ressincronizada, o que basicamente significa que a paridade é recalculada para corresponder aos dados que foram gravados antes da falha de energia. Leva algum tempo, mas realmente, não é grande coisa. O tempo de ressincronização pode ser bastante reduzido, ativando o bitmap com intenção de gravação.
fonte
Aqui está um blog explicando o problema com o RAID5 e como o ZFS RAIDZ está resolvendo isso .
Seus pontos principais são:
e
fonte