GNU/Linux >> Tutoriels Linux >  >> Linux

Introduction au système de fichiers Linux

Présentation

Un système de fichiers est un ensemble de processus qui contrôle comment, où et quand les données sont stockées et extraites d'un périphérique de stockage. Un système de fichiers efficace est essentiel pour les processus système quotidiens.

Le noyau Linux prend en charge divers systèmes de fichiers, mais le plus couramment utilisé est le système de fichiers ext4.

Dans cet article, vous en apprendrez plus sur le développement des systèmes de fichiers Linux et les principales fonctionnalités du système ext4.

Évolution du système de fichiers Linux

Examinons de plus près l'évolution du système de fichiers Linux :

Système de fichiers MINIX

Le fichier Minix prend en charge le système d'exploitation Minix. Il a été introduit pour la première fois en 1987 par Andrew S. Tanenbaum.

Le système d'exploitation Minix et son système de fichiers étaient principalement utilisés à des fins de codage pédagogique. Les performances du système de fichiers n'étaient pas conformes à la norme à l'époque. La longueur des noms de fichiers était limitée à quatorze caractères et les partitions étaient limitées à 64 Mo. À l'époque, les disques durs prenaient en charge des partitions jusqu'à 140 Mo.

En 1992, Minix était pratiquement hors d'usage en raison du manque de performances et du développement du système de fichiers ext .

Système de fichiers externe

Le système de fichiers ext signifie "Système de fichiers étendu". C'était le premier système de fichiers conçu pour prendre en charge le noyau Linux.

Système de fichiers virtuel (VFS) a été utilisé pour le système de fichiers ext. Son objectif principal était de permettre au noyau Linux d'accéder au système de fichiers ext. Le système de fichiers ext limitait la longueur des noms de fichiers à 255 caractères et prenait en charge les partitions jusqu'à 2 Go.

Bien qu'il ait réussi à résoudre les problèmes rencontrés par le système de fichiers Minix, il présentait un défaut majeur :l'horodatage. Contrairement à aujourd'hui où chaque fichier Linux a trois horodatages (horodatage d'accès, horodatage modifié et horodatage modifié), le système de fichiers ext n'autorisait qu'un seul horodatage par fichier.

En janvier 1993, le système de fichiers ext2 a été introduit. Avec le temps, tous les utilisateurs sont passés de ext à ext2.

Système de fichiers ext2

Remi Card a conçu lesystème de fichiers ext2 et l'a publié en janvier 1993, moins d'un an après l'introduction du système de fichiers ext.

Le système de fichiers ext2 a permis de conserver la structure interne tout en étendant les fonctionnalités du système de fichiers. Les données des fichiers étaient conservées dans des blocs de données de même longueur. Le système de fichiers ext2 prenait en charge la taille de fichier maximale de 2 To. La longueur des noms de fichiers n'était pas limitée en caractères, mais en octets - 255 octets. Il ne supportait pas la journalisation.

Bien que ce système de fichiers ait été largement utilisé, il présentait toujours deux problèmes majeurs :

  • Corruption de fichiers – Ce phénomène se produirait si des données étaient écrites sur le disque au moment d'une coupure de courant ou d'un plantage du système.
  • Perte de performances – La fragmentation du disque se produit lorsqu'un seul fichier est divisé en plusieurs morceaux et réparti sur plusieurs emplacements du disque. Par conséquent, les fichiers prennent plus de temps à lire et à écrire, ce qui entraîne une dégradation des performances.

Le système ext2 a été principalement utilisé jusqu'au début des années 2000, lorsque le système de fichiers ext3 a été introduit. Il est parfois utilisé aujourd'hui pour les périphériques USB car il ne prend pas en charge le système de journalisation.

Système de fichiers ext3

Stephen Tweedie a conçu le système de fichiers ext3 (Troisième système de fichiers étendu). Il a été lancé en novembre 2001 avec le noyau Linux 2.4.15. Il est toujours utilisé aujourd'hui.

Le système de fichiers ext3 est une version améliorée du système de fichiers ext2. Il prend en charge une taille de fichier maximale de 2 To et limite la longueur maximale du nom de fichier à 255 octets, comme le système de fichiers ext2. L'amélioration se reflète dans la journalisation.

