Opciones de activación de NFS de Linux

En esta página, se describen las opciones de activación de NFS de Linux que afectan el rendimiento y el comportamiento cuando se activan las exportaciones de NetApp Volumes. Puedes configurar estas opciones cuando ejecutas el comando mount o agregándolas a /etc/fstab.

Para obtener el orden de configuración recomendado y la información sobre cómo interactúan las opciones de activación con la simultaneidad del kernel y la lectura anticipada, consulta Optimiza los clientes de NFS de Linux.

Para obtener ejemplos de comandos de activación y acceso de exportación, consulta Conecta clientes de NFS.

Antes de comenzar

Completa los siguientes requisitos antes de activar NetApp Volumes:

  • Usa el comando mount de las Google Cloud instrucciones de activación de la consola, a menos que tu carga de trabajo necesite opciones diferentes.

  • Si ajustas la simultaneidad con la tabla de ranuras o la configuración de ranuras de sesión, configura esos parámetros antes de la activación. Para obtener más información, consulta Simultaneidad de NFS de Linux.

  • Prueba los cambios en un entorno que no sea de producción. El efecto de las opciones de activación puede variar según la carga de trabajo, la versión de Linux y la latencia de la red.

Referencia rápida

En la siguiente tabla, se proporciona una referencia rápida de las opciones de activación comunes según los objetivos de tu carga de trabajo:

Objetivo Opciones de para tener en cuenta Notas
De uso general Usa lasinstrucciones de activación de la consola Google Cloud Incluye valores predeterminados apropiados para el protocolo
Mayor capacidad de procesamiento o IOPS de una VM nconnect=8 a nconnect=16, ajusta rsize y wsize Primero, establece la tabla de ranuras; consulta Simultaneidad de NFS de Linux
Latencia más baja para bases de datos rsize=262144, wsize=262144, hard, timeo=600, vers=4.1 Prueba tu aplicación específica
Especifica la versión de NFS vers=3 o vers=4.1 Linux activa la versión más reciente disponible de forma predeterminada
NFSv3 sin bloqueos de asesoramiento vers=3, nolock Para obtener instrucciones sobre el firewall y el administrador de bloqueos, consulta Conecta clientes de NFS
Kerberos NFSv4.1 sec=krb5, krb5i o krb5p No usar con nconnect
Datos de solo lectura con compensaciones de coherencia conocidas nocto, actimeo= Avanzado; primero, comprende el comportamiento de la caché

Siempre incluye tcp cuando actives NFSv3. Aunque Linux usa TCP para el tráfico de NFS de forma predeterminada, agregar tcp de forma explícita ayuda a garantizar que el proceso de activación use TCP en lugar de UDP. Esto ayuda a mejorar el rendimiento cuando muchos sistemas intentan activarse al mismo tiempo. Incluye noatime para reducir las operaciones de metadatos.

Los siguientes perfiles de activación proporcionan opciones recomendadas según tus requisitos de rendimiento, versiones de protocolo y escala de cliente. Cuando ejecutes estos comandos, reemplaza VOLUME_IP y /export_path por los valores reales de las instrucciones de activación en la Google Cloud consola.

Perfil A: Predeterminado (consola)

Ejecuta el comando mount que se proporciona en la Google Cloud consola sin cambios.

Perfil B: Orientado al rendimiento (cliente único de Linux)

Ejemplo para NFSv3, alineado con la configuración de prueba de comparativas de rendimiento:

 sudo mount -t nfs -o hard,tcp,vers=3,rsize=262144,wsize=262144,nconnect=16 \
 VOLUME_IP:/export_path /mnt/volume

Las comparativas usan nconnect=16 y 64 KiB rsize y wsize. Muchas cargas de trabajo funcionan bien con nconnect=8. Prueba ambos valores.

Perfil C: NFSv4.1 con versión explícita

 sudo mount -t nfs -o vers=4.1,hard,rsize=262144,wsize=262144 \
 VOLUME_IP:/export_path /mnt/volume

