Существует множество дискуссий и веб-сайтов, которые объясняют процесс настройки программного RAID Linux с mdadm
с размером блока нового RAID как 128 КБ или 512 КБ. Serverfault - не исключение.
Сейчас я создаю новый медиа-NAS и не вижу веских причин, по которым я не использую размер блока 4 КБ. Каждый из четырех физических дисков в «будущем RAID-5» имеет сектора по 4 КБ. Конечно, размер патрона 4 КБ имеет наибольший смысл в отображении отношения 1: 1 от тома RAID к секторам диска? Затем поверх этого создайте файловую систему (которая будет EXT4) с размером блока 4 КБ?
Как размер блока 128 КБ (например) становится более выгодным, когда на дисках всего 4 КБ секторов?
Это связано с упреждающим чтением. Вращающиеся диски страдают от чрезвычайно медленного времени доступа, поэтому вы хотите минимизировать время доступа и читать как можно больше последовательно. Для этого в Linux используется значение упреждающего чтения 128 КБ по умолчанию, что означает, что каждый раз, когда вы запрашиваете блок размером 1 КБ, 128 КБ будет фактически прочитано и кэшировано.
Проверьте настройку упреждающего чтения с помощью
cat /sys/block/sda/queue/read_ahead_kb
На самом деле это значение 128 КБ является крайне консервативным и лучше подходит для старых дисков ATA десятилетней давности с кеш-памятью 512 КБ. Для современных накопителей с кеш-памятью на 64 МБ, вероятно, лучше подойдет значение 1 или 2 МБ. Для аппаратного RAID с большим кешем предпочтительны значения 64 МБ или более.
Не забудьте поиграть с настройками упреждающего чтения, чтобы увидеть, как они влияют на вашу производительность:
echo 1024 > /sys/block/sda/queue/read_ahead_kb