Lac de Brennilis

FreeBSD

Mise en miroir du disque de démarrage sous FreeBSD

Juste une petite note sur la mise en miroir logiciel (raid 1) de mon disque sous FreeBSD avec un autre disque identique. Cela va se faire avec l'utilitaire gmirror. Je reprends les indications du chapitre “Disk tricks with GEOM” du livre “FreeBSD 7.0 : le guide complet du FreeBSD” (excellent livre par ailleurs).

Préparation

Avant tout, le sujet est délicat et dans ce cas le réflexe de la sauvegarde de vos données et de vos fichiers de paramétrage est conseillé… Non, obligatoire, un système se réinstalle, vos données restent irremplaçables.

IMPORTANT: Si vous décidez de suivre cet exemple pour mettre en miroir votre propre disque, je vous engage à lire la note complètement avant de procéder de votre coté. Je vous engage aussi à lire le sujet sur le Handbook de FreeBSD. Ceci n'est qu'un exemple, une note sur les actions que j'ai réalisées pour arriver au but. Je ne saurais être tenu pour responsable de toute déconvenue!

Pour commencer voici la table de partition du premier disque qui doit être “mirroré” :

# Device		  Mountpoint	FStype	Options		Dump	Pass#
/dev/ad4s1b		none		    swap	  sw		    0	    0
/dev/ad4s1a		/		        ufs	    rw		    1	    1
/dev/ad4s1d		/var		    ufs	    rw		    2	    2
/dev/ad4s1e		/home		    ufs	    rw		    2	    2
# /tmp est géré en mémoire - voir /etc/rc.conf
/dev/acd0		  /cdrom		  cd9660	ro,noauto	0 	  0

Je commence par créer un fichier de remplacement pour fstab prenant en compte les futures partitions vues du miroir qui se nomme pour l'instant /etc/fstab.mirror :

# Device		  Mountpoint	FStype	Options		Dump	Pass#
/dev/mirror/RootMirror0s1b		none		    swap	  sw		    0	    0
/dev/mirror/RootMirror0s1a		/		        ufs	    rw		    1	    1
/dev/mirror/RootMirror0s1d		/var		    ufs	    rw		    2	    2
/dev/mirror/RootMirror0s1e		/home		    ufs	    rw		    2	    2
# /tmp est géré en mémoire - voir /etc/rc.conf
/dev/acd0		  /cdrom		  cd9660	ro,noauto	0 	  0

Je le rédige à l'avance car les autres actions se feront en mode single user et pour fstab j'aurais juste à remplacer l'original par le nouveau que je viens d'écrire.

FreeBSD est capable de démarrer sur un disque en raid 1 mais il faut s'assurer que le module du noyau geom_mirror soit chargé au démarrage du système. Pour cela il faut l'indiquer par la ligne suivante dans /boot/loader.conf :

geom_mirror_load="YES"

Il vaut mieux redémarrer le système pour vérifier que le module est bien chargé au lancement du sytème si vous ne voulez pas risquer de vous compliquer la vie.

Après le redémarrage kldstat va vous permettre de vérifier que le module geom_mirror est bien chargé :

shell$ kldstat
Id Refs Address            Size     Name
 1    4 0xffffffff80100000 6ec8a8   kernel
 2    1 0xffffffff807ed000 3b880    geom_mirror.ko
 3    1 0xffffffff80829000 9d60     snd_ich.ko
 4    2 0xffffffff80833000 a3168    sound.ko

Création du miroir

Cette formalité effectuée, la suite se passe en mode single user, par conséquent un redémarrage est encore nécessaire. Une fois en mode single user la partition racine se trouve en lecture seule. Il nous faut pouvoir modifier /etc/fstab par conséquent il faut monter la partition racine en lecture et écriture :

mount /dev/ad4s1a /

Des actions de l'utilitaire sur cette partition ne pourront se faire sans modifier comme indiqué le paramètre noyau suivant :

sysctl kern.geom.debugflags=16

Ensuite il faut remplacer le fichier /etc/fstab par celui prenant en compte les partitions miroirs et créer le miroir proprement dit.

La création du miroir se fait avec la commande gmirror :

gmirror label -v RootMirror0 /dev/ad4

La création du miroir est réalisée seulement avec un disque pour l'instant. Nous allons redémarrer maintenant le système afin de se retrouver en mode multi utilisateurs pour les actions suivantes.

Le système redémarré, il reste à ajouter le deuxième disque dans le miroir (sinon le miroir serait plutôt pauvre et ne remplirait pas son rôle de sécurisation des données).

gmirror insert RootMirror0 /dev/ad6

Le deuxième disque est pris en compte de suite dans le miroir mais il faut un certain temps pour sa construction afin qu'il soit vraiment la réplique du premier disque. Pour voir l'avancement de la construction :

shell$ gmirror status
              Name    Status  Components
mirror/RootMirror0  DEGRADED  ad4
                              ad6 (3%)

Dans l'exemple, l'état de construction du deuxième disque est à 3% d'avancement!

Félicitations, vous avez maintenant un disque de démarrage redondant. Si vous perdez le premier disque, tout ce que vous avez à faire est d'indiquer au bios de démarrer sur le deuxième.

Références

Discussion

, 22/10/2008 22:55

Juste un petit mot pour signaler que la deuxième édition du livre “Absolute FreeBSD” a été traduite en français. Elle a paru le mois dernier chez Pearson Education France sous le titre “FreeBSD 7.0 : le guide complet du FreeBSD”.

, 30/10/2008 20:35

J'ai placé la référence à la version française de ce livre dans l'article. Pour ma part, la version originale me convient très bien. Mais de savoir qu'une traduction française a été réalisée me réconforte dans l'opinion que j'ai de ce livre! Merci

Entrer votre commentaire:
QPBCC

Linkbacks

Use the following URL for manually sending trackbacks: http://hibou.eu/lib/plugins/linkback/exe/trackback.php/articles:system:bsd:mise_en_miroir_du_disque_de_demarrage_sous_freebsd
articles/system/bsd/mise_en_miroir_du_disque_de_demarrage_sous_freebsd.txt · Dernière modification: 12/12/2008 19:06 par yann
page made in 0.179 seconds