fonction de grand fichier lors de la création d'un système de fichiers

17

Est-il utile d'utiliser l' indicateur -T largefile pour créer un système de fichiers pour une partition avec de gros fichiers comme la vidéo et l'audio au format flac?

J'ai testé la même partition avec cet indicateur et sans lui, et en utilisant tune2fs -l [partition] , j'ai vérifié dans "Fonctionnalités du système de fichiers" que "large_file" est activé sur les deux. Donc, n'est-il pas nécessaire d'utiliser un grand fichier -T ?

Marc
la source
1
Notez que j'étais confus entre large_file (obtenu dans tune2fs) et largefile; il semble que ce sont des arguments pour différentes choses.
Marc

Réponses:

24

L' -T largefileindicateur ajuste la quantité d'inodes alloués lors de la création du système de fichiers. Une fois alloué, leur nombre ne peut pas être ajusté (au moins pour ext2 / 3, je ne suis pas complètement sûr de ext4). La valeur par défaut est un inode pour chaque 16 Ko d'espace disque. -T largefileen fait un inode pour chaque mégaoctet.

Chaque fichier nécessite un inode. Si vous n'avez plus d'inodes, vous ne pouvez pas créer de nouveaux fichiers. Mais ces inodes alloués statiquement prennent également de la place. Vous pouvez vous attendre à économiser environ 1,5 gigaoctets pour chaque 100 Go de disque en définissant -T largefile, par opposition à la valeur par défaut. -T largefile4(un inode par 4 Mo) n'a pas un effet aussi dramatique.

Si vous êtes certain que la taille moyenne des fichiers stockés sur l'appareil sera supérieure à 1 mégaoctet, définissez-la par tous les moyens -T largefile. Je suis heureux de l'utiliser sur mes partitions de stockage et je pense que ce n'est pas trop radical d'un paramètre.

Cependant, si vous décompressez un fichier tarball source très volumineux de nombreux fichiers (pensez à des centaines de milliers) sur cette partition, vous avez une chance de manquer d'inodes pour cette partition. Vous ne pouvez pas faire grand chose dans cette situation, à part choisir une autre partition à décompresser.

Vous pouvez vérifier le nombre d'inodes disponibles sur un système de fichiers en direct avec la dumpe2fscommande:

# dumpe2fs /dev/hda5
[...]
Inode count:              98784
Block count:              1574362
Reserved block count:     78718
Free blocks:              395001
Free inodes:              34750

Ici, je peux toujours créer 34 000 fichiers.

Voici ce que j'ai obtenu après avoir fait mkfs.ext3 -T largefile -m 0sur une partition de 100 Go:

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/loop1              102369       188    102181   1% /mnt/largefile
/dev/loop2              100794       188    100606   1% /mnt/normal

La version à gros fichiers a 102 400 inodes tandis que la version normale a créé 6 553 600 inodes et économisé 1,5 Go dans le processus.

Si vous avez une bonne idée de la taille des fichiers que vous allez mettre sur le système de fichiers, vous pouvez affiner la quantité d'inodes directement avec le -icommutateur. Il définit le rapport octets par inode. Vous gagneriez 75% des économies d'espace si vous l'utilisiez -i 65536tout en étant capable de créer plus d'un million de fichiers. Je calcule généralement de garder au moins 100 000 inodes de rechange.

hahaamu
la source
belle réponse, mais où vous avez dit "et économisé 1,5 Go dans le processus." vous devriez dire "mais utilisé 1,5 Go d'espace pour les inodes supplémentaires". Vous faites en sorte que le mode normal crée plus d'inodes et laisse également plus d'espace libre sur le disque.
localhost
"Je calcule généralement de garder au moins 100 000 inodes de rechange." - Pourquoi? Sûrement 0 pièce de rechange (et 0 de plus nécessaire) est optimal? Êtes-vous vraiment inquiet de ne pas pouvoir gagner 100 Ko sur le nombre de fichiers ou de répertoires dont vous disposez?
OJFord
4

Je pense que vous mélangez deux concepts complètement différents et indépendants.

La large_filefonctionnalité que vous pouvez voir dans la sortie de dumpe2fs signifie que ce système de fichiers peut contenir des fichiers supérieurs à 2 Gio, je pense qu'il est défini automatiquement par les noyaux modernes. Cela n'a rien à voir avec l' -Toption de mke2fs.

Hector
la source