Un amigo mío al que le gusta programar en el entorno Linux, pero no sabe mucho sobre la administración de Linux, recientemente se encontró con un problema en el que su sistema operativo (Ubuntu) informaba "sin espacio en disco en el volumen XXX". Pero cuando fue a verificar el volumen, todavía quedaban 700 GB. Después de perder mucho tiempo, finalmente pudo darse cuenta de que se había quedado sin inodos. (Estaba almacenando muchas pequeñas actualizaciones incrementales de un sistema de respaldo en este volumen y se quemó a través de todos sus inodos).
Me preguntó por qué el kernel de Linux informó el mensaje de error ("sin espacio en disco") en lugar de informar correctamente ("sin inodos"). No lo sabía, así que pensé en preguntarle a StackExchange.
Alguien sabe por qué pasa esto? ¿Y por qué no se ha solucionado después de todos estos años? (Recuerdo que un amigo diferente me contó sobre este problema en 1995).
fuente
ext4
asigna inodes en el momento de la creación de fs como ext2 / 3 y no puede modificarse más tarde.Supongo que su amigo está usando una extensión fs, porque es una de las pocas f sensibles que pueden quedarse sin inodos.
Al parecer, tu amigo jugueteó con su sistema de archivos y lo rompió o tiene un volumen ridículamente grande de varios TB. Los inodos no son una cosa de usar una vez y tirar. Si realmente se quedó sin inodos, significa que tiene ridículamente muchos archivos y directorios ... lo que puede suceder en un volumen> 4TB (conjetura educada), donde "solo" 700GB son gratuitos. Para la familia ext de fs, el número de inodes se determina cuando se crea fs. Desde la
mkfs.ext4
página del manual:Para acortar el resto de esta respuesta: Esto significa que
mkfs
se le proporciona dicha proporción o asumirá una. Si su amigo usa fs de manera diferente a la asumida, la proporción elegida puede ser incorrecta para su caso de uso y obtiene ese error ... llenar un solo volumen de TB múltiple con toneladas de archivos pequeños puede contar como tal.¿Utiliza su amigo algún entorno de escritorio que implemente el concepto de "bote de basura" para archivos o cualquier otra forma de copia de seguridad que pueda crear grandes cantidades de archivos? Tal vez pueda solucionar su problema simplemente deshaciéndose de los archivos innecesarios.
Recuerdo este problema con ext2 desde el momento en que el kernel 2.4 era bastante nuevo. Como regla general, siempre uso XFS para volúmenes que son muy grandes en comparación con lo que actualmente es común. Actualmente, llamaría a todo entre 250GB a 1TB común para un solo volumen y podemos comprar discos duros de 4TB. Entonces, para todo> 3 TB, prefiero usar XFS que ext. Solo una regla general, pero no se ha quedado sin inodes durante mucho tiempo ...
fuente
tune2fs -l /dev/sda1
) y tengo una relación de 1 inodo por cada cuatro bloques y cada bloque tiene un tamaño de 1k. Sin embargo, no sé cuánto se puede considerar "predeterminado".