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

2 ответа2

12

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .