Activa los archivos compartidos en clientes de Compute Engine

En esta página, se muestra cómo activar un archivo compartido de Filestore en una instancia de máquina virtual (VM) de Compute Engine que se encuentra en el mismo proyecto de Google Cloud y en la red de VPC. Si deseas obtener información para activar archivos compartidos en clientes en una red remota, consulta Activa los archivos compartidos en clientes en una red remota. Si, en cambio, buscas acceder a instancias de Filestore desde clústeres de Google Kubernetes Engine, consulta Accede a instancias de Filestore con el controlador de CSI de Filestore.

Antes de comenzar

Asegúrate de que el firewall de la red esté configurado de forma correcta para usarlo con Filestore. Consulta Configura las reglas de firewall para obtener más información.

Activa un archivo compartidos en una instancia de VM de Compute Engine

Usa uno de los siguientes procedimientos para activar un archivo compartido de Filestore en una VM de Compute Engine. Recomendamos que la actives en una VM n1-standard-8 o superior para obtener un rendimiento óptimo.

Linux: activación

Para activar manualmente un archivo compartido en una máquina virtual cliente de Linux:

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Ubica la VM de Linux que quieras usar como cliente y, luego, haz clic en SSH para abrir una terminal en esa VM.

  3. Opcional: Activación de un archivo compartido en una máquina virtual de cliente con múltiples interfaces de red a través de una red secundaria.

    Detalles (haz clic para expandir)

    Si deseas activar los archivos compartidos a través de una red secundaria, es decir, una interfaz que no sea nic0, debes modificar la política de enrutamiento de la VM del cliente. Ejecutar:

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

    Donde:

    • filestore-reserved-address-range es el rango de direcciones reservado para que use la instancia de Filestore.
    • default-gateway-of-nic-to-filestore es la dirección IP de la puerta de enlace predeterminada de la NIC conectada a la red VPC que se comparte con la instancia de Filestore.

    Para obtener más información sobre el uso de instancias de Compute Engine con varias NIC, consulte Configuración de políticas de enrutamiento.

  4. Instala NFS:

    Debian/Ubuntu

    Usa los siguientes comandos para instalar NFS en Debian o Ubuntu.

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

    RHEL y CentOS

    Usa los siguientes comandos para instalar NFS en Red Hat Enterprise Linux o CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Usa los siguientes comandos para instalar NFS en SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Haga un directorio local para asignar al archivo compartido de Filestore:

    sudo mkdir -p mount-point-directory
    

    en el que mount-point-directory es el directorio que se desea crear, por ejemplo, /mnt/filedir.

  6. Activa el archivo compartido desde la instancia de Filestore mediante la ejecución del comando mount. Puedes usar cualquiera de las opciones de activación de NFS. Para obtener el mejor rendimiento, recomendamos usar las siguientes opciones mount de NFS:

    Opción Descripción
    hard El cliente de NFS reintenta las solicitudes NFS indefinidamente. Para reducir la posibilidad de interrupciones de E/S cuando se reinicia la instancia de Filestore, recomendamos usar la opción de activación hard para los clientes de Linux y Windows.
    timeo=600 El cliente de NFS espera 600 decisegundos (60 segundos) antes de volver a intentar una solicitud NFS.
    retrans=3 El cliente de NFS intenta las solicitudes NFS tres veces antes de tomar más medidas de recuperación.
    rsize=262144 El cliente NFS puede recibir un máximo de 262,144 bytes del servidor NFS por solicitud READ.
    Nota: Para las instancias de nivel básico, establece el valor rsize en 1048576.
    wsize=1048576 El cliente de NFS puede recibir un máximo de 1,048,576 bytes del servidor NFS por solicitud WRITE.
    resvport El cliente de NFS utiliza un puerto de origen privilegiado cuando se comunica con el servidor NFS de este punto de activación.
    async El cliente de NFS retrasa el envío de escrituras de la aplicación al servidor NFS hasta que se cumplen determinadas condiciones.
    Precaución: Usar la opción sync reduce significativamente el rendimiento.
    • Para reducir la latencia de activación, especifica la opción -o tcp.
    • Si activas una instancia empresarial o zonal (antes llamada SSD de gran escala) en una VM cliente que ejecuta la versión 5.3 o posterior del kernel de Linux, considera especificar la opción de activación nconnect para aumentar el rendimiento de NFS. Recomendamos especificar hasta 7 conexiones para el nivel zonal y hasta 2 para el nivel empresarial. En general, cuanto mayor sea la capacidad de los archivos compartidos y menos conexiones de las VM del cliente, más rendimiento obtendrás si especificas conexiones adicionales con nconnect.

    Ejecuta el comando mount con tus opciones preferidas, de manera similar a la siguiente:

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

    Donde:

    • ip-address es la dirección IP para la instancia de Filestore.
    • file-share es el nombre del archivo compartido en la instancia.
    • mount-point-directory es la ruta a la que desea asignar el archivo compartido de Filestore.

    Puedes obtener la dirección IP y el nombre del archivo compartido de una instancia desde cualquiera de las siguientes fuentes:

    Por ejemplo, dada una instancia de Filestore con una dirección IP 10.0.1.2 y un archivo compartido llamado share1, el siguiente comando activa el archivo compartido en el directorio del punto de activación local /mnt/render:

    sudo mount 10.0.1.2:/share1 /mnt/render
    
  7. Opcional: Ejecuta chmod para establecer permisos en el directorio de activación a fin de que alguien que no sea usuarios raíz pueda escribir en él. Para establecer permisos de directorio, ejecuta el siguiente comando:

    sudo chmod permissions mount-point-directory
    

    Donde:

    • permissions es el conjunto de permisos que se otrogará. Por ejemplo, chmod go+rw hace que el directorio sea legible por los miembros del grupo (y también que estos puedan escribir en él) que posee el directorio y por todos los demás usuarios. Para obtener más información sobre la configuración de permisos, consulta Configura el acceso en un archivo compartido.
    • mount-point-directory es la ruta al directorio donde se activa el archivo compartido de Filestore.
  8. Opcional: confirme que el archivo compartido de Filestore esté activado:

    df -h --type=nfs
    

    El resultado debe contener una entrada similar a lo siguiente:

    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. Si necesitas usar el bloqueo de archivos NFS, es posible que debas hacer lo siguiente:Configura los puertos utilizado porstatd ynlockmgr daemons yconfigura reglas de firewall para abrir esos puertos.

