RAID logiciel sous FreeBSD (mirroring)

La réputation de piètres performances des OS d’une certaine firme de Redmond en ce qui concerne le RAID logiciel, à contribué à marginaliser cette pratique à l’avantage du RAID dit “matériel”. Or on peut noter une tendance actuelle à revenir vers le RAID dit “logiciel”, grâce notamment aux systèmes de fichiers nouvelle génération tels que ZFS, qui permettent  de faire du RAID très facilement et de façon transparente.

Nous n’allons pas parler de ZFS aujourd’hui mais de RAID logiciel au travers de GEOM, le “famework” de gestion des volumes de stockage de FreeBSD, afin d’obtenir facilement un système performant en RAID0, RAID1 ou RAID5, avec pour seule contrainte d’avoir à disposition un nombre de disque durs suffisants.

Le RAID1 => gmirror

Nous partons du principe que nous avons un système FreeBSD fraichement installé et qui fonctionne (ce qui est normal, puisqu’il s’agit de FreeBSD ;) .

Il nous faut tout d’abord ajouter physiquement un nouveau disque dur de capacité au moins égale à celui avec lequel nous voulons créer un mirroir RAID1. Ajoutez si possible ce nouveau disque sur un autre controlleur de disque que le disque dur existant, et faites attention à la notion de “master/slave” si vous avez des disques à la norme PATA.

Une fois le disque ajouté, et le système démarré, le nouveau disque dur devrait être détecté. Dans notre exemple le disque sur lequel est installé le système sera ad0 et le disque ajouté sera ad1.

Afin d’avoir accès aux métadonnées de notre disque ad0 en écriture, entrons ce qui suit dans un terminal:

# sysctl kern.geom.debugflags=17

Nous chargons le module noyau de gestion du RAID1.

# gmirror load

N’oublions pas de charger gmirror(8) à chaque démarrage.

# echo ‘geom_mirror_load=”YES”‘ >> /boot/loader.conf

Puis nous modifions le label de notre disque afin qu’il devienne compatible avec le RAID1 de gmirror.

# gmirror label -b split gm0 /dev/ad0

Nous éditons /etc/fstab afin de modifier les points de montage qui seront impactés (tout ce qui était relatif à /dev/ad0 devient relatif à /dev/mirror/gm0).

Ainsi le fichier /etc/fstab suivant:

# Device               Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b            none            swap    sw              0       0
/dev/ad0s1a            /               ufs     rw,acls         1       1
/dev/ad0s1e            /tmp            ufs     rw              2       2
/dev/ad0s1f            /usr            ufs     rw,acls         2       2
/dev/ad0s1d            /var            ufs     rw              2       2

deviendra:

# Device                      Mountpoint      FStype  Options         Dump    Pass#
/dev/mirror/gm0s1b            none            swap    sw              0       0
/dev/mirror/gm0s1a            /               ufs     rw,acls         1       1
/dev/mirror/gm0s1e            /tmp            ufs     rw              2       2
/dev/mirror/gm0s1f            /usr            ufs     rw,acls         2       2
/dev/mirror/gm0s1d            /var            ufs     rw              2       2

Puis nous redémarrons le système (tout en croisant les doigts ;) :

# reboot

Pendant le redémarrage, nous constatons que les occurences de ad0 sont remplacées par mirror/gm0 lors des opérations de mount(8)

Nous pouvons aussi controller que tout a bien été monté grâce à la commande mount(8):

# mount

Si tout va bien, il est temps d’insérer notre nouveau disque afin de construire notre “array of inexpensive disks” de type mirroir.

# gmirror insert gm0 /dev/ad1

Une fois le nouveau disque inséré dans le RAID1, la reconstruction de celui-ci débute automatiquement. Cela peut-être vérifié grâce à gmirror(8).

# gmirror status

      Name    Status  Components
mirror/gm0  COMPLETE  ad0
                      ad1

Pour remplacer un disque faisant partie du mirroir (par ex. ad0), il suffit, après avoir remplacé physiquement le disque défectueux, de faire:

# gmirror forget gm0

# gmirror insert gm0 /dev/ad0

Le mirroir se reconstruit ensuite automatiquement (on peut toujours le vérifier avec “gmirror status”).

Les autres configurations RAID feront l’objet de futurs billets.

Jun15

Leave a Reply

You must be logged in to post a comment.