Главное Авторские колонки Вакансии Образование
Выбор редакции:
434 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

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

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

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

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

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

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

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


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


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

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

sudo -i

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


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

umount /dev/md0

или

umount /mnt


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

umount -f /dev/md0


Затем нужно остановить 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 смотрите в одном из предыдущих видео.

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

umount /dev/vg1/lv1

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

lvconvert —type raid5 /dev/vg1/lv1


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

vgextend vg1 /dev/sdd1

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

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

pvdisplay

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


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


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

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

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

vgextend vg1 /dev/sdd1

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

lvconvert —type raid5 /dev/vg1/lv1


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


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

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


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


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

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

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.