49 votes

Comment faire pour que mdadm assemble automatiquement le RAID après chaque démarrage ?

J'ai réussi à créer un RAID (mise en miroir) en utilisant mdadm . Cependant, je dois exécuter les commandes suivantes après chaque démarrage :

mdadm --stop --scan // to stop /dev/md127 - I don't know where the number 127 even comes from
mdadm --assemble --scan // to start /dev/md0

Qu'est-ce que je fais de travers/pourquoi dois-je exécuter ces commandes au démarrage ? Quelle est la bonne façon de démarrer automatiquement le RAID à chaque (re)démarrage ?

41voto

Linker3000 Points 26898

NB : Vous devez soit être connecté en tant que root, soit utiliser sudo pour faire tout cela...

  • Utilisez votre éditeur préféré pour créer ou modifier /etc/mdadm/mdadm.conf comme suit :

Si le fichier n'existe même pas, collez ce qui suit dans le nouveau fichier vide :

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
  • Enregistrer le fichier

  • Exécutez la commande suivante pour ajouter une référence à votre configuration de tableau à la fin du fichier :

    mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Cela devrait ajouter une ligne comme la suivante à la fin de mdadm.conf :

ARRAY /dev/md0 level=raid5 num-devices=3 metadata=00.90 UUID=a44a52e4:0211e47f:f15bce44:817d167c

Si la commande mdadm a ajouté d'autres éléments au-dessus de la ligne ARRAY, supprimez-les. Par exemple, sur l'une de mes machines, la commande renvoie 'mdadm : metadata format 00.90 unknown, ignored' avant la ligne ARRAY.

Votre tableau devrait maintenant se construire automatiquement au démarrage et vous pouvez donc ajouter une entrée au fichier /etc/fstab pour le monter (s'il n'y est pas déjà).

8voto

Zameer Ar Points 1

Je sais que cette question est ancienne, mais j'ai eu des problèmes avec la version 32 bits d'Ubuntu Server 12.04.

Ejecutar mdadm --detail --scan >> /etc/mdadm/mdadm.conf a ajouté la ligne

ARRAY /dev/md0 metadata=1.2 name=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e

Après un redémarrage, je n'ai jamais pu voir /dev/md0. L'exécution de la commande mdadm --detail --scan (sans mettre le résultat dans un fichier), je verrais

ARRAY /dev/md/ubuntu:0 metadata=1.2 name=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e

et le montage manuel /dev/md/ubuntu:0 fonctionnerait. Finalement, c'est aussi ce que j'ai mis dans le fichier fstab.

Je ne sais pas ce que j'ai fait de travers, si c'est ainsi que cela fonctionne dans Ubuntu 12.04, ou s'il s'agit d'une mauvaise pratique. Je voulais juste partager ce qui a fonctionné pour moi.

5voto

Shaun Harker Points 151

J'ai rencontré ce problème sur mon Raspberry Pi 2 équipé de Raspbian GNU/Linux 8 (jessie). J'avais une matrice RAID sur /dev/sda1 y /dev/sdb1 qui n'a pas réussi à s'assembler au démarrage. J'avais dans mon /etc/mdadm/mdadm.conf fichier l'entrée

ARRAY /dev/md/0  metadata=1.2 UUID=53454954:4044eb66:9169d1ed:40905643 name=raspberrypi:0 

(vos chiffres seront différents ; voir les autres réponses pour savoir comment procéder).

J'avais dans mon /etc/fstab fichier l'entrée

/dev/md0        /data           ext4    defaults          0       0

(et bien sûr /data a bel et bien existé)

Comme l'OP, j'ai pu assembler et monter la matrice RAID à la main après le démarrage, mais je n'ai pas réussi à le faire automatiquement pendant le démarrage malgré une configuration apparemment correcte.

J'ai pu résoudre le problème comme suit. J'ai examiné le script à /etc/init.d/mdadm-raid et inséré une ligne de code de débogage

ls /dev > /home/pi/devices.txt

En redémarrant et en vérifiant ce fichier, j'ai appris que les dispositifs /dev/sda y /dev/sdb existait au moment où le mdadm-raid l'initialisation a eu lieu, mais les partitions /dev/sda1 y /dev/sdb1 manquaient à l'appel. J'ai édité les /etc/init.d/mdadm-raid et inséré la ligne

partprobe

après l'en-tête (c'est-à-dire après l'élément ### END INIT INFO mais avant que le script ne commence). Les partitions ont donc été détectées et la fonction mdadm-raid script a pu assembler la matrice RAID, ce qui a permis de résoudre le problème. J'espère que cela aidera quelqu'un !

3voto

baltusaj Points 789

Sur Debian wheezy, une étape supplémentaire est nécessaire : dans /etc/default/mdadm fixer démarrage automatique de faux à vrai

#AUTOSTART:
#   should mdadm start arrays listed in /etc/mdadm/mdadm.conf automatically
#   during boot?
AUTOSTART=true

J'ai également dû utiliser mdadm -Es >>/etc/mdadm/mdadm.conf au lieu de la --scan car cela n'a pas fonctionné pour moi.

3voto

gorn Points 161
sudo mdadm -Es >> /etc/mdadm/mdadm.conf

Maintenant, éditez les lignes ajoutées à /etc/mdadm/mdadm.conf de la manière suivante. Supprimez tout, sauf les parties essentielles. Cela devrait ressembler à

ARRAY /dev/md5 UUID=031cea92:50a7a28c:6b077fe7:8817092a
ARRAY /dev/md6 UUID=53454954:4044eb66:9169d1ed:40905643

Note : vous pouvez choisir X dans mdX à votre convenance.

Redémarrez maintenant

sudo update-initramfs -u
sudo reboot

EDIT : commande corrigée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X