Prós e contras do software Parity-RAID (por exemplo, RAID5)

8

Recentemente, fui informado sobre alguns problemas relativos 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 falha de energia. Agora, algumas pessoas dizem que tal falha, talvez em combinação com uma matriz degradada, pode matar todo o seu sistema de arquivos. Outros afirmam que essas questões estão desatualizadas e / ou equívocos .

Infelizmente, ninguém dá referências concretas e nem uma pesquisa para md RAID e cache não volátil , nem para armazenamento em cache de bitmap fornece respostas confiáveis sobre se md-RAID5 é aconselhável ou não.

Alguma informação sobre isso?

    
por user773568 11.07.2011 / 10:40

6 respostas

4

Eu assumo que o software RAID do Linux é 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 write-back sem backup de bateria.

Como cada placa RAID-5 de hardware que já usei permite que você ative o cache write-back sem ter uma BBU, espero que o software RAID-5 funcione bem para pessoas com um certo nível de tolerância ao risco.

ObWarStory:

Tendo sido dito, eu pessoalmente experimentei uma séria perda de dados devido a não ter nenhuma BBU instalada em uma placa RAID-5, embora o cache de write-back tenha sido ativado. (Sem UPS, também. Não grite comigo, não com minha ligação.)

Meu chefe me ligou em 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 puxar para o lado da estrada, retirar o laptop, ligar o WiFi no meu telefone, ssh no sistema afetado, e consertá-lo, enquanto minha família estava lá comigo na beira da estrada até terminar de restaurar uma tabela de banco de dados ralada do backup. (Estávamos a cerca de um quilômetro e meio de perder a recepção das células no momento.)

Então me diga: quanto você pagaria por um cartão RAID + BBU agora ?

    
por 12.07.2011 / 11:31
3

Apenas um aviso: as operações de gravação do RAID-5/6 levam um tempo significativo da CPU enquanto o array está degradado. Se o seu servidor já estiver totalmente carregado quando um disco falhar, ele poderá cair em um abismo de falta de resposta. Tal problema não acontecerá com um controlador RAID de hardware. Então, eu aconselho strongmente contra o uso do software RAID-5/6 em um servidor de produção. Para uma estação de trabalho ou servidor com carga leve, tudo bem.

    
por 13.10.2011 / 23:08
3

O SW RAID tem um modo de falha - se o servidor ficar no meio de uma gravação, você pode obter uma faixa corrompida. Um controlador HW RAID com uma BBU não é tão caro, e manterá blocos sujos até que você possa reiniciar os discos.

A BBU no cache não não garante gravações no caso de falta de energia (ou seja, não alimenta os discos). Ele alimenta o cache por alguns dias até que você possa reiniciar os discos. Em seguida, o controlador liberará os buffers sujos no disco.

Algumas notas sobre SW vs. HW RAID-5

  1. 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 retorna até que todas as E / S sejam concluídas. Um controlador HW RAID com um BBWC pode otimizá-lo consideravelmente, para que você possa ver um desempenho substancialmente melhor.

  2. A última vez que olhei você não conseguiu fazer I / O direto (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 bancos de dados usando partições brutas.

  3. Um controlador SAS RAID moderno pode extrair ou extrair 1 GB / s ou mais de dados de uma matriz de disco, principalmente se for formatado com um tamanho de faixa grande (digamos 256 kb). Eu até mesmo comparei um Adaptec ASR-2200s mais antigo em velocidades que indicavam estava praticamente saturando ambos os canais scsi a 600MB / seg + em agregado (10x 15k discos) com muito pouca carga de CPU na máquina host. Eu não tenho certeza se você poderia tirar isso do software RAID-5 sem muita carga de CPU, mesmo em uma máquina moderna. Talvez você possa ler isso rapidamente.

  4. A configuração para inicializar um volume HW RAID é simples - o volume RAID é transparente para o sistema operacional.

Um controlador RAID de baixo custo de um fornecedor de nível 1, como o adaptec, não é tão caro nos preços de varejo e pode ser comprado para amendoins fora do ebay. Mas lembre-se, se você comprar de segunda mão, escolha os fornecedores de nível 1 e certifique-se de conhecer o modelo e verificar a disponibilidade de drivers de seus sites.

Editar: Do comentário de @ psusi, certifique-se de não obter um controlador fakeraid (controlador SW SWID 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 levar uma BBU não será fakeraid.

    
por 14.10.2011 / 12:59
2

O Linux mdadm software raid foi projetado para ser tão confiável quanto um ataque de hardware com o cache suportado por bateria. Não há problemas com perda repentina de energia, além daqueles que também se aplicam à perda repentina de energia em um único disco.

Quando o sistema volta a funcionar após falha de energia, a matriz será ressincronizada, o que basicamente significa que a paridade é recalculada para corresponder aos dados que foram gravados antes da falha de energia. Demora algum tempo, mas realmente, não é grande coisa. O tempo de ressincronização pode ser bastante reduzido, ativando o bitmap de intenção de gravação.

    
por 11.07.2011 / 21:41
1

Se você tiver dados no cache, mas não no disco ainda, e a energia falhar, os dados desaparecerão e o disco provavelmente ficará 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 mudança interessante seria criar um sistema de arquivos principal no RAID5 / 6, mas colocar um diário em uma unidade regular, para que os dados sejam primeiro despejados na unidade comum. O desempenho provavelmente iria para o cagar como você estaria limitado à velocidade de gravação de uma única unidade, mas a confiabilidade aumentaria. Então eu acho que em uma situação em que sua performance de escrita não é importante, mas sua leitura é, isso pode funcionar muito bem.

Ou você poderia gastar mais 100 $ e obter o cartão com a BBU, ou com uma pequena UPS, e evitar todas essas complicações;)

    
por 11.07.2011 / 14:49
1

Aqui está um blog explicando o problema com o RAID5 e como o ZFS RAIDZ está resolvendo .

Seus principais pontos são:

RAID-5 (and other data/parity schemes such as RAID-4, RAID-6, even-odd, and Row Diagonal Parity) never quite delivered on the RAID promise -- and can't -- due to a fatal flaw known as the RAID-5 write hole. Whenever you update the data in a RAID stripe you must also update the parity, so that all disks XOR to zero -- it's that equation that allows you to reconstruct data when a disk fails. The problem is that there's no way to update two or more disks atomically, so RAID stripes can become damaged during a crash or power outage.

e

RAID-Z is a data/parity scheme like RAID-5, but it uses dynamic stripe width. Every block is its own RAID-Z stripe, regardless of blocksize. This means that every RAID-Z write is a full-stripe write. This, when combined with the copy-on-write transactional semantics of ZFS, completely eliminates the RAID write hole.

    
por 15.10.2011 / 23:34