Как преобразовать LV или MD RAID1 и 0 в RAID5 без потери данных

В этом руководстве я расскажу, как перейти с RAID 0 или 1 на RAID 5. Как в ОС Linux на mdadm или LVM преобразовать программный RAID1 (0) в RAID5 с сохранением всей хранящейся информации.

Как преобразовать LV или MD RAID1 и 0 в RAID5 без потери данных

Массивы типа RAID0 выделяются довольно высокой скоростью доступа к информации, их используют исключительно из-за значительного прироста скорости операции чтения\записи данных. Но их надежность и отказоустойчивость оставляют желать лучшего. Потому что, при поломке хотя бы одного носителя – вся хранящаяся информация станет недоступна. Восстанавливать ее крайне тяжелое занятие, да и данные, которые получится достать, гарантировано будут повреждены. Этот тип можно только с натяжкой считать массивом, так как напрочь отсутствует избыточность.

Перейти к просмотру
Как преобразовать LV или MD RAID1 и 0 в RAID5 без потери данных

Как преобразовать LV или MD RAID1 и 0 в RAID5 без потери данных

Тип RAID1 выделяется хорошей надежностью и отказоустойчивостью, потому что все данные дублируются, создается полное «зеркало» на втором носителе. Но скорость чтения/записи данных от этого страдает и не может похвастаться такой же скоростью работы как в «нулевом» типе.

Если у вас есть дополнительный накопитель, то можно «первый» тип можно расширить до «пятого» уровня. Это в свою очередь даст дополнительные бонусы надежности по сравнению с «нулевым» уровнем, а также позволит значительно увеличить скорость чтения\записи информации по сравнению с «первым» типом. На выходе мы получим достаточно надежный, отказоустойчивый и быстрый RAID5 массив.

Как преобразовать RAID1 (зеркало) в RAID5 (parity)

Итак, у нас есть программный md_RAID1 созданный на операционной системе Linux. Данный массив состоит их двух дисков.

Массив «первого» уровня из двух носителей

Нам нужно преобразовать его в RAID5 и добавить еще один диск, при этом нужно чтобы информация, которая на нем лежит осталась на своем месте. На дисковом массиве записаны несколько файлов: фото, видео, документы, так далее.

Файлы, хранящиеся на рейд

Прежде чем приступать к операции преобразования рекомендуется сделать резервную копию, так как в процессе неправильно выполненных команд может затереться важная информация.

Открываем терминал, чтобы команды выполнялись от root-а выполним команду:

sudo -i

и вводим пароль.

Получение прав root

Далее, если массив смонтирован нужно его необходимо размонтировать, для этого вводим такую команду:

umount /dev/md0

или

umount /mnt

Размонтируем носители

Если система пишет, что ресурс занят (target is busy), попробуйте сделать это принудительно:

umount -f /dev/md0

Принудительное размонтирование в Linux

Затем нужно остановить RAID1, выполняем следующую команду:

mdadm --stop /dev/md0

(md0 или другое имя посмотреть путь)

где md0 – идентификатор нашего RAID.

Останавливаем массив

Если вы загружаетесь с этого рейда, то остановить его разумеется не получится и необходимо будет использовать какой-нибудь LiveCD.

Далее нужно перезаписать метаданные старого RAID1, для этого создаем поверх него RAID5 из тех же дисков, которые входили в RAID1, sdb и sdc, вводим такую команду:

mdadm --create /dev/md0 -a yes -l 5 -n 2 /dev/sdb1 /dev/sdc1

где l5 – задает уровень массива,

n2 – количество дисков из которых он состоит и далее указываются эти диски.

Перезапитываем метаданные с «первого» уровня на «пятый»

После выполнения команды программа выведет предупреждение о том, что эти диски уже используются в RAID1, жмем Enter для продолжения.

Для проверки успешного преобразования вводим команду:

cat /proc/mdstat

Процесс ребилда

Теперь нужно дождаться завершения ребилда RAID5, в процентах указан его статус.

По завершению команда cat /proc/mdstat выведет следующие данные.

Массив пересобран с новым уровнем

После можно добавить новый диск в массив и сделать его полноценным RAID5. Новый диск добавится как запасной (spare). Для добавления вводим такую команду:

mdadm --add /dev/md0 /dev/sdd1

Добавляем третий накопитель

Далее нужно расширить рейд до трех активных дисков, задействовав запасной диск, этой командой:

mdadm --grow /dev/md0 --raid-disks=3

Проверяем что из этого получилось командой:

cat /proc/mdstat

Расширяем рейд до трех носителей

Теперь в рейде задействованы 3 диска sdb, sdc, sdd и начался процесс изменения (reshap).

В процентах отображен его прогресс, ждем окончания.

По завершении проверим дисковый массив на ошибки, такой командой:

e2fsck -f /dev/md0

и расширим его следующей командой:

resize2fs -p /dev/md0

Проверяем на ошибки

И в конце нужно обновить файл конфигурации, выполнив такую команду:

mdadm --examine --scan >> /etc/mdadm.conf

Обновляем файл конфигурации

Если в процессе выполнения этих команд не было сбоев, все данные которые были на RAID1 перенесутся на новый RAID5 массив.

Монтируем диск и проверяем, все файлы остались не тронутыми, а уровень массива изменился на пятый.

Все файлы остались нетронутыми

Как изменить RAID 0 (чередование) на RAID5 (parity)

