web-dev-qa-db-fra.com

Réduire le RAID en retirant un disque?

J'ai un Synology NAS avec 12 baies. Initialement, nous avions décidé d'allouer les 12 disques à un seul volume RAID-6, mais nous souhaitons maintenant réduire le volume afin de n'utiliser que 10 disques et d'affecter deux disques durs en réserve.

L’Assistant de gestion de volume peut facilement étendre le volume en ajoutant des disques durs, mais je n’ai trouvé aucun moyen de réduire le volume en retirant les disques durs . Comment puis-je faire cela sans avoir à réinitialiser tout le système?

13
Pierre Arnaud

Pour cela, je vais supposer qu'il y a 12 disques dans la matrice, chacun pesant 1 To.

Cela signifie qu'il y a 10 To de stockage. Par exemple, si vous n'utilisez pas plus de 6 disques (6 To) de stockage, leur taille importe peu.

Clause de non-responsabilité: Synology ne prend en charge aucun de ces éléments. Par conséquent, je vérifierais avec eux si cette approche peut entraîner des problèmes, effectuer une sauvegarde préalable et arrêter au préalable tous les services Synology. Autant que je sache, Synology utilise des matrices d’affichage standard md, et elles sont accessibles si le disque est déplacé vers un serveur standard prenant en charge md. Il ne devrait donc y avoir aucun problème .

Vue d'ensemble

La séquence va comme ceci:

  1. Réduire la taille du système de fichiers
  2. Réduire la taille du volume logique
  3. Réduire la taille du tableau
  4. Redimensionner le système de fichiers retour
  5. Convertir les disques de rechange en disques de secours

Système de fichiers

Trouvez la partition principale en utilisant df -h, il devrait ressembler à ceci:

Filesystem                Size      Used Available Use% Mounted on
/dev/vg1/volume_1         10T       5T   5T         50% /volume1

Utilisez cette commande pour redimensionner au maximum, sans plus:

umount /dev/vg1/volume_1
resize2fs -M /dev/vg1/volume_1

Maintenant, vérifiez:

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

Pour réduire la taille du volume, utilisez lvreduce (rendez-le un peu plus grand au cas où):

umount /dev/vg1/volume_1
lvreduce -L 5.2T /dev/vg1/volume_1

Maintenant que le volume logique a été réduit, utilisez pvresize pour réduire la taille du volume physique:

pvresize --setphysicalvolumesize 5.3T /dev/md0

Si le redimensionnement échoue, voir cette autre question pour déplacer les portions de données allouées à la fin du volume physique vers le début.

Nous avons maintenant un volume de 5,3 t sur un tableau de 10 t, ce qui nous permet de réduire en toute sécurité la taille du tableau de 2 t.

Tableau

Découvrez le périphérique md:

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

La première étape consiste à dire à mdadm de réduire la taille du tableau (avec 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

Cela signifie que pour adapter la matrice actuelle à 10 disques, nous devons réduire la taille de la matrice.

 mdadm --grow /dev/md0 --array-size 9683819520

Maintenant, il est plus petit, nous pouvons réduire le nombre de disques:

 mdadm --grow -n10 /dev/md0 --backup-file /root/mdadm.md0.backup

Cela prendra un peu de temps et peut être surveillé ici:

 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__]

Mais nous n'avons pas besoin d'attendre.

Redimensionnez le PV, LV et le système de fichiers au maximum:

pvresize /dev/md0
lvextend -l 100%FREE /dev/vg1/volume_1
e2fsck -f /dev/vg1/volume_1
resize2fs /dev/vg1/volume_1

Définir des disques de rechange comme disques de secours

Rien à faire ici, tous les disques de réserve dans une matrice sont automatiquement des disques de secours. Une fois votre restructuration terminée, vérifiez le statut:

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] 
18
Paul