RAID 1 logiciel sous FreeBSD

Date: 10/10/2008 | Catégories: Hardware,Open-source,Systeme | Tags: ,

Certains serveurs de votre réseau sont plus sensibles que d'autres: on peut citer par exemple les serveurs DNS, LDAP ou base de données. D'un autre coté les pannes matérielles survenant sur ces mêmes serveurs viennent souvent des disques durs. En partant de ces deux constats, je vous propose dans ce billet d'utiliser la fonction de RAID 1 logicielle de FreeBSD pour sécuriser ces serveurs.

Petit rappel sur RAID 1

Le RAID 1 consiste à utiliser n disques redondants (n supérieur ou égal à 2). Chaque disque contient la même information.

150px-RAID_1.svg.png

Dans notre exemple, nous allons utiliser une configuration minimale pour du RAID 1: deux disques de taille et de caractéristiques équivalentes.

Préparation de l'installation

Il faut dans un premier temps identifier les disques sur lequel de RAID 1 va être installé. Pour celà la commande dmesg devrait vous aider:

# dmesg

ad4: 76319MB <WDC WD800AAJS-70TDA1 01.00A03> at ata2-master SATA150

ad6: 76319MB <WDC WD800AAJS-70TDA1 01.00A03> at ata3-master SATA150

Nous avons donc deux disques: ad4 et ad6.

Ensuite on regarde ou le système est installé:

# df

/dev/ad4s1a 71621288 1044946 64846640 2% /

FreeBSD est donc installé sur le disque ad4. Nous allons donc nous servir du disque ad6 pour créer le disque mirroir de ad4.

Configuration du RAID 1 sous FreeBSD

Nous allons utiliser l'utilitaire gmirror pour effectuer le "mirroring" de ad4 vers ad6.

La première chose à faire est de vérifier que votre version de FreeBSD supporte cette fonction.

# man gmirror

Si c'est le cas, le manuel de la commande devrait s'afficher.

On commence par préparer le disque "maître" (ad4 dans notre exemple):

# sysctl kern.geom.debugflags=17

# gmirror label -vb round-robin gm0 /dev/ad4

Le résultat de cette dernière commande devrait être:

Metadata value stored on /dev/ad4.

Done.

On charge ensuite le module gmirror dans le kernel.

# gmirror load

Si vous n'avez pas de message d'erreur vous pouvez automatiser le chargement du module au prochain démarrage du serveur en tapant la commande suivante:

# echo 'geom_mirror_load="YES"' >> /boot/loader.conf

On vient de créer un disque virtuel nommé gm0. Il faut donc remplacer, dans le fichier /etc/fstab, toutes les occurrences /dev/ad4 par /dev/mirror/gm0. Pour cela on utilise vi:

# cp /etc/fstab /etc/fstab.old

# vi /etc/fstab

:%s/ad4/mirror\/gm0/g

On redémarre ensuite le serveur:

# shutdown -r now

Une fois le serveur rebooté, il ne reste plus qu'a ajouter le disque ad6 (notre disque "esclave") dans le mirroir RAID 1 (gm0).

# gmirror insert gm0 /dev/ad6

Vérification de l'état du RAID 1

On peut utiliser la commande suivante:

# gmirror status

Durant l'initialisation du disque esclave, le résultat devrait ressembler à:

Name Status Components

mirror/gm0 DEGRADED ad4

ad6 (1%)

Ensuite, le message suivant devrait apparaître:

Name Status Components

mirror/gm0 COMPLETE ad4

ad6

Et si un de mes disques plantes ?

Imaginons que le disque primaire (ad4) rende l'âme. Il suffit:

  • éteindre le serveur
  • retirer le disque ad4
  • le remplacer par un disque équivalent
  • redémarrer le serveur
  • Saisir les commande suivantes pour reconstruire le disque:

# gmirror forget gm0

# gmirror insert gm0 /dev/ad4

Il ne reste plus qu'a superviser votre RAID 1 avec votre serveur Nagios !

Partager ce billet