Добавление дисков в массив RAID 10

19346
stuartc

Как бы я вырастил массив RAID10, используя mdadm?

Очевидно, мне нужно было бы добавить 2 диска за раз, или это должно быть 4 диска?

У меня такое чувство, что это просто плохая идея.

Или было бы разумнее выбрать RAID5?

10
Обычно, если кто-то спрашивает меня, нужен ли ему RAID 10, это означает, что он ему не нужен. Почему не Рейд 5 или Рейд 6? surfasb 13 лет назад 0
Я надеялся на лучшую производительность записи, чем на RAID5 ... Но я предполагаю, что это объясняется отсутствием правил гибкости. stuartc 13 лет назад 0
В целом, RAID 5/6 обеспечит лучшую производительность записи, чем RAID 10/01. Потому что вы распределяете записи по всем дискам, а не только по половине дисков. surfasb 13 лет назад 0
@surfasb «RAID 5/6 обеспечит лучшую производительность записи, чем RAID 10», нет, не будет, потому что распределение записей по большему количеству дисков больше, чем весит [штраф за запись RAID5 / 6] (http: // rickardnobel.se/raid-5-write-penalty/) Jack Douglas 10 лет назад 5
@JackDouglas: очень хорошая информация. surfasb 10 лет назад 0
Теперь вы можете изменить RAID10 с помощью mdadm. Протестировано с mdadm-4.0-5 в Fedora 27. Nick 6 лет назад 0

6 ответов на вопрос

11
Cieniek

To grow RAID 10 you need mdadm in version min. 3.3 and kernel version min 3.5. You need also an even number of disks - unpaired ones can only work as a spare or, eventually, to grow into degradated mode (not tested).

Here goes the example of growing RAID 10 from 4 drives to 6 using mdadm 3.3-2ubuntu2 @ Linux 4.2.0-10-generic. Tested with ext4 data on it, filesystem was unmounted, ext4 was extended after the RAID grow without any issue.

~$ cat /proc/mdstat md126 : active raid10 sdd1[1] sdc1[0] sdf1[3] sde1[2] 976428032 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] bitmap: 0/8 pages [0KB], 65536KB chunk ~$ sudo mdadm /dev/md126 --add /dev/sdi1 /dev/sdj1 mdadm: added /dev/sdi1 mdadm: added /dev/sdj1 ~$ sudo mdadm --grow /dev/md126 --raid-devices=6 ~$ cat /proc/mdstat md126 : active raid10 sdj1[5] sdi1[4] sdd1[1] sdc1[0] sdf1[3] sde1[2] 1464642048 blocks super 1.2 512K chunks 2 near-copies [6/6] [UUUUUU] bitmap: 0/6 pages [0KB], 131072KB chunk 
9
edong23

I realize this is over a year old but someone might find this helpful...

You can expand a raid 10 array, but not how you are hoping. You would have to nest multiple levels of raid. This can be done with mdadm on 2 drives in raid 10, which quite nice performance depending on the layout, but you would have to make multiple 2 disk raid 10 arrays, then attach them to logical node. Then to expand add a few more, and stripe across that. If that is your use case (needing to expand a lot) then you would be wise to use a parity array, which can be grown.

These are the limitations you get with raid 10, while maintaining better read/write performance overall. And a clarification, raid 5/6 absolutely does not "In general, provide better write performance...". Raid 5/6 has their own respective pros/cons just as raid 10, but write performance is not a pro for raid 5/6.

Also, you didnt specify the size of your drives but beware of raid 5 on new large drives. Though if you are careful, you can recover from an unrecoverable read error, you risk downtime and the possibility of not being able to recover at all.

--edit to add info-- Use tools like hdparm (hdparm -i) and lshw to get the serial numbers along with the device name (/dev/sda) when you have a failure. This will ensure you remove the correct device when replacing. Up-arrow on Travis' comment as it is very correct and a nice layout, but as usual, weight the pros and cons of every solution.

