FreeBSD propose deux solutions de RAID software : gmirror et ZFS (uniquement depuis la version 7.0 pour ce dernier). La solution ZFS n’étant pas suffisamment mature selon moi, je ne parlerai dans cet article que de la mise en place de gmirror.

Situation de départ

  • Un serveur ou un poste de travail sous FreeBSD 6.X ou 7.0 avec un disque dur qui contient les partitions sur lesquelles sont les données à passer en RAID et un deuxième disque dur au moins aussi spacieux
  • Un accès à distance au serveur : cette solution fonctionne uniquement par SSH (testé avec succès par votre serviteur). Il faut cependant faire attention car en cas d’erreur, il faudra un accès physique pour redemarrer serveur.

La stratégie

  1. Passage du disque actuellement utilisé en mirroring
  2. Reboot sur une grappe RAID à un seul disque
  3. Ajout du deuxième disque à la grappe RAID

Les détails de la mise en place

  • Pour être en mesure de modifier des disques qui sont en cours d’utilisation, il faut utiliser la commande suivante :
    sysctl kern.geom.debugflags=16
  • Il faut ensuite créer une grappe RAID an l’initialisant avec le disque en cours d’utilisation (dans le cas présent : ad0) :
    gmirror label -v -b round-robin gm0 /dev/ad0
  • Il faut maintenant modifier le fichier /boot/loader.conf (en le créant si nécessaire). Afin que gmirror soit chargé au démarrage, il faut ajouter la directive suivante :
    geom_mirror_load="YES"
  • Il faut ensuite modifier le fichier /etc/fstab, les modifications dépondrons de votre installation. Il faut remplacer les références à votre disque physique (eg /dev/ad0) et les remplacer par la grappe RAID (eg /dev/mirror/gm0)
  • L’étape suivante est critique, il faut redémarrer. S’il y a une erreur dans le fichier /boot/loader.conf ou dans le fichier /etc/fstab, le serveur risque fort de ne pas redémarrer correctement. Les erreurs les plus fréquentes sont l’oubli des ‘_’ dans geom_mirror_load ou l’utilisation de /dev/gm0 à la place de /dev/mirror/gm0. Il faut donc être le plus vigilant possible avant de redémarrer le serveur.
  • Une fois le serveur redemarré et le bon fonctionnement de la grappe RAID validé, nous pouvons ajouter le deuxième disque à la grappe avec la commande suivante (dans notre cas, le deuxième disque est ad1) :
    gmirror insert gm0 /dev/ad1
  • Il est possible de connaitre l’état de la grappe à tout moment avec la commande :
    gmirror status

    . Dans notre cas, la grappe sera en état dégradée tant que les données du premier disques n’auront pas été copiées sur le deuxième disque.

Partager cet article :
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • HackerNews
  • LinkedIn
  • Netvibes
  • Slashdot
  • Twitter
  • viadeo FR
  • Wikio FR

Commentaires

Réagissez