Procédure d’installation d’un RAID1 logiciel sous FreeBSD-5.1 via VINUM.

By t0xi

Cette mini procedure a pour but l installation d un RAID1 logiciel (mirorring ) sur 2 disques via vinum sous FreeBSD 5.1 et >. ... un mirroring gratOs c est pas bO ca :)

1) Lancer l’installation de FreeBSD5.1

2) Créer les partitions avec fdisk sur les deux disques.

3) Créer les labels via le Disklabel Editor. Pour que le mirroring (RAID 1) fonctionne, il faut que les deux disques aient les mêmes labels au même endroit (même offset).

Seul les noms de point de montage différent.

Exemple

Disque 1 ( ad0 )

Part	Mount	Size

ad0s1b	swap	512m

ad0s1a	/	1024m

ad0s1d	/var	1024m

ad0s1e	/usr	6424401m

Disque 2 ( ad1 )

Part	Mount	Size

ad2s1b	swap	512m

ad2s1d	/rootback	1024m

ad2s1e	/var2	1024m

ad1s2f	/usr2	6424401m

4) Une fois que les disques sont configurer, finissez l'Install (minimum) puis redémarrer en

mode mono utilisateur ( taper 4 à l’invite ).

Monter les partitions du disque master manuellement

#mount /

#mount /usr

#mount /var

6) Ajouter les lignes suivantes dans le /boot/loader.conf afin de lancer le module vinum au démarrage.

vinum.autostart="YES"

vinum_load="YES"

7) Editer les labels du disque ad0.

disklabel -e ad0s1

L'affichage doit ressembler à :

# /dev/ad0s1:

8 partitions:

# size offset fstype [fsize bsize bps/cpg]

a: 2097152 1048576 4.2BSD 0 0 0

b: 1048576 0 swap

c: 12715857 0 unused 0 0

d: 1048576 5242880 4.2BSD 0 0 0

e: 6424401 6291456 4.2BSD 0 0 0

Vinum possède des secteurs d'information en début de disque. Il est donc dans un premier

temps nécessaire d'avancer l'offet de la swap de 281 secteurs et donc de recalculer sa taille

pour ne pas qu elle aille écrasé la partition /.

b: 1048576 0 swap devient

b: 1048295 281 swap

Dans un deuxième temps il faut créer une partition de type vinum qui englobera toutes les

autres, changeant ainsi le system de gestion de partition. (Après cela elles ne seront plus

Visible dans sysinstall). On rajoute

f: 12715841 16 vinum (ou 12715841 = 12715857 – 16)

On obtient donc :

# /dev/ad0s1:

# size	offset	fstype	[fsize bsize bps/cpg]

a: 2097152 1048576	4.2BSD 0 0 0

b: 1048295 281	swap

c: 12715857 0	unused 0 0

d: 1048576 5242880	4.2BSD 0 0 0

e: 6424401 6291456	4.2BSD 0 0 0

f: 12715841 16	vinum

8) Préparer la configuration vinum pour le disque ad0. Elle est de type :

Drive <no-vinum-du disque> device <la partition vinum>

Volume <nom du volume ou partition gérer par vinum>

plex org <mode d écriture : concaténer pour du RAID1 , segmenter pour du RAID0>

sd len <taille du volume>s driveoffset <adresse mémoire - 16 ( on ne se base plus sur le Disque mais sur la partition vinum) >s drive <no-vinum-du disque>

Soit pour notre configuration ( /etc/vinum1.conf).

drive disque0 device /dev/ad0s1f

volume root

plex org concat

sd len 2097152s driveoffset 1048560s drive disque0

volume swap

plex org concat

sd len 1048295s driveoffset 265s drive disque0

volume var

plex org concat

sd len 1048576s driveoffset 5242864s drive disque0

volume usr

plex org concat

sd len 6424401s driveoffset 6291440s drive disque0

9) On créer les drive , volume plex et sub-drive sous vinum :

#vinum

#vinum -> create -f /etc/vinum1.conf