9
Jack Douglas

Some great news from the release announcement for mdadm 3.3:

This is a major new release so don't be too surprised if there are a few issues...

Some highlights are:

...

  • RAID10 arrays can be reshaped to change the number of devices, change the chunk size, or change the layout between 'near' and 'offset'. This will always change data_offset, and will fail if there is no room for data_offset to be moved.

...

According to this answer on U&L, you will need at least linux 3.5 as well.

Я экспериментировал с растущим mdadm raid10, используя mdadm v3.3.2 со смешанными результатами. Я обнаружил, что не могу вырастить raid10, который я создал с более ранней версией mdadm. Raid10, который был создан с v3.3, я смог изменить / увеличить. Поэтому, если вы хотите вырастить raid10 (но не можете), возможно, будет хорошей идеей создать новый raid10, используя последний mdadm. adalle 9 лет назад 3
6
Travis

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

Например, я только что установил массив raid 10 с 4 накопителями, и последний хочет добавить еще один массив raid 10 с 4 накопителями. Просто используйте mdadm для создания нового массива raid 10 на новых дисках. Затем вы можете создать другой массив raid 0, используя два существующих устройства raid. Однако я бы использовал функции lvm для создания полосы, таким образом, сохраняя конфиги mdadm и устройства / dev / md в легком для понимания состоянии. Любой метод будет работать, и, возможно, есть и другие, но это то, что я мог бы сделать из головы.

Отличный способ управления растущим набором данных, намного проще, чем большинство. Сложная задача - отслеживать, какие диски вышли из строя, какие зеркала установлены. Но да, отличное предложение! stuartc 12 лет назад 0
4
Stingray

В прошлый раз, когда я проверял, mdadm не позволит вам --grow raid10. Я посмотрел на man-страницу mdadm сейчас, и она по-прежнему говорит: в настоящее время поддерживаются варианты роста, в том числе изменение активного размера компонентных устройств и изменение количества активных устройств на уровнях RAID 1/4/5/6, изменение уровня RAID между 1, 5, и 6, изменение размера и макета чанка для RAID5 и RAID5, а также добавление или удаление битовой карты с намерением записи.

Спасибо! Признанный, еще одна хорошая подсказка, что это не произойдет быстро также, - то, что я не могу найти одну аппаратную карту RAID, которая делает это .. RAID5 это .. stuartc 13 лет назад 0
RAID5 может быть очень медленным на некоторых рабочих нагрузках. Что ты собираешься делать? Stingray 13 лет назад 2
В основном только для хранения мультимедиа, но также для установки общего ресурса NFS для редактирования фотографий, поэтому мы надеялись на хорошую скорость записи и чтения. stuartc 13 лет назад 0
4
drumfire

Вы не можете вырастить массив RAID10, это правда. Но вы можете начать с двух дисков (за счет отсутствия избыточности на этом этапе), а затем добавить еще два. Я использовал этот метод для переключения с массива RAID5 с четырьмя дисками на RAID10 с четырьмя дисками.

Я ухудшил RAID5 и удалил один диск из массива. Это дало мне два диска, которые можно было свободно использовать. Затем я создал RAID10-массив с чем-то вроде «mdadm --create --level 10 / dev / md0 / dev / sda1 отсутствует / dev / sdc1 отсутствует». Этого было достаточно для запуска массива.

Когда я переместил данные из поврежденного массива RAID5 в массив RAID10, я добавил два диска RAID5 в массив RAID10 и добавил дополнительный в качестве запасного.

Вероятно, будет хорошей идеей, если кто-то, кто знает больше, чем я, может рассказать о любом влиянии на производительность, которое это могло оказать. Но основная причина моего поста - показать, что можно начать с RAID10 и двух дисков.

Примечание: прочитайте следующий пост на форуме, который спрашивает и отвечает, имеет ли значение порядок дисков в mdadm .

Похожие вопросы