Si vous utilisez Linux depuis assez longtemps, vous aurez vu le terme « inodes ». C’est quelque chose qui apparaîtra de temps en temps, mais n’affecte pas ce que vous faites. Ici, nous allons expliquer ce que sont les inodes et comment cela fonctionne.
Contenu
Qu’est-ce qu’Inodes ?
Dans une bibliothèque, tous les livres sont classés par genre, nom d’auteur ou tranche d’âge du public. Si vous souhaitez localiser un thriller de « Bobby Daniels », vous vous dirigerez directement vers la section des thrillers et commencerez à trouver des noms d’auteurs commençant par « B ». Tout comme une bibliothèque, tous les fichiers d’un système Linux sont organisés pour une récupération et une utilisation efficaces. Inode est une entité qui aide à organiser les fichiers au sein d’un système Linux.
Qu’est-ce que les métadonnées de fichier ?
Disons que nous avons un fichier appelé « sample.txt » contenant les données « hello ».
Ce fichier contient des données et des informations pertinentes telles que la taille du fichier, les autorisations, la propriété des utilisateurs et des groupes, les horodatages de création/accès/modification, le nombre de liens, etc. Toutes ces informations sont collectivement appelées métadonnées de fichier.
Que sont les systèmes de fichiers ?
Sur un périphérique de stockage comme un disque dur, une partition est formatée en tant que système de fichiers avant d’être utilisée pour le stockage de fichiers. Un système de fichiers est le bibliothécaire du disque dur. Formellement, il s’agit d’un ensemble de structures de données et d’algorithmes qui fonctionnent en tandem pour stocker méthodiquement les fichiers sur la partition.
Les partitions sur les systèmes Linux sont fréquemment formatées avec EXT4. D’autres systèmes de fichiers tels que B-Tree File System (BTRFS), Reiser File System, ZFS, etc. sont également disponibles.
Les attacher tous ensemble
Inode est une structure de données sur Ext4 qui contient toutes les métadonnées d’un fichier.
Bien sûr, il y aurait de nombreux fichiers sur un système de fichiers. Comme vous l’avez deviné, chaque fichier aurait son propre inode. Pour identifier de manière unique les inodes, chaque inode est numéroté.
À quoi ressemblerait la numérotation des inodes ?
Les numéros d’inode sur un système de fichiers commencent à 1. Les dix premiers inodes sont réservés à l’utilisation du système. Les fichiers utilisateur ont leurs métadonnées stockées à partir de l’inode 11. Tous les inodes sont soigneusement empilés ensemble dans une table d’inodes.
Une entrée dans la table Inode aurait une taille de 256 octets. Pour un fichier, Linux organise intelligemment toutes les métadonnées sur 256 octets ! De plus, un inode pour un fichier aurait également des informations sur l’emplacement des données du fichier dans le système de fichiers. N’oubliez pas que seules les métadonnées du fichier sont stockées dans l’inode.
Le nombre total d’inodes dans un système de fichiers dépend de l’espace disponible et du nombre de fichiers pouvant être stockés sur la partition.
Comment les inodes sont-ils alloués et désalloués ?
Lorsque l’utilisateur ajoute des fichiers à un système de fichiers fraîchement formaté, les inodes à partir de 11 sont alloués pour contenir les métadonnées des fichiers.
Il existe une autre structure de données appelée « Inode Bitmap » pour suivre l’état d’allocation d’un inode. C’est une collection de bits qui agit comme une carte.
Considérons huit bits dans le bitmap d’inode pour désigner l’état d’allocation des inodes 11 à 18, comme indiqué dans le tableau ci-dessous. Une valeur de 1 dans le bitmap signifie que l’inode est alloué, c’est-à-dire utilisé pour contenir les métadonnées d’un fichier. Une valeur de 0 dans le bitmap signifie que l’inode n’est actuellement pas utilisé. Ici, nous pouvons voir que l’inode 17 est en cours d’utilisation.
Dans le cas où le fichier qui a ses métadonnées dans l’inode 17 est supprimé, alors son état bitmap correspondant deviendrait 0, indiquant qu’il est libre d’être utilisé par un autre fichier.
Comment afficher le numéro d’inode d’un fichier ?
Il y a deux façons de faire ça.
La première consiste à utiliser la commande ls avec le commutateur –i, suivi du nom d’un fichier. Le premier champ de la sortie est le numéro d’inode qui contient les métadonnées de « sample.txt ».
Les mêmes informations peuvent être obtenues en utilisant la commande stat suivie du nom du fichier.
Pour afficher le nombre total d’inodes disponibles pour une partition, la commande df peut être utilisée avec le commutateur -i.
Dans la partition « /dev/sda4 », 404754480 inodes sont disponibles, parmi lesquels seuls 359044 inodes sont utilisés.
Conclusion
Par nature, la table des inodes empile méticuleusement les métadonnées de tous les fichiers dans les inodes, ainsi que des informations sur l’emplacement des données du fichier. Tout ce dont nous avons discuté sur les inodes Linux n’est que la pointe de l’iceberg. Pour plus d’informations sur son fonctionnement interne, vous pouvez consulter ce lien.
Cet article est-il utile ? Oui Non