Linux: /etc/fstab

Puede hacer que los archivos compartidos se activen automáticamente en las máquinas virtuales del cliente durante el arranque modificando el archivo /etc/fstab del cliente:

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Ubica la VM de Linux que quieras usar como cliente y, luego, haz clic en SSH para abrir una terminal en esa VM.

  3. Opcional: Activación de un archivo compartido en una VM de cliente que tiene varias interfaces de red a través de una red secundaria.

    Detalles (haz clic para expandir)

    Si deseas activar los archivos compartidos a través de una red secundaria, es decir, una interfaz que no sea nic0, debes modificar la política de enrutamiento de la VM del cliente:

    • En /etc/default/instance_configs.cfg, configura la marca setup de NetworkInterfaces en false:
      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
         setup = false
      
    • En /etc/network/interfaces, agrega las siguientes líneas:

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

    Donde:

    • filestore-reserved-address-range es el rango de direcciones reservado para que use la instancia de Filestore.
    • default-gateway-of-nic-to-filestore es la dirección IP de la puerta de enlace predeterminada de la NIC conectada a la red VPC que se comparte con la instancia de Filestore.

    Para obtener más información sobre el uso de instancias de Compute Engine con varias NIC, consulte Configuración de políticas de enrutamiento.

  4. Instala NFS:

    Debian/Ubuntu

    Usa los siguientes comandos para instalar NFS en Debian o Ubuntu.

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

    RHEL y CentOS

    Usa los siguientes comandos para instalar NFS en Red Hat Enterprise Linux o CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Usa los siguientes comandos para instalar NFS en SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. Haga un directorio local para asignar al archivo compartido de Filestore:

    sudo mkdir -p mount-point-directory
    

    en el que mount-point-directory es el directorio que se desea crear, por ejemplo, /mnt/filedir.

  6. Abre el archivo /etc/fstab:

    sudo vim /etc/fstab
    
  7. Agrega la siguiente línea en el archivo /etc/fstab:

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

    Donde:

    • ip-address es la dirección IP de la instancia de Filestore.
    • file-share es el nombre del archivo compartido de la instancia.
    • mount-point-directory es la ruta a la que desea asignar el archivo compartido de Filestore.
    • options son las opciones de activación NFS. Recomendamos mantener las opciones de activación de NFS predeterminadas, con las siguientes excepciones:
      • Para la activación automática, recomendamos especificar -o tcp a fin de reducir la latencia cuando se activa y desactiva.
      • Si activas una instancia zonal (antes llamada SSD de gran escala) en una VM de cliente que ejecuta la versión 5.3 o posterior del kernel de Linux, considera especificar la opción de activación nconnect para aumentar el rendimiento de NFS. Recomendamos especificar hasta 7 conexiones para el nivel zonal y hasta 2 para el nivel empresarial. En general, cuanto mayor sea la capacidad de los archivos compartidos y menos conexiones de las VM de cliente, más rendimiento obtendrás si especificas conexiones adicionales con nconnect.

    Ejemplo: La siguiente línea en /etc/fstab activa el archivo compartido vol1 de la instancia de Filestore con la dirección IP 10.0.0.2 en el directorio del punto de activación /mnt con las opciones de activación predeterminadas:

    10.0.0.2:/vol1 /mnt nfs defaults,_netdev 0 0
    
  8. Activa todo en /etc/fstab:

    sudo mount -a
    

    El archivo compartido ahora se activa automáticamente cada vez que se inicia la VM del cliente.