Para evitar la activación automática de NFSv4.2 cuando está habilitado en el volumen, especifica vers=4.1. Para obtener más información, consulta Conecta clientes de NFS.

Perfil D: NFSv3 para granjas de procesamiento

Si conectas una gran cantidad de clientes a un volumen (por ejemplo, cientos), no uses nconnect para evitar agotar las sesiones TCP disponibles en el volumen.

 sudo mount -t nfs -o vers=3,nolock,hard,tcp,rsize=262144,wsize=262144 \
 VOLUME_IP:/export_path /mnt/volume

Persistir en /etc/fstab

En el siguiente ejemplo, se muestra una línea /etc/fstab para NFSv4.1:

 VOLUME_IP:/export_path  /mnt/volume  nfs  vers=4.1,hard,tcp,rsize=262144,wsize=262144,timeo=600,_netdev  0  0

Usa la opción _netdev para que el sistema espere la red antes de la activación.

nconnect

La opción de activación nconnect te permite controlar la cantidad de conexiones TCP que el cliente de NFS abre al mismo extremo de almacenamiento, que es la dirección IP del volumen. Cada conexión controla varias operaciones de NFS al mismo tiempo, hasta un límite establecido. Aumentar la cantidad de conexiones mejora la simultaneidad de E/S y la capacidad de procesamiento de un solo cliente.

Recomendaciones

Ten en cuenta las siguientes recomendaciones cuando configures la opción de activación nconnect:

  • Prueba nconnect=8 y nconnect=16. Se admiten valores de hasta 16.

  • Usa nconnect solo para clientes dedicados de alto rendimiento. Si muchos clientes, por ejemplo, una granja de procesamiento, se conectan al mismo almacenamiento, evita usar nconnect.

  • Realiza la primera operación de activación en una IP de volumen determinada para establecer el valor nconnect para esa IP en ese cliente. Las activaciones posteriores en la misma IP usan el mismo valor, incluso si especifican uno diferente. Primero, activa la exportación con el valor nconnect seleccionado o usa la misma opción para todas las activaciones en esa IP.

  • Ten en cuenta que establecer nconnect para una IP de volumen no afecta las activaciones en una IP de volumen diferente.

  • Verifica que tu distribución de Linux admita nconnect antes de usarla.

Para obtener más información sobre los límites de ranuras por conexión, consulta Simultaneidad de NFS de Linux.

rsize y wsize

Las opciones de activación rsize y wsize establecen el tamaño máximo de transferencia para las operaciones de lectura y escritura de NFS. Si las omites, el cliente y el servidor negocian el tamaño más grande que ambos admiten, que es de hasta 1 MiB en clientes de Linux y NetApp Volumes.

Recomendaciones

Ten en cuenta las siguientes recomendaciones cuando configures las opciones de activación rsize y wsize:

  • Prueba rsize=262144 y wsize=262144 (256 KiB) para ajustar la capacidad de procesamiento y la latencia de las aplicaciones sensibles a la latencia.

  • Usa valores superiores a 256 KiB con precaución, ya que pueden aumentar la latencia o reducir la capacidad de procesamiento de algunas cargas de trabajo. Mide el rendimiento antes de la implementación.

  • Usa rsize=65536 y wsize=65536 (64 KiB) para las pruebas de NFSv3, ya que estos valores se usaron en comparativas de rendimiento.

Ten en cuenta que esta configuración tiene un efecto mínimo en las cargas de trabajo aleatorias, que suelen usar tamaños de operación más pequeños que rsize y wsize, mientras que la E/S secuencial a través de la caché de páginas suele usar tamaños de operación de hasta rsize y wsize.

La opción de activación rsize afecta el comportamiento de lectura anticipada. Para obtener más información, consulta Lectura anticipada de NFS de Linux.

Versión del protocolo

En la siguiente tabla, se enumeran los valores de la opción vers y sus versiones de protocolo correspondientes:

Opción Usar
vers=3 NFSv3
vers=4.1 NFSv4.1
vers=4.2 NFSv4.2

