Назад | Перейти на главную страницу

параметры формата ext3

Я создаю файловую систему ext3 поверх программного raid5 (md), и мне интересно, каковы лучшие параметры при создании файловой системы (с mkfs.ext3) и при монтировании.

Размер блока RAID5 составляет 128 КБ, в массиве 3 диска, эффективный общий объем - 900 ГБ. ext4 не вариант.

Изменить: в файловой системе есть несколько VPS (виртуальных частных машин), в том числе Gentoo VPS с большим количеством маленьких файлов. VPS не использует изображения, они хранят файлы непосредственно в файловой системе. Также в нем много файлов размером 500-1000 МБ.

Спасибо, Матич

Идея оптимизации размеров полосок состоит в том, чтобы оптимизировать их так, чтобы в вашем типичная рабочая нагрузка большинство запросов на чтение могут быть выполнены (кратно) за одно чтение, равномерно распределенное по всем дискам данных. Для трехдискового набора RAID-5 количество дисков с данными будет равно двум.

Например, предположим, что моя типичная рабочая нагрузка составляет запросы чтения ввода-вывода, которые в среднем составляют 128 КБ. Затем вы захотите создать куски по 64 КБ, если у меня есть трехдисковый набор RAID-5. Рассчитайте это так:

avg request size / number of data disks = chunk size
128kB / 2 = 64kB

Это размер блока вашего Набор RAID, мы еще не подошли к созданию файловой системы.

Следующим шагом будет проверка соответствия файловой системы характеристикам RAID-массива. Следовательно, мы хотим убедиться, что файловая система знает размер блока RAID-массива. Затем он может равномерно распределить суперблоки по трем дискам.

Для этого нам нужно сообщить mke2fs, каков размер чанка или, точнее, сколько блоков файловой системы уместится в чанке. Это называется «шагом» файловой системы:

chunk size / size of filesystem block = stride size
64kB / 4kB = 16

Затем вы можете вызвать mke2fs с параметром -E stride = 16.

В страница Упомянутое ранее также говорит о параметре -E stripe-width для mke2fs, но я никогда не использовал его сам, и на странице руководства моей версии mke2fs это не упоминается. Если бы мы хотели его использовать, мы бы использовали его, как с 32: ширина полосы рассчитывается путем умножения шага на количество дисков данных (два, в вашем случае).

Теперь к сути вопроса: каков оптимальный размер блока? Как я описал выше, вам понадобится средний размер запроса чтения ввода-вывода. Вы можете получить это значение, проверив соответствующий столбец в выходных данных iostat или sar. Вам нужно будет сделать это в системе, имеющей сравнимую рабочую нагрузку с системой, которую вы настраиваете, в течение длительного периода.

Убедитесь, что вы знаете, какую единицу использует значение: секторы, килобайты, байты или блоки.

Убедитесь, что вы выровняли файловую систему с размером полосы RAID -

http://wiki.centos.org/HowTos/Disk_Optimization

имеет хорошее резюме.

Убедившись, что файловая система правильно выровнена, вы можете избежать использования RMW на RAID5, что повышает производительность.

Не зная точной вашей рабочей нагрузки, я бы сказал, что значения по умолчанию, вероятно, будут лучшим вариантом. Может быть -m 0 если вас не беспокоит заполнение диска пользователями без полномочий root и / или установка dir_index если вы собираетесь делать глупости с количеством файлов в каталоге.