Linux: autofs

Puedes configurar autofs para activar automáticamente un archivo compartido solo cuando se accede a él y mantenerlo desactivado cuando no se use. En comparación con tener un archivo compartido activado de forma estática en /etc/fstab, este método ayuda a conservar los recursos de la VM del cliente en situaciones en las que el cliente necesita mapear a muchos puntos de activación.

Instala NFS y autofs en la VM cliente

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Ubica la VM de Linux que quieras usar como cliente y, luego, haz clic en SSH para abrir una terminal en esa VM.

  3. Opcional: Activación de un archivo compartido en una máquina virtual de cliente con múltiples interfaces de red a través de una red secundaria.

    Detalles (haz clic para expandir)

    Si deseas activar los archivos compartidos a través de una red secundaria, es decir, una interfaz que no sea nic0, debes modificar la política de enrutamiento de la VM del cliente:

    • En /etc/default/instance_configs.cfg, configura la marca setup de NetworkInterfaces en false:
      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
         setup = false
      
    • En /etc/network/interfaces, agrega las siguientes líneas:

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

    Donde:

    • filestore-reserved-address-range es el rango de direcciones reservado para que use la instancia de Filestore.
    • default-gateway-of-nic-to-filestore es la dirección IP de la puerta de enlace predeterminada de la NIC conectada a la red VPC que se comparte con la instancia de Filestore.

    Para obtener más información sobre el uso de instancias de Compute Engine con varias NIC, consulte Configuración de políticas de enrutamiento.

  4. Ejecuta los siguientes comandos para instalar NFS:

    Debian y Ubuntu

    Usa los siguientes comandos para instalar NFS en Debian o Ubuntu.

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

    RHEL y CentOS

    Usa los siguientes comandos para instalar NFS en Red Hat Enterprise Linux o CentOS.

    sudo yum update &&
    sudo yum install nfs-utils

    SUSE

    Usa los siguientes comandos para instalar NFS en SUSE.

    sudo zypper update &&
    sudo zypper -n install nfs-client
  5. En la ventana de la terminal de la VM de cliente, instala autofs:

    Debian/Ubuntu

    sudo apt-get install autofs
    

    RHEL y CentOS

    sudo yum install autofs
    

    SUSE

    sudo zypper -n install autofs
    

