Как рассчитать правильное количество размеров inode / block для файловой системы linux

15832
Kurt Pfeifle

У меня есть старая файловая система Reiser, которую я собираюсь конвертировать в Ext3. Проблема, которую я имею, состоит в том, чтобы определить надлежащие размеры блоков и узлов для этого раздела.

Размер раздела составляет 44 ГБ, и он должен содержать более 3 000 000 файлов размером от 1 КБ до 10 КБ. Как определить оптимальное соотношение между индексами и размерами блоков?

Ниже я попробовал что-то вроде ОК, но делает копирование файлов невероятно медленным.

mkfs.ext3 \ -t ext3 \ -c \ -c \ -b 1024 \ -i 4096 \ -I 128 \ -v \ -j \ -O sparse_super,filetype,has_journal\ /dev/sdb1 

Благодарю.

5
попробуйте запустить с параметрами по умолчанию (без -b или -i или -I и т. д.), но используйте флаг `-n`. это выполнит «пробный запуск» и не создаст файловую систему, но сообщит вам, сколько inode и какой размер блока * mkfs * создаст по умолчанию. quack quixote 14 лет назад 2

2 ответа на вопрос

2
fragileswan

На такой ограниченный вопрос нет «правильного» ответа. Если вы настраиваете настольный компьютер или ноутбук, просто выполните:

mkfs.ext3 /dev/sda1 

Программа может выбрать путь лучше, чем неопытный человек. Если вы собираетесь хранить огромный веб-сайт, ext3 может потребовать до 25% инодов из-за огромного количества небольших отдельных файлов.

Но вы на самом деле говорите mkfsпрограмме «до 25% инодов». Большинство настроек создания файловой системы используются в специализированных приложениях, таких как чередование RAID, где геометрия файловой системы должна быть настроена или будет невероятно медленной.

Я знаю, что у людей есть свои настройки файловой системы. Я еще не нашел никого, кто мог бы продемонстрировать полезность отклонения от значений по умолчанию на 40-Гбайт настольном компьютере или ноутбуке.

И ext3 не самая лучшая файловая система для всего! Я использую три разных типа форматов разделов на моем lappy, потому что некоторые разделы содержат много маленьких отдельных файлов. Другие содержат гораздо меньшее количество больших файлов (хорошо для системы ext3), например / home раздел.

/usrможет иметь 500 000 отдельных файлов, что делает ext3 klunky, но reiserfs вылетает. Другое дело, acls . Вы должны сообщить, mkfs.ext3что будете использовать acls, если будете их использовать. acls - это точная настройка разрешений, обычно не важная для однопользовательской системы. Но если у вас есть группа из 20 обычных пользователей, и вы хотите использовать разные средства управления доступом для некоторых из них, вы должны использовать acls .

Мне лично нравится xfs для файловой системы общего пользования, хотя она не работает из коробки с SELinux. Но это самая сложная и эффективная файловая система. Он используется на нескольких марках высокопроизводительных компьютеров. Вы можете Google, если вы так, пожалуйста. ext3 бесполезно тратит 8% раздела. Это возмутительно.

Но ext4 лучше. Я не собираюсь выкладывать командную строку для вас. Вы должны определить использование раздела и соответствующим образом спроектировать файловую систему. Ext3 надежен, но так же и танк. Это не значит, что вы хотите ездить по городу.

Надеюсь, это немного поможет.

1
jneves

Вам понадобится индекс для каждого файла, размер индекса будет определять количество прямых блоков, которые он может достичь, прежде чем потребуется другой индекс и достаточное количество блоков для обработки файлов.

Таким образом, в вашем случае минимальное количество inode будет 3.000.000+. Если вы используете значение по умолчанию, вы получите 12 прямых блоков. Таким образом, с размером блока 1 КБ вы получите то, что вам нужно.

Очевидно, что вы можете уменьшить размер инода и увеличить размер блока, чтобы увеличить количество инодов. Это даст вам меньше свободного места, но больше файлов в той же файловой системе.

Возможно, это не так важно, но для каждого каталога также требуется индекс. Вероятно, нигде рядом с 3.0e + 6, используемым для файлов, но вы никогда не знаете. hotei 14 лет назад 0