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

mdadm raid6 recovery читает больше с одного диска?

Я только что заменил неисправный диск в моем raid6-массиве (состоящем из 8 дисков) во время восстановления. Я заметил что-то странное в iostat. Все диски имеют одинаковую скорость (как и ожидалось), за исключением одного диска (sdi), который постоянно читает быстрее, чем остальные.

Он также читает примерно на одну восьмую быстрее, что может быть связано с тем, что всего в массиве восемь дисков, но я не знаю почему ...

Это было верно в течение всего восстановления (всегда один и тот же диск читается быстрее, чем все остальные), и если посмотреть на общую статистику восстановления, все диски прочитали / записали примерно одинаковое количество, за исключением sdi, которые прочитали на одну восьмую больше.

Некоторые статистические данные iostat усреднены за 100 секунд:

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdb             444.80        26.15         0.00       2615          0
sdb1            444.80        26.15         0.00       2615          0
sdc             445.07        26.15         0.00       2615          0
sdc1            445.07        26.15         0.00       2615          0
sdd             443.21        26.15         0.00       2615          0
sdd1            443.21        26.15         0.00       2615          0
sde             444.01        26.15         0.00       2615          0
sde1            444.01        26.15         0.00       2615          0
sdf             448.79        26.15         0.00       2615          0
sdf1            448.79        26.15         0.00       2615          0
sdg             521.66         0.00        26.15          0       2615
sdg1            521.66         0.00        26.15          0       2615
sdh             443.32        26.15         0.00       2615          0
sdh1            443.32        26.15         0.00       2615          0
sdi             369.23        29.43         0.00       2942          0
sdi1            369.23        29.43         0.00       2942          0

Может кто-нибудь дать толковое объяснение? Когда я обнаружил, что он был примерно на одну восьмую быстрее, я решил, что это связано с четностью, но это действительно не имело особого смысла (я не знаю о конкретной реализации рейда 6 в mdadm, но, с одной стороны, это определенно может не хранить всю четность на одном диске ...).

ОБНОВЛЕНИЕ: Что ж, я только что заменил другой диск (тот же массив), и я вижу точно такие же результаты, но на этот раз с другим диском, быстрее читающим (на самом деле, это диск, который я добавил для последнего восстановления, который решил, что он хочет делать больше работы).

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdb             388.48        24.91         0.00       2490          0
sdb1            388.48        24.91         0.00       2490          0
sdc             388.13        24.91         0.00       2491          0
sdc1            388.13        24.91         0.00       2491          0
sdd             388.32        24.91         0.00       2491          0
sdd1            388.32        24.91         0.00       2491          0
sde             388.81        24.91         0.00       2491          0
sde1            388.81        24.91         0.00       2491          0
sdf             501.07         0.00        24.89          0       2489
sdf1            501.07         0.00        24.89          0       2489
sdg             356.86        28.03         0.00       2802          0
sdg1            356.86        28.03         0.00       2802          0
sdh             387.52        24.91         0.00       2491          0
sdh1            387.52        24.91         0.00       2491          0
sdi             388.79        24.92         0.00       2491          0
sdi1            388.79        24.92         0.00       2491          0

Это 4k-диски (но, как и все диски (или, по крайней мере,), они по-прежнему сообщают о 512-байтовых секторах). Итак, я подумал, что, возможно, я как-то неправильно выровнял разделы (какие последствия это могло иметь, я не знаю, зависит от того, как работает mdadm и размер полосы, я думаю, в любом случае достаточно легко проверить):

debbie:~# fdisk -l -u /dev/sd[bcdefghi] | grep ^/dev/sd
/dev/sdb1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sdc1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sdd1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sde1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sdf1            2048  3907024064  1953511008+  fd  Linux raid autodetect
/dev/sdg1            2048  3907024064  1953511008+  fd  Linux raid autodetect
/dev/sdh1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sdi1            2048  3906988207  1953493080   fd  Linux raid autodetect

f и g - это новые диски, которые кажутся немного больше, но все они начинаются с одного сектора (все диски одной модели (и на одном контроллере), но новые покупаются на 6 месяцев позже, чем остальное).

Любопытно. RAID6 точно не хранит что-нибудь все на одном диске, поэтому в целом нет причин для чтения одного диска больше, чем других. Отмечу, что есть соответствующий уменьшение в TPS на этом диске; я предполагаю, что sdi представляет собой другую модель или технологию привода или подключен к другой модели контроллера и, следовательно, может читаться по-разному (большее количество операций чтения за транзакцию).