5

У меня есть старая файловая система 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

Благодарю.

2 ответа2

2

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

mkfs.ext3 /dev/sda1

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

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

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

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

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

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

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

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

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .