Como montar compartilhamentos de arquivos em clientes do Compute Engine

Nesta página, mostramos como ativar um compartilhamento de arquivos do Filestore em uma instância de máquina virtual (VM) do Compute Engine que está no mesmo projeto do Google Cloud e em rede VPC. Para saber como ativar compartilhamentos de arquivos em clientes em uma rede remota, consulte Como ativar o compartilhamento de arquivos em clientes remotos. Se você quiser acessar instâncias do Filestore a partir de clusters do Google Kubernetes Engine, consulte Acessar instâncias do Filestore com o driver CSI do Filestore.

Antes de começar

Verifique se o firewall de rede está configurado corretamente para uso com o Filestore. Consulte Como configurar regras de firewall para mais detalhes.

Como ativar um compartilhamento de arquivos em uma instância de VM do Compute Engine

Use um dos procedimentos a seguir para ativar um compartilhamento de arquivos do Filestore em uma VM do Compute Engine. Recomendamos a ativação em uma VM n1-standard-8 ou superior para um desempenho ideal.

Linux: montar

Para montar manualmente um compartilhamento de arquivos em uma VM cliente Linux:

  1. No console do Google Cloud, acesse a página "Instâncias de VM".

    Acessar a página "Instâncias de VMs"

  2. Localize a VM do Linux que você quer usar como cliente e clique em SSH para abrir um terminal nessa VM.

  3. Opcional: montar um compartilhamento de arquivos em uma VM cliente com várias interfaces de rede por meio de uma rede secundária.

    Detalhes (clique para expandir)

    Para ativar o compartilhamento de arquivos por meio de uma rede secundária, ou seja, uma interface diferente de nic0, modifique a política de roteamento da VM do cliente: Execute:

    sudo ip route \
        add filestore-reserved-address-range \
        via default-gateway-of-nic-to-filestore
    

    onde:

    • filestore-reserved-address-range é o intervalo de endereços reservado para uso pela instância do Filestore.
    • default-gateway-of-nic-to-filestore é o endereço IP do gateway padrão da NIC conectada à rede VPC compartilhada com a instância do Filestore.

    Para mais informações sobre como usar instâncias do Compute Engine com várias NICs, consulte Como configurar o roteamento de políticas.

  4. Instale o NFS:

    Debian/Ubuntu

    Use os seguintes comandos para instalar o NFS no Debian ou no Ubuntu.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    Use os comandos a seguir para instalar o NFS no Red Hat Enterprise Linux ou no CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Use os comandos a seguir para instalar o NFS no SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Crie um diretório local para mapear para o compartilhamento de arquivos do Filestore:

    sudo mkdir -p mount-point-directory
    

    em que mount-point-directory é o diretório a ser criado (por exemplo, /mnt/filedir).

  6. Monte o compartilhamento de arquivos da instância do Filestore executando o comando mount. É possível usar qualquer opção de montagem do NFS. Para ter o melhor desempenho, recomendamos o uso das seguintes opções de mount do NFS:

    Opção Descrição
    hard O cliente NFS repete solicitações NFS indefinidamente. Para reduzir a possibilidade de interrupções de E/S quando a instância do Filestore for reinicializada, recomendamos o uso da opção de montagem hard para clientes Linux e Windows.
    timeo=600 O cliente NFS aguarda 600 segundos (60 segundos) antes de tentar novamente uma solicitação NFS.
    retrans=3 O cliente NFS tenta fazer solicitações NFS três vezes antes de realizar outras ações de recuperação.
    rsize=262144 O cliente NFS pode receber no máximo 262.144 bytes do servidor NFS por solicitação READ.
    Observação: para instâncias de nível básico, defina o valor rsize como 1048576.
    wsize=1048576 O cliente NFS pode receber no máximo 1.048.576 bytes do servidor NFS por solicitação WRITE.
    resvport O cliente NFS usa uma porta de origem com privilégios ao se comunicar com o servidor NFS para esse ponto de montagem.
    async O cliente NFS atrasa o envio de gravações de aplicativos para o servidor NFS até que determinadas condições sejam atendidas.
    Cuidado: o uso da opção sync reduz significativamente o desempenho.
    • Para reduzir a latência de montagem, especifique a opção -o tcp.
    • Se você estiver montando uma instância empresarial ou zonal (anteriormente SSD de alta escala) em uma VM do cliente que executa o kernel do Linux versão 5.3 ou mais recente, especifique a opção de ativação nconnect para melhorar o desempenho do NFS. Recomendamos especificar até 7 conexões para o nível zonal e até 2 conexões para o nível empresarial. Em geral, quanto maior a capacidade de compartilhamento de arquivos e menos VMs de cliente conectadas, mais desempenho você terá ao especificar outras conexões com nconnect.

    Execute o comando mount com suas opções preferidas, semelhante a estas:

    sudo mount -o rw,intr ip-address:/file-share mount-point-directory
    

    onde:

    • ip-address é o endereço IP da instância do Filestore.
    • file-share é o nome do compartilhamento de arquivos na instância.
    • mount-point-directory é o caminho para onde você quer mapear o compartilhamento de arquivos do Filestore.

    É possível ver o endereço IP e o nome do compartilhamento de arquivos de uma instância de qualquer uma destas fontes:

    Por exemplo, considerando uma instância do Filestore com um endereço IP 10.0.1.2 e um compartilhamento de arquivos denominado share1, o comando a seguir monta o compartilhamento de arquivos no diretório de ponto de montagem local /mnt/render:

    sudo mount 10.0.1.2:/share1 /mnt/render
    
  7. Opcional: execute chmod para definir permissões no diretório de ativação para que alguém que não seja o usuário raiz possa gravar nele. Para definir permissões de diretório, execute o seguinte comando:

    sudo chmod permissions mount-point-directory
    

    onde:

    • permissions é o conjunto de permissões a serem concedidas. Por exemplo, chmod go+rw torna o diretório legível e gravável pelos usuários no grupo que é proprietário do diretório e de todos os outros usuários. Para ver mais informações sobre como definir permissões, consulte Como configurar o acesso em um compartilhamento de arquivos.
    • mount-point-directory é o caminho para o diretório em que o compartilhamento de arquivos do Filestore está montado.
  8. Opcional: confirme se o compartilhamento de arquivos do Filestore está ativado:

    df -h --type=nfs
    

    A saída conterá uma entrada semelhante a esta:

    Filesystem        Size    Used  Avail  Use%  Mounted on
    10.0.1.2:/share1  1018G   76M   966G   1%    /mnt/render
    10.0.2.2:/vol3    1018G   76M   966G   1%    /mnt/filestore3
  9. Se você precisar usar o bloqueio de arquivos do NFS, talvez seja necessário definir as portas usadas pelos daemons statd e nlockmgr e configurar regras de firewall para abrir essas portas.

