La gestion des systèmes de fichiers sous Linux – EXT3 – EXT4 – BUTRFS

I► Nous allons voir dans cet article les différentes évolutions du principal Système de Fichier linux : EXTended

Rappel : les unités de disque dur ou clé USB sont désormais identifiés par leur UUID (Universal Unique IDentifier) exemple : /etc/fstab

  • blkid donne la liste de toutes les unités et leur association aux devices /dev
  • du affiche la quantité d’espace occupée par un fichier (répertoire)
    du -hs /home (Summarize)
    du -h /etc/login.defs
  • df donne l’utilisation en % et en taille du file system
    ex :
    df -h  ou df -h /dev/sdb1
  • dumpe2fs donne des infos sur le FS : dumpe2fs /dev/sda1 | more

Ext3, le FS par défaut depuis le début 2000 commence à montrer ses limites face aux gros volumes d’informations que l’on à stocker.
La taille maximum du système de fichiers de 16 To fixée par un nombre de blocs codé sur 32 bits  (soit 232 = 4 294 967 296 BLOCS – 4To de blocs  ) et des blocs de données de 4KB (soit . 4To * 4 = 16 To

La taille maxi d’un fichier peut atteindre 64 Go !

Avec Ext4, le nombre de blocs est passé de 32 à 48 bits (soit 248 blocs ). La taille du bloc reste inchangée (4Ko), mais par contre la limite du FS passe à 1024 Po soit 1024 000 To.

La taille maxi d’un fichier peut atteindre 16To !

————————————————————————————————————————–

Voyons comment EXT3 stocke les informations des fichiers :

Un inode ext3 contient les numéros d’un maximum de 12 blocs de 4 KB.
Si un fichier est plus grand que 48 KB il est alors adressé en utilisant un adressage indirect simple (jusqu’à 4 MB),puis double (jusqu’à 4 GB) et enfin triple (jusqu’à 64 GB).

Un Inode EXT3 stocke les infos du fichier concerné :

  • type de fichier
  • droits
  • User
  • Taille
  • Access Time
  • Groups
  • 12 blocs direct pointant vers des blocs de 4Ko max
  • 1 bloc d’indirection simple pointant vers 256 blocs de de données
  • 1 bloc d’indirection double pointant vers 2562 blocs de données
  • 1 bloc d’indirection triple pointant vers 2563 blocs de données.

L’innovation d’ext4 est l’utilisation d’extents au lieu de l’adressage de blocs indirect avec FSEXT3. Un EXTENT représentant un groupe de blocs de données (codé sur 12 octets = 96 Bits) est composé:

  • 48 bits (6 octets) : stocke le numéro du premier bloc physique, numéro de début de l’extent;
  • 16 bits (2 octets) : stocke la taille de l’extent dont la taille maxi est 128 Mo.
    Tout comme ext3, ext4 découpe le disque dur en groupes de blocs de 128 Mo ;
  • 32 bits (4 octets) : stocke le numéro du premier bloc de données logique correspondant à un offset (décalage) par rapport au début du 1er bloc d’adresse physique, qui contient les headers et les méta-données spécifiques à l’extent

Un fichier peu avoir évidemment plusieurs EXTENTS.

Il n’y a pas de fragmentation avec EXT4 (ou peu en comparaison de EXT3) , les modifications, les accès et les suppressions sont rapides … 🙂 très rapides

BUTTERFS (BTRFS) est par contre totalement différent de EXT et n’est pas dans l’évolution de EXT . Voici un bref descriptif du meilleur de tous les FS réuni en un FS !

  • La capacité maximale du FS est porté à 2^64 octets soit 16 Eo (ExaOctet = 1000 Po)
  • Le FS est capable de gérer les snapshots (instantanés)  en lecture seule ou en lecture-écriture 
  • Le FS est capable de gérer des sous-volumes :
    Un sous volume peut gérer directement un répertoire comme /home ou /var comme s’il était physiquement une partition.
  • Le FS peut être compressé (gzip / LZO)

——————————————————————————————————————–

Comment partitionner et formater un disque ?

——————————————————————————————————————–

fdisk /dev/sda => découpe le disque en plusieurs partitions ! => Partitionne ! (cfdisk)

Si le noyau ne peut lire la table des partitions : kpartx /dev/sda ou modprobe /dev/sda ou blockdev –rereadpt /dev/sda

MKFS.EXTx permet de formater une partition et de lui associer un FS précis :

mkfs.ext4 -b 4096 -i 1024 -m 1 -L MonDisque /dev/sda1

Taille du bloc de données 4Ko (valeur par défaut)
Ratio du nombre d’inodes(fichiers) par rapport au nombre de blocs de données 1Ko (valeur par défaut) => Il y aura 4 fois plus de blocs de données que d’inodes (- de fichiers + de datas)
% de blocs réservés à root
Label de la partition

tune2fs -i 10 /dev/sda1
Modifie le file system check à 10 jours

——————————————————————————————————————–

Comment gérer les quotas d’un File System ?

——————————————————————————————————————–

Le file System doit avant tout être monté avec les droits USRQUOTA et/ou GRPQUOTA
Soit on édite le /etc/fstab et on modifie directement l’entrée concerné /home
Soit on peut remonter à chaud le FS : mount -text4 -o defaults, usrquota, grpquota, remount /dev/sda1 /home/

=> La commande edquota -t modifie le sursis en jours pour tout le FS concerné et qui a été monté avec les droits quota, en spécifiant le sursis pour les blocks et les inodes :

Capture

=> La commande edquota -u NomDuUser permet de modifier directement les limites souples et strictes d’un user :

Capture

Ici l’utilisateur a actuellement 24 blocs utilisés( on ne peut pas modifier cette entrée), par contre on lui a indiqué une limite souple à 1000 Mo soit 1Go et une limite stricte à 1,2 Go.

=> La commande repquota /home permet de voir pout chaque utilisateur le nombre de blocs occupés et leurs limites souples et strictes

Capture

 Michel BOCCIOLESI