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:
| 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
| 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 . 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
| 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
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:
dans le fichier de configuration du noyau, recompilez-le puis réinstallez-le. Cela devrait corriger le problème.