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

Можно ли изменить размер блока Raid5 на существующем устройстве?

У меня есть устройство raid5, которое я создал с помощью mdadm в Linux.

Когда я создал устройство, я установил размер блока равным 64, но я хотел бы протестировать производительность различных размеров, но я не хочу, чтобы для этого мне приходилось перестраивать всю мою систему.

Если это невозможно сделать вживую, можно ли это сделать, загрузившись с аварийного диска?

Мы будем очень благодарны за любые советы по шагам, как это сделать, в реальном времени или с аварийным диском.

Это довольно старый вопрос, и на момент написания wzzrd был верным. Однако поддержка изменения формы массивов MD была добавлено в это время.

Теперь можно изменить размер блока существующего массива RAID, запустив

mdadm --grow --chunk=128 /dev/md0

В этом примере размер блока /dev/md0 будет изменено на 128 КБ. Обратите внимание, что изменение размера блока - очень медленный процесс, поскольку он включает перезапись всех данных, хранящихся в массиве RAID. Поскольку это делается таким образом, чтобы гарантировать безопасность данных даже в случае сбоя системы, каждый фрагмент данных фактически должен быть записан дважды. Таким образом, вы должны ожидать, что этот процесс займет довольно много времени (порядка дней).

«Чанк» - это часть полосы, которая записывается на один диск. Ваша текущая настройка записана на диск примерно так (при условии трехдискового RAID5):

| data   | data   | parity |
| parity | data   | data   |
| data   | parity | data   |

В вашем случае каждая часть «данных» или «четности» (т. Е. «Кусок») составляет 64 КБ, что дает ширину полосы 192 КБ, что довольно нормально.

На данный момент я не думаю, что вы можете изменить размер блока.

Что вы можете сделать, так это выяснить, каким будет оптимальный размер блока для вашей системы, без необходимости проверять все возможные варианты. Если вы какое-то время следите за своей системой с помощью sar, вы сможете найти нечто, называемое «средним размером запроса». Это число (sar отображает его в секторах по 512 байт, iirc) - это оптимальный размер объединенных частей полосы с данными.

Итак, в качестве примера, если ваш средний размер запроса составляет 64 КБ (что составляет 128 секторов по 512 байт), вам нужно сделать объединенный размер «данных» частей полосы 64 КБ. В случае трехдискового набора RAID5 лучше всего будет иметь размер блока 32 КБ.