Как определить физический предел inode?
Как определить физически возможное максимальное количество inode? Или это программный лимит?
Я работаю в файловой системе GPFS. В соответствии с /usr/lpp/mmfs/bin/mmlsfileset gpfs0 -i
у меня есть MaxInodes = 134217728
, Это значение 27-разрядного целого числа без знака, что неубедительно. Это похоже на ограничение программного обеспечения. Это?
1 ответ
Иноды не имеют физического отношения к характеристикам диска, за исключением случаев, когда это является побочным эффектом дизайна конкретной файловой системы.
inodes - это концепция метаданных файловой системы, и они используются для присоединения метаданных к структурам на диске или мета-структурам (например, к каталогам, которые являются inode, в котором перечислены inode, отражающие его содержимое). Таким образом, любое ограничение на inode основано на структурах, созданных, когда диск отформатирован для данного типа файловой системы.
По ссылке выше:
Место для inode должно быть выделено, когда установлена операционная система (или новая файловая система), и эта система выполняет первоначальное структурирование файловой системы. В любой файловой системе максимальное число inode и, следовательно, максимальное количество файлов, устанавливается при создании файловой системы.
Итак, да, ограничение основано на программном обеспечении либо в ОС, либо в драйверах файловой системы. Файловые системы Linux обычно позволяют ОС играть роль в определении числа инодов при форматировании диска.
Настройка по умолчанию создает индекс для каждых 2 Кбайт, содержащихся в файловой системе, но число может быть изменено пользователем при создании файловой системы. Например, может быть целесообразно создать меньше инодов при настройке файловой системы, которая будет содержать всего несколько больших файлов. Аналогично, для файловой системы, предназначенной в основном для небольших файлов, рекомендуется выделять больше места для inode и меньше для содержимого файла.
Таким образом, по умолчанию большинство Linux будет выделять
ceil(formattedSizeInBytes/(2 * 1024)) => initialInodes
,
Это указывает (среди прочего), что число инодов всегда будет точной степенью двойки (поскольку и делитель, и дивиденд по сути являются степенями 2).
Теперь все это говорит о том, что многие старые файловые системы были разработаны для хранения одного файла на сектор или блок, поэтому в этих случаях число inode является функцией от числа секторов, которые предоставляет диск (плюс все, что создатели файловой системы считают подходит для ссылок и каталогов и т. д.).
GPFS является более старой файловой системой, но она предназначена для параллельного доступа с помощью мэйнфреймов и суперкомпьютеров с использованием таких методов, как многодисковое чередование, поэтому она уже собирается в значительной степени отделить свою работу от физических характеристик отдельных физических дисков.