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

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

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

У меня есть домашний сервер с пятью дисками под управлением CentOS. Один из них — SSD с ОС. Остальные четыре диска — жесткие диски по 4 ТБ, сконфигурированные в 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

решение1

Выполните следующие шаги для каждого диска; замените /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 вики.

Как и при выполнении любой другой задачи по работе с диском, перед началом работы следует создать резервную копию.

решение2

Сначала вам нужно будет заменить каждый диск по одному.

Для этого вам нужно «вывести из строя» каждый диск и заменить его новым диском на 8 ТБ. Фактически, если у вас есть свободные порты, вы можете добавить дополнительные диски, а затем выполнить «замену» mdadm вместо того, чтобы удалять диск из рейда и подвергать его более высокому риску отказа.

В этом вопросе подробно описывается наилучший способ, который я могу найти, чтобы сделать это «безопасно».

После того, как вы это сделаете, вам просто нужно будет расширить существующую FS в новое созданное пространство. Похоже, что команда для этого — 'xfs_growfs', однако у меня нет опыта работы с xfs, чтобы объяснить, как именно это сделать.

Как всегда, держите наготове резервные копии (а RAID — это не резервная копия!).

Связанный контент