Linux: /etc/fstab

Você pode fazer com que os compartilhamentos de arquivos sejam montados automaticamente nas VMs cliente durante a inicialização, modificando /etc/fstab arquivo:

  1. No console do Google Cloud, acesse a página "Instâncias de VM".

    Acessar a página "Instâncias de VMs"

  2. Localize a VM do Linux que você quer usar como cliente e clique em SSH para abrir um terminal nessa VM.

  3. Opcional: montar um compartilhamento de arquivos em uma VM cliente que tenha várias interfaces de rede por meio de uma rede secundária.

    Detalhes (clique para expandir)

    Para montar o compartilhamento de arquivos por meio de uma rede secundária, ou seja, uma interface diferente de nic0, modifique a política de roteamento da VM cliente:

    • Em /etc/default/instance_configs.cfg, defina a sinalização setup de NetworkInterfaces como false:
      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
         setup = false
      
    • Em /etc/network/interfaces, adicione as seguintes linhas:

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    onde:

    • filestore-reserved-address-range é o intervalo de endereços reservado para uso pela instância do Filestore.
    • default-gateway-of-nic-to-filestore é o endereço IP do gateway padrão da NIC conectada à rede VPC compartilhada com a instância do Filestore.

    Para mais informações sobre como usar instâncias do Compute Engine com várias NICs, consulte Como configurar o roteamento de políticas.

  4. Instale o NFS:

    Debian/Ubuntu

    Use os seguintes comandos para instalar o NFS no Debian ou no Ubuntu.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    Use os comandos a seguir para instalar o NFS no Red Hat Enterprise Linux ou no CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Use os comandos a seguir para instalar o NFS no SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Crie um diretório local para mapear para o compartilhamento de arquivos do Filestore:

    sudo mkdir -p mount-point-directory
    

    em que mount-point-directory é o diretório a ser criado (por exemplo, /mnt/filedir).

  6. Abra o arquivo /etc/fstab.

    sudo vim /etc/fstab
    
  7. Adicione a seguinte linha no arquivo /etc/fstab:

    ip-address:/file-share mount-point-directory nfs options,_netdev 0 0
    

    onde:

    • ip-address é o endereço IP da instância do Filestore.
    • file-share é o nome do compartilhamento de arquivos na instância.
    • mount-point-directory é o caminho para o qual você quer mapear o compartilhamento de arquivos do Filestore.
    • options são as opções de ativação do NFS. Recomendamos manter as opções de montagem do NFS padrão, com as seguintes exceções:
      • Para fazer a montagem automática, recomendamos especificar -o tcp para reduzir a latência ao montar e desmontar.
      • Se você estiver montando uma instância zonal (anteriormente SSD de alta escala) em uma VM cliente que executa o kernel do Linux versão 5.3+, considere especificar a opção de ativação nconnect para melhorar o desempenho do NFS. Recomendamos especificar até 7 conexões para o nível zonal e até 2 conexões para o nível empresarial. Em geral, quanto maior a capacidade de compartilhamento de arquivos e menos VMs de cliente conectadas, mais desempenho você terá ao especificar outras conexões com nconnect.

    Exemplo: a seguinte linha em /etc/fstab monta o compartilhamento de arquivos vol1 da instância do Filestore com o endereço IP 10.0.0.2 no diretório do ponto de montagem /mnt com as opções de montagem padrão:

    10.0.0.2:/vol1 /mnt nfs defaults,_netdev 0 0
    
  8. Ative tudo em /etc/fstab:

    sudo mount -a
    

    O compartilhamento de arquivos agora é montado automaticamente sempre que a VM cliente é inicializada.

