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

Mdadm - изменить размер блока RAID 10 и переключиться на «дальнюю» компоновку

Я использую NAS-сервер Ubuntu Linux с 4 дисками по 2 ТБ в программном массиве RAID 10.

Я создал массив во время установки (с диском Ubuntu Server), но макет near и размер блока 64.

Я хочу изменить размер блока на 256 и макет на far. Как мне это сделать?

Вот результат mdstat:

root@server:~# cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid10 sde1[3] sdd1[2] sdc1[1] sdb1[0]
      3907026816 blocks 64K chunks 2 near-copies [4/4] [UUUU]

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

Спасибо за любую помощь.

Единственный способ - уничтожить и воссоздать массив с новыми параметрами. Нил Браун написал в своей недавно опубликованной дорожной карте MD:

Поддержка изменения формы массивов RAID10.

Массивы RAID10 в настоящее время вообще не могут быть изменены. Можно преобразовать RAID10 в «ближнем» режиме в RAID0, но это все. Некоторое реальное изменение возможно и должно быть реализовано.

Вся дорожная карта здесь: http://lwn.net/Articles/428206/

Я тоже хотел попробовать это, теперь несколько предостережений по поводу этого. Как сказал Павел, это невозможно без воссоздания. Нет никакого ярлыка, я просто отключил массив, воссоздал его с теми же разделами, а затем попытался смонтировать, надеясь, что каким-то чудом что-то волшебным образом сработает (это не так). Если вы все же попробуете, вы получите панику ядра (да, я пробовал, и вот что произошло). Так что очень плохая идея, если у вас есть удаленный сервер и нет удаленной / перезагрузки KVM (к счастью, у меня он есть, но у многих нет).

Еще одно предостережение: я был шокирован, увидев, что одни и те же разделы в --layout = f2 немного меньше на сотни блоков. Почему это проблема? Если вы используете что-то вроде DRBD, где размер ДОЛЖЕН быть точно таким же, это затруднительное положение.

Чтобы привести пример проблемы DRBD с mdadm, см. Здесь (разница на 512 блоков меньше в макете f2): RAID10 --layout = n2 size: Размер массива: 897500160 (855,92 ГиБ, 919,04 ГБ) RAID10 --layout = f2 size: Array Размер: 897500672 (855,92 ГиБ, 919,04 ГБ)

Я действительно хочу, чтобы mdadm по умолчанию использовал --layout = f2 в RAID10. По сути, чтобы получить реальную производительность RAID1, вам нужно сделать двухдисковый RAID10 в схеме f2 (очень глупо), но, по крайней мере, это вариант.