Cómo liberar espacio utilizado por archivos .nfs bajo NFS

Sobre Linux/UNIX sistemas, si elimina un archivo que todavía tiene abierto un proceso en ejecución, el archivo no se elimina ni elimina realmente. Una vez el proceso cierra el archivo, el sistema operativo elimina el identificador del archivo y liberar el disco se bloquea. Este proceso funciona un poco diferente cuando el archivo que está abierto y eliminado está en un NFS montado sistema de archivos. Dado que el proceso que tiene el archivo abierto se ejecuta en una máquina (como una estación de trabajo en la ubicación A) y los archivos están en el servidor de archivos, tiene que haber alguna forma de que las dos máquinas comuniquen información sobre este archivo. El camino NFS esto es con el .nfsNNNNNN archivos Si intenta eliminar uno de estos archivos y el archivo aún está abierto, volverá a aparecer con un número diferente. Entonces, para eliminar el archivo por completo, debemos eliminar el proceso que lo está usando actualmente.

Nota: Estos archivos .nfsNNN generalmente son creados por el cliente nfs para sus propias funcionalidades de operación. El cliente nfs utiliza estos archivos para realizar un seguimiento de los archivos que se eliminarán cuando el cliente nfs cierre el proceso. .nfsNNN el concepto de archivos desaparecerá en NFSv4

Puede enumerar estos archivos ejecutando ‘ ls-lah ‘ desde el directorio compartido compartido nfs, el proceso debe eliminarse y ha abierto estos archivos para liberar espacio.

Si desea saber qué proceso tiene este archivo abierto, puede usar el siguiente comando lsof

$ lsof | grep -i .nfs1234

Ejemplo :

 $ echo testfile > foo
 $ tail -f foo
 testfile
 ^Z
 Suspended
 $ rm foo
 $ ls -A
 .nfsC13B
 $ rm .nfsC13B
 $ ls -A
 .nfsC13B

$ lsof .nfsC13B
 COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
 tail   1182 jack    0r  VREG  186,6   5 1200718   .nfsC13B%

Supongamos que creamos un archivo con el nombre «foo» en el directorio montado de nfs y luego enumeramos el contenido usando el comando tail y luego intentamos eliminar el archivo usando el comando rm. Ejecute el comando «ls -A» para enumerar el archivo .nfsNNN y si intentamos eliminar el archivo .nfsNN, el cliente nfs creará automáticamente el archivo .nfs.

Entonces, una vez que encuentre el archivo .nfsNN y desee eliminarlo permanentemente, eliminó el proceso que tiene el archivo abierto, el .nfs el archivo desaparecerá automáticamente. En el ejemplo anterior, cuando elimina el proceso de cola, es decir, PID 1182, el archivo .nfsC13B desaparecerá.

Para matar un proceso en las distribuciones de Linux, use el comando kill, así que para matar un proceso de PID 1182, ejecute el siguiente comando,

$ sudo kill -9 1182

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *