Зменшити RAID, видаливши диск?


13

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

Майстер Volume Manager можна легко розширити обсяг шляхом додавання жорстких дисків, але я не знайшов спосіб стиснути обсяг шляхом видалення жорстких дисків . Як я можу це зробити без необхідності повторної ініціалізації всієї системи?


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

Звичайно, але я повинен зайти в офіс, витягнути диск і вставити запасний диск. Наявність запасного дозволяє зробити це віддалено.
П’єр Арно

Чи має ваш Synology вбудований MDADM, якщо ви схибите на нього?
Пол

Так, я маю доступ до інструменту mdadm.
П’єр Арно

Відповіді:


18

Для цього я припускаю, що в масиві є 12 дисків, і кожен має розмір 1 ТБ.

Це означає, що є 10 ТБ пам’яті. Це, наприклад, якщо ви не використовуєте більше 6 дисків (6 ТБ), то не важливо, якого вони розміру.

Зобов’язальна відмова від відповідальності: Ніщо з цього може не підтримуватися Synology, тому я би пересвідчився у них, чи може такий підхід викликати проблеми, створити резервну копію заздалегідь та відключити будь-які служби синології заздалегідь. Наскільки я знаю, Synology використовує стандартні 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

Якщо зміна не вдається, перегляньте це інше питання щодо переміщення частин даних, які були виділені наприкінці фізичного обсягу до початку.

Тепер у нас на 10-тонному масиві є 5,3-тонний об'єм, тому ми можемо сміливо зменшити розмір масиву на 2T.

Масив

Дізнайтеся пристрій md:

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

Перший крок - сказати mdadm, щоб зменшити розмір масиву (з ростом):

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