Configure autofs para activar dinámicamente el archivo compartido en la máquina virtual del cliente

  1. Habilitar autofs:

    sudo systemctl enable --now autofs
    
  2. Haga un directorio local para asignar al archivo compartido de Filestore:

    sudo mkdir -p mount-point-directory
    

    En el ejemplo anterior, mount-point-directory es el directorio que se creará. No debe contener ningún subdirectorio. En esta guía, usamos /nfs como el directorio del punto de activación.

  3. Abre el archivo /etc/auto.master:

    sudo vim /etc/auto.master
    
  4. Agrega la siguiente línea en el archivo /etc/auto.master:

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

    donde seconds es la duración en segundos antes del tiempo de espera de activación. El valor predeterminado es 300. Establecer este valor en 0 deshabilita la desactivación mediante autofs.

  5. Crea un archivo llamado /etc/auto.nfs:

    sudo vim /etc/auto.nfs
    
  6. Agrega la siguiente línea en el archivo /etc/auto.nfs:

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

    Donde:

    • mount-point-subdir es el subdirectorio en /nfs al que deseas asignar el archivo compartido de Filestore. Este subdirectorio se genera de forma dinámica y no debe existir en la VM del cliente.
    • options son las opciones de activación NFS. Recomendamos mantener las opciones de activación de NFS predeterminadas, con las siguientes excepciones:
      • Para la activación automática, recomendamos especificar -o tcp a fin de reducir la latencia cuando se activa y desactiva.
      • Si activas una instancia zonal (antes llamada SSD de gran escala) en una VM de cliente que ejecuta la versión 5.3 o posterior del kernel de Linux, considera especificar la opción de activación nconnect para aumentar el rendimiento de NFS. Recomendamos especificar hasta 7 conexiones para el nivel zonal y hasta 2 para el nivel empresarial. En general, cuanto mayor sea la capacidad de los archivos compartidos y menos conexiones de las VM de cliente, más rendimiento obtendrás si especificas conexiones adicionales con nconnect.
      • ip-address es la dirección IP para la instancia de Filestore.
      • file-share es el nombre del archivo compartido en la instancia.

    Ejemplo: La siguiente línea en /etc/auto.nfs activa el archivo compartido vol1 de la instancia de Filestore con la dirección IP 10.0.0.2 en el subdirectorio generado dinámicamente file-shares con acceso read/write concedido:

    file-shares -rw 10.0.0.2:/vol1
    

Prueba la configuración

  1. Si el archivo compartido está activado, debe desactivarlo:

    sudo umount mount-point-directory
    

    donde mount-point-directory es la ruta a la que se asigna el archivo compartido de Filestore.

    Si hay una entrada /etc/fstab que active el archivo compartido al iniciar el sistema, asegúrese de eliminarla.

  2. Vuelva a cargar autofs:

    sudo service autofs reload
    
  3. Confirme que la configuración funciona:

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

    Donde:

    • mount-point-directory es el directorio del punto de activación indicado en el archivo /etc/auto.master.
    • mount-point-subdir es el subdirectorio del punto de activación indicado en el archivo /etc/auto.nfs.

    En nuestro ejemplo, el comando sería:

    ls /nfs/file-shares
    

    Si el montaje automático se configuró de forma correcta, el sistema primero activa el archivo compartido y, luego, muestra los resultados del comando ls. Los archivos compartidos se desactivan automáticamente después de un período de inactividad, que se define en el valor timeout especificado en el archivo /etc/auto.master.

Windows

Conéctate a la VM de Windows

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Ubica la VM de Windows que quieras usar como cliente y, luego, haz clic en RDP para abrir una conexión de escritorio remoto en esa VM. Para obtener más información, consulta Conéctate a instancias de Windows.

Instala NFS en la VM de Windows

  1. En la VM de Windows, abre PowerShell como administrador.
  2. En PowerShell, instale el cliente de NFS:

    Install-WindowsFeature -Name NFS-Client
    
  3. Reinicia la instancia de VM de Windows como se solicita y, luego, abre una conexión de escritorio remoto nueva.

Configure el ID de usuario utilizado por el cliente de NFS

  1. En PowerShell, ejecuta los siguientes comandos para crear dos entradas de registro nuevas, AnonymousUid y 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 el servicio del cliente de NFS:

    nfsadmin client stop
    
    nfsadmin client start
    