Une fois les objets créent, On peut vérifier l’état des différentes composantes.

#vinum -> list

Si les objet possède tous l'état "State: up" les objet sont bien créer sinon vérifier

la configuration du fichier vinum1.conf ( calcul d 'offset , taille , nom ...)

10) Vérifier l'intégrité des différentes device crée par vinum.

#fsck -n -t ufs /dev/vinum/root

#fsck -n -t ufs /dev/vinum/var

#fsck -n -t ufs /dev/vinum/usr

11) Si tout est Ok on peut modifier les paramètres de la fstab pour qu au prochain démarrage,

vinum gère les partitions.

#vi /etc/fstab

Replacer l existant par :

# Device	Mountpoint	FStype	Options	Dump	Pass#

/dev/vinum/swap	none	swap	sw	0	0

/dev/vinum/root	/	ufs	rw	1	1

/dev/vinum/var	/var	ufs	rw	2	2

/dev/vinum/usr	/usr	ufs	rw	2	2

/dev/acd0	/cdrom	cd9660	ro,noauto	0	0

12) Rebooter, si tout ce passe bien c est vinum qui gère le system de fichier :

#mount

/dev/vinum/root on / (ufs, local)

devfs on /dev (devfs, local)

/dev/vinum/var on /var (ufs, local, soft-updates)

/dev/vinum/usr on /usr (ufs, local, soft-updates)

13) Redémarrer en mode mono utilisateur est effectuer les même taches 5) 7) 8) 9) avec le

deuxième disque ad1

Pour les labels (changer les lettres des partitions afin de concorder avec ad0 ) on obtient :

# /dev/ad1s1:

# size	offset	fstype [fsize bsize bps/cpg]

a: 2097152	1048576	4.2BSD 0 0 0

b: 1048295	281	swap

c: 12715857	0	unused 0 0

d: 1048576	5242880	4.2BSD 0 0 0

e: 6424401	6291456	4.2BSD 0 0 0

f: 12715841	16	vinum

Pour notre configuration vinum ( /etc/vinum2.conf).

drive disque1 device /dev/ad1s1f

volume root

plex org concat

sd len 2097152s driveoffset 1048560s drive disque1

volume swap

plex org concat

sd len 1048295s driveoffset 265s drive disque1

volume var

plex org concat

sd len 1048576s driveoffset 5242864s drive disque1

volume usr

plex org concat

sd len 6424401s driveoffset 6291440s drive disque1

#vinum

#vinum -> create -f /etc/vinum2.conf

Les volumes ad1 ne sont normalement pas à l’état Up mais c’est normal

14) Synchronisation des disques :

#vinum

#vinum -> list

On peut remarquer que les volume et plexe du disque sont dans un etat "State: faulty"

ou "State: stale" tout simplement parce qu il pointe sur le même point de montage que le

disque 0 mais ne possède pas les mêmes informations.

P root.p1 C State: faulty	Subdisks: 1	Size: 1024 MB

P swap.p1 C State: faulty	Subdisks: 1	Size: 511 MB

P var.p1 C State: faulty	Subdisks: 1	Size: 1024 MB

P usr.p1 C State: faulty	Subdisks: 1	Size: 3136 MB

Il faut donc synchroniser les volumes :

#vinum -> start root.p1

#vinum -> start swap.p1

#vinum -> start var.p1

#vinum -> start usr.p1

Remarque : cette manipulation peut être réutilisé en cas de crash d’un des disque pour

restaurer ses données.

L’état d'avancement est disponible à tout moments via la commande list.

S root.p1.s0	State: R 31%	D: UpWindow	Size:	1024 MB

15) Les points de montage du disque 2 peuvent être supprimé

# rm -r /home2 /tmp2 /var2 /rootback.

Le RAID 1 est prêt .

Pour + de tuyO : tokxi at caramail point com :)

Procédure d’installation d’un RAID1 logiciel sous FreeBSD-5

sylvain.goze

2004-05-07T14:18:00