Linux: autofs

É possível configurar autofs para montar automaticamente um compartilhamento de arquivos somente quando ele for acessado e mantê-lo desmontado quando não for usado. Em comparação com um compartilhamento de arquivos estaticamente montado em /etc/fstab, esse método ajuda a economizar recursos de VM cliente em situações em que o cliente precisa mapear para muitos pontos de montagem.

Instalar NFS e autofs na VM do cliente

  1. No console do Google Cloud, acesse a página "Instâncias de VM".

    Acessar a página "Instâncias de VMs"

  2. Localize a VM do Linux que você quer usar como cliente e clique em SSH para abrir um terminal nessa VM.

  3. Opcional: montar um compartilhamento de arquivos em uma VM cliente com várias interfaces de rede por meio de uma rede secundária.

    Detalhes (clique para expandir)

    Para montar o compartilhamento de arquivos por meio de uma rede secundária, ou seja, uma interface diferente de nic0, modifique a política de roteamento da VM cliente:

    • Em /etc/default/instance_configs.cfg, defina a sinalização setup de NetworkInterfaces como false:
      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
         setup = false
      
    • Em /etc/network/interfaces, adicione as seguintes linhas:

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    onde:

    • filestore-reserved-address-range é o intervalo de endereços reservado para uso pela instância do Filestore.
    • default-gateway-of-nic-to-filestore é o endereço IP do gateway padrão da NIC conectada à rede VPC compartilhada com a instância do Filestore.

    Para mais informações sobre como usar instâncias do Compute Engine com várias NICs, consulte Como configurar o roteamento de políticas.

  4. Instale o NFS executando os seguintes comandos:

    Debian/Ubuntu

    Use os seguintes comandos para instalar o NFS no Debian ou no Ubuntu.

    sudo apt-get -y update &&
    sudo apt-get install nfs-common

    RHEL/CentOS

    Use os comandos a seguir para instalar o NFS no Red Hat Enterprise Linux ou no CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Use os comandos a seguir para instalar o NFS no SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Na janela do terminal da VM do cliente, instale autofs:

    Debian/Ubuntu

    sudo apt-get install autofs
    

    RHEL/CentOS

    sudo yum install autofs
    

    SUSE

    sudo zypper -n install autofs
    

