Les inodes cor­res­pon­dent à une structure de gestion des systèmes de fichiers des systèmes d’ex­ploi­ta­tion basés sur Unix. Les inodes re­pré­sen­tent donc des en-têtes de données dans des listes d’inodes ou des struc­tures de données si­mi­laires. Ils con­tien­nent des mé­ta­don­nées sur les fichiers stockés. Ces mé­ta­don­nées s’ap­pa­ren­tent, entre autres, à des in­for­ma­tions telles que les droits d’accès, l’em­pla­ce­ment d’en­re­gis­tre­ment, le groupe, le numéro d’uti­li­sa­teur ou les dates relatives aux mo­di­fi­ca­tions ou aux accès.

Qu’est-ce qu’un inode ?

Le terme « inode » est la con­trac­tion d’« index node » (nœud d’index). Il s’agit d’une forme de gestion des fichiers qui joue un rôle essentiel depuis le dé­ploie­ment du système d’ex­ploi­ta­tion Unix et des autres systèmes basés sur ce dernier, comme Linux ou encore macOS. Les prin­ci­pales fonctions des inodes au regard des systèmes de fichiers con­sis­tent à ré­fé­ren­cer, gérer et repérer des fichiers par­ti­cu­liers dans un système grâce à des numéros d’inodes à la fois uniques et dis­tinc­tifs. En leur qualité de struc­tures de données définies, les inodes servent à décrire et à gérer des fichiers spé­ci­fiques grâce à des mé­ta­don­nées. La nature de ces mé­ta­don­nées dépend bien entendu du système de fichiers dont il est question.

S’ils ne con­tien­nent aucune in­for­ma­tion sur le nom du fichier en lui-même, les inodes com­por­tent gé­né­ra­le­ment les in­for­ma­tions ci-dessous sur les fichiers et les blocs de fichiers :

  • Type et droits d’accès
  • Nombre de liaisons per­ma­nentes
  • Numéro d’uti­li­sa­teur (UID)
  • Numéro de groupe (GID) ou iden­ti­fiant de groupe (GUI)
  • Taille du fichier (en octets)
  • Date de la dernière mo­di­fi­ca­tion (mtime)
  • Date du dernier chan­ge­ment d’état (ctime)
  • Date du dernier accès (atime)
  • Adresse des blocs de données
  • Adresse des blocs d’in­di­rec­tion
  • Nombre de liens
  • Numéro de version
Bases de données managées
Des bases de données gérées et sûres
  • Solutions flexibles, adaptées à vos besoins
  • Ar­chi­tec­ture de niveau pro­fes­sion­nel, gérée par des experts
  • Hébergées en Europe, con­for­mé­ment aux normes de pro­tec­tion des données les plus strictes

Comment fonc­tion­nent les inodes ?

Les systèmes Unix ne gèrent pas les secteurs des par­ti­tions de disque dur par clus­te­ring, mais sous forme de blocs de données. Con­trai­re­ment au système DOS, des inodes sont créés au lieu de tables d’al­lo­ca­tion de fichiers (FAT) pour la gestion et le ré­fé­ren­ce­ment des données de ré­per­toire. Si les données sont stockées sur le disque dur sous forme de blocs fixes, le volume d’un fichier peut ra­pi­de­ment dépasser l’espace dis­po­nible dans la mémoire du bloc. Le système doit alors trouver un autre bloc dis­po­nible pour stocker le reste du fichier. C’est pré­ci­sé­ment là que les inodes entrent en scène.

Les inodes per­met­tent en effet de retrouver les données stockées dans un système à l’aide de données de référence, de données de ré­per­toire et de leurs inodes, y compris grâce à un numéro d’inode unique. Ils ne dépendent pas du nom du fichier, ce qui constitue un avantage con­si­dé­rable. Dans le cas d’un fichier copié et renommé, il suffit pour le retrouver d’utiliser le même numéro d’inode que celui du fichier d’origine. C’est d’ailleurs ce qu’il se passe avec les liaisons per­ma­nentes créées par les uti­li­sa­teurs à l’aide de la commande Linux ln. Si cette forme de comp­ta­bi­li­sa­tion interne est avan­ta­geuse, c’est notamment parce que les inodes renvoient aussi bien aux fichiers d’origine qu’à leurs sau­ve­gardes res­pec­tives, sans pour autant accaparer davantage de mémoire.

Comme les inodes sont créés de façon fixe en fonction du système, il peut arriver qu’un fichier soit trop vo­lu­mi­neux par rapport aux inodes dis­po­nibles. Dans un tel cas, l’inode d’origine renvoie alors à un autre inode, également connu sous le nom de bloc d’in­di­rec­tion, qui contient les mé­ta­don­nées restantes.

Note

Comme la taille des inodes est définie dès le départ en fonction du système, il est possible que les inodes ne soient pas suf­fi­sants si le nombre de fichiers est important. Il convient alors de res­truc­tu­rer le système de fichiers en prévoyant un plus grand nombre d’inodes.

Où les inodes sont-ils utilisés ?

