Vinum : le raid logiciel sous FreeBSD

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

			

Leave a Reply