VM do servidor de arquivos em um host btrfs

1

Eu quero construir um servidor de arquivos / NAS enquanto uso o btrfs para proteger os dados (do bitrot), mas gostaria de usar meu servidor KVM / QEMU existente (debian com o btrfs raid1) e criar uma VM para essa finalidade .

Se eu criar a VM e armazenar os dados em um sistema de arquivos ext4, a soma de verificação btrfs no servidor host detectaria corrupção de dados na VM?

--------------------
|    KVM server    |
|   btrfs - raid1  |
|   -----------    |
|   | VM-ext4 |    |
|   -----------    |
|------------------|

Se a resposta anterior for não, eu teria que criar a VM com o btrfs como seu sistema de arquivos também?

Nesse caso, para manter o recurso "auto-recuperação" do btrfs, eu teria que criar pelo menos dois discos virtuais para ter o btrfs no raid1.

---------------------
|     KVM server    |
|    btrfs - raid1  |
|   ------------    |
|   | VM-btrfs |    |
|   | 2 x vda  |    |
|   ------------    |
|-------------------|

Mas desta forma eu estaria perdendo muito espaço ... raid1 no servidor host mais raid1 na VM.

Ou talvez a melhor solução seja implementar o servidor de arquivos diretamente no servidor host (embora eu prefira manter alguma separação entre essas duas funções)?

atualização 1
Embora eu tenha uma preferência pelo btrfs, minha principal questão é sobre a utilidade do btrfs / zfs em detectar e corrigir a corrupção silenciosa em discos da VM. Como esses sistemas de arquivos podem distinguir a corrupção silenciosa das gravações normais de disco no disco virtual?

atualização 2
Depois de googling um pouco mais eu só poderia encontrar mais algumas informações sobre este pergunta do serverfault .
De acordo com alguns dos comentários, o sistema de convidado virtual também estaria em risco, a menos que um sistema de arquivos mais complexo fosse implementado (provavelmente um sistema de arquivos guest raid1 dentro de um sistema de arquivos host raid1).

Então, minha ideia agora é esta:

  • configure o servidor de arquivos no servidor host kvm
  • mantenha os dados críticos seguros no servidor de arquivos (que já está usando o btrfs) e compartilhe-os com as VMs via NFS
  • desativar o COW para a pasta de imagens de disco da VM
  • crie instantâneos kvm das VMs e faça backup de seus arquivos de configuração nos compartilhamentos NFS

Esta é uma solução razoável ou estou esquecendo alguns detalhes importantes?

    
por xpto 02.02.2016 / 02:10

1 resposta

1

Estou baseando-me principalmente em que serverfault post mas tentarei responder a mim mesmo.

If I create the VM and store the data in a ext4 file system, would the btrfs checksumming on the host server detect data corruption on the VM?

Não. Pelo que entendi, não há como o sistema host detectar a corrupção de dados no sistema de arquivos da VM.

If the previous answer is no, would I have to create the VM with btrfs as its file system also?

Sim.

Or perhaps the best solution is to implement the file server directly on the host server (although I'd prefer to keep some separation between these two roles)?

No meu caso, a solução será:

  • configure o servidor de arquivos no servidor host kvm
  • mantenha os dados críticos seguros no servidor de arquivos (que já está usando o btrfs) e compartilhe-os com as VMs via NFS
  • desativar o COW para a pasta de imagens de disco da VM
  • crie instantâneos kvm das VMs e faça backup de seus arquivos de configuração nos compartilhamentos NFS
por 12.02.2016 / 16:32