Aller au contenu

Installer un RAID1 avec mdadm


ggbce

Messages recommandés

Le sujet initial (Installer un RAID1 avec raidtools) a été renommé par (Installer un RAID1 avec mdadm) pour un meilleur fonctionnement d'après les conseils des membres qui m'ont répondus.

=========================

Je veux configurer un ordi en mode RAID1 logicielement avec raidtools. J'ai déjà un disque dur qui roule depuis un bon bout de temps en EXT3, je viens tout juste d'ajouter un nouveau disque dur dans le PC pour en faire la copie miroir (RAID1)... mais là je me rend compte que ça ne se fait pas d'un claquement de doigts comme sous Windows !

La première chose que j'ai remarqué c'est que raidtools n'exécute pas automatiquement la création de la partition miroir sur le second disque. Donc j'ai créé une partition de type Linux RAID.

À ce moment raidtools me permet d'aller plus loin et me laisse choisir le type de RAID et quel partitions pour créer ce RAID. Mais là je bloque encore. Il me dit que je dois choisir 2 partitions minimum pour le RAID1 (logique... un est l'origine et l'autre la copie).

Je ne veux pas gaffer et perdre toutes mes données, donc là je pose ma question: Ma partition que je veux mettre en RAID1 qui est actuellement en EXT2/3, est -ce que je peux la démonter (umount) la changer de type (en Linux RAID) sans effacer son contenu ?

-------------------------

NOTE: J'ai fais les manipulations depuis l'interface Webmin

------------------------

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Plutôt que raidtools, je te conseille plutôt mdadm qui est plus simple et plus moderne. Je viens d'installer deux disques durs sur une Gentoo pour des sauvegardes et je les ai mis en RAID1, j'ai trouvé des infos intéressantes sur le site suivant:

http://www.praksys.org/portail-developpeur...ons/raid1-howto

A priori, tu peux passer en RAID1 sans perdre de données (Il faut réflechir à deux fois avant de valider une commande, une erreur est vite faite...)

Cordialement

Lien vers le commentaire
Partager sur d’autres sites

Je ne veux pas gaffer et perdre toutes mes données, donc là je pose ma question: Ma partition que je veux mettre en RAID1 qui est actuellement en EXT2/3, est -ce que je peux la démonter (umount) la changer de type (en Linux RAID) sans effacer son contenu ?

