Як конвертувати LV або MD RAID1 і 0 у RAID5 без втрати даних

У цій статті я розповім, як перейти з RAID 0 або 1 на RAID 5. Як в ОС Linux на mdadm або LVM перетворити програмний RAID1 (0) в RAID5 зі збереженням всієї інформації, що зберігається на вашому масиві.

Як конвертувати LV або MD RAID1 і 0 у RAID5 без втрати даних

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

Тип RAID1 виділяється хорошою надійністю та стійкістю до поломки, тому що всі дані дублюються, створюється повна «копія» на другому носії. Але швидкість читання/запису даних від цього страждає і не може похвалитися такою ж швидкістю роботи, як в «нульовому» типі.

Якщо у вас є додатковий накопичувач, то можливо «перший» тип розширити до «п’ятого» рівня. Це своєю чергою надає додаткові бонуси надійності в порівнянні з «нульовим» рівнем, а також дозволить значно збільшити швидкість читання\запису інформації в порівнянні з «першим» типом. На виході ми отримаємо досить надійний, відмовостійкий та швидкий RAID5 масив.

Перейти до перегляду
🐧 Як перетворити LV або MD RAID1 і 0 на RAID5 без втрати даних 🐧

🐧 Як перетворити LV або MD RAID1 і 0 на 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.

Як конвертувати LV RAID1 у LV RAID5

Якщо для створення RAID масиву ви використовували функціонал LVM то в цьому випадку можна перетворити один тип в інший використовуючи команду:

lvconvert

Виконаємо команду

pvdisplay

Щоб переглянути інформацію про групу дисків.

Дивимося інформацію про вхідні в рейд носіях

Отже, для початку конвертації потрібно демонтувати логічний том. Вводимо команду:

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 на інший здійснюється всього за кілька кроків. Спочатку необхідно конвертувати масив в середній тип, а потім ще раз в потрібний вам тип. Як приклад, щоб перетворити «перший» тип в «шостий», вам спочатку потрібно перетворити його в «п'ятий» рівень, а тільки після цього його можна буде перетворити в «шостий» рівень.

Перейти до перегляду
💽 Програма для відновлення даних із пошкоджених RAID масивів 💽

💽 Програма для відновлення даних із пошкоджених RAID масивів 💽

Valery Martyshko

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

Автор, перекладач та технічний спеціаліст компанії Hetman Software. Має майже десятирічний досвід роботи в IT сфері, який охоплює різні галузі: від ПК з Windows та мобільних пристроїв, до фото та відео обладнання, сигналізацій та систем відеоспостереження, і т.д. Окрім іншого, є також спеціалістом по Android, Windows та Microsoft Office. Є експертом в області відновлення даних, файлових систем, пристроїв зберігання даних, RAID масивів.

Vladyslav Kupriyenko

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

Редактор статей блогу, автор та ведучий рубрики на YouTube каналі компанії Hetman Software. За освітою: спеціаліст з обслуговування комп’ютерних систем та мереж, вивчав розробку програмного забезпечення. Має досвід роботи в IT сфері, який охоплює різні галузі: адміністрування комп’ютерної мережі та обладнання, контроль та підтримка роботи Інтернет, офісних та спеціалізованих програм. Є фахівцем в області відновлення даних, файлових систем та пристроїв зберігання даних.

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

Вас вітає асистент Hetman Software створений на основі штучного інтелекту.
Розпочати чат