У меня есть устройство 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 КБ.