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-utils
está 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-files
Copy 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.netdev
no diretório/etc/systemd/network/
do host.touch /etc/systemd/network/vm-macvlan.netdev
# touch /etc/systemd/network/vm-macvlan.netdev
Copy 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-macvlan
pelo 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.network
Copy 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-macvlan
pelo 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.network
Copy 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
ifconfig
em 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-macvlan
Copy 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/exports
no 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-files
no 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 -a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assegurar que o processo NFS seja iniciado:
systemctl start nfs-server
# systemctl start nfs-server
Copy 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-share
Copy 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-files
exportado pelo anfitrião192.168.124.1
no site/mnt/host-share
no convidado:mount 192.168.124.1:/usr/local/shared-files /mnt/host-share
# mount 192.168.124.1:/usr/local/shared-files /mnt/host-share
Copy 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-file3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow