Montar partilhas de ficheiros em clientes do Compute Engine

Esta página mostra como montar uma partilha de ficheiros do Filestore numa instância de máquina virtual (VM) do Compute Engine que esteja no mesmo Google Cloud projeto e rede VPC. Para saber como montar partilhas de ficheiros em clientes numa rede remota, consulte o artigo Montar partilhas de ficheiros em clientes remotos. Se quiser aceder a instâncias do Filestore a partir de clusters do Google Kubernetes Engine, consulte o artigo Aceda a instâncias do Filestore com o controlador CSI do Filestore.

Antes de começar

Certifique-se de que a firewall de rede está configurada corretamente para utilização com o Filestore. Consulte o artigo Configurar regras de firewall para ver detalhes.

Montar uma partilha de ficheiros numa instância de VM do Compute Engine

Use um dos seguintes procedimentos para montar uma partilha de ficheiros do Filestore numa VM do Compute Engine. Recomendamos a montagem num VM n1-standard-8 ou superior para um desempenho ideal.

Linux: mount

Para montar manualmente uma partilha de ficheiros numa VM cliente do Linux:

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceda à página de instâncias de VM

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

  3. Opcional: montar uma partilha de ficheiros numa VM cliente com várias interfaces de rede através de uma rede secundária.

    Detalhes (clique para expandir)

    Se quiser montar a partilha de ficheiros através de uma rede secundária, ou seja, uma interface que não seja nic0, tem de modificar a política de encaminhamento da VM do cliente. Corrida:

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

    where:

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

    Para mais informações sobre a utilização de instâncias do Compute Engine com várias NICs, consulte o artigo Configure o encaminhamento para uma interface de rede adicional.

  4. Instalar NFS:

    Debian/Ubuntu

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

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

    RHEL/CentOS

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

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Use os seguintes comandos para instalar o NFS no SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Crie um diretório local para mapear para a partilha de ficheiros do Filestore:

    sudo mkdir -p mount-point-directory
    

    onde mount-point-directory é o diretório a criar, por exemplo, /mnt/filedir.

  6. Monte a partilha de ficheiros a partir da instância do Filestore executando o comando mount. Pode usar quaisquer opções de montagem NFS. Para o melhor desempenho, recomendamos a utilização das seguintes opções de NFS:mount

    Opção Descrição
    hard O cliente NFS tenta novamente os pedidos NFS indefinidamente. Para reduzir a possibilidade de interrupções de E/S quando a instância do Filestore é reiniciada, recomendamos que use a opção de montagem hard para clientes Linux e Windows.
    timeo=600 O cliente NFS aguarda 600 decissegundos (60 segundos) antes de tentar novamente um pedido NFS.
    retrans=3 O cliente NFS tenta fazer pedidos NFS três vezes antes de tomar medidas de recuperação adicionais.
    rsize=524288 O cliente NFS pode receber um máximo de 524 288 bytes do servidor NFS por pedido READ.
    Nota: para instâncias de nível básico, defina o valor de rsize como 1048576.
    wsize=1048576 O cliente NFS pode receber um máximo de 1 048 576 bytes do servidor NFS por pedido WRITE.
    resvport O cliente NFS usa uma porta de origem privilegiada quando comunica com o servidor NFS para este ponto de montagem.
    async O cliente NFS atrasa o envio de escritas de aplicações para o servidor NFS até que determinadas condições sejam cumpridas.
    Aviso: a utilização da opção sync reduz significativamente o desempenho.

    • Para reduzir a latência de montagem, especifique a opção -o tcp.
    • Se estiver a montar uma instância regional, zonal ou empresarial numa VM cliente que esteja a executar a versão 5.3 ou superior do kernel Linux, considere especificar a opção de montagem nconnect para aumentar o desempenho do NFS. Para níveis de serviço específicos, recomendamos que especifique o seguinte número de ligações entre o cliente e o servidor:

      Nível Capacidade Número de associações
      Regional, zonal 1 a 9,75 TiB nconnect=2
      Regional, zonal 10 a 100 TiB nconnect=7
      Enterprise - nconnect=2
      SSD de grande escala - nconnect=7

      Em geral, quanto maior for a capacidade de partilha de ficheiros e menor for o número de VMs de cliente de ligação, mais desempenho ganha ao especificar ligações adicionais com nconnect.

    Execute o comando mount com as suas opções preferidas, semelhante ao seguinte:

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

    where:

    • ip-address é o endereço IP da instância do Filestore.
    • file-share é o nome da partilha de ficheiros na instância.
    • mount-point-directory é o caminho para o qual quer mapear a partilha de ficheiros do Filestore.

    Pode obter o endereço IP e o nome da partilha de ficheiros de uma instância a partir de qualquer uma das seguintes origens:

    Por exemplo, dada uma instância do Filestore com um endereço IP 10.0.1.2 e uma partilha de ficheiros denominada share1, o seguinte comando monta a partilha de ficheiros no diretório do ponto de montagem local /mnt/render:

    sudo mount 10.0.1.2:/share1 /mnt/render
    
  7. Opcional: execute chmod para definir autorizações no diretório de montagem para que alguém que não seja um utilizador root possa escrever nele. Para definir as autorizações de diretório, execute o seguinte comando:

    sudo chmod permissions mount-point-directory
    

    where:

    • permissions é o conjunto de autorizações a conceder. Por exemplo, chmod go+rw torna o diretório legível e gravável pelos membros do grupo proprietário do diretório e todos os outros utilizadores. Para mais informações sobre como definir autorizações, consulte o artigo Configurar o acesso numa partilha de ficheiros.
    • mount-point-directory é o caminho para o diretório onde a partilha de ficheiros do Filestore está montada.
  8. Opcional: confirme que a partilha de ficheiros do Filestore está montada:

    df -h --type=nfs
    

    O resultado deve conter uma entrada semelhante à seguinte:

    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 precisar de usar o bloqueio de ficheiros NFS, pode ter de definir as portas usadas pelos daemons statd e nlockmgr e configurar regras de firewall para abrir essas portas.

Linux: /etc/fstab

Pode fazer com que as partilhas de ficheiros sejam montadas automaticamente nas VMs de cliente durante o arranque modificando o ficheiro /etc/fstab do cliente:

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceda à página de instâncias de VM

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

  3. Opcional: montar uma partilha de ficheiros numa VM cliente que tenha várias interfaces de rede através de uma rede secundária.

    Detalhes (clique para expandir)

    Se quiser montar a partilha de ficheiros através de uma rede secundária, ou seja, uma interface diferente de nic0, tem de modificar a política de encaminhamento da VM do cliente:

    • Em /etc/default/instance_configs.cfg, defina a flag setup para 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
      

    where:

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

    Para mais informações sobre a utilização de instâncias do Compute Engine com várias NICs, consulte o artigo Configure o encaminhamento para uma interface de rede adicional.

  4. Instalar NFS:

    Debian/Ubuntu

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

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

    RHEL/CentOS

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

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Use os seguintes comandos para instalar o NFS no SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Crie um diretório local para mapear para a partilha de ficheiros do Filestore:

    sudo mkdir -p mount-point-directory
    

    onde mount-point-directory é o diretório a criar, por exemplo, /mnt/filedir.

  6. Abra o ficheiro /etc/fstab:

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

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

    where:

    • ip-address é o endereço IP da instância do Filestore.
    • file-share é o nome da partilha de ficheiros na instância.
    • mount-point-directory é o caminho para o qual quer mapear a partilha de ficheiros do Filestore.
    • options são as opções de montagem do NFS. Recomendamos que mantenha as opções de montagem NFS predefinidas, com as seguintes exceções:

      • Para a montagem automática, recomendamos que especifique -o tcp para reduzir a latência ao montar e desmontar.
      • Se estiver a montar uma instância regional, zonal ou empresarial numa VM cliente que esteja a executar a versão 5.3 ou superior do kernel Linux, considere especificar a opção de montagem nconnect para aumentar o desempenho do NFS. Para níveis de serviço específicos, recomendamos que especifique o seguinte número de ligações entre o cliente e o servidor:
      Nível Capacidade Número de associações
      Regional, zonal 1 a 9,75 TiB nconnect=2
      Regional, zonal 10 a 100 TiB nconnect=7
      Enterprise - nconnect=2
      SSD de grande escala - nconnect=7

      Em geral, quanto maior for a capacidade de partilha de ficheiros e menor for o número de VMs de cliente de ligação, mais desempenho ganha ao especificar ligações adicionais com nconnect.

    Exemplo: a seguinte linha em /etc/fstab monta a partilha de ficheiros 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 predefinidas:

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

        sudo mount -a
    

    A partilha de ficheiros é agora montada automaticamente sempre que a VM do cliente é iniciada.

Linux: autofs

Pode configurar o autofs para montar automaticamente uma partilha de ficheiros apenas quando esta é acedida e mantê-la desmontada quando não é usada. Em comparação com a montagem estática de uma partilha de ficheiros em /etc/fstab, este método ajuda a conservar os recursos da VM do cliente em situações em que o cliente precisa de mapear para muitos pontos de montagem.

