Ubuntu: no queda espacio en el dispositivo (NTFS)

11

Tengo un servidor que almacena muchos datos, mantengo muchos directorios anidados con millones de archivos en ellos.

Al intentar mover un directorio grande (~ 700 GB) de un disco a otro, aparece un error:

mv /media/storage3/dir /media/storage4/

"No space left on device"

Además, intentar crear un pequeño archivo txt en el disco no funciona:

Error opening file '/media/storage4/Untitled Document': No space left on device

Revisé muchas opciones en línea, ninguna funcionó.

salida df -h:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdg7        77G  9.2G   64G  13% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev             32G  4.0K   32G   1% /dev
tmpfs           6.3G  1.4M  6.3G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             32G   76K   32G   1% /run/shm
none            100M   48K  100M   1% /run/user
/dev/sdg6        19G  6.7G   11G  39% /home
/dev/sdb1       440G  278G  140G  67% /var
/dev/sda1       2.8T  2.0T  764G  73% /media/storage1
/dev/sdh1       2.8T  1.6T  1.3T  56% /media/storage2
/dev/sdi1       2.8T  1.7T  1.2T  60% /media/storage3
/dev/sdf1       2.8T  876G  1.9T  32% /media/storage4

df -i salida:

Filesystem         Inodes    IUsed      IFree IUse% Mounted on
/dev/sdg7         5079040   514215    4564825   11% /
none              8242449        2    8242447    1% /sys/fs/cgroup
udev              8239750      611    8239139    1% /dev
tmpfs             8242449      696    8241753    1% /run
none              8242449        5    8242444    1% /run/lock
none              8242449        4    8242445    1% /run/shm
none              8242449       28    8242421    1% /run/user
/dev/sdg6         1220608   218613    1001995   18% /home
/dev/sdb1        29310976 12863877   16447099   44% /var
/dev/sda1       858436804 41630853  816805951    5% /media/storage1
/dev/sdh1      1356948436 38728057 1318220379    3% /media/storage2
/dev/sdi1      1217505624 34748869 1182756755    3% /media/storage3
/dev/sdf1      2048962648 36308921 2012653727    2% /media/storage4

Al leer en línea, la gente dijo que problemas similares ocurren debido al acceso a una gran cantidad de archivos y que establecer fs.inotify.max_user_watches en una gran cantidad podría resolverlo, lo aumenté de 8192 a 1000000 pero no ayudó.

PeterN
fuente
¿Lo has intentado lsof +L1? man lsof: una especificación del formulario + L1 seleccionará los archivos abiertos que se han desvinculado.
AB
No hay razón para mvusar el inotifymecanismo. Eche un vistazo aquí : algunos procesos pueden seguir utilizando archivos no vinculados del sistema de archivos de destino.
John WH Smith
Los archivos eliminados seguirían apareciendo en el uso dado por df...
Stephen Kitt
@StephenKitt No. Los archivos no vinculados que se mantienen en el subsistema de archivos debido a la referencia de inodo lo harán. Aquellos que quedaron completamente sin usar y desvinculados ("eliminados") no aparecen. Vea aquí .
John WH Smith
1
Busca ntfsinfo -m /dev/DEVpistas. Es parte de ntfs-3g. También tenga en cuenta que solo puede haber hasta 2 ^ 32 archivos en un solo volumen NTFS. No confiaría en ninguna herramienta nativa de Linux / Unix para informar el recuento de inodos NTFS con precisión.
mikky

Respuestas:

1

Ejecute lo siguiente:

lsof -s | sort -nrk 7 | head

Verás la salida así:

firefox    2997                     j   52rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   50rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j    3rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   39rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   31ur     REG              252,0 10485760    5505182 /some/path

Nota; lo anterior es solo un ejemplo que necesitará usar su juicio para encontrar el uso del espacio.

Sobre salida:

  • La columna 7 es el tamaño del espacio en uso.
  • La columna 4 es el descriptor de archivo.

Puede eliminar el contenido en el descriptor de archivo para recuperar ese espacio:

cat /dev/null > /proc/2997/fd/50

Obviamente, esto destruirá todos los datos en ese descriptor de archivo.


fuente
Si el problema vuelve a ocurrir, lo intentaré
PeterN
0

Puede probar un alquitrán para copiar todos los datos y luego eliminarlo:

cd /media/storage3/; tar cfp - ./dir | ( cd /media/storage4; tar xfp - )

Esto preservará toda propiedad, permisos y enlaces.

Chad Smith
fuente
Ninguna copia funcionó ... No solo eso, la creación de un archivo vacío simple no devolvió espacio, salvo excepción
PeterN
0

Hubiera usado rsync -avrz storage3 storage4y luego borrado los archivos después, pero tengo otra pregunta por qué tiene esos recursos compartidos usando el sistema de archivos NTFS si está usando Linux (Ubuntu), entonces habría elegido ext4 o ReiserFS, ButterFS. SI esos recursos compartidos se encuentran en un cuadro de Windows, intente mover esos archivos de Windows a Windows usando robocopy, lo cual es excelente en este sentido. Robocopy funciona principalmente como rsync.

página de manual para rsync: http://linux.die.net/man/1/rsync

página de ayuda para robocopy: https://technet.microsoft.com/en-us/library/cc733145.aspx

página de soporte para controladores 3g-ntfs para Linux: www.tuxera.com/community/open-source-ntfs-3g/

Preguntas frecuentes para 3g-ntfs: www.tuxera.com/community/ntfs-3g-faq/

Sospecho que algo debe solucionarse dentro de los controladores del sistema de archivos NTFS que está utilizando en su instalación de Ubuntu, qué distribución de NTFS está utilizando, cómo montó los discos, si están conectados localmente a la caja de ubuntu en la que está sentado o están montados usando iSCSI desde una SAN?

Hay más en esta solución de problemas que: "No puedo mover mis archivos, están ubicados en NTFS y estoy ejecutando ubuntu para moverlos".

OMG-1
fuente
Como se mencionó, ninguna copia funcionó, probé todo tipo de comandos rsync. Pero, incluso crear un archivo vacío en storage4 devolvió una excepción. \ n La razón para usar NTFS es porque tenemos otros servidores, que ejecutan Windows, y queríamos permitir una fácil transferencia de discos de un servidor a otro. En retrospectiva, no hubiera usado NTFS debido a todos los problemas que trae consigo, Ubuntu es muy inestable con un montaje NTFS. \ n Los discos se conectan mediante un cable SATA directamente a la placa base de la computadora, sin SAN ni nada. Es un montaje directo en el sistema Linux.
PeterN
Le recomendaría dos cosas: cuando use las tecnologías de MS, vaya a MS puro, use un servidor de archivos de Microsoft Windows si necesita tener NTFS, de lo contrario, vaya con ext4 u otro sistema de archivos de Linux y comparta el disco con Smb.
OMG-1
Ahórrese algunos problemas y nunca intente combinar Windows y Linux. Ninguna cantidad de ayuda lo salvará a largo plazo, eventualmente esto siempre terminará en lágrimas. Parece un problema con el inodo o los identificadores de archivo, pero cuando pones NTFS en la mezcla ... bomba de tiempo. Si su entorno necesita interacción de Linux y NTFS, coloque el NTFS en un servidor de Windows y realice la interacción de esa manera. No intento combinar en el mismo sistema.
Baazigar