O hardware RAID1 oferece vantagens significativas ao S / W RAID em um cluster de computador altamente redundante?

1

Estou prestes a configurar um cluster do Linux com cinco nós de servidores físicos (provavelmente mais nós a serem adicionados depois).

  • o cluster será gerenciado por Proxmox (e sim, funciona em software RAID)
  • armazenamento compartilhado será implementado com a configuração Gluster em redundante com cada servidor físico contendo um bloco , os dados serão disponibilizados de forma redundante em todas as máquinas)
  • O cluster Percona XtraDB será usado como principal banco de dados multi-master - novamente com dados compartilhados por todas as máquinas físicas
  • cada máquina terá dois discos rígidos com cerca de 2-3 TB cada, na configuração RAID1
  • todas as máquinas serão hospedadas em um grande datacenter com fonte de alimentação redundante, etc.
  • especificações do servidor podem ser vistas aqui
  • o escopo de todo o cluster é distribuir a carga de trabalho + permitir alta disponibilidade. Uma máquina pode cair a qualquer momento sem ser um problema para todo o sistema.

Uma das decisões a tomar é usar o software RAID1 ou o hardware RAID1 + BBU .

O software RAID é a solução com a qual estou muito familiarizado (estou gerenciando vários servidores há 15 anos e sei como as ferramentas funcionam). Eu nunca tive um problema sério com isso (principalmente apenas a falha do HDD). Estas são as razões pelas quais eu prefiro software RAID .

O que eu não gosto sobre hardware RAID é a incompatibilidade entre fornecedores de controladores e a falta de experiência que tenho com eles: diferentes opções de configuração, diferentes métodos de monitoramento, diferentes programas utilitários - não é uma boa idéia criar um sistema de cluster. / p>

Sei que, ao usar uma BBU, o RAID de hardware pode ser rápido e confiável (gravação no cache). No entanto, como todos os dados serão armazenados de forma altamente redundante no cluster, minha idéia é usar o software RAID1 e discreva barreiras no sistema de arquivos para aumentar o desempenho de gravação. Espero que isso leve a um desempenho semelhante ao do hardware RAID1 . Claro, eu corro o risco de perda de dados devido ao cache de gravação volátil, no entanto IMHO que deve ser tratado pelos mecanismos de cluster de qualquer maneira (a máquina inteira deve ser capaz de restaurar os dados dos outros nós após falha).

Não estou preocupado com os recursos da CPU necessários para a implementação de RAID por software.

A minha suposição é correta ou estou perdendo alguns detalhes importantes que me ajudariam a fazer a escolha certa?

    
por Udo G 15.01.2015 / 10:33

1 resposta

2

Eu prefiro o RAID de software para RAID de hardware em servidores únicos, porque o RAID de hardware obriga o administrador a tomar precauções contra falha de hardware do controlador RAID. Isso geralmente requer estocagem e testes regulares de controladores RAID.

Em sua configuração, presumo, a redundância está no nível do nó, não no nível do disco. Se um nó falhar por algum motivo (cpu, fonte de alimentação, controlador de raid etc.), esse nó sairá do cluster e será substituído ASAP por um nó novo ou reparado e, em seguida, os dados serão reconstruídos a partir do cluster, não de o RAID. Dito isto, a questão é, se você precisar de um RAID!

Você pode dizer: "Meu banco de dados é lido principalmente, um RAID 1 irá dobrar o throughput, já que as leituras podem ser distribuídas entre os dois discos". Mas esteja ciente de que uma falha de disco seguida de substituição desse disco e reconstrução do RAID reduz temporariamente a taxa de leitura nesse nó para um único nível de disco. Se o seu banco de dados não pode compartilhar o tráfego razoável entre nós desiguais, dando menos tráfego para os nós lentos, que toda a carga que o banco de dados pode suportar cai para metade do valor normal! Isso pode forçá-lo a pegar um nó com uma falha de disco completamente fora do banco de dados, desde que esteja ocupado com sua reconstrução RAID interna. Mas isso torna o RAID quase inútil.

A alternativa é não usar nenhum RAID, mas permitir que qualquer nó entre no banco de dados duas vezes, uma vez para cada disco. Isso coloca mais peso na CPU, mas se o disco é o seu fator limitante, então quem se importa com o tempo da CPU? E, se um disco falhar, esse meio nó em particular ficará off-line e será conectado novamente, assim que o disco tiver sido substituído. Assim, a carga será compartilhada de forma justa com todos os discos.

Se você tiver uma alta carga de gravação, a solução de disco separado fornecerá o dobro da taxa de gravação do que um RAID 1.

Então, basicamente, a única razão para ainda pensar sobre a BBU é, se seus requisitos de latência são tão restritos, que você não pode esperar que os dados sejam fisicamente para o disco. Em caso de falha de energia, as BBUs garantirão que os dados ainda estejam gravados. Mas existem alternativas, ou seja, módulos de cache SSD como dm-cache ou bcache. No modo de gravação, eles gravam dados no SSD primeiro, o que é muito mais rápido, do que o write to disk, e então já comprometem a gravação. Mesmo após uma falha de energia, eles irão ler corretamente os blocos do SSD. dm-cache e bcache vêm com todos os kernels linux recentes, e um pequeno (como 64 ou 128 GB) SSD server-grade (!!) ainda é mais barato que o controlador RAID BBU.

    
por 15.01.2015 / 11:22