Desmontar un montaje nfs donde el servidor nfs ha desaparecido

32

El servidor A solía ser un servidor NFS. El servidor B estaba montando una exportación de eso. Todo estuvo bien. Entonces A murió. Solo desconectado. Ido. Desaparecido

Sin embargo, esa carpeta todavía está montada en B. Obviamente no puedo cdhacerlo ni nada. Sin embargo, umount /mnt/myfoldersimplemente se cuelga y no se desmonta. ¿Hay alguna forma de desmontarlo sin reiniciar B?

Tanto el cliente como el servidor son máquinas Linux.

Rory
fuente

Respuestas:

45

Asumiendo Linux:

umount -f -l /mnt/myfolder

Se solucionará el problema:

-f Desmontaje forzado (en caso de un sistema NFS inalcanzable). (Requiere el kernel 2.1.116 o posterior).

-l Perezoso desmontado. Separe el sistema de archivos de la jerarquía del sistema de archivos ahora y limpie todas las referencias al sistema de archivos tan pronto como ya no esté ocupado. (Requiere el kernel 2.4.11 o posterior).

-f También existe en Solaris y AIX.

Douglas Leeder
fuente
1
Tuve el mismo problema, busqué en Google y vine aquí. Sí, la bandera perezosa realmente me ayudó aquí ... -f por sí solo no lo estaba haciendo ...
wawawawa
Sí, debe tener la opción "-l" "-f" AL MISMO TIEMPO.
liuyang1
2
Además, a veces tuve mejor éxito al especificar la dirección remota en lugar de la ruta local para umount, por ejemplo. umount -f -l nfsserver:/export/thefolder.
oliver
18

Elaborando sobre la pista dada por David Pashley ,

a menos que "umount -l" resuelva su problema, puede configurar un servidor falso con la misma dirección que el que se ha ido, pero en realidad no tiene que configurar un nuevo servidor ni nada. La forma más fácil de salir de la situación de bloqueo / bloqueo es configurar una interfaz IP de alias local , de la siguiente manera:

ifconfig eth0:nfstmp 11.22.33.44 netmask 255.255.255.255
umount -l /mnt/deadnfsmount    # -l or -f or whichever that gets the job done
ifconfig eth0:nfstmp down

(obviamente 11.22.33.44 es la dirección IP (anterior) del servidor NFS (ahora muerto))

conny
fuente
Esto funcionó para mí, excepto que tuve que ejecutar un servidor nfs local.
gak
6

Puede ser conveniente agregar la intropción a cualquier /etc/fstabentrada que pueda terminar colgándose o fallando. Si no utiliza las opciones softo intr, cuando el servidor que aloja los archivos NFS se cae, el servidor en el que están montados los archivos (el cliente) puede bloquearse al arrancar.

De acuerdo a man 5 nfs:

soft / hard
Determina el comportamiento de recuperación del cliente NFS después de que se agota el tiempo de espera de una solicitud NFS. Si no se especifica ninguna opción (o si se especifica la opción rígida), las solicitudes NFS se reintentan indefinidamente. Si se especifica la opción de software, el cliente NFS falla una solicitud NFS después de que se hayan enviado retransmisiones de retransmisión, lo que hace que el cliente NFS devuelva un error a la aplicación que realiza la llamada.

... y luego continúa diciendo que intrse prefiere soft, pero tiene el efecto similar de evitar que se cuelgue.

sg
fuente
3
Tenga en cuenta que con las versiones más nuevas de nfs, intr está en desuso o no tiene operación, en cuyo caso se debe usar soft.
Paul
3

umount -f /mnt/myfolderDebería resolver esto. Vea la página de manual de umount.

pauska
fuente
2
Esto no lo hace con NFS y un servidor muerto. También necesita la bandera perezosa (o el truco para agregar un IfAlias). lsof y fuser se cuelgan y desmontan -f dice "dispositivo ocupado".
wawawawa
1

Como nota aparte, el uso de automontaje se encargará de desmontaje de los recursos compartidos NFS cuando se convierten en Unavaliable, lo que evita quedarse atascado en este situatuion en el futuro.

Cooperativas
fuente
2
No necesariamente. los montajes automount también pueden bloquearse en esta condición, si intenta acceder al directorio de alguna manera, el proceso se bloqueará.
Kamil Kisiel
Sí, el montador automático causa tantos problemas como resuelve.
pjc50 el
1

Nunca me las he arreglado para ir umount -fa trabajar. Un truco útil es configurar otro servidor que monte la misma exportación, darle la misma dirección IP que el servidor anterior. Su cliente NFS debería pensar que todo vuelve a la normalidad y que los procesos se desbloquearán. Luego, puede desmontar el punto de montaje normalmente y eliminar la dirección IP del servidor NFS temporal.

David Pashley
fuente
2
el -l (perezoso) es la clave, como se mencionó anteriormente
Matt Simmons
1

Para Solaris, reiniciar el cliente NFS resolverá la "espiral de muerte de montaje duro". El comando para Solaris 10 es "svcadm restart network / nfs / client" No he intentado esto en un cuadro de Linux últimamente (porque todos se montan con el indicador "intr", por lo que rara vez tienen este problema), pero probablemente también se solucionará el problema.

John Grant
fuente
0

Acabo de notar que forzar el desmontaje en el kernel 3.2.0 se bloquea con los montajes NFSv4. El desmontaje de NFSv3 funciona bien.

$ mount [...] -o nfsvers=3
Kuu Tirronen
fuente
0

solo un seguimiento específico de OS X, ya que los comandos de montaje son en su mayoría * nix agnósticos: el indicador -l (perezoso) no existe en OS X, sin embargo, el indicador -f (forzar) sí, y demostró ser suficiente . Además, los puntos de montaje generados por el sistema están en / Volumes (/ Volumes / myserversexport)

Niels
fuente
0

He encontrado este mismo problema. Como el servidor NFS se eliminó, no puedo desmontar el nfs del cliente. Intenté el siguiente truco, ver si puede ser útil. Como el servidor NFS original desapareció, creo un nuevo servidor con la misma IP y exportaciones. Luego intento umount -f / mnt / nfs_part. Finalmente pude desmontar el nfs ahora.

Lan
fuente