Etendre RAID 1 vers RAID 5 (mdadm)

Bonjour.

Actuellement j’ai un petit serveur qui me sert principalement de serveur de fichiers ainsi que d’autres choses bien utiles. Pour le moment, mon système est installé sur un disque partitionné avec LVM et tout le stockage est sécurisé sur deux disques en RAID 1 avec mdadm + LVM + ext4. Le tout est accessible via Samba. La place venant à manqué, j’ai commandé un nouveau disque afin d’étendre le tout. Comme il n’est pas très économique d’acheter des HDD en ce moment je n’en ai pris qu’un seul. Je voudrais donc l’ajouter à ma grappe RAID et transformer cette dernière en RAID 5 afin de perdre moins d’espace.

J’ai pas mal lu la doc. Je sais que depuis les dernières versions du kernel + driver mdadm, il est possible d’étendre une grappe RAID 1 vers RAID 5 sans perdre de données via l’option grow. Pour construire ma grappe j’avais suivi le tuto du wiki et j’avoue ne pas me sentir encore très à l’aise avec toutes les commandes. J’ai pu sauvegarder une bonne partie des données du serveur à côté mais pas tout car je n’ai pas assez d’espace. Avant de perdre toutes mes données, je viens vous demander un petit coup de main afin de savoir exactement quoi faire. Bien entendu je testerais tout d’abord dans une machine virtuelle afin de me faire la main.

Pour l’instant mon plan est de:

  1. Transformer la grappe existante en RAID 5 via la commande grox puis attendre la fin du reshape.
  2. Ajouter le 3ème disque à la grappe et attendre le reshape.
  3. Étendre mes partitions avec LVM
  4. Étendre les systèmes de fichier
  5. Vérifier que tout c’est bien passé.

Voila, merci d’avance.

Bonjour,

Je t’invite à t’inspirer de ce tutoriel :
davelachapelle.ca/2008/07/25 … to-raid-5/

Merci de ta réponse. Je suis déjà tombé sur ce tutoriel, mais il n’est plus tout récent (4 ans). Depuis l’eau à coulé sous les ponts et on en est à la version 3.1.4 en lieu et place de la version 2.5.4. Alors peut-être que les commandes fonctionnent toujours, mais si j’en crois la doc, on pourrait faire ça en quelques commandes:

Créer une partition marquée fd sur le nouveau disque avec fdisk.

[code]#Stopper la grappe:
mdadm --stop /dev/md0

#Ajouter un disque à la grappe:
mdadm --manage /dev/md0 --add /dev/sdd1 (dans mon cas sda = disque système, sab/sdc disques de la grappe)

#Changer le type de RAID pour du RAID 5
mdadm --grow /dev/md0 --level=5 --chunk=128 --backup-file=/root/raid1

#Mettre à jour le fichier de configuration:
mdadm --detail --scan --verbose > /etc/mdadm/mdadm.conf

#Redémarrer la grappe:
mdadm --start /dev/md0

#Etendre les partitions LVM et le système de fichier:
lvextend -L+1T /media/raid/
umount /media/raid/
resize2fs /dev/md0
mount /dev/md0 /media/raid/[/code]

Seulement voila, je ne sais pas du tout si je suis la bonne procédure. C’est pour ça que je demande votre avis sur la question. J’aurais peut-être du détailler un peu plus dès le départ :slightly_smiling:

Ce qui me rassure un peu, c’est ce passage de la doc:

LEVEL CHANGES Changing the RAID level of any array happens instantaneously. However in the RAID to RAID6 case this requires a non-standard layout of the RAID6 data, and in the RAID6 to RAID5 case that non-standard layout is required before the change can be accomplish. So while the level change is instant, the accompanying layout change can take quite a long time.

Du coup je me demande si je cherche pas trop compliqué.

Merci encore

Bien le bonsoir.

Je reviens vers vous car j’ai reçu mon nouveau disque et je l’ai installé. J’ai fait des essais dans une machine virtuelle et tout est vraiment très simple et sûr finalement. Seulement quand je lance la commande qui a si bien marché sur la VM je me heurte à une erreur:

[quote]root@nestor:~# mdadm --grow --verbose /dev/md0 --level=5 --chunk=128 --raid-device=3
mdadm: /dev/md0: could not set level to raid5
[/quote]

A votre avis, d’où cela peut-il venir ?

L’état de mon RAID actuellement:

[quote]root@nestor:~# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Dec 26 21:39:14 2011
Raid Level : raid1
Array Size : 1953510841 (1863.01 GiB 2000.40 GB)
Used Dev Size : 1953510841 (1863.01 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Sat Mar 31 22:43:47 2012
      State : clean

Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1

       Name : nestor:0  (local to host nestor)
       UUID : dc876e8d:34e4310d:1d2de1fe:034a3add
     Events : 44

Number   Major   Minor   RaidDevice State
   0       8        1        0      active sync   /dev/sda1
   1       8       33        1      active sync   /dev/sdc1

   2       8       48        -      spare   /dev/sdd

[/quote]

Merci d’avance pour l’aide que vous pourrez m’apporter.

Bon finalement en suivant le tuto et en croisant les doigts (même avec une sauvegarde c’est toujours critique) ça a marché. Je passe en résolu.