Directorio enorme, no archivos dentro, sino el directorio mismo

Directorio enorme, no archivos dentro, sino el directorio mismo

He estado intentando eliminar un directorio de un servidor centos rm -Rf /root/FFDCdurante las últimas 15 horas y estoy teniendo grandes dificultades. No puedo hacer una lista de directorios porque bloquea el sistema (¿demasiados archivos?), pero lo que puedo ver es que el tamaño del directorio no es el habitual de 4096 bytes, ¡sino de 488 MB!

[root@IS-11034 ~]# ls -al
total 11760008
drwxr-x--- 31 root root        4096 Aug 10 18:28 .
drwxr-xr-x 25 root root        4096 Aug 10 16:50 ..
drwxr-xr-x  2 root root   488701952 Aug 11 12:20 FFDC

Revisé los inodos y todo parece estar bien. Revisé la parte superior y rmsigo usando la CPU después de 15 horas al 0,7%. El tipo de sistema de archivos es ext3.

No tengo ni idea de adónde ir ahora aparte de la copia de seguridad y el formateo.

Respuesta1

¿Es incluso ls -1f /root/FFDClento? Con -1f la salida no se ordenará y los detalles del archivo quedarán fuera.

Si el ls anterior se ejecuta rápido, ¿tal vez algo así find /root/FFDC | xargs rm -vfsería más rápido? Una normal rm -rfpodría realizar todo tipo de recursividad que findPODRÍA poder omitir. O entonces no.

¿Su sistema de archivos está montado consincronizar¿opción? Si es así, entonces el rendimiento de escritura/eliminación es terriblemente más lento de lo que podría ser conasíncrono. En caso de duda, puede intentarlo mount -o remount,async /(o mount -o remount,async /rootsi es un sistema de archivos independiente para usted).

Respuesta2

¿Ha considerado desmontar el sistema de archivos y luego ejecutar e2fsck para verificar si hay errores en el sistema de archivos? Intentaría esto antes de realizar la copia de seguridad, formatear y restaurar.

Respuesta3

ejecutar fsck en el sistema de archivos solucionará el problema. Suele ocurrir cuando un directorio solía contener muchos archivos pero ahora ya no los contiene. El tamaño del directorio se da como un número enorme y el rendimiento se ve afectado.

Respuesta4

No estoy seguro fsck(8)de que reorganice los directorios, puede probar con la -Dbandera (como se describe en e2fsck(8)). Si no es así, y si realmente no hay millones de archivos en ese directorio, tal vez algo como lo siguiente proporcione un directorio de tamaño razonable:

cd /root mv FFDC FFCD-old mkdir FFCD # Ajustar permisos en FFDC mv FFDC-old/* FFDC # Verificar/mover cualquier archivo/directorio .xxx en FFDC-old rmdir FFCD-old

Al menos varias versiones de bash obtienen globos como .a[^.]*incorrectos e incluyen .y ..de todos modos, de lo contrario, puede intentar el penúltimo paso comomv FFDC-old/.* FFDC

Los sistemas de archivos como ext3/ext4 manejan directorios esencialmente como listas vinculadas de nodos inamovibles con espacio para el nombre del archivo + número de inodo, cuando un archivo se desvincula, el espacio para el nombre se libera (y debe fusionarse con las entradas vecinas libres, si las hay). Entonces, un directorio tan gigantesco con pocos archivospodercrearse, pero no es fácil. ¿Quizás crear millones de enlaces físicos a los mismos pocos archivos? ¿Crear/eliminar millones de enlaces con nombres cuidadosamente elaborados? Lo que sucedió para crear esto merece ser investigado; ¿Es una broma, algún tipo de mal funcionamiento del sistema de archivos,...?

información relacionada