Para isso, vou assumir que existem 12 discos na matriz e cada um tem 1 TB de tamanho.
Isso significa que há 10 TB de armazenamento. Por exemplo, desde que você não esteja usando mais de 6 discos (6 TB) de armazenamento, não importa o tamanho deles.
Isenção de responsabilidade: nada disso pode ser suportado pela Synology, portanto, gostaria de verificar com eles se essa abordagem pode causar problemas, fazer backup antecipado e encerrar qualquer serviço de sinologia antes. Synology usar arrays RAID md padrão, tanto quanto eu sei, e eles são acessíveis se o disco são movidos para um servidor padrão que suporta md - por isso não deve haver problemas.
Visão geral
A sequência é assim:
- Reduzir o tamanho do sistema de arquivos
- Reduza o tamanho do volume lógico
- Reduza o tamanho da matriz
- Redimensione o sistema de arquivos de volta
- Converta os discos sobressalentes em hot spares
Sistema de arquivo
Encontre a partição principal, usando df -h
, ela deve se parecer com:
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 verifica:
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 (aumente um pouco o tamanho):
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 que foram alocadas no final do volume físico para o 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 da matriz (com crescimento):
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 significa que, para ajustar a matriz atual em 10 discos, precisamos reduzir o tamanho da matriz.
mdadm --grow /dev/md0 --array-size 9683819520
Agora que é menor, podemos reduzir o número de discos:
mdadm --grow -n10 /dev/md0 --backup-file /root/mdadm.md0.backup
Isso levará muito tempo e poderá 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
Definir discos sobressalentes como peças de reposição
Nada a fazer aqui, quaisquer discos sobressalentes em uma matriz são automaticamente peças de reposição. Depois de concluída a remodelagem, 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]