El orden de los reinicios es importante. Reiniciar el servidor después de que los clientes pueden dar lugar a esta situación. El identificador de NFS obsoleto indica que el cliente tiene un archivo abierto, pero el servidor ya no reconoce el identificador de archivo. En algunos casos, NFS limpiará sus estructuras de datos después de un tiempo de espera. En otros casos, deberá limpiar las estructuras de datos NFS usted mismo y reiniciar NFS después. Donde se ubican estas estructuras son algo dependientes de O / S
Intente reiniciar NFS primero en el servidor y luego en los clientes. Esto puede borrar los identificadores de archivo.
No se recomienda reiniciar los servidores NFS con archivos abiertos desde otros servidores. Esto es especialmente problemático si el archivo abierto se ha eliminado en el servidor. El servidor puede mantener el archivo abierto hasta que se reinicie, pero el reinicio eliminará el identificador de archivo en memoria en el lado del servidor. Entonces el cliente ya no podrá abrir el archivo.
Determinar qué montajes se han utilizado desde el servidor es difícil y poco confiable. La showmount -a
opción puede mostrar algunas monturas activas, pero puede no informarlas todas. Los archivos bloqueados son más fáciles de identificar, pero requieren que el bloqueo esté habilitado y se basa en el software del cliente para bloquear los archivos.
Puede usar lsof
en los clientes para identificar los procesos que tienen archivos abiertos en los montajes.
Uso las opciones de montaje hard
y intr
en mis montajes NFS. La hard
opción hace que IO sea reintentado indefinidamente. La intr
opción permite que se eliminen los procesos si están esperando que se complete NFS IO.
hard, intr
es un buen consejo. Sin embargo, tenga en cuenta que NFS duplica los tiempos de espera con cada intento. Así que es mejor configurarlotimeo=1
y másretrans=5
o menos. Tenga en cuenta que esto ejercerá una gran presión sobre su servidor NFS después de reiniciar NFS. Intente no reiniciar su servicio NFS tan a menudo;)