В настоящее время у меня есть файловый сервер с 3 дисками по 1,5 ТБ в массиве RAID5. Поскольку он почти заполнен, у меня есть три дополнительных диска (также по 1,5 ТБ каждый).
Теперь я хотел бы перейти на RAID6, так как места в 6 ТБ достаточно, и я хотел бы иметь повышенную безопасность raid6. Хотя у меня есть полная резервная копия, то есть я могу просто создать новый массив и восстановить резервную копию, я бы предпочел переключиться без восстановления резервной копии. Возможно ли это, и если да, то как?
Вам нужна терминология «миграция уровня RAID».
В соответствии с этот, это возможно. Я этого не делал, но процедура выглядит так, как будто вы должны добавить новый диск в качестве горячей замены к существующему массиву, а затем использовать mdadm для обновления уровня рейда и количества устройств рейда.
Для этого вам понадобится последняя версия mdadm: mdadm-2.6.9 (например, centos 5.x), похоже, не поддерживает его, но mdadm-3.1.4 (например, ubuntu 11.10) поддерживает:
Grow Grow (or shrink) an array, or otherwise reshape it in some way. Currently supported growth options including changing the active size of component devices and
changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and layout for RAID5 and
RAID5, as well as adding or removing a write-intent bitmap.
Например, сначала добавьте новое устройство горячего резервирования / dev / sdg в массив RAID5:
$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg
Затем преобразуйте его в массив RAID6 и восстановите его до чистого состояния. Параметр --raid-devices 4 сообщает вам, сколько всего дисков у вас в новом массиве.
$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6
Я понятия не имею, насколько быстро это будет. По моему опыту выполнения миграций на уровне рейдов на аппаратных RAID-контроллерах, было быстрее создать новый массив с нуля и восстановить на нем резервную копию.
Обязательное предупреждение: планируйте неудачу. Держите резервную копию наготове и учитывайте возможное время простоя.
Кроме того, протестируйте его на виртуальной машине или в чем-то подобном раньше, это из моих заметок, и я не делал этого в течение длительного времени. Это может быть неполно.
Вам нужно будет add
диски в массив:
mdadm --manage /dev/md0 --add /dev/sdf
Сделайте это для каждого из трех дисков и соответственно замените имена устройств.
Увеличьте массив:
mdadm --grow /dev/md0 --level 6 --raid-devices 6
Используйте --backup-file
вариант, поэтому в случае потери питания вы можете продолжить наращивать устройство после перезагрузки и не допустить потери данных.
mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0
Резервный файл должен быть сохранен в файловой системе, а не в массиве, который вы собираетесь увеличивать.
--backup-file=
необходимо, когда --grow
используется для увеличения количества raid-устройств в RAID5 или RAID6, если нет доступных запасных устройств, или для сжатия, изменения уровня или структуры RAID. См. Раздел «РЕЖИМ РОСТА» ниже, посвященный ИЗМЕНЕНИЯМ RAID-УСТРОЙСТВ. Файл должен храниться на отдельном устройстве, а не на изменяемом массиве RAID.
--continue
дополняет --freeze-reshape
вариант для сборки. Это необходимо, когда --grow
работа прерывается и не перезапускается автоматически из-за --freeze-reshape
использование во время сборки массива. Эта опция используется вместе с -G
, ( --grow
) команду и устройство для продолжения отложенного изменения формы. Все параметры, необходимые для продолжения изменения формы, будут считаны из метаданных массива. Если начальный --grow
команда требовала --backup-file=
параметр, который необходимо установить, для варианта продолжения потребуется указать точно такой же файл резервной копии.
Любой другой параметр, переданный вместе с --continue
опция будет проигнорирована.