¿Cómo puedo solucionar el error “nfs: server 127.0.0.1 not responding” (nfs: el servidor 127.0.0.1 no responde) al montar mi sistema de archivos de EFS?

Última actualización: 18/07/2022

Mi servidor de Amazon Elastic File System (Amazon EFS) no responde y se bloquea con el mensaje de error “nfs: server 127.0.0.1 not responding” (nfs: el servidor 127.0.0.1 no responde). ¿Cómo puedo solucionar este problema?

Descripción corta

A continuación, se incluyen motivos comunes por los que puede aparecer el error de servidor que no responde:

  • El cliente de NFS no se puede conectar al servidor de EFS.
  • Se ha reiniciado o apagado la instancia. Se ha producido cualquier otra desconexión de la instancia de EC2. Estas incidencias provocan una desconexión de la red entre el cliente de NFS y el servidor de EFS. Este comportamiento no se ajusta al RFC de TCP. Las desconexiones pueden provocar que las respuestas de Amazon EFS a una instancia de Amazon Elastic Compute Cloud (Amazon EC2) o a un cliente de NFS se bloqueen durante varios minutos.
  • La opción de montaje noresvport no se usó al montar el sistema de archivos mediante un cliente de NFS.
  • Es posible que haya un problema con la versión del kernel que provoca un error de montaje de EFS. Por ejemplo, hay varios problemas conocidos de clientes de NFS con RHEL6 que provocan síntomas similares a los de los sistemas de archivos que no responden. En versiones anteriores del kernel de RHEL6.X, el sistema de archivos podía dejar de estar disponible y no volver a montarse. Es posible que se bloquee la conexión NFS en Amazon EFS si ejecuta alguna de las opciones siguientes:
    • RHEL o CentOS 7.6 o versiones posteriores (versión del kernel de 3.10.0-957).
    • Cualquier otra distribución de Linux con una versión del kernel comprendida entre la 4.16 y la 4.19.

Resolución

1.    Utilice la opción de montaje noresvport al montar el sistema de archivos. Esta opción garantiza que el cliente de NFS utilice el nuevo puerto de origen TCP cuando se deba restablecer una conexión de red. El uso de noresvport garantiza que el sistema de archivos de EFS tenga una disponibilidad ininterrumpida después de un evento de recuperación de la red.

$   sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/ mnt

Si está utilizando el asistente de montaje de EFS, la opción noresvport está presente de forma predeterminada. Si utiliza NFS para el montaje, debe añadir este parámetro de forma explícita. Para obtener más información, consulte Opciones de montaje NFS recomendadas.

2.    Compruebe la versión del kernel. Puede haber problemas con una versión del kernel en particular, como RHEL o CentOS 7.6 o una posterior (versión del kernel de 3.10.0-957), lo que podría provocar un error de montaje del sistema de archivos. Si está ejecutando una de estas versiones del kernel, reinicie para recuperar el acceso al sistema de archivos. Para confirmar que la versión del kernel es el problema, compruebe la salida del comando ps cuando no pueda ejecutar ls:

$ ps auxwwwm | grep <mount_point_IP>

Si la versión del kernel es defectuosa, actualícelo. Se recomienda utilizar la generación actual del cliente Linux NFS4v.1 o una posterior para obtener un mejor rendimiento.

3.    Compruebe que el cliente se pueda conectar al servidor mediante la ejecución del siguiente comando:

telnet <ip-of-efs> 2049

Revise los registros del cliente de NFS (registros del sistema operativo de la instancia de EC2) en /var/log/messages para comprobar si hay errores. Los registros podrían estar en el directorio /var/log/syslog o /var/log/dmesg, en función del sistema operativo.

Además, si montó el sistema de archivos con el asistente de montaje de EFS, revise los registros de las utilidades de EFS en el directorio /var/log/amazon/efs. El asistente de montaje de EFS tiene un mecanismo de registro incorporado.

4.    Compruebe que pueda conectarse a la instancia de EC2.

5.    Compruebe si el servicio de EC2 se está sobrecargando debido a la sobreutilización de los recursos. Para ello, puede monitorear las métricas de EC2 en Amazon CloudWatch, como CPUUtilization y las métricas relacionadas con la red. Los recursos pueden incluir problemas de CPU, memoria, nivel de aplicación, etc.

  • Sobreutilización de la memoria: esto puede ocurrir cuando se hace un uso excesivo de la RAM. La sobreutilización significa que la instancia se está quedando sin espacio en la memoria si, por ejemplo, una aplicación comienza a consumir más RAM. La sobreutilización provoca errores de memoria insuficiente (OOM). Cuando se inician, estos errores terminan los procesos que tienen una puntuación elevada de OOM o que consumen más memoria. Idealmente, cuando se inician los errores de OOM, la instancia permanece inaccesible.
    Para resolver de forma temporal los errores de OOM, reinicie el sistema para liberar espacio en la memoria.
    Para conseguir una solución más a largo plazo, monitoree el uso de los recursos del sistema mediante herramientas como “atop” y “top”. A continuación, cambie a un tipo de instancia diferente que se adapte mejor a su carga de trabajo. Para obtener más información, consulte ¿Por qué mi instancia de EC2 Linux deja de responder debido a la sobreutilización de los recursos?
  • Rendimiento de la red: revise el rendimiento de la red de la instancia. A veces, incluso si las métricas de CloudWatch muestran una baja utilización de la red, puede haber microrráfagas. Una microrráfaga envía una gran cantidad de tráfico desde una carga de trabajo en pocos segundos. Una microrráfaga suele durar menos de un minuto. Esta ráfaga queda oculta en los gráficos de CloudWatch y en las estadísticas de Amazon Elastic Block Store (Amazon EBS), porque el intervalo más corto utilizado en estas herramientas es de un minuto. Monitoree el comportamiento de las microrráfagas con herramientas como sar, nload o iftop. Para obtener más información, consulte ¿Por qué la instancia de Amazon Elastic Compute Cloud (Amazon EC2) supera los límites de la red si la utilización media es baja?

6.    Revise las métricas de CloudWatch para EFS y compruebe si la limitación se produce en el nivel de EFS. Esto significa que EFS tiene un rendimiento superior a su capacidad. Si utiliza el modo Rendimiento por ráfagas, revise la métrica BurstBalance de CloudWatch para determinar si el balance de ráfagas se ha agotado. Además, revise las métricas de CloudWatch de rendimiento permitido para determinar si está utilizando un rendimiento superior a la cantidad aprovisionada. Para obtener más información sobre los créditos de ráfagas, consulte ¿Cómo funcionan los créditos de ráfagas de Amazon EFS?

Si sus aplicaciones necesitan un rendimiento casi continuo, utilice el modo Rendimiento aprovisionado. Antes de cambiar al modo Rendimiento aprovisionado desde Rendimiento por ráfagas, considere cuánto rendimiento se va a aprovisionar. Para determinar la cantidad mínima de rendimiento aprovisionado necesario, compruebe el uso de rendimiento medio del sistema de archivos de las dos semanas anteriores. Tenga en cuenta la cantidad máxima más alta, redondeada al siguiente megabyte. Para obtener más información, consulte ¿Qué modos de rendimiento están disponibles en EFS y cuál es el modo de rendimiento correcto para mi carga de trabajo?


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?