Inodes
100%

Le Système de Fichiers · Leçon 11

Inodes

Découvrez comment les numéros d'inodes relient les noms des répertoires aux métadonnées et aux données des objets du système de fichiers.

Dans les systèmes de fichiers Unix fondés sur les inodes, un répertoire associe chaque nom d'entrée à un numéro d'inode. L'inode représente l'objet du système de fichiers et consigne les métadonnées nécessaires pour trouver et interpréter ses données. Le chemin n'est donc pas enregistré comme identité principale propre à l'objet.

Métadonnées associées à un inode

Les métadonnées couramment associées à un inode comprennent :

  • le type d'objet et le mode de permissions ;
  • le propriétaire utilisateur et groupe ;
  • la taille logique et la comptabilité des blocs alloués ;
  • le nombre de liens physiques ;
  • les horodatages d'accès, de modification et de changement d'état ;
  • les références aux données du fichier ou aux structures d'étendues propres au système de fichiers.

L'inode ne stocke normalement pas le nom de l'entrée de répertoire. Un système de fichiers peut aussi conserver des attributs étendus, listes de contrôle d'accès, une date de naissance, des données intégrées ou d'autres informations au moyen de structures propres au format.

ctime est la date de changement d'état de l'inode, pas nécessairement celle de création du fichier. Un horodatage distinct de naissance ou de création est facultatif et peut être indisponible.

Où le composant de chemin d'un fichier ordinaire est-il normalement associé à son numéro d'inode ?

Numéros d'inodes et portée du système de fichiers

Affichez les numéros d'inodes avec :

$ ls -li

Le premier champ est le numéro d'inode. Examinez un objet plus en détail avec :

$ stat path

Un numéro d'inode n'est unique qu'au sein d'un système de fichiers et à un moment donné. Le même numéro peut exister dans un autre système, et un numéro peut être réutilisé après la libération de son inode. Pour identifier solidement un objet, employez à la fois l'identité du système de fichiers et le numéro d'inode plutôt que ce dernier seul.

Dans quelle portée un numéro d'inode identifie-t-il un objet ?

Liens physiques et références ouvertes

Plusieurs entrées de répertoire peuvent désigner le même inode : ce sont des liens physiques. La création d'un nouveau lien physique augmente le nombre de liens de l'objet. La suppression d'un nom le diminue sans supprimer les données tant qu'un autre lien subsiste.

Même après la suppression de la dernière entrée de répertoire, un fichier ouvert reste alloué jusqu'à la fermeture de la dernière référence d'un processus. Son nombre de liens peut être nul alors qu'un descripteur de fichier y accède encore. Cela explique pourquoi la suppression d'un gros journal ouvert ne réduit pas forcément immédiatement l'utilisation signalée par df.

Quand les ressources d'un fichier délié sont-elles normalement libérées ?

Capacité en inodes

Sur les systèmes de fichiers dont le nombre d'inodes est fini ou communiqué, des millions de petits fichiers peuvent épuiser la capacité des métadonnées avant de remplir les blocs de données. Examinez la comptabilité des inodes des systèmes montés avec :

$ df -i

S'il ne reste aucun inode libre, la création d'un nouveau fichier peut échouer même lorsque df -h signale des blocs disponibles. Les stratégies d'allocation diffèrent : certains systèmes préallouent les structures d'inodes lors de leur création, tandis que d'autres gèrent les métadonnées dynamiquement et peuvent présenter leur capacité d'inodes autrement.

Qu'indique df -i lorsque le système de fichiers fournit une comptabilité des inodes ?

Cartographie des données propre au système de fichiers

Ne supposez pas que chaque inode possède exactement 12 pointeurs directs et trois pointeurs indirects. Cela décrit utilement certaines organisations classiques, mais ext4 moderne peut employer des étendues, tandis que XFS, Btrfs et d'autres systèmes utilisent des structures différentes. Les données intégrées et les étendues compressées ou copy-on-write modifient encore cette relation.

N'employez les outils de diagnostic propres au système de fichiers qu'en lecture seule ou dans des modes documentés lorsque la cartographie interne est importante. Pour l'administration courante, stat, find -inum, df -i et les outils tenant compte des liens fournissent des abstractions plus sûres.

Pourquoi ne faut-il pas supposer une organisation fixe des pointeurs pour chaque inode ?

Leçon terminée

Vous avez terminé Inodes

Vous savez maintenant relier chemins, inodes, liens et capacité du système de fichiers.

  • Considérer les entrées de répertoires comme des associations entre noms et numéros d'inodes.

  • Lire les métadonnées et horodatages sans confondre ctime avec la création.

  • Limiter la portée des numéros d'inodes à un système de fichiers et un moment.

  • Tenir compte des liens physiques et des descripteurs de fichiers ouverts.

  • Employer les modèles propres aux systèmes de fichiers plutôt qu'une organisation universelle des pointeurs.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Le Système de Fichiers