Configuration d'un système FreeBSD en ZFS miroir
Certains clouds ne facilitent pas toujours l'installation de FreeBSD sur des serveurs hébergés.
Il faut donc parfois tricher pour parvenir à installer l'OS (c'est le cas sur certains serveurs OVH par exemple).
Si vous disposez de 2 NVMe sur votre serveur, peut-être n'aurez-vous pas d'autre choix que d'installer l'OS sur un seul de ces disques au début.
Et toute la question est : comment rattacher le second NVMe au premier pour obtenir une redondance en miroir du système après l'installation ?
Nous partons du postulat que vous utilisez ZFS, pas UFS.
Rien de bien trop complexe.
Mais à la différence d'illumos, c'est un peu plus délicat sur FreeBSD.
Dans mon exemple, le système a été installé sur /dev/nda1.
/dev/nda0 n'est pas encore utilisé.
Je veux donc créer un miroir ZFS avec les 2 nda.
1) D'abord s'assurer que le système est bien installé sur nda1 :-D ! (Avant de faire des bêtises !)
gpart show
root@SERVER:/dev # gpart show
=> 40 3750748768 nda1 GPT (1.7T)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 33554432 3 freebsd-swap (16G)
34088960 3716659200 4 freebsd-zfs (1.7T)
3750748160 648 - free - (324K)
=> 40 3750748768 nda0 GPT (1.7T)
40 3750748768 - free - (1.7T)
root@SERVER:/dev #
2) Effacer nda0 (optionnel mais recommandé)
dd if=/dev/urandom of=/dev/nda0 bs=1M status=progress
3) Recréer la même architecture de partitions sur nda0 que nda1
gpart create -s GPT nda0
gpart add -t efi -s 260M nda0
gpart add -t freebsd-boot -s 512K nda0
gpart add -t freebsd-swap -s 16G nda0
gpart add -t freebsd-zfs -a 1M nda0
4) Installer le bootloader EFI
newfs_msdos /dev/nda0p1
mount -t msdosfs /dev/nda0p1 /mnt
mkdir -p /mnt/EFI/BOOT
cp /boot/loader.efi /mnt/EFI/BOOTBOOTX64.efi
umount /mnt
4) Installer le bootcode FreeBSD (partition freebsd-boot)
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 nda0
5) Ajouter la nouvelle partition ZFS au pool existant (zroot)
zpool attach zroot nda1p4 nda0p4
6) Vérifier que le resilvering est en cours :
zpool status
7) Activer la partition swap secondaire
echo '/dev/nda0p3 none swap sw 0 0' >> /etc/fstab
swapon -a
8) Redémarrer le système :
reboot
9) Vérifier que tout va bien :
zpool status
root@SERVER:~ # zpool status
pool: zroot
state: ONLINE
scan: resilvered 2.84G in 00:00:03 with 0 errors on Fri Apr 18 14:35:55 2025
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nda1p4 ONLINE 0 0 0
nda0p4 ONLINE 0 0 0
errors: No known data errors
root@SERVER:~ #
↑ Haut de page