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

Linux; Установите размер блока RAID5 равным 4 КБ, чтобы соответствовать размеру блока FS и размеру сектора физического диска.

Существует множество дискуссий и веб-сайтов, которые объясняют процесс настройки программного 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