Asigne el archivo compartido a la VM de Windows

  1. Salga de PowerShell:

    exit
    
  2. Opcional: Activación de un archivo compartido en una máquina virtual de cliente con múltiples interfaces de red a través de una red secundaria.

    Detalles (haz clic para expandir)

    Si deseas activar los archivos compartidos a través de una red secundaria, es decir, una interfaz que no sea nic0, debes modificar la política de enrutamiento de la VM del cliente. Ejecutar:

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

    Donde:

    • filestore-reserved-address-range es el rango de direcciones reservado para que use la instancia de Filestore.
    • address-range-subnet-mask es la máscara de subred de filestore-reserved-address-range. Por ejemplo, un rango de direcciones reservadas /29 usaría la máscara de subred 255.255.255.248.
    • default-gateway-of-nic-to-filestore es la dirección IP de la puerta de enlace predeterminada de la NIC conectada a la red VPC que se comparte con la instancia de Filestore.

    Ejemplo:

    route -p add 10.65.21.176 mask 255.255.255.248 10.128.0.1
    

    Para obtener más información sobre el uso de instancias de Compute Engine con varias NIC, consulte Configuración de políticas de enrutamiento.

  3. Desde Command Prompt, asigne el archivo compartido a una letra de unidad:

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

    Donde:

    • filestore-ip es la dirección IP de la instancia de Filestore.
    • file-share-name es el nombre del archivo compartido en la instancia de Filestore.
    • drive-letter es la letra de la unidad que deseas elegir para la asignación.

    Ejemplo

    El siguiente comando asigna el archivo compartido vol1 en la instancia de Filestore con la dirección IP 10.0.0.2 para conducir z: en la VM de Windows del cliente:

    mount -o mtype=hard 10.0.0.2:/vol1 z:
    
  4. Opcional: Para usar el bloqueo de archivos NFS, verifica lo siguiente:

    1. Asegúrate de que las reglas de firewall estén configuradas para todos los puertos NFS necesarios, incluidos statd y nlockmgr.

    2. Asegúrate de que el cliente NFS de Windows esté configurado con puertos reservados mediante un comando similar al siguiente en PowerShell:

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

Crea y activa subdirectorios en archivos compartidos

Una vez que se activan los archivos compartidos en una VM de cliente, puedes crear subdirectorios en el sistema de archivos compartidos, que los clientes pueden activar directamente en lugar de activar todos los archivos compartidos:

  1. Para crear un subdirectorio en los archivos compartidos activados, ejecuta lo siguiente:

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

    Donde:

    • mount-point-directory es la ruta a la que asignas el archivo compartido.
    • file-share-sub-dir es la ruta de acceso del subdirectorio en el archivo compartido que deseas crear.

    Este comando crea un subdirectorio en la VM de cliente y el archivos compartido. Por ejemplo, si activaste el archivo compartido 10.0.0.2:/vol1 en el directorio /mnt de la VM de cliente, el comando sudo mkdir -p /mnt/nfs crea 10.0.0.2:/vol1/nfs en el archivo compartido y en /mnt/nfs en la VM del cliente.

  2. Opcional: Si deseas activar el subdirectorio de archivos compartidos en el directorio de la VM de cliente en el que está activado el recurso compartido, primero debes desactivar el archivo compartido:

    sudo umount mount-point-directory
    

    En el ejemplo anterior, mount-point-directory es el directorio al cual se mapea el archivo compartido.

  3. Activa el subdirectorio:

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

    Donde:

    • ip-address es la dirección IP para la instancia de Filestore.
    • file-share es el nombre del archivo compartido en la instancia.
    • file-share-sub-dir es la ruta del subdirectorio del archivo compartido que se activará.
    • mount-point-directory es la ruta a la que desea asignar el archivo compartido de Filestore.

    Ejemplo: En el siguiente comando:

    sudo mount 10.0.0.2:/vol1/nfs /mnt/nfs
    
    • 10.0.0.2 es la dirección IP de la instancia de Filestore.
    • vol1 es el nombre del archivo compartido.
    • nfs es un subdirectorio de uso compartido de archivos.
    • /mnt/nfs es el directorio en la VM del cliente al que se asigna el subdirectorio de archivos compartidos nfs.

¿Qué sigue?