Linux - Aide, je suis à court d'inodes!

16

J'ai un système de fichiers qui contient de nombreux petits fichiers. Actuellement, environ 80% des inodes sont utilisés (j'ai vérifié avec df -i), mais seulement 60% de l'espace disque est utilisé. Comment puis-je «augmenter» le nombre d'inodes? S'il ne s'agissait que d'espace disque, je sais que je pourrais simplement augmenter la taille du disque (ce disque est sur LVM). Si j'augmente la taille du disque, cela me fera-t-il plus d'inodes?

Je suis prêt à développer le système de fichiers sur lequel se trouve ce disque, si cela peut vous aider.

Rory
la source

Réponses:

14

homme mke2fs

Vous verrez un -N pour le nombre d'inodes

Vous pouvez donc le spécifier lorsque vous formatez une nouvelle partition. Pas si utile en ce moment, hein?

tune2fs, qui ajuste le système de fichiers, ne semble pas avoir le moyen d'ajouter plus d'inodes.

Mais peut-être que ext3 ou 4 le fait, et quelqu'un d'autre sait ....?

Alors maintenant, vous avez une option: sauvegarde, reformater la partition, restaurer.

Paul
la source
1
oui, c'est bien, mais pas parce que ce sont des reiserfs, mais parce qu'il prend en charge les allocations dynamiques d'inode (prises en charge par chaque nouveau système de fichiers décemment nouveau)
1
Reiser est excellent pour des tonnes de petits fichiers minuscules. J'irais avec ça.
Xorlev
Je voudrais cependant m'assurer que vous disposez de sauvegardes lors de l'utilisation de Reiser. Moi-même et d'autres ont perdu des données en raison de reiserFS au cours des années précédentes. Je ne lui fais plus confiance depuis.
Anony-Mousse -Reinstate Monica
ext3 semble n'avoir aucun moyen pour cela
kagali-san
15

Pour répondre à la question d'origine, même s'il est probablement tard pour le questionneur - oui, l'augmentation de EXT2 / 3 sur LVM2 augmentera également la limite des inodes.

Je viens d'avoir une partition de taille 1G avec une limite d'inodes de 65k. Après

lvextend -L+1G /dev/vg/var
umount /var
resize2fs /dev/vg/var
mount /var

... ma limite d'inodes est désormais de 128 Ko.

Aleš Krajník
la source
1
Wow, j'étais presque désespéré, mais j'ai trouvé votre réponse et j'ai décidé d'essayer, et cela a fonctionné. Cela devrait certainement être la réponse acceptée! Fonctionne pour LVM ainsi que pour les machines virtuelles :)
vadipp
12

Si vous saviez que les petits fichiers consommeront votre espace disque, vous auriez dû utiliser un FS avec allocation dynamique des inodes, comme ReiserFS ou tout nouveau FS moderne (XFS, JFS) au lieu d'EXT2 / 3/4 (que je suppose que vous utilisez , vous ne l'avez pas dit).

Une migration de système de fichiers est probablement un bon choix dans votre situation.

Communauté
la source
1
Si vous saviez que les petits fichiers consommeront votre espace disque, vous auriez dû faire quelques réglages . Chaque système de fichiers présente des avantages et des inconvénients.
Franklin Piat
3

En guise d'arrêt, montez un nouveau système de fichiers et cp / rm / ln-s une partie de votre hiérarchie fs là-bas. Vous avez maintenant quelques inodes de rechange! Vous ne pouvez pas créer de fichiers mv entre les deux fses, alors méfiez-vous des choses qui doivent le faire, mais pour de nombreuses applications, cela peut être transparent.

Faites ensuite un nouveau fs, selon les conseils de Paul, et migrez dessus.

Charles Stewart
la source
1
Bien sûr, vous pouvez mv fichiers entre les deux systèmes de fichiers - un mv est en fait du sucre sémantique pour cp + rm. Vous ne pouvez pas créer de lien physique entre deux systèmes de fichiers. Voulez-vous dire autre chose?
Daniel Lawson
@Daniel: Je veux dire l'appel système rename (), et je pense que c'est une pratique bâclée d'utiliser mv comme sucre pour cp / rm, à cause du problème avec la sémantique autour des liens symboliques. Je devrais modifier cette réponse - il y a quelques endroits où elle n'est pas magnifiquement claire.
Charles Stewart, le
2

Ext4 souffre du même problème, si vous créez une petite partition et avez une tonne de petits fichiers, vous manquerez d'inodes, et si vous avez des flex_bgfonctionnalités que vous ne pouvez pas utiliser tune2fspour augmenter les inodes.

Personnellement, j'irais avec ext4 sur n'importe quelle version de rieserfs, il suffit de faire ce qui suit lors du formatage:

mkfs.ext4 -I 512 /dev/foo
tune2fs -i0 -c0 -o journal_data_writeback /dev/foo

Le formatage de cette façon vous donnera 33160 inodes sur une partition de démarrage de 512M.

Je dis cela en tant que quelqu'un qui a utilisé reiserfs pendant des années, le support du noyau n'est pas aussi bon que ext *, et le système de fichiers se fragmente au fil du temps et devient lent.

Suicidaire
la source
-1

Optez pour resiserfs ou tout autre fs sans limitation d'inode. Particulièrement en ce qui concerne les fichiers journaux, vous pourriez probablement emballer quelques tonnes de petits fichiers inutilisés dans un fichier tar plus gros afin de libérer une jolie quantité d'inodes =)

$ find /path -iname "pattern" | xargs tar rvf output_file.tar
adrolmar
la source