La journalisation Le système tient un « journal » de toutes les modifications de la structure de données qui n'ont pas encore été validées. En cas de panne de courant ou de plantage du système, les journaux stockés via le système de journalisation renvoient les données en quelques secondes, réduisant ainsi le risque de corruption ou de perte de données. Le système écrit les données dans les zones appropriées du système de fichiers lorsque le journal est mis à jour.

Le noyau Linux prend en charge trois niveaux de journalisation :

  • Journal – Il consiste à écrire les métadonnées et le contenu des fichiers dans un journal avant que des modifications ne soient apportées au système de fichiers principal. Cela permet d'économiser des données en cas de panne de courant ou de panne du système. L'inconvénient de ce niveau de journalisation est que les performances du système diminuent.
  • Commandé – Ce niveau de journalisation écrit les métadonnées dans le journal, tandis que le contenu des fichiers est automatiquement stocké dans le système de fichiers principal. Le processus est exécuté dans un ordre spécifique. Premièrement, les métadonnées sont écrites dans le journal. Ensuite, le contenu du fichier est écrit dans le système de fichiers principal. Finalement, les métadonnées se connectent au système de fichiers principal. Par conséquent, le système de fichiers principal n'est pas corrompu en cas de panne du système. Seuls les fichiers en cours d'écriture lors d'un plantage peuvent être corrompus.
  • Réécriture – Ce niveau de journalisation écrit uniquement les métadonnées dans le journal. Le contenu des fichiers est écrit dans le système de fichiers principal uniquement après la mise à jour du journal. En raison du manque de synchronisation des métadonnées et du contenu des fichiers, le système de fichiers sera probablement corrompu si le système tombe en panne.

Système de fichiers ext4

Le système de fichiers ext4 est le système de fichiers par défaut du noyau Linux actuel. Il a été introduit en octobre 2008 avec le noyau Linux 2.6.28.

Le système de fichiers ext4 prend en charge la taille de fichier maximale de 16 Tio et limite la longueur maximale des noms de fichiers à 255 octets.

Caractéristiques du système de fichiers ext4

Examinons les principales fonctionnalités du système de fichiers ext4.

Compatibilité descendante

Le système de fichiers ext4 prend en charge la rétrocompatibilité avec les systèmes de fichiers ext3 et ext2. Une fonctionnalité supplémentaire est le montage automatique du système de fichiers ext3 en mode ext3 à l'aide d'un pilote ext4.

Améliorations de l'allocation

Le système de fichiers ext4 alloue les blocs de stockage plus efficacement avant de les écrire sur le disque. Cela améliore les performances de lecture et d'écriture.

Améliorations de l'horodatage

Le système de fichiers ext4 ajoute 408 années supplémentaires à l'horodatage et prend en charge les dates jusqu'au 10 mai 2446. Les horodatages sont également mesurés plus rapidement, en nanosecondes.

Étendues

Les versions obsolètes du système de fichiers ext mappent tous les blocs en corrélation avec chaque fichier. Le processus ne fonctionne pas lorsqu'il s'agit de fichiers volumineux nécessitant un nombre élevé de blocs. Les extensions ont résolu le problème dans le système de fichiers ext4.

Étendues réduire la quantité de métadonnées requises pour mapper les blocs de chaque fichier. Le système enregistre l'adresse du premier et du dernier bloc correspondant au gros fichier.

Améliorations de l'allocation multibloc

Un allocation de bloc recherche les blocs libres qui peuvent être utilisés pour écrire des données sur le disque. Le système de fichiers ext4 utilise plusieurs allocations qui permettent l'attribution de plusieurs blocs par appel. Cela réduit la fragmentation du disque.

Allocation différée

L'allocation différée La fonctionnalité alloue des blocs uniquement lorsque le fichier est écrit sur le disque. Grâce à cette fonctionnalité, la mémoire cache n'est pas remplie de données inutiles et les performances du système augmentent.

Nombre illimité de sous-répertoires

La version 2.6.23 du noyau Linux prend en charge un nombre illimité de sous-répertoires. Le système de fichiers ext4 a introduit la structure de données HTree pour éviter les baisses de performances. La structure de données HTree représente une version spécialisée du B-tree.

Sommes de contrôle du journal

Le système de fichiers ext4 utilise la somme de contrôle option. Cette option a été introduite pour réduire le risque de corruption de fichiers.

