Como você armazena VMs em HDDs com integridade e desempenho de dados?

2
Primeiro eu sei que esse tópico é facilmente subjetivo, mas estou tentando evitar isso, já que deveria haver pelo menos uma boa resposta para isso em um mar de respostas ruins e é difícil de encontrar.

À primeira vista, minha pergunta parece simples; Como você armazena discos de Máquina Virtual em Discos Rígidos, garantindo que a integridade dos dados não seja comprometida e que o desempenho não seja horrível.

Mas é realmente mais difícil do que parece;

  • O ZFS e o BTRFS não são opções: os sistemas de arquivos Copy On Write são notoriamente pobres em lidar com arquivos grandes, especialmente se eles puderem conter outro sistema de arquivos Copy On Write! Você CAN desativa a COW no BTRFS, mas isso também desativa a soma de verificação (e a compactação, desduplicação, etc.).
  • EXT2 / 3/4, XFS, ReiserFS, NTFS, etc etc todos não fazem soma de verificação de dados completa como BTRFS / ZFS e não são e opção.

Então é xeque-mate, então? Você não pode ter integridade de dados completa além de configurações RAID simplistas que têm outros problemas, como Write Holes (RAID5) e geralmente um tratamento muito ruim de arquivos corrompidos onde não está claro qual das duas cópias é a correta . Problemas evitados com sistemas de nível superior que verificam e verificam a integridade dos arquivos antes de serem retornados ao sistema operacional ou ao usuário.

A única opção que posso imaginar é usar o BTRFS / ZFS dentro das VMs em vez do host, e agendar snapshots e backups apropriadamente em cada máquina, mesmo que isso seja muito mais complicado do que fazê-lo no host.

Alguém conhece alguma outra maneira de atingir meu objetivo?

    
por Alex 05.02.2017 / 20:45

1 resposta

5

Vamos começar com uma evidência simples: mais recursos de resiliência e integridade de dados geralmente têm uma penalidade de desempenho a pagar. A partir daqui, podemos fazer mais algumas considerações:

  • O ZFS possui um desempenho muito melhor que o BTRFS quando usado como sistema de arquivos de backup da VM, pelo menos em hosts RHEL / CentOS. Embora seja verdade que, no HDD mecânico puro, ele permaneça mais lento que os sistemas de arquivos mais tradicionais, usando até mesmo um SSD relativamente pequeno como o dispositivo SLOG aumentará notavelmente seu desempenho. Em outras palavras, as VMs no ZFS são um caso de uso perfeitamente razoável;

  • mesmo ao usar sistemas de arquivos tradicionais sem a soma de verificação de dados completa como XFS e EXT4, as chances de corrupção de dados em um sistema saudável são muito pequenas. As classificações BER / UBER / URE são frequentemente citadas fora de contexto e sem levar em consideração os exames regulares;

  • As placas RAID5 / 6 de hardware com cache protegido pelo powerloss estão imunes a escrever buracos. Além disso, o RAID6 também pode ser usado como uma forma de soma de verificação de dados (nota: depende do controlador / implementação específico). Portanto, um array RAID6 com cache write back de tamanho apropriado é uma solução razoável;

  • finalmente, como sugerido, você pode usar o ZFS dentro da VM. Para essa configuração, eu exportaria volumes LVM brutos para convidados, formatando o contêiner de dados como ZFS. No entanto, eu tomaria instantâneos dos volumes LVM, em vez de dentro das VMs convidadas individuais. Para um melhor desempenho, eu usaria o RAID10 no host (como base para o LVM)

por 05.02.2017 / 21:59