Cluster MySQL no SSD

1

Estamos planejando implementar um cluster MySQL de quatro nós e estamos pensando em usar SSDs como armazenamento. Gostaríamos de obter um alto nível de desempenho e latência muito baixa no disco IO do cluster pequeno, por isso estamos analisando os SSDs. Alguém tem alguma experiência com o MySQL ou o MySQL Cluster no SSD, ou na criação de grupos de ataque SSD que possam compartilhar suas experiências ou pensamentos?

    
por somecallmemike 22.12.2011 / 01:58

1 resposta

4

SSD são demônios e são ótimos para condições de alto rendimento, como você sabe. Para servidores de banco de dados, eles se adaptam muito bem aos logs de transação e também a qualquer índice de ocorrência constante, além de serem muito rápidos para atender consultas.

TRIM, não o fim do mundo

TRIM não é tão importante para bancos de dados por alguns motivos:

  • Os bancos de dados tendem a ser do tipo "poucos arquivos grandes" de dados. Dependendo de como você vê o SHRINK, esses arquivos podem ou não ficar menores.
  • Os logs de transações são constantemente gravados, limpos e reescritos para.
  • O Linux não possui suporte a TRIM on-the-fly, pois é tudo sob demanda.
  • O FSTrim paralisa a E / S enquanto localiza os blocos excluídos, o que pode causar picos de latência temporários enquanto faz o trabalho.

O terceiro ponto vale a pena prestar atenção. Como o TRIM é sob demanda, você obteria seu melhor desempenho chamando fstrim imediatamente depois de limpar seus logs de transação. No entanto, introduzirá um período momentâneo em que a E / S do seu volume de translog não poderá ser confirmada. Se você é sensível o suficiente para usar SSDs para isso, esse evento pode ser um problema para você.

Como o TRIM é um recurso menor, você pode ignorar o fato de que a maioria dos controladores RAID ainda não o suportam e o fato de que todos os kernels Linux mais recentes (mais recentes que 2.6.39 IIRC) podem suportá-lo em software. .

Qualidade conta

Uma das maiores coisas a ter em conta é que você usa unidades SSD empresariais . Estes são discos baseados em Flash MLC com células flash de alta resistência (~ 30-40K apagar / ciclos de programa), e uma medida generosa de blocos de reposição para lidar com o desgaste do bloco. Se você está usando SSDs por uma razão, você estará fazendo computação de alta taxa de transferência para isso, então você quer dispositivos que não serão prejudicados em menos de um ano. Isso vai te levar até lá.

O SLC Flash é realmente melhor (ciclos de 100K + apagar / programa), mas o diferencial de preço é o que leva as pessoas ao MLC. Sim, eles fazem MLC de nível empresarial hoje em dia! Mas se suas unidades estiverem funcionando por 3 anos, o SLC fará com que seus dispositivos durem mais.

Alinhamento e RAID

O alinhamento de blocos é um grande negócio, já que afetará seu uso. É aí que as placas RAID podem errar e por que algumas folhas de especificações de cartões RAID afirmam que não funcionam com SSDs, embora fiquem felizes se você conectar um par a elas. Se cada gravação de bloco resultar em gravação dupla no flash, você se desgastará mais rapidamente. O ideal é que você queira que os limites da faixa RAID caiam nos limites de tamanho do bloco Apagar.

No entanto, os SSDs estão ficando mais inteligentes com o manuseio do desgaste à medida que cada nova geração é lançada. Bater o mesmo conjunto de clusters lógicos com gravações fica cada vez menos prejudicial à medida que os próprios SSDs ficam mais inteligentes.

Para o software RAID, o Linux e os utilitários de suporte já possuem suporte para SSD há alguns anos. O mais recente dos kernels tem muito melhor suporte do que o que está sendo disponibilizado no Enterprise Linux agora, então esteja ciente. O LVM tem suporte para o TRIM (e, portanto, para o SSD) há alguns anos. O MD-RAID só recentemente adquiriu o TRIM. O XFS e o Btrfs obtiveram suporte ao TRIM em 2.6.39, os EXTs obtiveram suporte estável em 2.6.36 e suporte experimental no final dos anos 20.

Substituir em pares

Por causa de como o desgaste funciona, um par de SSDs em um par de espelhos falhará ao mesmo tempo. Então, quando um vai, substitua ambos o mais rápido possível .

    
por 22.12.2011 / 03:47