los inodos son los metadatos de un archivo. Solo los S.O de linux tienen inodos. Los sistemas de archivos que usan inodos son ext2/3/4. Los inodos son estructuras de datos que almacena info sobre un fichero de nuestro sistema de archivos. Inodos no tienen nombre,se identifican con un numero entero unico. Las carpetas tambien tienen inodo.
Los metadatos que almacena un inodo son: n de inodo,tamaño del fichero, dispositivo de almacenamiento,n de enlaces,uid,gid,timestamps:ultimo acceso, fecha en que se ha creado el archivo,tabla de direccionamiento: estan detallados los bloques del disco duro donde estan almacenados los ficheros.
usando el comando stat podemos ver la info almacenada por el inodo 606065
File: linux
Size: 5941 Blocks: 16 IO Block: 4096 regular file
Device: fd0ah/64778d Inode: 606065 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-04-05 14:45:05.461557661 +0000
Modify: 2022-04-08 18:32:30.697426708 +0000
Change: 2022-04-08 18:32:30.697426708 +0000
Birth: -
la principal funcion de la info en el inodo es acceder a la info almacenada en nuestro disco duro.
11-04
las dentries son los inodos de un directorio. las dentries de un directorio se almacenan en una tabla. Es decir,una dentry es un nombre que apunta hacia un inodo. Usa un inodo por cada directorio incluyendo /. usa una dentries para unir cada archivo con su carpeta, los subdirectorios con directorios(..) padre y estos con / al final.
para saber el espacio que ocupa un inodo debe usarse fdisk -l ,luego tune2fs -l /dev/sdax | grep Inode
los sistemas de archivos ext4 acostumbran a tener 256 bytes como tamaño de inodos. el ext2 acostumbra tener 128 bytes.
si la particion /home es de 256 bytes y los bloques de mi disco duro son de 4096 bytes,cada bloque del disco duro podra almacenar 16 inodos.
Los inodos se crean en el momento que se genera el sistema de archivos. Una vez generado el sistema de archivos no será posible añadir y/o redimensionar los inodos. en los sistemas de de archivo jfs,btrfs, y xfs si se permite incrementar la cantidad de inodos.
Si queremos controlar el número y el tamaño de los inodos lo podemos hacer en el momento de formatear nuestras particiones:
mkfs.ext4 -N 2.000.000 -I 256 /dev/sdaX
si usamos este comando se formateara la particion creando 2 000 000 de inodos con 256 bytes de tamaño c/u. Hay que tener ciertas precauciones:
El tamaño de los inodos tiene que ser una potencia de 2 igual o mayor que 128 bytes. Los tamaños de inodo recomendados son 128 o 256 bytes.
El número de inodos ideal será en función del tamaño de la partición y de las necesidades de cada usuario.
Si eligen un tamaño de inodo muy grande y/o una gran cantidad de inodos, se reducirá la capacidad de almacenamiento del disco duro
Existen parámetros adicionales para controlar el número de inodos generados como por ejemplo -i bytes-per-inode, -T usage-type[,…], etc
para formatear rapidamente la particion se usa mkfs.ext4 /dev/sdaX
los inodos contienen bloques para almacenar las posiciones del contenido del fichero en el disco duro. si el inodo llena la tabla se realiza un direccionamiento indirecto...que es llamar una nueva tabla de bloques hacia mas posiciones de nuestro disco. Del mismo modo que se hacen direccionamiento simples pueden hacerse dobles o triples. Con esto se pueden sacar unas cuantas conclusiones: el acceso a los archivos será más lento cuando se hace un direccionamiento indirecto.
Podremos acceder de forma mucho más rápida y eficiente en archivos de poco tamaño. Por este motivo los sistemas de archivos basados en inodos son ideales para manejar servidores web o servidores de email. en linux se hace referencia a un archivo por su inodo,no su nombre.
para ver la cantidad de inodos usados se usa df -i
para ver el numero de inodos de una carpeta ls -i
lo mismo para cualquier archivo: ls -i /ruta/inodo
para encontrar un archivo por su inodo se usa find / -inum 523580