Les inodes per­met­tent de gérer et de struc­tu­rer les systèmes de fichiers. Ils s’utilisent aussi bien dans les systèmes Linux privés que dans les solutions relatives aux services gérés. Que vous soyez un uti­li­sa­teur in­di­vi­duel ou que vous re­pré­sen­tiez une en­tre­prise, si vous cherchez un outil Cloud pour des serveurs avec des systèmes d’ex­ploi­ta­tion basés sur Unix, vous pouvez donc vous tourner vers des struc­tures de données utilisant des inodes. Comme dans le cas de la plupart des services Cloud, il peut s’agir d’un Cloud public ou d’un Cloud privé ; tout dépend de vos besoins.

Quels systèmes de fichiers prennent en charge les inodes ?

L’ensemble des systèmes d’ex­ploi­ta­tion basés sur Unix, tels que Linux ou macOS, font appel à des inodes. Toutefois, la structure et la con­fi­gu­ra­tion de ces inodes peuvent varier selon le système de fichiers qui les prend en charge. Ainsi, dans les systèmes ext2/ext3/ext4, ils prennent la forme de listes ou de tables d’inodes et cor­res­pon­dent à des en-têtes de données des­crip­tives. La liste d’inodes est unique et établie dès la création du système ; il est donc im­pos­sible de la modifier par la suite. En outre, les inodes ext4 de 256 octets occupent un espace de stockage fixe dans la mémoire, et il est im­pos­sible d’utiliser celui-ci autrement. Dans ces systèmes de données, chaque inode décrit un fichier ou un ré­per­toire du système à l’aide des mé­ta­don­nées cor­res­pon­dantes.

Toutefois, avec les systèmes de fichiers plus complexes, comme xfs ou btrfs, les inodes ne sont générés que s’ils sont né­ces­saires à la lo­ca­li­sa­tion de fichiers. Dans ce genre de cas, aucune liste ou tables d’inodes n’est alors utilisée. D’autres dif­fé­rences de fonc­tion­ne­ment existent aussi entre les inodes sur les disques durs (« Disk Inodes ») et les inodes dédiés au trai­te­ment de la mémoire Linux (« In Core Inodes »).

Aperçu des prin­ci­pales commandes relatives aux inodes

Comme le nombre d’inodes dis­po­nibles est limité selon le système de fichiers que vous utilisez, vous devez savoir afficher les inodes occupés, ou plus pré­ci­sé­ment les em­pla­ce­ments occupés par les inodes au sein du système. Cette in­for­ma­tion est né­ces­saire dès lors qu’il n’y a plus assez d’inodes dis­po­nibles pour des fichiers sup­plé­men­taires.

Commande per­met­tant d’afficher les em­pla­ce­ments occupés dans le système de fichiers

Pour afficher les em­pla­ce­ments occupés par des inodes dans votre système de fichiers, vous pouvez utiliser la commande suivante :

~ find /home /tmp -xdev -printf ´%h \n´ | sort | uniq -c | sort -k 1 -nr | head -n 20
shell

Commande per­met­tant d’obtenir un aperçu des inodes occupés

Pour afficher tous les inodes occupés dans votre système, utilisez le code suivant :

df -ih
shell

Cette commande vous donne un aperçu de l’uti­li­sa­tion des inodes, notamment en ce qui concerne le système de fichiers associé, le nombre total d’inodes, le taux d’oc­cu­pa­tion et les inodes non occupés :

df -i
shell

Commande per­met­tant d’afficher un numéro d’inode spé­ci­fique

Pour afficher le numéro d’inode spé­ci­fique à un fichier, vous pouvez utiliser la commande ci-dessous :

ls -i
shell

Commande per­met­tant d’afficher tous les fichiers d’un inode

Vous souhaitez connaître les fichiers (notamment les fichiers d’origine, les copies ou les sau­ve­gardes) ré­fé­ren­cés par un inode ? Utilisez le code suivant :

-inum
shell

Conseils relatifs à une uti­li­sa­tion intensive des inodes

Vous pouvez utiliser des inodes de manière intensive sans que cela ne signifie pour autant que vous êtes sur le point de manquer de capacités de stockage. La plupart du temps, une im­por­tante uti­li­sa­tion d’inodes peut être liée à de petits éléments de données superflus, comme les fichiers TMP tem­po­raires, les caches ou les sessions. Pour résoudre ce problème, il suffit gé­né­ra­le­ment de con­fi­gu­rer la sup­pres­sion au­to­ma­tique de tous les fichiers de plus de 14 jours. Pour ce faire, exécutez une tâche cron à l’aide de la commande suivante :

03 *** /usr/bin/find /path/to/files/* -type f – mtime +14 -delete > /dev/null 2>&1
shell

Que se passe-t-il en cas de manque d’inodes ?

Si vous ne disposez plus de suf­fi­sam­ment d’inodes pour de nouveaux fichiers, vous êtes sus­cep­tibles d’observer les phé­no­mènes suivants :

  • Blocage des ap­pli­ca­tions
  • Perte de données
  • Re­dé­mar­rage non planifié
  • Arrêt des processus sans re­dé­mar­rage
  • Processus planifiés in­ca­pables de démarrer au­to­ma­ti­que­ment

Si vous êtes au maximum de la capacité de vos inodes, nous vous con­seil­lons de libérer une partie de la mémoire occupée. Vous avez également la pos­si­bi­lité, par l’in­ter­mé­diaire d’un processus re­la­ti­ve­ment complexe, de res­truc­tu­rer le système de fichiers afin d’accroître votre nombre maximal d’inodes.

Aller au menu principal