Capítulo 14. Compartilhamento de arquivos entre o host e suas máquinas virtuais
Você pode freqüentemente precisar compartilhar dados entre seu sistema host e as máquinas virtuais (VMs) que ele executa. Para fazer isso de forma rápida e eficiente, você pode configurar compartilhamentos de arquivos NFS ou Samba em seu sistema.
14.1. Compartilhamento de arquivos entre o host e as máquinas virtuais Linux Copiar o linkLink copiado para a área de transferência!
Para um compartilhamento eficiente de arquivos entre seu sistema host e as VMs Linux às quais ele está conectado, você pode exportar um compartilhamento NFS que suas VMs podem montar e acessar.
Pré-requisitos
-
O pacote
nfs-utilsestá instalado no host. Um diretório que você deseja compartilhar com seus VMs. Se você não quiser compartilhar nenhum de seus diretórios existentes, crie um novo, por exemplo, chamado shared-files.
mkdir shared-files
# mkdir shared-filesCopy to Clipboard Copied! Toggle word wrap Toggle overflow O host é visível e alcançável através de uma rede para o VM. Este é geralmente o caso se a VM estiver conectada usando o tipo de rede virtual NAT e bridge. Entretanto, para a conexão macvtap, é necessário primeiro configurar o recurso macvlan no host. Para fazer isso:
Criar um arquivo de dispositivo de rede, por exemplo, chamado
vm-macvlan.netdevno diretório/etc/systemd/network/do host.touch /etc/systemd/network/vm-macvlan.netdev
# touch /etc/systemd/network/vm-macvlan.netdevCopy to Clipboard Copied! Toggle word wrap Toggle overflow Edite o arquivo do dispositivo de rede para ter o seguinte conteúdo. Você pode substituir
vm-macvlanpelo nome que você escolheu para seu dispositivo de rede.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um arquivo de configuração de rede para seu dispositivo de rede macvlan, por exemplo
vm-macvlan.network.touch /etc/systemd/network/vm-macvlan.network
# touch /etc/systemd/network/vm-macvlan.networkCopy to Clipboard Copied! Toggle word wrap Toggle overflow Edite o arquivo de configuração da rede para ter o seguinte conteúdo. Você pode substituir
vm-macvlanpelo nome que você escolheu para seu dispositivo de rede.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um arquivo de configuração de rede para sua interface física de rede. Por exemplo, se sua interface é
enp4s0:touch /etc/systemd/network/enp4s0.network
# touch /etc/systemd/network/enp4s0.networkCopy to Clipboard Copied! Toggle word wrap Toggle overflow Se você não tiver certeza de qual nome de interface usar, você pode usar o comando
ifconfigem seu host para obter a lista de interfaces de rede ativas.Edite o arquivo de configuração física da rede para tornar a rede física uma parte da interface macvlan, neste caso vm-macvlan:
[Match] Name=enp4s0 [Network] MACVLAN=vm-macvlan
[Match] Name=enp4s0 [Network] MACVLAN=vm-macvlanCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Reinicie seu anfitrião.
- Optional: Para maior segurança, garanta que suas VMs sejam compatíveis com o NFS versão 4 ou posterior.
Procedimento
No host, exporte um diretório com os arquivos que você deseja compartilhar como um sistema de arquivos em rede (NFS).
Obter o endereço IP de cada máquina virtual com a qual você deseja compartilhar arquivos. O exemplo a seguir obtém os IPs de testguest1 e testguest2.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edite o arquivo
/etc/exportsno host e adicione uma linha que inclua o diretório que você deseja compartilhar, IPs de VMs com as quais você deseja compartilhar, e opções de compartilhamento.Shared directory VM1-IP(options) VM2-IP(options) [...]
Shared directory VM1-IP(options) VM2-IP(options) [...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Por exemplo, o seguinte compartilha o diretório
/usr/local/shared-filesno host com testguest1 e testguest2, e permite que as VMs editem o conteúdo do diretório:/usr/local/shared-files/ 192.168.124.220(rw,sync) 192.168.124.17(rw,sync)
/usr/local/shared-files/ 192.168.124.220(rw,sync) 192.168.124.17(rw,sync)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exportar o sistema de arquivo atualizado.
exportfs -a
# exportfs -aCopy to Clipboard Copied! Toggle word wrap Toggle overflow Assegurar que o processo NFS seja iniciado:
systemctl start nfs-server
# systemctl start nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow Obter o endereço IP do sistema hospedeiro. Isto será usado para montagem posterior do diretório compartilhado nas VMs.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Observe que a rede relevante é aquela que está sendo usada para conexão com o host pelas VMs com as quais você deseja compartilhar arquivos. Normalmente, isto é
virbr0.
No SO convidado de uma VM especificada no arquivo
/etc/exports, monte o sistema de arquivo exportado.Crie um diretório que você deseja usar como ponto de montagem para o sistema de arquivos compartilhados, por exemplo
/mnt/host-share:mkdir /mnt/host-share
# mkdir /mnt/host-shareCopy to Clipboard Copied! Toggle word wrap Toggle overflow Montar o diretório exportado pelo anfitrião no ponto de montagem. Este exemplo monta o diretório
/usr/local/shared-filesexportado pelo anfitrião192.168.124.1no site/mnt/host-shareno convidado:mount 192.168.124.1:/usr/local/shared-files /mnt/host-share
# mount 192.168.124.1:/usr/local/shared-files /mnt/host-shareCopy to Clipboard Copied! Toggle word wrap Toggle overflow Para verificar o sucesso da montagem, acessar e explorar o diretório compartilhado no ponto de montagem:
cd /mnt/host-share ls
# cd /mnt/host-share # ls shared-file1 shared-file2 shared-file3Copy to Clipboard Copied! Toggle word wrap Toggle overflow