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

11

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

У меня есть домашний сервер с пятью дисками под управлением 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
Кефка
источник

Ответы:

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 .

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

bwDraco
источник
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

Вы бы хотели поменять местами каждый диск один за другим.

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

Этот вопрос подробно описывает лучший способ сделать это «безопасно»

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

Как всегда, подготовьте резервные копии (и рейд не является резервной копией!).

djsmiley2kStaysInside
источник
Будучи настроенным с raid10 и mdraid, будет ли дополнительное место вообще распознано? Должен ли я поменяться двумя одновременно, по одному от каждой зеркальной пары?
Кефка
Вы только добавляете пространство после замены всех дисков, и тогда да, это будет распознано.
djsmiley2kStaysInside