Réduire le RAID en supprimant un disque?


14

J'ai un Synology NAS avec 12 baies. Initialement, nous avons décidé d'allouer les 12 disques pour un seul volume RAID-6, mais maintenant nous aimerions réduire le volume pour n'utiliser que 10 disques et affecter deux disques durs comme disques de rechange.

L' Assistant Gestionnaire de volume peut facilement augmenter 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 l'ensemble du système?


Quel est l'objectif ici? Actuellement, deux disques sont utilisés comme parité et la baie peut donc tolérer deux échecs. Si vous voulez deux pièces de rechange, vous pouvez tout aussi bien les laisser à proximité et avoir la même tolérance, mais avec plus d'espace disque.
Paul

Bien sûr, mais je dois aller au bureau, sortir un disque et insérer un disque de remplacement. Avoir une pièce de rechange permet de le faire à distance.
Pierre Arnaud

Votre Synology a-t-il intégré MDADM si vous le souhaitez?
Paul

Oui, j'ai accès à l'outil mdadm.
Pierre Arnaud

Réponses:


19

Pour cela, je vais supposer qu'il y a 12 disques dans le tableau, et chacun fait 1 To.

Cela signifie qu'il y a 10 To de stockage. C'est par exemple, à condition que vous n'utilisiez pas plus de 6 disques (6 To) de stockage, alors peu importe leur taille.

Avis de non-responsabilité: rien de tout cela ne peut être pris en charge par Synology, donc je vérifierais avec eux si cette approche peut causer des problèmes, la sauvegarde au préalable et l'arrêt préalable des services de Synology. Synology utilise des tableaux RAID standard md pour autant que je sache, et ils sont accessibles si le disque est déplacé vers un serveur standard qui prend en charge md - il ne devrait donc y avoir aucun problème.

Aperçu

La séquence se déroule comme suit:

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

Système de fichiers

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

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

Utilisez cette commande pour redimensionner au maximum dont elle a besoin et pas 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

Le volume

Pour réduire la taille du volume, utilisez lvreduce (augmentez-le un peu 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, consultez cette autre question pour déplacer les portions de données qui ont été allouées à la fin du volume physique vers le début.

Nous avons maintenant un volume de 5,3T sur une baie de 10T, nous pouvons donc réduire en toute sécurité la taille de la baie de 2T.

Array

Découvrez l'appareil 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 le tableau actuel sur 10 disques, nous devons réduire la taille du tableau.

 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 du temps et peut être contrôlé 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, le 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 pièces de rechange

Rien à faire ici, tous les disques de rechange dans un tableau sont automatiquement des pièces de rechange. Une fois votre remodelage terminé, vérifiez l'état:

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] 

Merci beaucoup pour ces instructions détaillées. J'attendrai d'abord que ma matrice RAID termine sa reconstruction après avoir remplacé un disque dur (capacité totale: 17,86 To, cela prend du temps).
Pierre Arnaud

Jetez également un œil à la feuille de triche mdadm ( ducea.com/2009/03/08/mdadm-cheat-sheet ).
Pierre Arnaud

@Paul - superuser.com/questions/1274328/… signaler ce commentaire pour suppression après avoir déterminé si vous pouvez aider l'utilisateur
Ramhound

Il faut se méfier! Je pense que cette réponse pourrait entraîner une perte de données, telle quelle: il n'y a pas de vérification que le lvm lv est bien au début du pv! (ce qui n'est pas garanti avec lvm). Voir unix.stackexchange.com/questions/67702/… (et unix.stackexchange.com/questions/67702/… en cas d'erreur) pour un moyen de garantir que la fin du PV est libre d'être rétrécie.
Ekleog

@Ekleog Merci, ce commentaire serait mieux placé dans le cadre de la réponse en cas de
Paul
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.