Для цього я припускаю, що в масиві є 12 дисків, і кожен має розмір 1 ТБ.
Це означає, що є 10 ТБ пам’яті. Це, наприклад, якщо ви не використовуєте більше 6 дисків (6 ТБ), то не важливо, якого вони розміру.
Зобов’язальна відмова від відповідальності: Ніщо з цього може не підтримуватися Synology, тому я би пересвідчився у них, чи може такий підхід викликати проблеми, створити резервну копію заздалегідь та відключити будь-які служби синології заздалегідь. Наскільки я знаю, Synology використовує стандартні md рейдові масиви, і вони доступні, якщо диск переміщений на стандартний сервер, який підтримує md - тому проблем не повинно бути.
Огляд
Послідовність йде так:
- Зменшити розмір файлової системи
- Зменшити логічний розмір гучності
- Зменшити розмір масиву
- Змініть розмір файлової системи назад
- Перетворіть запасні диски в гарячі запасні частини
Файлова система
Знайдіть основний розділ, використовуючи 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]