¿NFS me permite desvincular / eliminar archivos abiertos como puedo hacer con los sistemas de archivos locales?
La razón por la que pregunto es que estoy desarrollando algo que se ejecuta en varios servidores y que puede acceder a NFS como back-end. Simplifica un poco las cosas si puedo desvincular un archivo abierto.
Esta es una buena característica de los sistemas de archivos de Linux (¿Unix?) Que puede desvincular un archivo que está abierto. Simplemente elimina la entrada del directorio. El archivo todavía está disponible para un proceso que lo mantiene abierto mientras esté abierto. Una vez cerrado, el inodo se destruye.
¿Esa misma funcionalidad es válida para los archivos abiertos en montajes NFS?
Respuestas:
La respuesta corta es sí con advertencias.
Dado que NFSv3 no tiene estado, el controlador del cliente NFS logra esto con algo llamado "cambio de nombre tonto", donde el archivo eliminado se renombra a algo como .nfsXXXXXXXXXX. Esto generalmente funciona, pero hay algunas advertencias en comparación con un sistema de archivos local. Por ejemplo, si el cliente falla, esos archivos .nfsXXXX no se eliminarán y tendrá que limpiarlos manualmente.
Creo que a partir de NFSv4.1 el protocolo tiene las características requeridas para implementar delete-on-last-close sin cambiar el nombre tonto, pero no sé si algún cliente / servidor todavía implementa esto.
fuente