Para esto, voy a suponer que hay 12 discos en la matriz, y cada uno tiene 1 TB de tamaño.
Eso significa que hay 10 TB de almacenamiento. Esto es, por ejemplo, siempre que no esté utilizando más de 6 discos (6 TB) de almacenamiento, no importa de qué tamaño sean.
Descargo de responsabilidad obligatorio: Synology no admite nada de esto, por lo que debería consultar con ellos si este enfoque puede causar problemas, realizar copias de seguridad de antemano y cerrar los servicios de Synology de antemano. Synology utiliza matrices de incursiones md estándar hasta donde yo sé, y son accesibles si el disco se mueve a un servidor estándar que admita md, por lo que no debería haber problemas.
Visión general
La secuencia es así:
- Reduce el tamaño del sistema de archivos
- Reduce el tamaño del volumen lógico
- Reduce el tamaño de la matriz
- Cambiar el tamaño del sistema de archivos
- Convierta los discos de repuesto en repuestos activos
Sistema de archivos
Encuentra la partición principal, usando df -h
, debería verse algo así como:
Filesystem Size Used Available Use% Mounted on
/dev/vg1/volume_1 10T 5T 5T 50% /volume1
Use este comando para cambiar el tamaño al máximo que necesita y no más:
umount /dev/vg1/volume_1
resize2fs -M /dev/vg1/volume_1
Revisa ahora:
mount /dev/vg1/volume_1 /volume1
df -h
Filesystem Size Used Available Use% Mounted on
/dev/vg1/volume_1 5T 5T 0T 100% /volume1
Volumen
Para reducir el tamaño del volumen, usa lvreduce (hazlo un poco más grande por si acaso):
umount /dev/vg1/volume_1
lvreduce -L 5.2T /dev/vg1/volume_1
Ahora que se ha reducido el volumen lógico, use pvresize para reducir el tamaño del volumen físico:
pvresize --setphysicalvolumesize 5.3T /dev/md0
Si el cambio de tamaño falla, vea esta otra pregunta para mover las porciones de datos que se asignaron al final del volumen físico hacia el principio.
Ahora tenemos un volumen de 5.3T en una matriz de 10T, por lo que podemos reducir de forma segura el tamaño de la matriz en 2T.
Formación
Descubre el dispositivo md:
pvdisplay -C
PV VG Fmt Attr PSize PFree
/dev/md0 vg1 lvm2 a-- 5.3t 0.1t
El primer paso es decirle a mdadm que reduzca el tamaño de la matriz (con 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
Esto significa que para ajustar la matriz actual en 10 discos, necesitamos reducir el tamaño de la matriz.
mdadm --grow /dev/md0 --array-size 9683819520
Ahora es más pequeño, podemos reducir la cantidad de discos:
mdadm --grow -n10 /dev/md0 --backup-file /root/mdadm.md0.backup
Esto llevará mucho tiempo, y puede monitorearse aquí:
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__]
Pero no necesitamos esperar.
Cambie el tamaño del PV, LV y el sistema de archivos al máximo:
pvresize /dev/md0
lvextend -l 100%FREE /dev/vg1/volume_1
e2fsck -f /dev/vg1/volume_1
resize2fs /dev/vg1/volume_1
Establecer discos de repuesto como repuestos
No hay nada que hacer aquí, los discos de repuesto en una matriz son repuestos automáticamente. Una vez que haya completado la remodelación, verifique el estado:
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]