Configurar autofs para montar dinamicamente o compartilhamento de arquivos para a VM cliente

  1. Ativar autofs:

    sudo systemctl enable --now autofs
    
  2. Crie um diretório local para mapear para o compartilhamento de arquivos do Filestore:

    sudo mkdir -p mount-point-directory
    

    em que mount-point-directory é o diretório a ser criado. Ele não pode conter subdiretórios. Neste guia, usamos /nfs como o diretório do ponto de montagem.

  3. Abra o arquivo /etc/auto.master.

    sudo vim /etc/auto.master
    
  4. Adicione a seguinte linha ao arquivo /etc/auto.master:

    /nfs /etc/auto.nfs --timeout seconds
    

    em que seconds é a duração em segundos antes do tempo limite de ativação. O valor padrão é 300. Definir esse valor como 0 desativa a desmontagem por autofs.

  5. Crie um arquivo chamado /etc/auto.nfs:

    sudo vim /etc/auto.nfs
    
  6. Adicione a seguinte linha ao arquivo /etc/auto.nfs:

    mount-point-subdir options ip-address:/file-share
    

    onde:

    • mount-point-subdir é o subdiretório em /nfs para o qual você quer mapear o compartilhamento de arquivos do Filestore. Esse subdiretório é gerado dinamicamente e não deve existir na VM cliente.
    • options são as opções de ativação do NFS. Recomendamos manter as opções de montagem do NFS padrão, com as seguintes exceções:
      • Para fazer a montagem automática, recomendamos especificar -o tcp para reduzir a latência ao montar e desmontar.
      • Se você estiver montando uma instância zonal (anteriormente SSD de alta escala) em uma VM cliente que executa o kernel do Linux versão 5.3+, considere especificar a opção de ativação nconnect para melhorar o desempenho do NFS. Recomendamos especificar até 7 conexões para o nível zonal e até 2 conexões para o nível empresarial. Em geral, quanto maior a capacidade de compartilhamento de arquivos e menos VMs de cliente conectadas, mais desempenho você terá ao especificar outras conexões com nconnect.
      • ip-address é o endereço IP da instância do Filestore.
      • file-share é o nome do compartilhamento de arquivos na instância.

    Exemplo: a seguinte linha em /etc/auto.nfs monta o compartilhamento de arquivos vol1 da instância do Filestore com o endereço IP 10.0.0.2 no subdiretório file-shares gerado dinamicamente com acesso read/write concedido:

    file-shares -rw 10.0.0.2:/vol1
    

Testar a configuração

  1. Se o compartilhamento de arquivos estiver atualmente montado, será necessário desmontá-lo:

    sudo umount mount-point-directory
    

    em que mount-point-directory é o caminho para o qual o compartilhamento de arquivos do Filestore é mapeado.

    Se houver uma entrada /etc/fstab que monta o compartilhamento de arquivos na inicialização do sistema, remova-o.

  2. Atualize autofs:

    sudo service autofs reload
    
  3. Confirme se sua configuração funciona:

    ls mount-point-directory/mount-point-subdir
    

    onde:

    • mount-point-directory é o diretório do ponto de montagem indicado no arquivo /etc/auto.master.
    • mount-point-subdir é o subdiretório do ponto de ativação indicado no arquivo /etc/auto.nfs.

    No nosso exemplo, o comando seria:

    ls /nfs/file-shares
    

    Se o recurso de ativação automática estiver configurado corretamente, o sistema ativará primeiro o compartilhamento de arquivos e, em seguida, retornará os resultados do comando ls. O compartilhamento de arquivos é automaticamente desativado após um período de inatividade, que é definido pelo valor timeout especificado no arquivo /etc/auto.master.

Windows

Conectar-se à VM do Windows

  1. No console do Google Cloud, acesse a página "Instâncias de VM".

    Acessar a página "Instâncias de VMs"

  2. Localize a VM do Windows que você quer usar como cliente e clique em RDP para abrir uma conexão de área de trabalho remota com essa VM. Para obter mais informações, consulte Como se conectar a instâncias do Windows.

Instalar o NFS na VM do Windows

  1. Na VM do Windows, abra o PowerShell como administrador.
  2. No PowerShell, instale o cliente NFS:

    Install-WindowsFeature -Name NFS-Client
    
  3. Reinicie a instância da VM do Windows conforme solicitado e abra uma nova conexão de área de trabalho remota.

Configurar o código de usuário utilizado pelo cliente NFS

  1. Em PowerShell, execute os seguintes comandos para criar duas novas entradas de registro, AnonymousUid e AnonymousGid:

    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
        -Name "AnonymousUid" -Value "0" -PropertyType DWORD
    
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
        -Name "AnonymousGid" -Value "0" -PropertyType DWORD
    
  2. Reinicie o serviço do cliente NFS:

    nfsadmin client stop
    
    nfsadmin client start
    

