16 votes

Linux - Au secours, je suis à court d'inodes !

J'ai un système de fichiers qui contient beaucoup de petits fichiers. Actuellement, environ 80 % des inodes sont utilisés (j'ai vérifié avec le logiciel 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 de l'espace disque, je sais que je pourrais simplement augmenter la taille du disque (ce disque est sous LVM). Si j'augmente la taille du disque, est-ce que cela me permettra d'avoir plus d'inodes ?

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

17voto

Aleš Krajník Points 2431

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

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

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

... ma limite d'inodes est maintenant de 128k.

1 votes

Wow, j'étais presque désespéré, mais j'ai trouvé votre réponse et j'ai décidé d'essayer, et ça a marché. Cela devrait définitivement être la réponse acceptée ! Fonctionne aussi bien pour LVM que pour les machines virtuelles :)

13voto

Paul Points 1596

Man mke2fs

Vous verrez un -N pour nombre d'inodes

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

tune2fs, qui règle le système de fichiers, ne semble pas avoir de moyen d'ajouter des inodes supplémentaires.

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

Vous avez donc maintenant une option : sauvegarder, reformater la partition, restaurer.

1 votes

Oui, c'est bien, mais pas parce que c'est reiserfs, mais parce qu'il supporte les allocations dynamiques d'inodes (supportées par tous les nouveaux systèmes de fichiers décents)

1 votes

Reiser est excellent pour des tonnes de petits fichiers. C'est ce que je ferais.

0 votes

Je m'assurerais cependant que vous avez des sauvegardes lorsque vous utilisez Reiser. J'ai (moi-même) et d'autres personnes ont perdu des données à cause de ReiserFS dans les premières années. Je ne lui fais plus confiance depuis.

12voto

Si vous saviez que les petits fichiers vont consommer votre espace disque, vous auriez dû utiliser un FS avec allocation dynamique des inodes, comme ReiserFS ou tout autre 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 du système de fichiers est probablement un bon choix dans votre situation.

2 votes

Si vous saviez que les petits fichiers vont manger votre espace disque, vous auriez dû fait quelques réglages . Chaque système de fichiers présente des avantages et des inconvénients.

2voto

Charles Stewart Points 650

Comme palliatif, montez un nouveau système de fichiers, et cp/rm/ln-s une partie de votre hiérarchie fs là. Maintenant vous avez quelques inodes de rechange ! Vous ne pouvez pas mv fichiers entre les deux fs, donc attention à casser les choses qui ont besoin de le faire, mais pour beaucoup d'applications cela peut être transparent.

Ensuite, créez un nouveau fs, selon les conseils de Paul, et migrez-y.

1 votes

Bien sûr, vous pouvez mv les fichiers entre les deux systèmes de fichiers - un mv est effectivement un sucre sémantique pour cp+rm. Vous ne pouvez pas faire de lien dur entre deux systèmes de fichiers. Voulez-vous dire quelque chose d'autre ?

0 votes

@Daniel : Je veux dire l'appel système rename(), et je pense que c'est une pratique négligée d'utiliser mv comme sucre pour cp/rm, à cause du problème de la sémantique autour des liens symboliques. Je devrais éditer cette réponse - il y a quelques endroits où ce n'est pas très clair.

2voto

Suicidal Points 21

Ext4 souffre du même problème, si vous créez une petite partition et que vous avez une tonne de petits fichiers, vous serez à court d'inodes, et si vous avez flex_bg dans des fonctions que vous ne pouvez pas utiliser tune2fs pour augmenter les inodes.

Personnellement, j'opterais pour ext4 plutôt que 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 personne ayant 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 avec le temps et devient lent.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X