Para isso, presumo que haja 12 discos na matriz e cada um tem 1 TB de tamanho.
Isso significa que há 10 TB de armazenamento. Isto é, por exemplo, desde que você não esteja usando mais de 6 discos (6TB) de armazenamento, então não importa o tamanho que eles sejam.
Aviso de isenção de responsabilidade: Nada disso pode ser suportado pela Synology, então eu verificaria com eles se essa abordagem pode causar problemas, backup antecipadamente e encerrar qualquer serviço de sincronia antecipadamente. Synology usa arrays padrão de md raid, tanto quanto eu sei, e elas são acessíveis se o disco for movido para um servidor padrão que suporta md - então não deve haver problemas.
Visão geral
A sequência é assim:
- Reduza o tamanho do sistema de arquivos
- Reduza o tamanho do volume lógico
- Reduza o tamanho da matriz
- Redimensionar o sistema de arquivos de volta
- Converta os discos sobressalentes em peças de reposição
Sistema de arquivos
Encontre a partição principal, usando df -h
, deve ser algo como:
Filesystem Size Used Available Use% Mounted on
/dev/vg1/volume_1 10T 5T 5T 50% /volume1
Use este comando para redimensionar ao máximo necessário e não mais:
umount /dev/vg1/volume_1
resize2fs -M /dev/vg1/volume_1
Agora verifique:
mount /dev/vg1/volume_1 /volume1
df -h
Filesystem Size Used Available Use% Mounted on
/dev/vg1/volume_1 5T 5T 0T 100% /volume1
Volume
Para reduzir o tamanho do volume, use lvreduce (torne-o um pouco maior apenas no caso):
umount /dev/vg1/volume_1
lvreduce -L 5.2T /dev/vg1/volume_1
Agora que o volume lógico foi reduzido, use pvresize para reduzir o tamanho do volume físico:
pvresize --setphysicalvolumesize 5.3T /dev/md0
Se o redimensionamento falhar, consulte esta outra pergunta para mover as partes dos dados alocados no final do volume físico em direção ao início.
Agora, temos um volume de 5,3T em uma matriz de 10T, para que possamos reduzir com segurança o tamanho da matriz em 2T.
Matriz
Descubra o dispositivo md:
pvdisplay -C
PV VG Fmt Attr PSize PFree
/dev/md0 vg1 lvm2 a-- 5.3t 0.1t
O primeiro passo é dizer ao mdadm para reduzir o tamanho do array (com o 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
Isso está dizendo que, para ajustar a matriz atual em 10 discos, precisamos reduzir o tamanho da matriz.
mdadm --grow /dev/md0 --array-size 9683819520
Agora é menor, podemos reduzir o número de discos:
mdadm --grow -n10 /dev/md0 --backup-file /root/mdadm.md0.backup
Isso levará muito tempo e pode ser monitorado aqui:
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__]
Mas não precisamos esperar.
Redimensione o PV, LV e sistema de arquivos para o máximo:
pvresize /dev/md0
lvextend -l 100%FREE /dev/vg1/volume_1
e2fsck -f /dev/vg1/volume_1
resize2fs /dev/vg1/volume_1
Defina discos sobressalentes como peças sobressalentes
Nada a fazer aqui, quaisquer discos sobressalentes em uma matriz são automaticamente peças de reposição. Depois que sua reformulação estiver concluída, verifique o status:
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]