Si no estableces vers, el comando mount de Linux usa la versión de NFS más reciente compatible con el cliente y el volumen. Los volúmenes Flex Unified, Standard, Premium y Extreme con NFSv4.1 habilitado también admiten NFSv4.2. Puedes activar NFSv4.2, a menos que especifiques vers=4.1.

Para obtener más información sobre la asignación de identidad de NFSv4.1, Kerberos y los IDs numéricos, consulta Conecta clientes de NFS.

hard, timeo y retrans

Las opciones de activación hard, timeo y retrans administran el comportamiento del cliente y la lógica de reintento de tiempo de espera cuando se producen problemas de conexión:

  • hard: Vuelve a intentar las solicitudes de NFS hasta que se realicen correctamente. Esta opción es típica para la integridad de los datos en las cargas de trabajo de producción.

  • timeo: Especifica el tiempo de espera en décimas de segundo antes de que se vuelva a intentar una solicitud. Las cargas de trabajo orientadas a la base de datos suelen usar timeo=600 (60 segundos).

  • retrans: Especifica la cantidad de reintentos. Google Cloud Los valores predeterminados de la consola suelen ser suficientes, a menos que tus manuales de operaciones especifiquen lo contrario.

Opción nolock de NFSv3

El bloqueo de asesoramiento de NFSv3 usa el Network Lock Manager (NLM) y requiere del cliente rpc.statd y reglas de firewall para los puertos de devolución de llamada. Si no usas bloqueos de asesoramiento, activa con nolock para evitar el tráfico del administrador de bloqueos.

NFSv4.1 implementa el bloqueo en el protocolo en el puerto 2049; los clientes no necesitan reglas de entrada del administrador de bloqueos independientes.

Para obtener más información sobre el uso de bloqueos de asesoramiento con NFSv3 y las reglas de firewall para el acceso a volúmenes de NFS, consulta Conecta clientes de NFS.

Caché y coherencia con nocto y actimeo

El cliente de NFS usa un modelo de coherencia flexible. Los temporizadores de caché de atributos determinan cuánto tiempo el cliente confía en los metadatos de archivos y directorios antes de comunicarse con el servidor. La coherencia predeterminada de cierre a apertura (cto) actualiza los datos del archivo cuando abres un archivo.

  • nocto: El cliente no fuerza la coherencia del servidor en la apertura. Esto reduce las llamadas getattr, pero aumenta el riesgo de datos obsoletos.

  • actimeo=N: configura todos los temporizadores de caché de atributos en N segundos (acregmin, acregmax, acdirmin, y acdirmax).

Considera usar nocto y valores actimeo más altos en las siguientes situaciones:

  • Un solo escritor o consumidores de solo lectura que reciben actualizaciones a través de otra ruta de acceso.

  • Grandes conjuntos de datos estáticos, como bibliotecas de EDA, contenido web o texturas de renderización, si se acepta una breve obsolescencia.

En la mayoría de los casos, usa los valores predeterminados recomendados de Linux para el almacenamiento en caché de atributos:

  • Mínimo y máximo de archivos normales: acregmin=3 segundos y acregmax=60 segundos

  • Mínimo y máximo de directorios: acdirmin=30 segundos y acdirmax=60 segundos

Reducir estos valores aumenta la carga en el servidor de NFS y puede reducir el rendimiento. Evita actimeo=0, excepto en casos de uso muy específicos en los que comprendas el impacto.

Otras opciones comunes

Las siguientes opciones de activación comunes están disponibles para los clientes de NFS:

  • rw o ro: Activación de lectura y escritura o de solo lectura.

  • noatime: No actualices la hora de acceso en la lectura, ya que esto reduce las operaciones de metadatos y es una práctica recomendada.

  • sec=sys: AUTH_SYS, que es el valor predeterminado para las exportaciones que no son de Kerberos.

  • _netdev: Úsalo en fstab para activar después de que la red esté disponible.

¿Qué sigue?