Re: Taille de fichier max sous ext4

Top Page

Reply to this message
Author: Patrice Karatchentzeff
Date:  
To: GUILDE
Subject: Re: Taille de fichier max sous ext4
Je progresse :)

Le mer. 9 nov. 2022 à 17:14, Patrice Karatchentzeff
<patrice.karatchentzeff@???> a écrit :

[...]

> Le noyau - enfin ext4 - limite la profondeur de l'arbre à 6 (0 est le
> premier cas - 4 feuilles et puis c'est tout - et 5 le nombre maximal
> possible, défini dans l'en-tête). Techniquement, si vous déployez un
> arbre complet pour avoir le nombre max de feuilles, vous avez 4
> feuilles par index à la dernière profondeur, c'est-à-dire 4^6, soit
> 4096 feuilles.


Problème de limite ! Il y a 4096... index au dernier étage, et non des
feuilles, soit 4 fois plus de feuilles, soit 16384 (2^14).

> Si je prends la taille max (en 32 bits) à 4 ko le bloc, cela fait 4096
> x 128 Mo, soit 512 Go.


Du coup, cela 2 To pour la taille d'un fichier max (2^14 x 2^27)

> Là, ça bloque, car il est écrit partout (y compris dans les
> transparents de Ted Tso himself) que la taille max d'un fichier de
> ext4 vaut 16 To. Il me manque donc un facteur 32, ce qui n'est pas
> rien. Même en passant à des blocs de 64 ko en 64 bits, il me manque
> toujours un facteur 2.


Le calcul généralement proposé est de dire que l'index ne peut indexer
plus de 2^32 blocs logiques (premier champ dans la table des index de
la structure ext4_extent_idx du noyau) et donc la taille limite sera

2^32 x 2^12 = 2^44 = 16 Go où 2^12 sont les blocs de 4 ko.

Ici pour la doc officielle de ext4 :

https://www.kernel.org/doc/html/latest/filesystems/ext4/dynamic.html?highlight=inode+table#i-osd2

Pour le calcul :

https://stackoverflow.com/questions/21868768/ext4-fs-max-file-size

(qui correspond en tout cas aux données officielles qu'on trouve un
peu partout).

Il me manque désormais un facteur 8, ce qui me semble difficile avec
des sauts de facteur 4 :(

PK

-- 
      |\      _,,,---,,_           Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff@gmail.com
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)