Сжать RAID, удалив диск?

14

У меня есть Synology NAS с 12 отсеками. Первоначально мы решили выделить все 12 дисков для одного тома RAID-6, но теперь мы хотели бы уменьшить объем, чтобы использовать только 10 дисков, и назначить два жестких диска в качестве запасных.

Volume Wizard менеджер может легко расширить объем путем добавления жестких дисков, но я не нашел способ сжать объем путем удаления жестких дисков . Как я могу сделать это без повторной инициализации всей системы?

Пьер Арно
источник
Какова цель здесь? В настоящее время два диска используются для контроля четности, поэтому массив может выдержать два сбоя. Если вам нужны две запчасти, вы также можете оставить их рядом и иметь такой же допуск, но с большим количеством дискового пространства.
Пол
Конечно, но я должен пойти в офис, вытолкнуть диск и вставить запасной диск. Наличие запасного позволяет делать это удаленно.
Пьер Арно
Есть ли в вашей Synology MDADM, если вы используете ssh?
Пол
Да, у меня есть доступ к инструменту mdadm.
Пьер Арно,

Ответы:

19

Для этого я предполагаю, что в массиве 12 дисков, каждый из которых имеет размер 1 ТБ.

Это означает, что есть 10 ТБ памяти. Это, например, при условии, что вы используете не более 6 дисков (6 ТБ) хранилища, тогда не имеет значения, какого они размера.

Oblig disclaimer: Synology не может поддерживать ничего из этого, поэтому я хотел бы проверить у них, может ли этот подход вызвать проблемы, выполнить резервное копирование заранее и заранее отключить любые службы Synology. Насколько я знаю, Synology использует стандартные raid-массивы md, и они доступны, если диск перенести на стандартный сервер, поддерживающий md, поэтому проблем быть не должно .

обзор

Последовательность выглядит следующим образом:

  1. Уменьшить размер файловой системы
  2. Уменьшите размер логического тома
  3. Уменьшить размер массива
  4. Изменить размер файловой системы обратно
  5. Конвертировать запасные диски в горячие

Файловая система

Найдите основной раздел, используя df -h, он должен выглядеть примерно так:

Filesystem                Size      Used Available Use% Mounted on
/dev/vg1/volume_1         10T       5T   5T         50% /volume1

Используйте эту команду для изменения размера до необходимого и не более:

umount /dev/vg1/volume_1
resize2fs -M /dev/vg1/volume_1

Теперь проверьте:

mount /dev/vg1/volume_1 /volume1
df -h

Filesystem                Size      Used Available Use% Mounted on
/dev/vg1/volume_1         5T       5T    0T        100% /volume1

объем

Чтобы уменьшить размер тома, используйте lvreduce (на всякий случай увеличьте его):

umount /dev/vg1/volume_1
lvreduce -L 5.2T /dev/vg1/volume_1

Теперь, когда логический том уменьшен, используйте pvresize, чтобы уменьшить размер физического тома:

pvresize --setphysicalvolumesize 5.3T /dev/md0

Если изменение размера завершится неудачно, см. Этот другой вопрос для перемещения частей данных, которые были выделены в конце физического тома, в начало.

Теперь у нас есть том 5.3Т на массиве 10Т, поэтому мы можем безопасно уменьшить размер массива на 2Т.

массив

Узнайте устройство md:

 pvdisplay -C
 PV         VG      Fmt  Attr PSize   PFree
 /dev/md0   vg1     lvm2 a--  5.3t    0.1t

Первым шагом является указание mdadm уменьшить размер массива (с помощью grow):

mdadm --grow -n10 /dev/md0
mdadm: this change will reduce the size of the array.
       use --grow --array-size first to truncate array.
       e.g. mdadm --grow /dev/md0 --array-size 9683819520

Это говорит о том, что для размещения текущего массива на 10 дисках нам нужно уменьшить размер массива.

 mdadm --grow /dev/md0 --array-size 9683819520

Теперь оно меньше, мы можем уменьшить количество дисков:

 mdadm --grow -n10 /dev/md0 --backup-file /root/mdadm.md0.backup

Это займет много времени и может быть отслежено здесь:

 cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
md4 : active raid6 sda4[0] sdb4[1] sdc4[2] sdd4[3] sde4[4] sdf4[5] sdg4[6] sdh4[7] sdi4[1] sdj4[1] 
      [>....................]  reshape =  1.8% (9186496/484190976)
                              finish=821.3min speed=9638K/sec [UUUUUUUUUU__]

Но нам не нужно ждать.

Измените размер PV, LV и файловой системы до максимального:

pvresize /dev/md0
lvextend -l 100%FREE /dev/vg1/volume_1
e2fsck -f /dev/vg1/volume_1
resize2fs /dev/vg1/volume_1

Установить запасные диски как запчасти

Ничего не поделаешь, любые запасные диски в массиве автоматически резервируются. После того, как ваше изменение формы завершено, проверьте статус:

cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
md4 : active raid6 sda4[0] sdb4[1] sdc4[2] sdd4[3] sde4[4] sdf4[5] sdg4[6] sdh4[7] sdi4[S] sdj4[S] 
Павел
источник
Большое спасибо за эти подробные инструкции. Сначала я подожду, пока мой RAID-массив завершит восстановление после замены жесткого диска (общая емкость: 17,86 ТБ, это займет некоторое время).
Пьер Арно,
Также взгляните на шпаргалку mdadm ( ducea.com/2009/03/08/mdadm-cheat-sheet ).
Пьер Арно,
@Paul - superuser.com/questions/1274328/… пометить этот комментарий для удаления после того, как вы определите, можете ли вы помочь пользователю
Ramhound
Осторожно! Я думаю, что этот ответ может привести к потере данных, так как нет никакой проверки, что lvm lv действительно находится в начале pv! (что не гарантируется с lvm). См. Unix.stackexchange.com/questions/67702/…unix.stackexchange.com/questions/67702/… в случае ошибки), чтобы убедиться, что конец PV можно свободно сжимать.
Ekleog
@Ekleog Спасибо, этот комментарий был бы лучше помещен как часть ответа в случае пропущенного
Пол