Estratégia para permissões do sistema de arquivos na pasta compartilhada KVM

2

Eu tenho um ambiente de hipervisor Ubuntu / KVM que tem acesso (via NFS) a conjuntos de dados ZFS (também conhecidos como sistemas de arquivos). Eu tenho hospedado as imagens de VM em um sistema de arquivos ZFS que, embora não seja a coisa mais rápida do mundo, as torna muito estáveis.

O que eu gostaria de fazer é dar às VMs convidadas acesso direto a um sistema de arquivos ZFS usando um recurso compartilhado do KVM para fornecer às VMs acesso a um conjunto de dados do ZFS e montá-lo dentro do convidado. Existem duas razões para isso:

  1. Espero uma melhoria de velocidade porque apenas uma estrutura de sistema de arquivos - ZFS - será mantida em vez de ext4 sobre o ZFS, que é o que tenho agora.

  2. Eu quero que os usuários possam acessar o recurso de instantâneo do ZFS.

Eu consegui montar os volumes como descrito, mas não consegui montá-los para que eles sejam graváveis. Pesquisando na web, acho que o nome de usuário efetivo é libvirt +, mas não consegui encontrar uma configuração chmod para o sistema de arquivos de destino que funcionará.

Alguém pode me indicar um guia sobre como lidar com isso?

    
por AlanObject 19.07.2018 / 20:01

1 resposta

2

Para responder à parte tática da sua pergunta, parece que você está usando o NFS para fazer o compartilhamento de convidado / host. Então, tudo se resume a uma questão de permissões do NFS. No host, verifique se ele é compartilhado como leitura / gravação, como zfs set sharenfs="[email protected]/N" tank , em que w.x.y.z/N é o conjunto de endereços IP que você deseja conceder acesso a esse compartilhamento. Para um exemplo mais completo, consulte aqui .

Mas também sobre seus objetivos:

  1. Se o host armazenar arquivos de disco da VM no ZFS e o convidado usar o ext4 além disso, é improvável que o ZFS adicione muita "sobrecarga do sistema de arquivos" em termos de desempenho. Afinal, o KVM raramente (ou nunca) criará novos arquivos nesse modo, portanto, os metadados não precisarão ser atualizados no ZFS com muita frequência. Meu palpite é que, a menos que você esteja executando uma carga de trabalho sensível ao desempenho nas VMs (banco de dados de alto rendimento, etc.), você não notará muita diferença.

  2. Não sei de nenhuma maneira de expor a funcionalidade de instantâneos do ZFS aos usuários dos convidados. Isso pode ser feito com zonas no Solaris, e cadeias no FreeBSD, e talvez Docker / lxd / lxc no Linux (eu não estou tão certo sobre isso), mas definitivamente não com o KVM + QEMU. Eu acho que a única maneira de fazer isso com o KVM seria dar a seus usuários acesso ao zfs snapshot no próprio host (seja com acesso SSH direto ou através de um serviço ou algo assim).

Existem outros motivos pelos quais faz sentido manter arquivos de dados no host (consolidação, além de todos os benefícios normais do ZFS: backup mais fácil, integridade de dados, cotas e reservas, etc.), mas não acho que esses dois será particularmente mais fácil em sua nova configuração.

    
por 20.07.2018 / 21:25