Un de mes amis qui aime la programmation dans l'environnement Linux, mais ne sait pas grand-chose sur l'administration de Linux a récemment rencontré un problème où son système d'exploitation (Ubuntu) signalait "manque d'espace disque sur le volume XXX". Mais quand il est allé vérifier le volume, il restait encore 700 Go. Après beaucoup de temps perdu, il a finalement pu comprendre qu'il était à court d'inodes. (Il stockait beaucoup de petites mises à jour incrémentielles à partir d'un système de sauvegarde sur ce volume et les brûlait à travers tous ses inodes.)
Il m'a demandé pourquoi le noyau Linux a signalé le message d'erreur ("hors de l'espace disque") au lieu de signaler correctement ("hors des inodes"). Je ne savais pas, alors j'ai pensé que je demanderais à StackExchange.
Quelqu'un sait pourquoi cela se produit? et pourquoi cela n'a pas été corrigé après toutes ces années? (Je me souviens d'un ami différent qui m'a parlé de ce problème en 1995.)
la source
ext4
alloue des inodes au moment de la création de fs comme ext2 / 3 et ne peut pas être modifié plus tard.Je suppose que votre ami utilise un ext fs, car c'est l'un des rares fs sensibles qui peuvent manquer d'inodes.
Il semblerait que votre ami ait manipulé son système de fichiers et l'ait cassé ou qu'il ait un volume ridiculement élevé de plusieurs To. Les inodes ne sont pas une chose à utiliser une seule fois et à jeter. S'il a vraiment manqué d'inodes, cela signifie qu'il a ridiculement de nombreux fichiers et répertoires ... ce qui peut se produire sur un volume> 4 To (supposition éclairée), où "seulement" 700 Go sont gratuits. Pour la famille ext de fs, le nombre d'inodes est déterminé lors de la création de fs. Depuis la
mkfs.ext4
page de manuel:Pour raccourcir le reste de cette réponse: Ce moyen
mkfs
est soit fourni avec un tel rapport, soit il en assumera un. Si votre ami utilise le fs différemment que supposé, le rapport choisi peut être incorrect pour son cas d'utilisation et il obtient cette erreur ... remplir un seul volume multi-TB avec des tonnes de petits fichiers peut compter comme tel.Votre ami utilise-t-il un environnement de bureau qui implémente le concept d'une «poubelle» pour les fichiers ou toute autre forme de sauvegarde pouvant créer de grandes quantités de fichiers? Peut-être qu'il peut résoudre son problème en se débarrassant simplement des fichiers inutiles.
Je me souviens de ce problème avec ext2 à peu près au moment où le noyau 2.4 était assez nouveau. En règle générale, j'utilise toujours XFS pour des volumes très importants par rapport à ce qui est actuellement courant. Actuellement, j'appellerais tout entre 250 Go et 1 To communs pour un seul volume et nous pouvons acheter des disques durs de 4 To. Donc pour tout> 3 To, je préfère utiliser XFS que ext. Juste une règle de base, mais qui n'a pas manqué d'inodes depuis longtemps ...
la source
tune2fs -l /dev/sda1
) et j'ai un ratio de 1 inode pour quatre blocs et chaque bloc a une taille de 1k. Combien cela peut être considéré comme "par défaut" cependant, je ne sais pas.