Instale o NFS e o autofs na VM do cliente

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceda à página de instâncias de VM

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

  3. Opcional: montar uma partilha de ficheiros numa VM cliente com várias interfaces de rede através de uma rede secundária.

    Detalhes (clique para expandir)

    Se quiser montar a partilha de ficheiros através de uma rede secundária, ou seja, uma interface diferente de nic0, tem de modificar a política de encaminhamento da VM do cliente:

    • Em /etc/default/instance_configs.cfg, defina a flag setup para 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

    where:

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

    Para mais informações sobre a utilização de instâncias do Compute Engine com várias NICs, consulte o artigo Configure o encaminhamento para uma interface de rede adicional.

  4. Instale o NFS executando os seguintes comandos:

    Debian/Ubuntu

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

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

    RHEL/CentOS

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

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Use os seguintes comandos para instalar o NFS no SUSE.

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

    Debian/Ubuntu

    sudo apt-get install autofs
    

    RHEL/CentOS

    sudo yum install autofs
    

    SUSE

    sudo zypper -n install autofs
    

Configure o autofs para montar dinamicamente a partilha de ficheiros na VM do cliente

  1. Ative a opção autofs:

    sudo systemctl enable --now autofs
    
  2. Crie um diretório local para mapear para a partilha de ficheiros do Filestore:

    sudo mkdir -p mount-point-directory
    

    onde mount-point-directory é o diretório a criar. Não pode conter subdiretórios. Neste guia, usamos /nfs como o diretório do ponto de montagem.

  3. Abra o ficheiro /etc/auto.master:

    sudo vim /etc/auto.master
    
  4. Adicione a seguinte linha no ficheiro /etc/auto.master:

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

    em que seconds é a duração em segundos antes do limite de tempo da montagem. O valor predefinido é 300. Se definir este valor como 0, desativa a desmontagem por parte do autofs.

  5. Crie um ficheiro denominado /etc/auto.nfs:

    sudo vim /etc/auto.nfs
    
  6. Adicione a seguinte linha no ficheiro /etc/auto.nfs:

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

    where:

    • mount-point-subdir é a subdiretoria em /nfs para a qual quer mapear a partilha de ficheiros do Filestore. Este subdiretório é gerado dinamicamente e não deve existir na VM do cliente.
    • options são as opções de montagem do NFS. Recomendamos que mantenha as opções de montagem NFS predefinidas, com as seguintes exceções:

      • Para a montagem automática, recomendamos que especifique -o tcp para reduzir a latência ao montar e desmontar.
      • Se estiver a montar uma instância regional, zonal ou empresarial numa VM cliente que esteja a executar a versão 5.3 ou superior do kernel Linux, considere especificar a opção de montagem nconnect para aumentar o desempenho do NFS. Para níveis de serviço específicos, recomendamos que especifique o seguinte número de ligações entre o cliente e o servidor:
      Nível Capacidade Número de associações
      Regional, zonal 1 a 9,75 TiB nconnect=2
      Regional, zonal 10 a 100 TiB nconnect=7
      Enterprise - nconnect=2
      SSD de grande escala - nconnect=7

      Em geral, quanto maior for a capacidade de partilha de ficheiros e menor for o número de VMs de cliente de ligação, mais desempenho ganha ao especificar ligações adicionais com nconnect.

      • ip-address é o endereço IP da instância do Filestore.
      • file-share é o nome da partilha de ficheiros na instância.

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

    file-shares -rw 10.0.0.2:/vol1
    

Testar a configuração

  1. Se a partilha de ficheiros estiver montada, tem de desmontá-la:

    sudo umount mount-point-directory
    

    onde mount-point-directory é o caminho para o qual a partilha de ficheiros do Filestore está mapeada.

    Se existir uma entrada /etc/fstab que monte a partilha de ficheiros no arranque do sistema, certifique-se de que a remove.

  2. Atualizar autofs:

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

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

    where:

    • mount-point-directory é o diretório do ponto de montagem indicado no ficheiro /etc/auto.master.
    • mount-point-subdir é a subdiretoria do ponto de montagem indicada no ficheiro /etc/auto.nfs.

    No nosso exemplo, o comando seria:

    ls /nfs/file-shares
    

    Se a montagem automática estiver configurada corretamente, o sistema monta primeiro a partilha de ficheiros e, em seguida, devolve os resultados do comando ls. A partilha de ficheiros é desmontada automaticamente após um período de inatividade, que é definido no valor timeout especificado no ficheiro /etc/auto.master.

