Ce présent document n’a qu’un but de rappel rapide des manipulations à faire pour utiliser un service vinum sous FreeBSD, il est fortement conseille de lire les man( pages (4) et (8) ).
Rappels succints préalables :
Vinum est un outil permettant de faire du raid logiciel, ne seront presentés ici que des exemples de configuration de raid 0 ( dit en mirroir ) et 5 ( dit par redondance cyclique ).
Installation/configuration :
Pré-requis : créé des partitions ( aka slice ) au format VINUM.
1. Exemples de mise en place
Raid 1
# vinum drive vinumdrive0 device /dev/ad0s1e drive vinumdrive1 device /dev/ad1s1e volume mirror plex org concat sd length 75758m drive vinumdrive0 plex org concat sd length 75758m drive vinumdrive1
Raid 5
# vinum drive vinumdrive0 device /dev/ad0s1e drive vinumdrive1 device /dev/ad1s1e drive vinumdrive2 device /dev/ad2s1e drive vinumdrive3 device /dev/ad3s1e drive vinumdrive4 device /dev/ad4s1e volume raid5 plex org raid5 sd length 75758m drive vinumdrive0 sd length 75758m drive vinumdrive1 sd length 75758m drive vinumdrive2 sd length 75758m drive vinumdrive3 sd length 75758m drive vinumdrive4
2. Exemple de la reprise d’une configuration
A l’aide de la commande vinum dumpconfig vous obtenez ceci en prenant l’exemple du raid 1 installé chez moi :
Drive vinumdrive0: Device /dev/ad0s1e Created on gaia.lan.autre.org at Sat Oct 16 17:44:43 2004 Config last updated Thu Jun 30 23:33:51 2005 Size: 82343245824 bytes (78528 MB) volume mirror state up plex name mirror.p0 state up org concat vol mirror plex name mirror.p1 state up org concat vol mirror sd name mirror.p0.s0 drive vinumdrive0 len 160826387s driveoffset 265s state up plex mirror.p0 plexoffset 0s sd name mirror.p1.s0 drive vinumdrive1 len 160071332s driveoffset 265s state up plex mirror.p1 plexoffset 0s Drive /dev/ad0s1e: 76 GB (82343245824 bytes) Drive vinumdrive1: Device /dev/ad1s1e Created on gaia.lan.autre.org at Sat Oct 16 17:44:43 2004 Config last updated Thu Jun 30 23:33:51 2005 Size: 81956657664 bytes (78159 MB) volume mirror state up plex name mirror.p0 state up org concat vol mirror plex name mirror.p1 state up org concat vol mirror sd name mirror.p0.s0 drive vinumdrive0 len 160826387s driveoffset 265s state up plex mirror.p0 plexoffset 0s sd name mirror.p1.s0 drive vinumdrive1 len 160071332s driveoffset 265s state up plex mirror.p1 plexoffset 0s Drive /dev/ad1s1e: 76 GB (81956657664 bytes)
3. Pour automatiser le demarrage
A l’aide de votre editeur favori, modifiez /etc/rc.conf pour ajoutter ceci :
vinum_enable=”YES”
Voila, au prochain boot, votre ordinateur lancera automatiquement vinum
Operation de maintenance :
1. Determiner les dommages:
A l’aide de la commande vinum list vous allez obtenir le resultat suivant :
2 drives: D vinumdrive2 State: up Device /dev/ad0s1e Avail: 0/78159 MB (1%) D vinumdrive3 State: up Device /dev/ad1s1e Avail: 0/78159 MB (0%) 1 volumes: V mirroir State: up Plexes: 2 Size: 76 GB 2 plexes: P mirroir.p0 C State: up Subdisks: 1 Size: 76 GB P mirroir.p1 C State: up Subdisks: 1 Size: 76 GB 2 subdisks: S mirroir.p0.s0 State: up PO: 0 B Size: 76 GB S mirroir.p1.s0 State: up PO: 0 B Size: 76 GB
Selon l’etat des differents subdisks vous saurez a quoi vous en tenir.
2. Exemple d’un cas ou il n’y a eu aucun dommage materiel
Un des subdisks est en status stale, crashed, down, vous pouvez le redemarrer, il reprendra les données des autres subdisks. Pour se faire, on fait :
# vinum vinum -> start test.p1.s0 Reviving test.p1.s0 in the background vinum -> vinum[295]: reviving test.p1.s0 (some time later) vinum[295]: test.p1.s0 is up
3. Exemple d’un cas ou il y a eu dommage materiel ( obligation de remplacer un disque )
Un des disques n’apparait pas au bios de l’ordi, ou au chargement du systeme, ou a un statut down ou referecenced dans vinum, il va falloir le remplacer. Pour cela, il vous faut un disque au moins aussi gros que l’ancien, preparer la partition en vinum, et faire les commandes suivantes ( dans le cas ou le disque mort serait ad0s1e ) :
# vinum vinum -> drive vinumdrive0 device /dev/ad0s1e vinum -> start test.p1.s0 Reviving test.p1.s0 in the background vinum -> vinum[295]: reviving test.p1.s0 (some time later) vinum[295]: test.p1.s0 is up