Chapitre 5. Le système de fichiers Ext4
Le système de fichiers ext4 est une extension évolutive du système de fichiers ext3. Dans Red Hat Enterprise Linux 7, il peut prendre en charge des fichiers et systèmes de fichiers d'une taille pouvant aller jusqu'à 16 téraoctets, et, à la différence de Red Hat Enterprise Linux 6 qui ne pouvait prendre en charge que des fichiers pouvant aller jusqu'à 16 téraoctets . Il prend également en charge un nombre illimité de sous-répertoires (le système de fichiers ext3 prend en charge un nombre maximum de 32 000), mais une fois que le nombre de liens dépasse 65 000, ce nombre se réinitialise sur 1 et n'augmente plus.
Note
Comme avec ext3, un volume ext4 doit être démonté pour effectuer une commande
fsck
. Pour obtenir des informations supplémentaires, veuillez consulter le Chapitre 4, Système de fichiers Ext3.
- Fonctionnalités principales
- Ext4 utilise des extensions (contrairement au schéma de mappage de blocs traditionnellement utilisé par ext2 et ext3), ce qui améliore les performances lors de l'utilisation de fichiers de grande taille, et réduit les en-têtes des métadonnées des fichiers de grande taille. En outre, ext4 étiquette également les groupes de blocs et les sections de tables d'inodes en conséquence, ce qui leur permet d'être ignorés pendant les vérifications de systèmes de fichiers. Ceci permet d'effectuer des vérifications de systèmes de fichiers plus rapides, qui deviendront de plus en plus avantageuses au fur et à mesure que la taille du système de fichiers augmente.
- Fonctionnalités d'allocation
- Le système de fichiers ext4 offre les schémas d'allocation suivants :
- La pré-allocation persistante
- L'allocation différée
- L'allocation multi-blocs
- L'allocation par entrelacement
À cause de l'allocation différée, et dû à d'autres optimisations des performances, le comportement d'ext4 lors de l'écriture sur disque est différent d'ext3. Avec ext4, lorsqu'un programme est écrit sur le système de fichiers, il n'est pas garanti que ce soit effectivement sur disque à moins que le programme n'exécute un appelfsync()
après.Par défaut, ext3 force automatiquement les fichiers récemment créés sur le disque de manière quasi immédiate, même sansfsync()
. Ce comportement cache les bogues des programmes qui n'ont pas utiliséfsync()
afin de s'assurer que les données écrites l'étaient sur disque. Contrairement à cela, le système de fichiers ext4 attend souvent plusieurs secondes pour écrire les changements sur le disque, lui permettant de combiner et de réarranger les écritures pour offrir de meilleures performances qu'ext3.Avertissement
Contrairement à ext3, le système de fichiers ext4 ne force pas les données sur disque lors des enregistrements de transactions. Ainsi, des écritures mises en mémoire tampon mettent plus longtemps pour être vidées sur le disque. Quant aux systèmes de fichiers, veuillez utiliser des appels d'intégrité de données, tels quefsync()
, afin de vous assurer que les données soient effectivement écrites sur un stockage permanent. - Autres fonctionnalités Ext4
- Le système de fichiers ext4 prend également en charge :
- Les attributs étendus (
xattr
) — Ceux-ci permettent au système d'associer plusieurs noms et paires de valeurs supplémentaires par fichier. - Journalisation de quotas — Ceci permet d'éviter le besoin de longues vérifications de la cohérence des quotas après une panne.
Note
Le seul mode de journalisation pris en charge sur ext4 estdata=ordered
(par défaut). - Horodatage subsecond — Ceci donne la deuxième décimale des secondes à l'horodatage.
5.1. Créer un système de fichiers Ext4
Pour créer un système de fichiers ext4, veuillez utiliser la commande
mkfs.ext4
. En général, les options par défaut sont optimales pour la plupart des scénarios d’utilisation :
# mkfs.ext4 /dev/device
Ci-dessous figure un exemple de la sortie de cette commande qui affiche la géométrie et les fonctionnalités du système de fichiers résultant :
Exemple 5.1. Sortie de la commande mkfs.ext4
~]# mkfs.ext4 /dev/sdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 245280 inodes, 979456 blocks 48972 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1006632960 30 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done
Pour les périphériques blocs à entrelacement (par exemple les matrices RAID5), la géométrie de l'entrelacement peut être indiquée pendant la création du système de fichiers. L'utilisation d'une géométrie d'entrelacement correcte améliore fortement les performances d'un système de fichiers ext4.
Lors de la création de systèmes de fichiers sur des volumes LVM ou MD,
mkfs.ext4
choisit une géométrie optimale. Ceci peut également s'appliquer à certains types de matériel RAID qui exportent des informations sur la géométrie au système d'exploitation.
Pour spécifier la géométrie d'entrelacement, veuillez utiliser l'option
-E
de mkfs.ext4
(c'est-à-dire les options de système de fichiers étendues) avec les sous-options suivantes :
- stride=value
- Spécifie la taille du bloc RAID.
- stripe-width=value
- Spécifie le nombre de disques de données dans un périphérique RAID, ou le nombre d'unités d'entrelacement dans l'entrelacement.
Pour ces deux sous-options, la valeur «
value
» doit être spécifiée en unités de bloc de système de fichiers. Par exemple, pour créer un système de fichiers avec un stride de 64k (c'est-à-dire 16 x 4096) sur un système de fichiers de blocs de 4k, veuillez utiliser la commande suivante :
# mkfs.ext4 -E stride=16,stripe-width=64 /dev/device
Pour obtenir davantage d'informations sur la création de systèmes de fichiers, veuillez consulter
man mkfs.ext4
.
Important
Il est possible d'utiliser
tune2fs
pour activer certaines fonctionnalités ext4 sur des systèmes de fichiers ext3, et d'utiliser le pilote ext4 pour monter un système de fichiers ext3. Cependant, ces actions ne sont pas prises en charge sur Red Hat Enterprise Linux 7 car elles n'ont pas été totalement testées. À cause de cela, Red Hat ne peut pas garantir de performance cohérente ou de comportement prévisible pour les systèmes de fichiers ext3 convertis ou montés de cette manière.
Il est également possible d'ajouter un UUID spécifique au système de fichiers. Voir Section 4.1, « Créer un système de fichiers ext3 » pour plus d'informations.