Migration RAID 1 vers RAID 1+5 (quinze (15))

Résolu/Fermé
debianlov3r Messages postés 97 Date d'inscription vendredi 26 mars 2021 Statut Membre Dernière intervention 20 novembre 2023 - Modifié le 9 oct. 2021 à 13:33
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 18 oct. 2021 à 15:22
Bonjour chers utilisateurs de "Comment ca marche",

J'essaie depuis 3 jours (pour un projet/defi personnel)(totalement decorrele de mon magasin de mul******* a M**********) de faire transiter mes donnees pour le moment presentes sur un raid 1 a deux disques vers un raid 15 a 6 disque en utilisant le mdadm.

Pour note (je cite ): "Mdadm est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel. Il permet de plus de monitorer les volumes RAID grâce à un système d'avertissements par mail."

J'aimerais eviter d'avoir a copier mes donnees au prealable sur un autre support de stockage car cela me simplifierait grandement la vie.
Jusque la j'ai clone mon premier raid (avec le disque 1 et le disque 2 vers le deuxieme raid (avec le disque 2 et le disque numero 3) et le troisieme (3eme) RAID1 (qui comprend le disque "5" et le numero six). je peux acceder aux donnees sur chacun des raids, mais maintenant je ne sais pas comment faire, car utiliser chacun des raids en raid 5 formatte les raid en raid 5 et il n'y a plus rien dessus (donc j'ai perdu mes donnees).

Donc comment fairfe ?

Merci d'avance, chers internautes surfant sur la vague,

3 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
11 oct. 2021 à 16:07
Bonjour,

Je n'ai pas compris ton problème.

Quelques rappels sur RAID
  • Tout disque physique (USB, SSD, ...) est identifié par un device (e.g.
    /dev/sda
    ,
    /dev/sdb
    .
  • Chaque disque physique peut être subdiviser en partitions (logiques ou physiques) (e.g.
    /dev/sda1
    ,
    /dev/sda2
    , etc)
  • RAID permet répartir de la données sur plusieurs disques physiques en vue d'améliorer la performance ou la redondance. Il peut être réaliser de manière physique (avec une carte RAID) ou logicielle (e.g. avec
    mdadm
    ). Chaque groupe définit un device RAID.


Exemple : Un RAID logiciel, identifié par
/dev/md0
et construit à partir de deux partitions physiques appartenant à des disques physiques distincts
/dev/sda1
et
/dev/sdb1
:

(root@atlantic) (~) # cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
976629760 blocks super 1.2 [2/2] [UU]
bitmap: 1/8 pages [4KB], 65536KB chunk

unused devices: <none>

(root@atlantic) (~) # mdadm -v --detail --scan /dev/md0
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=atlantic:0 UUID=d127b892:1e9d0be4:e7044f46:84785750
devices=/dev/sda1,/dev/sdb1
  • Indépendamment de RAID, on peut éventuellement définir une surcouche LVM (typiquement construite par dessus des devices RAID ou non-RAID). De cette surcouche LVM résulte des devices LVM (voir
    lvdisplay
    et
    vgdisplay
    ).
  • RAID est optionnel ; LVM est optionnel ; les deux sont complémentaires (tu peux faire du LVM sans RAID, du RAID sans LVM, les deux ou ni l'un ni l'autre). La seule chose à savoir c'est quel est le device le plus "haut" dans la hiérarchie : si tu as défini du RAID par dessus des disques physiques, alors il ne faut plus utiliser les devices de partitions. Si tu as défini du LVM par dessus un device (RAID ou non) il faut utiliser le volume logique LVM.
  • Une fois ce jeu de device finaux choisis (dans ton cas, les deux devices RAIDs, e.g.
    /dev/md0
    et
    /dev/md1
    ?), s'ils sont formatés, tu peux les monter avec la commande
    mount
    . Ensuite tu interagis avec sans te préoccuper de la nature du disque (SSD/USB), de la présence ou non de RAID et/ou LVM : tout ceci est transparent et c'est toute la beauté de linux.


Exemple :

mkdir -p /mnt/md0
mkdir -p /mnt/md1
mount /dev/md0 /mnt/md0
mount /dev/md1 /mnt/md1
cp /mnt/md0/fichier.txt /mnt/md1/fichier2.txt
umount /mnt/md1
umount /mnt/md0


Retour à ton problème

Pour plus de précisions, il faudrait nous donner les détails des différentes commandes évoquées pour qu'on voit ton partitionnement, ta configuration RAID, LVM, et ce qui a été monté (avec la commande
mount
).

Bonne chance
0
debianlov3r Messages postés 97 Date d'inscription vendredi 26 mars 2021 Statut Membre Dernière intervention 20 novembre 2023 11
Modifié le 18 oct. 2021 à 15:31
Bonsoir mamiemando,

Tout d'abord un grand merci pour votre documentation sur les RAIDs (Redoundant area off inexpensive disks ou indepedant disks). J'ai réussi à solutionner le problème sans utiliser LVM (en utilisant
mdadm
et sans utiliser le gestionnaire de volume du linux).