Le système de journalisation est la partie la plus utilisée du disque. Lorsqu'une panne matérielle se produit, les blocs deviennent inutilisables et une corruption de fichiers se produit. L'option de somme de contrôle vérifie constamment si un bloc est endommagé. Ce processus améliore également les performances car il raccourcit le temps de journalisation.

Vérifications plus rapides du système de fichiers

Dans un système de fichiers ext4, les groupes non distribués de blocs et les tables d'inodes sont marqués. Le temps nécessaire pour exécuter le fsck La commande est considérablement raccourcie car les groupes marqués sont ignorés. Cela améliore les performances globales.

Défragmentation en ligne

La fragmentation du disque entraîne une dégradation des performances, ce qui était un problème important avec les systèmes de fichiers ext2 et ext3. Le système de fichiers ext4 prend en charge le e4defrag outil qui permet aux utilisateurs de défragmenter des fichiers individuels ou le système de fichiers complet.

Limites du système de fichiers ext4

Bien que le système de fichiers ext4 soit considéré comme le meilleur système de fichiers pour les distributions Linux, certaines limitations doivent être prises en compte lors du développement ultérieur du système :

  • Récupération de données corrompues – Le système de fichiers ext4 ne peut pas détecter ou récupérer les données corrompues déjà écrites sur le disque.
  • Taille maximale du volume – La taille de volume maximale est définie sur 1 EiB. Cependant, le système de fichiers ne peut pas traiter plus de 100 Tio de données sans une perte significative de performances et une fragmentation accrue du disque.

Systèmes de fichiers Linux alternatifs

Il existe plusieurs alternatives au système de fichiers ext4. Le noyau Linux prend en charge toutes les alternatives répertoriées ci-dessous.

XFS

XFS est un système de fichiers 64 bits qui a été introduit pour la première fois en 1994 et intégré au noyau Linux depuis 2001. Il s'agit du système de fichiers par défaut pour RedHat Linux.

XFS prend en charge une taille de fichier maximale de 8 EiB et limite la longueur du nom de fichier à 255 octets. Il prend en charge la journalisation et, comme ext4, il enregistre les modifications dans un journal avant que les modifications ne soient validées dans le système de fichiers principal. Cela réduit la possibilité de corruption de fichiers.

Les données sont structurées en arbres B+ , qui fournit une allocation d'espace efficace et donc des performances accrues.

Le principal inconvénient de ce système se reflète dans le processus de redimensionnement difficile d'un système de fichiers XFS existant.

Ouvrir ZFS

OpenZFS est une plate-forme qui combine des systèmes de fichiers avec des gestionnaires de volume. Il a été introduit pour la première fois en 2013.

OpenZFS prend en charge une taille de fichier maximale de 16 EiB et limite la longueur maximale du nom de fichier à 255 caractères. Certaines des fonctionnalités de ce système sont la protection contre la corruption des données, le cryptage, la prise en charge de capacités de stockage élevées, la copie sur écriture et RAID-Z.

Le principal inconvénient d'OpenZFS est l'incompatibilité légale entre les licences CDDL (OpenZFS) et GPL (noyau Linux). Cela est résolu en compilant et en chargeant le code ZFS dans le noyau Linux.

BtrFS

Oracle a conçu BtrFS (signifie "système de fichiers B-tree") et l'a publié en 2009 avec le noyau Linux 2.6.29.

BtrFS prend en charge une taille de fichier maximale de 16 EiB et limite la longueur maximale du nom de fichier à 255 caractères. Certaines des fonctionnalités de BtrFS sont la défragmentation en ligne, l'ajout et la suppression de périphériques de bloc en ligne, la prise en charge RAID, la compression configurable par fichier ou volume, le clonage de fichiers, les sommes de contrôle et la capacité de gérer les fichiers d'échange et les partitions d'échange.


Linux
  1. Copier des fichiers dans le terminal Linux

  2. Renommer un fichier dans le terminal Linux

  3. Déplacer des fichiers dans le terminal Linux

  4. Autorisations Linux :une introduction à chmod

  5. Une introduction à la surveillance des comptes utilisateur Linux

Arch Linux – Personnalisation du système

Introduction aux cgroups d'un administrateur système Linux

Le fichier Hosts sous Linux

Choisissez le meilleur système de fichiers pour votre Linux

Tout ce que vous devez savoir sur le système de fichiers Linux

Comprendre le fichier /etc/fstab sous Linux