Розгорніть масив Linux MD RAID 10 для використання великих дисків


11

З того, що я розумію, це можливо, але я ніде не можу знайти прямої відповіді про те, як саме це робити, і я не хочу ризикувати втратою даних, експериментуючи з ними, тому я прошу тут.

У мене є домашній сервер з п'ятьма дисками під управлінням CentOS. Один - це SSD, що містить ОС. Решта чотирьох дисків - це 4TB жорсткі диски, налаштовані в RAID10 з mdraid. Файлова система, що використовується, - xfs.

Я розглядаю спробу замінити 4 ТБ диски на 8 ТБ. Що саме потрібно зробити, щоб ця заміна відбулася без необхідності переналаштування нового RAID та втрати даних?

Details output:

[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Mon Apr 18 12:46:24 2016
     Raid Level : raid10
     Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Mon Jun 13 11:04:41 2016
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : fluttershy:data  (local to host fluttershy)
           UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
         Events : 13440

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync set-A   /dev/sda1
       1       8       17        1      active sync set-B   /dev/sdb1
       2       8       33        2      active sync set-A   /dev/sdc1
       3       8       49        3      active sync set-B   /dev/sdd1

Відповіді:


14

Виконайте наступні кроки для кожного диска; за потреби замініть /dev/sda1іншими дисками. Ви повинні виконати всі ці дії для одного диска, перш ніж перейти до наступного диска.

  • Позначте диск як невдалий, щоб MD припинив його використовувати: mdadm --manage /dev/md127 --fail /dev/sda1
  • Видаліть диск із масиву: mdadm --manage /dev/md127 --remove /dev/sda1
  • Фізично замініть диск.
  • Розділіть новий диск, використовуючи тип, 0xDAз одним розділом, що охоплює весь диск.
  • Додайте новий диск до масиву: mdadm --manage /dev/md127 --add /dev/sda1

Після додавання диска для заміни MD відновить масив. Переконайтесь, що відновлення завершено, перш ніж перейти до наступного диска. Ви можете перевірити стан масиву, запустивши cat /proc/mdstat.

Після того, як всі диски будуть замінені та масив відновлений, розгорніть масив, щоб заповнити максимальну ємність усіх дисків mdadm --grow /dev/md127 --size=max. Ви можете змінити розмір файлової системи звідти для заповнення розширеного RAID; у вашому випадку використовуйте xfs_growfsкоманду.

Більше інформації про те, як виростити масив MD, розміщено на вікі Linux RAID .

Як і будь-яке інше завдання з маніпулювання диском, перед початком роботи слід зробити резервну копію.


1
Можливо, додайте, як ви перевіряєте прогрес відновлення ->tim@MushaV3 ~ $ cat /proc/mdstat Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md1 : active raid1 sdb1[0] sda1[1] 131008 blocks [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk
djsmiley2kStaysInside

2

Ви хочете спочатку поміняти кожен диск по одному.

Для цього ви б "провалили" кожен диск і замінили його новою 8Tb заміною, інфакт, якщо у вас є запасні порти, ви можете додати додаткові диски, а потім mdadm "замінити" на місці замість того, щоб видаляти диск із рейд та підвищений ризик невдачі.

Це питання детально описує найкращий спосіб зробити це "безпечно"

Зробивши це, ви захочете просто розширити існуючий FS в новостворений простір. Здається, що команда для цього - «xfs_growfs», але я не маю досвіду роботи з xfs, щоб пояснити, як саме ви це зробите.

Як завжди, готуйте резервні копії (а рейд - це не резервне копіювання!).


Налаштувавши рейд10 та mdraid, чи вдасться визнати додатковий простір? Чи варто поміняти місцями два, по одному від кожної дзеркальної пари?
Кефка

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