Windows

Estabeleça ligação à VM do Windows

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceda à página de instâncias de VM

  2. Localize a VM do Windows que quer usar como cliente e, de seguida, clique em RDP para abrir uma ligação ao ambiente de trabalho remoto a essa VM. Para mais informações, consulte o artigo Estabelecer ligação a instâncias do Windows.

Instale o NFS na VM do Windows

  1. Na VM do Windows, abra o PowerShell como administrador para garantir o acesso e as autorizações NFS adequados.
  2. No PowerShell, instale o cliente NFS:

    Install-WindowsFeature -Name NFS-Client
    
  3. Reinicie a instância de VM do Windows conforme solicitado e, em seguida, abra uma nova ligação ao ambiente de trabalho remoto.

Configure o ID do utilizador usado pelo cliente NFS

  1. No PowerShell, execute os seguintes comandos para criar duas novas entradas de registo, 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 de cliente NFS:

    nfsadmin client stop
    
    nfsadmin client start
    

Mapeie a partilha de ficheiros para a VM do Windows

  1. Saia do PowerShell para sair da sessão do administrador. Se omitir este passo, as aplicações em execução na sessão do utilizador padrão não vão poder ver nem aceder a esta partilha de ficheiros.

    exit
    
  2. Opcional: montar uma partilha de ficheiros numa VM cliente com várias interfaces de rede através de uma rede secundária.

    Detalhes (clique para expandir)

    Se quiser montar a partilha de ficheiros através de uma rede secundária, ou seja, uma interface que não seja nic0, tem de modificar a política de encaminhamento da VM do cliente. Corrida:

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

    where:

    • filestore-reserved-address-range é o intervalo de endereços reservado para utilização 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 reservados /29 usaria a máscara de sub-rede 255.255.255.248.
    • default-gateway-of-nic-to-filestore é o endereço IP do gateway predefinido da NIC ligada à rede VPC partilhada 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 a utilização de instâncias do Compute Engine com várias NICs, consulte o artigo Configure o encaminhamento para uma interface de rede adicional.

  3. A partir de Command Prompt, mapeie a partilha de ficheiros para uma letra de unidade:

    net use drive-letter: \\filestore-ip\file-share-name
    

    where:

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

    Exemplo

    O seguinte comando mapeia a partilha de ficheiros vol1 na instância do Filestore com o endereço IP 10.0.0.2 para a unidade z: na VM Windows do cliente:

    net use Z: \\10.0.0.2\vol1
    
  4. Opcional: para usar o bloqueio de ficheiros NFS, verifique o seguinte:

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

    2. Certifique-se de que o cliente NFS do Windows está configurado com portas reservadas através de um comando semelhante ao seguinte no PowerShell:

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

Criar e montar subdiretórios na partilha de ficheiros

Assim que a partilha de ficheiros estiver montada numa VM cliente, pode criar subdiretórios na partilha de ficheiros, que os clientes podem, então, montar diretamente em vez de montar toda a partilha de ficheiros:

  1. Para criar uma subdiretoria na partilha de ficheiros montada, execute:

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

    where:

    • mount-point-directory é o caminho para o qual mapeia a partilha de ficheiros.
    • file-share-sub-dir é o caminho do subdiretório na partilha de ficheiros que quer criar.

    Este comando cria o subdiretório na VM do cliente e na partilha de ficheiros. Por exemplo, se tiver montado a partilha de ficheiros 10.0.0.2:/vol1 no diretório /mnt na VM do cliente, o comando sudo mkdir -p /mnt/nfs cria 10.0.0.2:/vol1/nfs na partilha de ficheiros e /mnt/nfs na VM do cliente.

  2. Opcional: se quiser montar o subdiretório da partilha de ficheiros no diretório da VM cliente onde a partilha de ficheiros está montada, tem de desmontar primeiro a partilha de ficheiros:

    sudo umount mount-point-directory
    

    onde mount-point-directory é o diretório ao qual a partilha de ficheiros está mapeada.

  3. Monte o subdiretório:

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

    where:

    • ip-address é o endereço IP da instância do Filestore.
    • file-share é o nome da partilha de ficheiros na instância.
    • file-share-sub-dir é o caminho da subdiretoria na partilha de ficheiros a montar.
    • mount-point-directory é o caminho para o qual quer mapear a partilha de ficheiros 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 da partilha de ficheiros.
    • nfs é uma subdiretoria de partilha de ficheiros.
    • /mnt/nfs é o diretório na VM do cliente para o qual o subdiretório nfs de partilha de ficheiros está mapeado.

O que se segue?