Convertir le raid logiciel Linux de raid5 en raid6

11

J'ai actuellement un serveur de fichiers avec 3 disques de 1,5 To dans une matrice RAID5. Comme il est à peu près plein, j'ai eu trois disques supplémentaires (également 1,5 To chacun).

Maintenant, je voudrais passer au RAID6 car l'espace de 6 To est suffisant et j'aimerais avoir la sécurité accrue de raid6. Bien que j'aie une sauvegarde complète - c'est-à-dire que je pourrais simplement créer une nouvelle baie et restaurer la sauvegarde - je préfère changer sans avoir à restaurer une sauvegarde. Est-ce possible et si oui, comment?

ThiefMaster
la source

Réponses:

9

La terminologie que vous recherchez est une «migration de niveau RAID».

Selon cela , c'est possible. Je ne l'ai pas fait, mais la procédure semble que vous devriez ajouter le nouveau disque en tant que hotspare à la matrice existante, puis utiliser mdadm pour mettre à jour le niveau de raid et le nombre de périphériques de raid ..

Vous aurez besoin d'un mdadm récent pour ce faire: mdadm-2.6.9 (par exemple, centos 5.x) ne semble pas le prendre en charge, mais mdadm-3.1.4 (par exemple ubuntu 11.10) le fait:

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

EG, ajoutez d'abord un nouveau périphérique de rechange, / dev / sdg, à la matrice RAID5:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

Convertissez-le ensuite en matrice RAID6 et faites-le reconstruire dans un état propre. Le --raid-devices 4 vous indique le nombre total de disques que vous avez dans la nouvelle baie.

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

Je n'ai aucune idée de la rapidité avec laquelle ce sera. D'après mon expérience avec les migrations de niveau RAID sur les contrôleurs RAID matériels, il a été plus rapide de créer la nouvelle baie à partir de zéro et d'y récupérer votre sauvegarde.

Daniel Lawson
la source
3
La migration d'un RAID 5 vers RAID 6 a deux opérations lentes: re-répartir les données sur les disques et calculer la deuxième valeur de parité pour le disque à parité supplémentaire. L'effacement / restauration prendra probablement le même temps que le redimensionnement.
Andrew
1
Il nécessite également une certaine version du noyau. J'ai découvert ça à la dure.
Sirex
Puisque je suis sur gentoo, mon noyau et mdadm sont des versions assez récentes - donc cela ne devrait pas être un problème.
ThiefMaster
1
Le lien auquel vous faites référence a été écrit par moi. Remarque: je n'ai pas vraiment lu les documents sur la façon de le faire, je viens de créer une machine virtuelle avec 30 disques (quelque chose comme ça) et j'ai commencé à jouer. Alors prenez tout le post avec un grain de sel, ce n'est qu'un braindump ...
Martin M.
1
@ServerHorror: noté. Internet plus large, y compris la page de manuel mdadm, affirme cependant que la migration au niveau du raid est possible. :)
Daniel Lawson
7

Avertissement obligatoire: prévoir l'échec. Gardez une sauvegarde prête et tenez compte des éventuels temps d'arrêt.

Aussi, testez-le dans une machine virtuelle ou quelque chose de similaire avant, cela vient de mes notes et je ne l'ai pas fait depuis longtemps. Cela pourrait être incomplet.

  1. Vous aurez besoin adddes disques de la baie:

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    Effectuez cette opération pour chacun des trois disques et remplacez les noms de périphérique en conséquence.

  2. Agrandir la gamme:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    
Sven
la source
3

Faites usage de cette --backup-fileoption, donc en cas de coupure de courant, vous pouvez continuer à faire grandir l'appareil après un redémarrage et ne pas perdre de données.

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

Le fichier de sauvegarde doit être enregistré sur un système de fichiers ne faisant pas partie de la baie que vous allez développer.

--backup-file=est nécessaire lorsqu'il --growest utilisé pour augmenter le nombre de périphériques RAID dans un RAID5 ou RAID6 s'il n'y a pas de périphériques de rechange disponibles, ou pour réduire, modifier le niveau ou la disposition du RAID. Voir la section GROW MODE ci-dessous sur RAID-DEVICES CHANGES. Le fichier doit être stocké sur un périphérique distinct, et non sur la matrice RAID en cours de remodelage.

--continueest complémentaire de l' --freeze-reshapeoption de montage. Il est nécessaire lorsque le --growfonctionnement est interrompu et il n'est pas redémarré automatiquement en raison de son --freeze-reshapeutilisation lors de l'assemblage de la baie. Cette option est utilisée avec la commande -G, ( --grow) et le périphérique pour continuer une mise en forme en attente. Tous les paramètres requis pour la poursuite de la remise en forme seront lus à partir des métadonnées du tableau. Si la --growcommande initiale avait nécessité la --backup-file=définition d'une option, l'option de continuation devra également avoir exactement le même fichier de sauvegarde.

Tout autre paramètre passé avec l' --continueoption sera ignoré.

Guggi
la source