Mapear o compartilhamento de arquivos para a VM do Windows

  1. Saia de PowerShell:

    exit
    
  2. Opcional: montar um compartilhamento de arquivos em uma VM cliente com várias interfaces de rede por meio de uma rede secundária.

    Detalhes (clique para expandir)

    Para ativar o compartilhamento de arquivos por meio de uma rede secundária, ou seja, uma interface diferente de nic0, modifique a política de roteamento da VM do cliente: Execute:

    route -p ^
        add filestore-reserved-address-range ^
        mask address-range-subnet-mask ^
        default-gateway-of-nic-to-filestore
    

    onde:

    • filestore-reserved-address-range é o intervalo de endereços reservado para uso pela instância do Filestore.
    • address-range-subnet-mask é a máscara de sub-rede de filestore-reserved-address-range. Por exemplo, um intervalo de endereços reservado /29 usaria a máscara de sub-rede 255.255.255.248.
    • default-gateway-of-nic-to-filestore é o endereço IP do gateway padrão da NIC conectada à rede VPC compartilhada com a instância do Filestore.

    Exemplo:

    route -p add 10.65.21.176 mask 255.255.255.248 10.128.0.1
    

    Para mais informações sobre como usar instâncias do Compute Engine com várias NICs, consulte Como configurar o roteamento de políticas.

  3. Em Command Prompt, mapeie o compartilhamento de arquivos para uma letra de unidade:

    mount -o mtype=hard filestore-ip:/file-share-name drive-letter:
    

    onde:

    • filestore-ip é o endereço IP da instância do Filestore.
    • file-share-name é o nome do compartilhamento de arquivos na instância do Filestore.
    • drive-letter é a letra da unidade que você quer atribuir ao mapeamento.

    Exemplo

    O comando a seguir mapeia o compartilhamento de arquivos vol1 na instância do Filestore com o endereço IP 10.0.0.2 para o drive z: na VM do Windows do cliente:

    mount -o mtype=hard 10.0.0.2:/vol1 z:
    
  4. Opcional: para usar o bloqueio de arquivos NFS, verifique o seguinte:

    1. Verifique se as regras de firewall estão configuradas para todas as portas NFS necessárias, incluindo statd e nlockmgr.

    2. Verifique se o cliente NFS do Windows está configurado com portas reservadas usando um comando semelhante ao seguinte no PowerShell:

      nfsadmin client config protocol=tcp UseReservedPorts=yes
      nfsadmin client stop
      nfsadmin client start
      

Como criar e montar subdiretórios no compartilhamento de arquivos

Depois que o compartilhamento de arquivos for montado em uma VM cliente, você poderá criar subdiretórios no compartilhamento de arquivos, que os clientes poderão montar diretamente em vez de montar o compartilhamento de arquivos inteiro:

  1. Para criar um subdiretório no compartilhamento de arquivos montado, execute:

    sudo mkdir -p mount-point-directory/file-share-sub-dir
    

    onde:

    • mount-point-directory é o caminho a que o compartilhamento de arquivos é associado;
    • file-share-sub-dir é o caminho do subdiretório no compartilhamento de arquivos que você quer criar.

    Esse comando cria o subdiretório na VM do cliente e no compartilhamento de arquivos. Por exemplo, se você tiver montado o compartilhamento de arquivos 10.0.0.2:/vol1 no diretório /mnt na VM cliente, o comando sudo mkdir -p /mnt/nfs criará 10.0.0.2:/vol1/nfs no compartilhamento de arquivos e /mnt/nfs na VM do cliente.

  2. Opcional: se você quiser montar o subdiretório de compartilhamento de arquivos para o diretório na VM do cliente em que o compartilhamento de arquivos está atualmente montado, primeiro desmonte o compartilhamento de arquivos:

    sudo umount mount-point-directory
    

    em que mount-point-directory é o diretório ao qual o compartilhamento de arquivos está mapeado.

  3. Monte o subdiretório:

    sudo mount ip-address:/file-share/file-share-sub-dir mount-point-directory
    

    onde:

    • ip-address é o endereço IP da instância do Filestore.
    • file-share é o nome do compartilhamento de arquivos na instância.
    • file-share-sub-dir é o caminho do subdiretório no compartilhamento de arquivos a ser montado.
    • mount-point-directory é o caminho para onde você quer mapear o compartilhamento de arquivos do Filestore.

    Exemplo: no seguinte comando:

    sudo mount 10.0.0.2:/vol1/nfs /mnt/nfs
    
    • 10.0.0.2 é o endereço IP da instância do Filestore.
    • vol1 é o nome do compartilhamento de arquivos;
    • nfs é um subdiretório de compartilhamento de arquivos;
    • /mnt/nfs é o diretório na VM cliente a que o subdiretório de compartilhamento de arquivos nfs é associado.

A seguir