Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿NFS dice “Stale file handle”? Demuestra qué identidad del servidor cambió antes de remontar

ESTALE significa que una referencia guardada ya no nombra un objeto válido. Separa el fallo de export al montar del objeto inválido durante una operación, repara el servidor y valida con un cliente.

Diagrama de observación, identidad y estabilización.
Ilustración original de Watch at Ease: demuestra la identidad NFS cambiada. Watch at Ease

ESTALE significa que una referencia guardada ya no nombra un objeto válido. Separa el fallo de export al montar del objeto inválido durante una operación, repara el servidor y valida con un cliente.

Linux define ESTALE como Stale file handle; puede aparecer en NFS y otros sistemas. Los handles persistentes de NFSv4 quedan stale si se elimina el objeto o desaparece su filesystem.

1. Congela el incidente y protege escritores

Guarda comando, ruta, cliente, servidor, versión NFS, primera hora y logs de kernel o servicio. Pausa tareas que escriben por el mount; no empieces con lazy unmount o flush general.

En cliente captura findmnt y compáralo con uno sano. En servidor guarda backing mount, exportfs -v y logs de almacenamiento/NFS antes de cambiar.

2. Clasifica dónde aparece ESTALE

Si mount devuelve ESTALE, revisa export solicitado y tabla viva. Si falla ls, open, chdir o una app en un mount existente, localiza la primera ruta y prueba objetos vecinos.

Tras borrar y recrear, restaurar, cambiar dataset o failover, el mismo nombre puede ser otro objeto y la referencia antigua queda inválida.

3. Demuestra qué identidad cambió

Comprueba que la ruta exportada está en el filesystem previsto y no en el directorio vacío bajo un mount ausente. Compara UUID/device, fsid, opciones y eventos de rename, restore, mover o migration.

RFC 7530 exige stale para objetos eliminados y permite staleness si el filesystem desaparece del namespace. Un reboot marca el tiempo, no demuestra causa.

4. Repara solo el límite probado

Restaura primero el almacenamiento y corrige ruta o identidad. Sincroniza la tabla viva solo si la evidencia la señala. Un unexport o flush general afecta otros clientes y estado NFSv4.

No cambies subtree_check, fsid, versión o mount options por otro caso. Prueba una hipótesis y un cambio controlado cada vez.

5. Reconecta un cliente y valida la carga

Con el namespace estable, detén un cliente, sal de cwd stale, desmonta exactamente y monta otra vez. Si un proceso no puede parar, escala sin ocultarlo con lazy detach.

Exige lookup nuevo, lectura representativa, escritura controlada si procede, metadata y una transacción de app. Compara otro cliente y logs antes de restaurar todos.

Puertas de aceptación de servidor, cliente y datos.
Ilustración original de Watch at Ease: reconecta con namespace estable. Watch at Ease