Je vais vous décrire la procédure que j'ai suivie, au cas ou d'autres personnes souhaiteraient migrer leur RAID 1 en RAID 15 sans faire de copie sur un disque externe (ça peut-être utile si on a pas de disque externe à disposition; ou si les données à migrer sont trop grosses (taille de fichier élevée comme pour des films en 4k et en version longue)

Donc voici la procédure, elle est simple. Vous avez besoin de
mdadm
, pas besoin de LVM ;

Pour commencer, vous avez votre volume initiale en RAID 1 ainsi que 4 disques non utilisés (vierge de tout fs = file system = système de fichiers).
Attention la taille doit être la même sur chacun des 4 disques.

Donc c'est très simple, voilà comment cela marche (AH AH) :
vous allez créer un raid 1 avec les 2 premiers disques non utilisés puis réitérer l'opération sur les 2 suivants.

Ce qui donne raid de bas (celui que je veux migrer) :
  • /dev/md127
    en RAID 1 de base (contient les fichiers à transférer)


1) On crée les raids suivants avec les disques vierges :
  • /dev/md1
    en RAID 1 (vide pour l 'instant, regroupe
    /dev/sde
    ,
    /dev/sdf
    )
  • /dev/md2
    en RAID 1 (vide pour l 'instant, regroupe
    /dev/sdg
    ,
    /dev/sdh
    )


C'est maintenant que la magie opère.
mdadm
permet de faire la transition entre un RAID 1 à un RAID 5 sans perte de donnée.

2) On crée un RAID 1+1 avec les volume
/dev/md1
et
/dev/md2
, qui se nomme
/dev/md3
et on formate
/dev/md3
, par exemple en ext4, xfs, ntfs (cela n'est pas très important).

3) On copie les données du RAID de départ vers le volume en
/dev/md3
.

4) Convertir /dev/md3 en RAID 5, puis ensuite agrandir le array de ce raid 5 pour ajouter le volume initiale
/dev/md127
. Normalement, en suivant cette méthode un RAID 15 est mis en place et contient les données du RAID 1 de base (
/dev/md127
).

5) Il ne reste plus qu'a le monter dans
/home/login/mesdisques/monraid15



J'ai confectionné un plan schématique de mon partitionnement ETAPE 1 :

ETAPE 2



Bonne journée : Aujourd'hui je surf sur la vague !!
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
18 oct. 2021 à 15:22
Un grand merci debianlover pour tous ces détails, ça aidera sûrement les personnes qui tomberont sur cette discussion. Je me permets d'apporter quelques précisions pour fermer la boucle.

J'ai réussi à solutionner le problème sans utiliser LVM (en utilisant mdadm et sans utiliser le gestionnaire de volume du linux).

Tout à fait, LVM n'est pas obligatoire, c'est juste un choix qu'on peut décider de faire au moment du partitionnement et qui modifie un peu la procédure, c'est pour ça que par soucis de clarté, j'en ai parlé.

Si vous avez besoin de mdadm pas besoin de lvm

Alors pas exactement : LVM et RAID sont, comme je l'expliquais, deux choix orthogonaux. Tu peux faire du LVM sans RAID, du RAID sans LVM, les deux ou ni l'un ni l'autre. LVM ne résout pas les mêmes problèmes que
mdadm
. Toute la partie RAID se gère purement avec
mdadm
et sans les commandes LVM (i.e. toutes les commandes de la forme
lv*
vg*
pv*
).

Quelle que soit la solution retenue, la question importante est de savoir quels devices ont été utilisés pour créer des systèmes de fichiers (avec
mkfs
) au moment du partitionnement. Selon l'architecture retenu, ce peut être un device associé à une partition de disque dur (si elle n'est ni impliquée dans un RAID ni dans LVM), un device RAID (s'il n'est pas impliqué dans LVM) ou un disque logique LVM (voir
lvdisplay
).

Dans ton cas, tu n'as pas utilisé LVM, donc les partitions sont soit créés au niveau d'un device RAID (dont le nom est le forme
/dev/mdX
où X est un identifiant arbitraire, généralement un nombre, comme dans
/dev/md0
) soit pas (auquels cas elle sont de la forme
/dev/sdXN
où X est une lettre qui identifie le disque et N est un chiffre qui identifie la partition). Pour être tout à fait exact, dans ton cas, toutes tes partitions de disque dur semblent d'ailleurs impliqué dans un device RAID, donc il ne faut en aucun cas utiliser les devices sous-jacents (seul RAID les utilisera en pratique).

Formater /dev/md3 en ext4 ou xfs ntfs cela n'est pas très important.

Tout à fait, on ne peut transférer des données que vers une partition formatée (peu importe qu'elle soit RAID, LVM, les deux ou ni l'un ni l'autre).

copier les photos de josh (vos données) sur le volume en /dev/md3

Pour être tout à fait exact, vers le point de montage dans lequel le device (ici /dev/md3) a été monté (par exemple
/media/md3
). Le point de montage est un répertoire vide arbitraire, traditionnellement localisé dans
/media
ou dans
/mnt
(pour se conformer à la FHS) et spécifié au moment de monter le device (donc avec la commande
mount
). Dans ce qui suit, je suppose que le point de montage choisi est
/mnt/md3
.

La commande
mount
prend le point de montage en paramètre (e.g.
sudo mkdir -p /mnt/md3 && sudo mount /dev/md3 /mnt/md3
). Si le device et son point de montage sont définis dans
/etc/fstab
,
mount
peut y retrouver cette information (on peut alors écrire directement au choix
sudo mount /dev/md3
ou
sudo mount /mnt/md3
).


Il ne reste plus qu'a le monter sur
/home/login/mesdisques/monraid15


Ce dossier ou n'importe quel autre, le chemin du point de montage est arbitraire (et généralement, on le met plutôt dans
/media
pour les montages persistants et
/mnt
pour les montages occasionnel.

Bonne continuation et bravo à toi :)
0