Мой друг, который любит программировать в среде Linux, но мало знает об администрировании Linux, недавно столкнулся с проблемой, когда его ОС (Ubuntu) сообщала о «нехватке дискового пространства на томе XXX». Но когда он пошел проверить громкость, осталось еще 700 ГБ. Через много времени он смог сообразить, что у него нет иноды. (Он хранил множество небольших инкрементальных обновлений из системы резервного копирования на этом томе и записывал все свои иноды.)
Он спросил меня, почему ядро Linux сообщило об ошибке («недостаточно места на диске»), а не правильно сообщило («отсутствует inodes»). Я не знал, поэтому я решил спросить StackExchange.
Кто-нибудь знает, почему это происходит? и почему это не было исправлено после всех этих лет? (Я помню другого друга, который рассказывал мне об этой проблеме в 1995 году.)
источник
ext4
выделяет inode во время создания fs, например ext2 / 3, и не может быть изменен позже.Я предполагаю, что ваш друг использует ext fs, потому что это один из немногих разумных f, которые могут исчерпать inode.
Похоже, ваш друг либо возился со своей файловой системой и сломал ее, либо имеет смехотворно большой объем в несколько ТБ. Иноды - это не одноразовая вещь. Если у него действительно закончились inode-ы, это означает, что у него смехотворно много файлов и каталогов ... что может произойти на томе объемом более 4 ТБ, где «только» 700 ГБ свободно. Для семейства ext fs число inode определяется при создании fs. Со
mkfs.ext4
страницы руководства :Чтобы сократить оставшуюся часть этого ответа: это средство
mkfs
либо обеспечено таким соотношением, либо оно примет одно. Если ваш друг использует fs не так, как предполагалось, выбранное соотношение может быть неправильным для его варианта использования, и он получает эту ошибку ... заполнение одного тома объемом в несколько ТБ тоннами небольших файлов может считаться таковым.Использует ли ваш друг какую-либо рабочую среду, которая реализует концепцию «мусорной корзины» для файлов или любых других форм резервных копий, которые могут создавать большие объемы файлов? Возможно, он сможет решить свою проблему, просто избавившись от ненужных файлов.
Я помню эту проблему с ext2 примерно с того времени, когда ядро 2.4 было довольно новым. Как правило, я всегда использую XFS для томов, которые очень большие по сравнению с тем, что в настоящее время распространено. В настоящее время я бы назвал все между 250 ГБ до 1 ТБ общим для одного тома, и мы можем купить 4 ТБ жестких дисков. Так что для всего> 3TB я бы лучше использовал XFS, чем ext. Просто эмпирическое правило, но иноды давно не закончились ...
источник
tune2fs -l /dev/sda1
), и я получаю соотношение 1 инод на каждые четыре блока, и каждый блок имеет размер 1 КБ. Насколько это можно считать «дефолтом», однако я не знаю.