Vu que c'est du mirroring et que tu n'as pas de changement de type de systeme de fichier ( apres le autodetectlinuxraid on formate avec le systeme de fichiers que l'on veut ) ca ne devrait poser aucun probleme. PAr contre, tu ne connaissais pas le raid, tu devrais donc faire tres attention à ce que tu fais et lire un max de tutos avant de te lancer, et idéalement fait un back-up. Si c'est un serveur tu dois ptet avoir un lecteur de bande qui te permettra de sauvegarder.

Lien vers le commentaire
Partager sur d’autres sites

Je suis en train de passer tous mes serveurs sur du RAID 1 (enfin dès qu'on peut acheter un disque de rab...), et voilà les tutos qui m'ont aidé à mettre en place la procédure :

http://xtronics.com/reference/SATA-RAID-Debian.htm

http://juerd.nl/site.plp/debianraid

Les deux méthodes sont différentes, moi je m'appuie plutôt sur la première. En gros dans la première :

- tu crées un raid dégradé sur ton second disque

- tu copies les fichiers dessus

- tu bootes dessus

- tu ajoutes le premier disque dans le raid

La deuxième solution, c'est de booter sur un live CD et de faire les manips offline, ce qui te laisse forcément plus de marge de manoeuvre.

Dans tous les cas, prévoie un backup !

Lien vers le commentaire
Partager sur d’autres sites

Excellent comme tuto Gauret. Merci ! J'ai trouvé celui-ci par la suite qui est très similaire: http://www.parisc-linux.org/faq/raidboot-howto.html

---------------------------------------------

Me voici aux prises avec un bug maintenant... :mad2:

Je suis la procédure et ce qui m'apparaît le plus logique ->>>

1- J'ai mon installation initiale avec un disque dur hda de 10 GB et 2 partitions (/ ent EXT3 - Linux 83 de 9.9 GB et SWAP - Linux 82 de 128 MB). (PC de test)

2- J'ajoute le second disque dur hdd (usagé) de même taille ou plus élevé dans le PC qui avait auparavant un Windows 2000 en NTFS.

3- J'édite hdd avec fdisk de Linux (fdisk /dev/hdd). J'efface les partitions existantes avec l'option d.

4- J'ajoute 2 nouvelles partitions (/ et swap) avec le même nombre de cylindres que mon disque hda. Je change le type vers fd - Linux RAID auto.

5- Je sauvegarde les informations dans la table avec l'option w.

--------------------------------------

Pour le moment tout va bien ! Je re-vérifie avec fdisk si les partitions sont toujours là et c'est bon.

--------------------------------------

6- Je cré le périphérique raid pour la partition des données ( / ).

mdadm --create /dev/md0 -l1 -n2 missing /dev/hdd1

7- Je vérifie si tout est ok avec :

cat /proc/mdstat

8- Je cré le système de fichiers EXT sur la partition RAID avec:

mkfs.ext3 /dev/md0

9- Je fais un dossier de réception:

mkdir /mntroot

10- Je monte la partition RAID:

mount /dev/md0 /mntroot

Et voilà le BUG!!!! ->>> Il me dit qu'il n'est pas possible de monter une partition NTFS ?!?!?????? Wow !

11- Je reprends ce disque dur (hdd) que je replace en slave dans mon PC avec Windows 2000 et j'utilise le gestionnaire de disque pour vérifier. Il me dit que les 2 partitions que j'ai créé sont là... Alors j'efface tout, je recré alors une partition à 100% du disque en FAT32, je formatte et je l'efface avec Windows pour m'assurer qu'aucune trace du NTFS soit là.

12- Je remets le disque dans le PC Linux en posisiton hdd. Je reprends à zéro.

13- Lorsque j'arrive à l'étape de monter la partition... j'ai le même problème sauf que là il me dit que c'est une partition FAT et il autorise le mode read-only !

---------------------

Je comprends pas ce qui se passe. Pourtant fdisk enregistre bien les infos de la table puisque même mon PC Windows reconnait les partitions créées.

Lien vers le commentaire
Partager sur d’autres sites

Voici le message d'erreur que j'ai lorsque je tape mount /dev/md0 /mntroot:

FAT: Did not find valid FSINFO signature.
Found signature1 0x0 signature2 0x0 sector=1.
Directory 1: bad FAT
Filesystem panic (dev 09:00).
FAT error
File system has been set read-only

Finalement je me décide d'essayer avec un autre disque dur (3.4 GB) qui traîne dans un vieux Pentium I avec Windows 95 que je supprime les partitions et fais toutes les étapes... et j'ai le même problème !

Tout ça n'a aucun sens...

Lien vers le commentaire
Partager sur d’autres sites

Même erreur !

-------------

Je crois que je vais essayer avec raidtools :francais:

Ce que je trouve le plus bizarre c'est que si j'utilise d'autre utilitaire comme exemple Notron Ghost (ou autre logiciel qui reconnait des partitions), il reconnait vraiment une partition en type 0xfd sur le périphérique hdd.

En plus le md0 est d'une certaine façon une partition "virtuelle" qui ne se lit pas d'ailleurs que Linux et n'est pas généré du disque dur mais de l'array software (mke2fs -j /dev/md0)... je ne vois pas où il prend cet information de FAT ou de NTFS.

Je crois que je vais essayer un low-level format !

Lien vers le commentaire
Partager sur d’autres sites

Ontrack Disk Manager est mon ami :transpi:

Pour le problème de détection d'une FAT ou d'une NTFs pas rapport c'est maintenant OK !

Là où je bloque c'est à l'étape suivante (d'après l'aide trouvé qui dit de mettre à jour initrd)

edit /etc/mkinitrd/mkinitrd.conf

en changeant root=probe par ROOT="/dev/md2 ext3"

... c'est que je ne trouve aucun fichier au nom de mkinitrd.conf sur mon ordi ?

Et après non plus je ne comprend pas très bien la ligne de commande:

mkinitrd -o /boot/initrd.img-2.4.20 2.4.20

À l'aide .... !

Lien vers le commentaire
Partager sur d’autres sites

Mon cheminement progresse... mais je bloque plus loin !

Je reprends à zéro pour bien expliquer ce que j'ai fais:

1- Installer Linux sur 1 disque (hda)

2- Ajouter un second disque (hdd) pour créer un RAID-1

3- fdisk sur /dev/hdd, 1 partition = dimension de hda1 + 1 partition = swap et marqué la partition hdd1 comme étant amorçable. Changer le type à oxfd (Linux RAID auto)

4- Création de l'array avec mdadm comme ceci:

mdadm -Cv /dev/md0 -l1 -n2 missing /dev/hdd1
mdadm -Cv /dev/md1 -l1 -n2 missing /dev/hdd2

5- Je fais un cat /proc/mdstat et tout est OK.

6- Je formatte les partitions RAID et cré le dossier de réception:

mke2fs -j /dev/md0
mkswap /dev/md1
mkdir /raid

7- Je monte ma partition /dev/md0 dans /raid

8- Je copie le contenu de /dev/hda1 (/) dans /dev/md0 (/raid) comme ceci:

rsync -auHx --exclude=/proc/ --exclude=/sys/ --exclude=/raid/ /* /raid/
mkdir /raid/proc
chmod 555 /raid/proc

9- Je change la table (/raid/etc/fstab) comme ceci:

/dev/md0   /                ext3          defaults                  0 0
none          /proc          proc          defaults                  0 0
none          /dev/pts      devpts      gid=5,mode=620     0 0
none          /dev/shm    tmpfs        defaults                  0 0
/dev/md1   swap          swap         defaults                  0 0

10- Éditer grub.conf (ou menu.lst) pour avoir le démarrage avec le RAID (en conservant une porte de sortie avec l'ancien démarrage)

title Red Hat Linux (2.4.20-28.7)
    root (hd0,0)
    kernel /boot/vmlinuz-2.4.20-28.7 ro root=/dev/hda1
    initrd /boot/initrd-2.4.20-28.7.img

title Red Hat Linux (2.4.20-28.7) RAID-1
    root (hd0,0)
    kernel /boot/vmlinuz-2.4.20-28.7 ro root=/dev/md0
    initrd /boot/initrd-2.4.20-28.7.img

------ À partir d'ici je ne suis plus très sûr de la bonne procédure ------

J'ai 2 aides, mais qui ne disent pas tout à fait la même chose....

11 (debian) - L'un est basé sur Debian et dit de modifier dans le fichier /etc/mkinitrd/mkinitrd.conf la ligne root=probe par root="/dev/md0 ext3" (mais je n'ai pas ce fichier sur mon ordi...)

12 (debian) - Lancer une commande pour mettre à jour le noyau pour qu'il inclus raid1.o ... mais je ne comprend pas la logique de la commande, et je ne retrouve null part dans le man le paramètre -o utilisé.

mkinitrd -o /boot/initrd-2.4.20-28.7.img 2.4.20-28.7

13 (debian) - Redémarrer et tout devrait fonctionner... mais ce n'est pas le cas !

J'obtiens un kernel panic:

EXT3-fs: unable to read superblock
mount: error 22 mounting ext3
pivotroot: pivot-root (/sysroot, /sysroot/initrd) failed: 2
Freeing unused memory: 120k freed
Kernel panic: no init found.
Try passing init= option to kernel

ou

11 (fedora) - Rouler grub pour rendre /dev/hdd amorçable

grub --batch --no-floppy
grub> root (hd1,0)
grub> setup (hd1)

12 (fedora) - ajouter au fichier /etc/modprobe.conf cette ligne pour s'assurer que md0 soit amorçable: alias md-personality-3 raid1. (Mais je n'ai pas ce fichier sur mon PC)

13 (fedora) - Utiliser mkinitrd pour utiliser le RAID-1:

mkinitrd --preload raid1 initrd-2.4.20-28.7.raid1.img 2.4.20-28.7

NOTE: dans le grub.conf pour cet exemple faut que le initrd n'est pas le même non de fichier.

14 (fedora) - Fermer le PC, enlever le /dev/hda et redémarrer

J'obtiens un erreur GRUB Hard Disk Error.

Lien vers le commentaire
Partager sur d’autres sites

Si je redémarres avec la partition hda, je remarque dans l'initialisation de Linux (dmesg) que md ne charge pas correctement l'array et lorsque je refais un cat /proc/mdstat aucun array est chargé également...

Voici le dmesg:

...
md: created md0
md: bind<hdd1,1>
md: running:<hdd1>
md: hdd1's event counter: 00000002
kmod: failed to exec /sbin/modprobe -s -k md-personality-3, errno = 2
md: personality 3 is not loaded!
md: do_md_run() returned -22
md: md0 stopped
md: unbind <hdd1,0>
md: export_rdev (hdd1)
md: ... autorun DONE.

Donc le problème tourne au tour de ce md-personality-3 et de modprobe, modprobe.conf ou mkinitdrd.conf... ! mais je ne comprend plus très bien... ça veut dire quoi ce md-personality-3, errno = 2 ???

J'ai alors fais des recherches autour de ce problème. J'ai trouvé que finalement c'est modules.conf qui est utilisé au-lieu de modprobe.conf avec Red Hat où l'alias md-personality-3 raid devrait être, ce que j'ai ajouté dans sur le système de fichiers de /dev/hdd1 et /dev/hda1... mais ça ne change rien ! l'erreur kmod est toujours là !

Je m'y perd !!!

D'un côté md ne charge pas raid1 (md-personality-3), de l'autre GRUB ne charge pas le système et de l'autre j'obtiens un kernel panic :francais:

Lien vers le commentaire
Partager sur d’autres sites

Pour répondre à ta question Gauret, c'est Red Hat 7.3 (kernel 2.4.20-28.7) avec mdadm 1.4.0-1.

Et si je fais un lsmod, je vois bien que raid1 est là en premier de tout, mais il n'est pas associé (unused)...

Si je fais un cat /proc/mdstat je n'ai rien, car après le redémarrage sur hda1 l'erreur kmod empêche mdadm de charger l'array. Par contre lors de sa création avant de redémarrer tout est listé ok dans ce fichier de processus.

Lien vers le commentaire
Partager sur d’autres sites

Si je redémarres avec la partition hda, je remarque dans l'initialisation de Linux (dmesg) que md ne charge pas correctement l'array et lorsque je refais un cat /proc/mdstat aucun array est chargé également...

Voici le dmesg:

...
md: created md0
md: bind<hdd1,1>
md: running:<hdd1>
md: hdd1's event counter: 00000002
kmod: failed to exec /sbin/modprobe -s -k md-personality-3, errno = 2
md: personality 3 is not loaded!
md: do_md_run() returned -22
md: md0 stopped
md: unbind <hdd1,0>
md: export_rdev (hdd1)
md: ... autorun DONE.

Donc le problème tourne au tour de ce md-personality-3 et de modprobe, modprobe.conf ou mkinitdrd.conf... ! mais je ne comprend plus très bien... ça veut dire quoi ce md-personality-3, errno = 2 ???

J'ai alors fais des recherches autour de ce problème. J'ai trouvé que finalement c'est modules.conf qui est utilisé au-lieu de modprobe.conf avec Red Hat où l'alias md-personality-3 raid devrait être, ce que j'ai ajouté dans sur le système de fichiers de /dev/hdd1 et /dev/hda1... mais ça ne change rien ! l'erreur kmod est toujours là !

Je m'y perd !!!

D'un côté md ne charge pas raid1 (md-personality-3), de l'autre GRUB ne charge pas le système et de l'autre j'obtiens un kernel panic :francais:

"personality 3" c'est la référence au module pour le raid 1

Donc soit tu utilise un initrd ("manière debian" ou fedora) ou bien, plus facile, tu compile un noyau avec "dm" (device mapper) et le raid utilisé (raid 1) en dur et là normalement ça devrait marcher...

(source http://gentoo-wiki.com/HOWTO_Gentoo_Instal...d_system_logger )

Lien vers le commentaire
Partager sur d’autres sites

J'ai refais des tests pour m'installer en RAID1. Pour le test, j'ai utilisé 2 disques durs identiques (2x Fujitsu 4.3 GB... même numéro de modèle)

J'ai installé ma distribution sur un des 2 disques sans brancher l'autre avec une partition EXT3 normale, tout est ok.

J'ai ensuite installé l'autre disque pour l'inclure au RAID1. J'ai lancé fdisk pour créer des partitions identiques à mon premier disque.......... Et la c'est vraiment vraiment bizarre.

Mon premier disque (hda) est comme ceci: 128 heads, 63 sectors et 478 cylindres puis le second (hdc) est du genre 1 head, 3850447 sectors (me rappelle plus du chiffre exact) et 1 cylindre !

Pourtant dans le BIOS les 2 disques sont détectés de la même façon et avant de débuter l'installation j'ai fais un low level format avec l'utilitaire Fujitsu.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...