Преобразовать RAID0 в RAID5, без форматирования и потери информации таким способом не получится. Но вместо этого есть быстрый способ конвертации с помощью одной команды.

Миграция с RAID0 на RAID5 возможна лишь в случае с двумя дисками, при котором RAID0 удобно совпадает с RAID5. При этом просто изменится уровень массива, не затрагивая информацию на дисках.

Эта команда преобразует RAID0 с двумя дисками в RAID5 с тремя накопителями.

mdadm --grow /dev/md0 --level=5 --raid-devices=3 --add /dev/sdd --backup-file=/tmp/grow_md0.bak

Перед ее выполнением нужно отмонтировать диск.

Проверяем командой:

cat /proc/mdstat

Ждем окончания reshap-а

Конвертация «нулевого» рейд в «пятый»

После преобразования в RAID-5 вы сможете добавить в массив дополнительные диски, как я ранее писал выше:

mdadm --add /dev/md0 /dev/sdc1

Добавление накопителей в рейд

После перезагрузки в управлении дисками его имя изменится на RAID5.

Если в RAID0 больше двух дисков сначала нужно уменьшить их количество, и только после этого станет возможным конвертировать его в RAID5.

Как конвертировать LVRAID1 в LVRAID5

Если для создания RAID массива вы использовали функционал LVM и в этом случае можно преобразовать один тип в другой используя команду:

lvconvert

Выполним команду

pvdisplay

чтобы посмотреть информацию о группе дисков.

Смотрим информацию о входящих в рейд носителях

Детальнее о том, как создать MD и LV RAID смотрите в одном из предыдущих видео.

Перейти к просмотру
Как создать программный RAID на Linux Ubuntu

Как создать программный RAID на Linux Ubuntu

Итак, для начала конвертации нужно размонтировать логический том. Вводим команду:

umount /dev/vg1/lv1

Для преобразования уровня RAID вводим следующую команду:

lvconvert --type raid5 /dev/vg1/lv1

Конвертируем LVM «первого» уровня в «пятый»

Теперь осталось добавить третий накопитель к существующей группе дисков, командой:

vgextend vg1 /dev/sdd1

При ее выполнении программа предупредит что диск уже имеет разметку, вводим yes для подтверждения и жмем enter.

Чтобы посмотреть добавился ли диск в группу выполним команду:

pvdisplay

Как видите в группе задействовано 3 диска.

Добавляем новый накопитель в группу

Снова монтируем наш диск и открываем его в менеджере файлов, как видите все данные остались на своем месте.

Вся информация сохранена

Как конвертировать LVRAID0 в LVRAID5

Для конвертации RAID0 в RAID5 используется та же команда. Единственный момент перед выполнением конвертирования нужно добавить в группу третий диск, иначе система сообщит что ей недостаточно места для выполнения данной команды.

Добавляем третий диск:

vgextend vg1 /dev/sdd1

И для преобразования уровня RAID вводим следующую команду:

lvconvert --type raid5 /dev/vg1/lv1

Преобразовываем RAID LVM «первого» уровня в «пятый»

Смонтируем наш массив и посмотрим, что на нем осталось. Как видите все файлы на месте.

Вся информация осталась без изменений

Как восстановить данные с поврежденных RAID массивов

Если в процессе преобразования из одного уровня RAID в другой произошел сбой или вы случайно затерли информацию, воспользуйтесь программой для восстановления данных – Hetman RAID Recovery. Утилита вычитывает из системы всю информацию о контроллере, материнской плате или программном обеспечении, на котором был создан массив дисков.

Восстановление данных с поврежденных RAID-массивов, недоступных для компьютера.
Программа без проблем определила массив

Она воссоздаст разрушенный RAID и позволит скопировать из него утерянную информацию.

Программа нашла все удаленные данные и их можно восстановить

Детальнее о восстановлении MD LV RAID можете посмотреть в одном из предыдущих видео, ссылку я оставлю в описании.

Перейти к просмотру
🥇 Как восстановить данные с LVM RAID 5, 0 или 1 в Linux (Ext4)

🥇 Как восстановить данные с LVM RAID 5, 0 или 1 в Linux (Ext4)

Заключение

Переход с одного типа RAID на другой осуществляется всего в несколько шагов. Сначала необходимо сконвертировать массив в средний тип, а потом еще раз в нужный вам тип. Как пример, чтобы переделать «первый» тип в «шестой», вам сначала потребуется преобразовать его в «пятый» уровень, а только после этого его можно будет превратить в «шестой» уровень.

Dmytriy Zhura

Автор: , Технический писатель

Дмитрий Жура – автор и один из IT-инженеров компании Hetman Software. Имеет почти 10 летний опыт работы в IT-сфере: администрирование и настройка серверов, установка операционных систем и различного программного обеспечения, настройка сети, информационная безопасность, внедрения и консультация по использованию специализированного ПО. Является экспертом в области восстановления данных, файловых систем, устройств хранения данных и RAID массивов.

Andrey Mareev

Редактор: , Технический писатель

В далеком 2005 году, я получил диплом по специальности «Прикладная математика» в Восточноукраинском национальном университете. А уже в 2006 году, я создал свой первый проект по восстановлению данных. С 2012 года, начал работать в компании «Hetman Software», отвечая за раскрутку сайта, продвижение программного обеспечения компании, и как специалист по работе с клиентами.

Рекомендуем для вас

Вас приветствует ассистент Hetman Software, созданный на основе искусственного интеллекта.
Начать Чат