19.4. RAID1 - « mirroring »
Précédent | Chapitre 19. GEOM: architecture modulaire de gestion des disques | Suivant

## 19.4. RAID1 - « mirroring »

Le « mirroring » est une technologie utilisée par de nombreuses entreprises et beaucoup de particuliers pour sauvegarder les données sans interruption des activités. Quand un miroir existe, cela signifie que le disque B est une copie du disque A. Ou, autre cas, que les disques C+D sont une copie des disques A+B. Indépendamment de la configuration des disques, l'aspect important est que les données d'un disque ou d'une partition sont dupliquées. Ultérieurement, ces données pourront être plus facilement restaurées, sauvegardées sans interrompre le système ou les accès, et pourront même être stockées physiquement de manière sure.

Pour commencer, vérifiez que le système dispose de deux disques de taille identique, cet exemple suppose que ce sont des disques SCSI (da(4)).

Installez FreeBSD sur le premier disque avec uniquement deux partitions. Une partition sera la partition de pagination d'une taille double à celle de la RAM et l'espace restant sera alloué au système de fichiers racine (`/`). Il est possible d'avoir des partitions séparées pour les autres points de montage, cependant cela augmentera énormément le niveau de difficulté en raison des modifications manuelles nécessaires des paramètres de bsdlabel(8) et fdisk(8).

Redémarrez et attendez l'initialisation complète du système. Ensuite, ouvrez une session sous l'utilisateur `root`.

Créez le périphérique `/dev/mirror/gm` et liez-le avec `/dev/da1`:

`#` `gmirror label -vnb round-robin gm0 /dev/da1`

Le système devrait répondre par:

Metadata value stored on /dev/da1. Done.

Initialisez GEOM, cela devrait charger le module du noyau `/boot/kernel/geom_mirror.ko`:

`#` `gmirror load`

### Note:

Cette commande devrait créer le fichier spécial de périphérique `gm0` sous le répertoire `/dev/mirror`.

Installez un label `fdisk` et un code de d'amorce génériques sur le nouveau périphérique `gm0`:

`#` `fdisk -vBI /dev/mirror/gm0`

Installez maintenant un label générique `bsdlabel`:

`#` `bsdlabel -wB /dev/mirror/gm0s1`

### Note:

S'il existe plusieurs « slices » et plusieurs partitions, il faudra modifier les paramètres des deux commandes précédentes. Elles doivent correspondre aux tailles des partitions et « slices » sur l'autre disque.

Utilisez l'utilitaire newfs(8) pour créer un système de fichiers UFS sur le périphérique `gm0s1a`:

`#` `newfs -U /dev/mirror/gm0s1a`

Le système devrait alors afficher un certain nombre d'informations et de nombres. C'est bon signe. Contrôlez l'affichage à la recherche de messages d'erreur et montez le périphérique sur le point de montage `/mnt`:

`#` `mount /dev/mirror/gm0s1a /mnt`

Transférez maintenant toutes les données du disque de démarrage vers ce nouveau système de fichiers. Dans notre exemple nous utilisons à cet effet les commandes dump(8) et restore(8), cependant la commande dd(1) conviendrait également.

`#` `dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)`

Cela doit être effectué pour chaque système de fichiers. Placez simplement le système de fichiers approprié au bon endroit quand vous exécutez la commande précédente.

Editez ensuite le fichier `/mnt/etc/fstab` et supprimez ou mettez en commentaires le fichier de pagination [11]. Modifiez les autres paramètres du système de fichiers pour utiliser le nouveau disque comme présenté l'exemple suivant:

# Device Mountpoint FStype Options Dump Pass# #/dev/da0s2b none swap sw 0 0 /dev/mirror/gm0s1a / ufs rw 1 1

Créez maintenant un fichier `boot.config` sur la partition racine actuelle et celle nouvellement créée. Ce fichier « aidera » le BIOS à déterminer correctement sur quel disque démarrer:

`#` `echo "1:da(1,a)/boot/loader" > /boot.config`
`#` `echo "1:da(1,a)/boot/loader" > /mnt/boot.config`

### Note:

Nous l'avons ajouter sur les deux partitions racines afin d'assurer un démarrage correct. Si pour une raison quelconque le système ne pourrait le lire à partir de la nouvelle partition racine, une version de secours est disponible.

Assurez-vous que le module `geom_mirror.ko` sera chargé au démarrage du système en lançant la commande suivante:

`#` `echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf`

Redémarrez le système:

`#` `shutdown -r now`

Si tout s'est bien passé, le système a dû démarrer à partir du périphérique `gm0s1a` et une invite d'ouverture de session doit être affichée. En cas de problème, consultez la section suivante consacrée au dépannage. Ajoutez maintenant le disque `da0` au périphérique `gm0`:

`#` `gmirror configure -a gm0` `#` `gmirror insert gm0 /dev/da0`

L'option `-a` demande à gmirror(8) d'utiliser une synchronisation automatique, c'est à dire dupliquer automatiquement toute écriture disque. La page de manuel explique comment reconstruire et remplacer les disques, avec la différence qu'elle utilise `data` à la place de `gm0`.

### 19.4.1. Dépannage

#### 19.4.1.1. Le système refuse de démarrer

Si le démarrage du système s'interrompt à une invite semblable à:

ffs_mountroot: can't find rootvp Root mount failed: 6 mountroot>

Redémarrez la machine à l'aide du bouton de mise en marche ou de « reset ». Au menu de démarrage, sélectionnez la sixième option (6). Le système basculera alors vers une invite du chargeur (loader(8)). Chargez manuellement le module du noyau:

OK? `load geom_mirror` OK? `boot`

Si cela fonctionne, cela signifie que pour une raison quelconque le module n'a pas été correctement chargé. Ajoutez la ligne:

options GEOM_MIRROR

dans le fichier de configuration du noyau, recompilez-le puis réinstallez-le. Cela devrait corriger le problème.

[11] Il est à noter que commenter l'entrée de l'espace de pagination dans `fstab` vous demandera très probablement de mettre en place une méthode différente pour activer l'espace de pagination. Veuillez vous référer à la Section 11.14, « Ajouter de l'espace de pagination » pour plus d'informations.

Précédent | Niveau supérieur | Suivant
19.3. RAID0 - « Striping » | Sommaire | 19.5. Périphériques réseau « GEOM Gate »

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.