Перетворіть програмне забезпечення linux з raid5 в raid6


11

На даний момент у масиві RAID5 є файловий сервер з 3 дисками 1,5 ТБ. Оскільки він майже заповнений, я отримав три додаткові диски (теж по 1,5 ТБ кожен).

Тепер я хотів би перейти на RAID6, оскільки місця вистачає 6 ТБ, і я хотів би підвищити безпеку рейду6. Хоча у мене є повна резервна копія - тобто я можу просто створити новий масив і відновити резервну копію - я вважаю за краще переключитися без необхідності відновлення резервної копії. Це можливо і якщо так, то як?

Відповіді:


9

Термінологія, яку ви шукаєте, - це "міграція рівня 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.

EG, спочатку додайте новий пристрій hotspare / / dev / sdg до масиву RAID5:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

Потім перетворите в масив RAID6 і перетворіть його в чистий стан. --Raid-пристрої 4 повідомляє про те, скільки ваших дисків у вашому новому масиві.

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

Я поняття не маю, наскільки це буде швидко. З мого досвіду роботи з міграцією рівня рейду на апаратних RAID-контролерах, було швидше створити новий масив з нуля і відновити резервну копію на ньому.


3
Міграція RAID 5 на RAID 6 має дві повільні операції - повторна смуга даних на дисках та обчислення другого значення паритету для диска додаткового паритету. Стирання / відновлення, ймовірно, займе стільки ж часу, скільки і розмір.
Андрій

1
Також потрібна певна версія ядра. Знайшов це важкий шлях.
Сірекс

Оскільки я перебуваю на gentoo, і моє ядро, і mdadm є досить новими версіями - так що це не повинно бути проблемою.
ThiefMaster

1
Посилання, на яке ви посилаєтесь, написане мною. Зверніть увагу: я не дуже читав документи про те, як насправді це зробити. Я просто створив віртуальну машину з 30 дисками (щось подібне) і почав хитатися. Тож прийміть всю посаду із зерном солі, це просто нападник ...
Мартін М.

1
@ServerHorror: Помічено. Більш широкий Інтернет, включаючи сторінку man-man, стверджує, що міграція рівня рейду можлива. :)
Даніель Лоусон

7

Обов’язкове попередження: План відмови. Підготуйте резервну копію та врахуйте можливі простої.

Крім того, протестуйте його в VM або щось подібне раніше, це з моїх записок, і я цього не робив давно. Це може бути неповним.

  1. Вам потрібно буде до addдисків до масиву:

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    Зробіть це для кожного з трьох дисків і замініть назви пристроїв відповідно.

  2. Зробити масив:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    

3

Скористайтеся цією --backup-fileопцією, так що в разі втрати живлення ви можете продовжувати нарощувати пристрій після перезавантаження та забезпечити втрату даних.

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

Резервний файл слід зберігати у файловій системі, яка не є частиною масиву, який ви збираєтеся виростити.

--backup-file=потрібен, коли --growвикористовується для збільшення кількості рейдових пристроїв у RAID5 або RAID6, якщо немає запасних пристроїв, або зменшити, змінити рівень RAID або макет. Див. Розділ РЕЖИМ РОЗУМИ нижче про ЗМІНИ РАЙДОВИХ ПРИЛАДІВ. Файл повинен зберігатися на окремому пристрої, а не в перетвореному масиві RAID.

--continueє доповненням до --freeze-reshapeваріанту складання. Він потрібен, коли --growробота перервана, і вона не перезапускається автоматично через --freeze-reshapeвикористання під час складання масиву. Цей параметр використовується разом з командою -G(( --grow) та пристроєм для продовження переглянутої форми, що триває в очікуванні). Всі параметри, необхідні для продовження перегляду форми, будуть зчитуватися з метаданих масиву. Якщо для початкової --growкоманди була потрібна --backup-file=опція для встановлення, для параметра "Продовження" також потрібно мати такий самий файл резервного копіювання.

Будь-який інший параметр, переданий разом із --continueопцією, буде ігнорований.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.