Cloner un systeme zfs en live
Cloner un serveur live ZFS
Booter le systeme cible sur un live-cd. Le clavier est qwerty, on le modifie en azerty.
# kbdmap
Preparation du serveur cible.
Configurer le ou les disques pour recevoir le systeme à cloner.
cible# kldload zfs.ko cible# foreach n ( 0 1 2 ) cible# gpart destroy -F ada${n} cible# gpart create -s gpt ada${n} cible# gpart add -a 4k -s 512k -t freebsd-boot -l boot${n} ada${n} cible# gpart add -a 4k -s 2g -t freebsd-swap -l swap${n} ada${n} cible# gpart add -a 4k -t freebsd-zfs -l disk${n} ada${n} cible# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada${n} cible# gnop create -S 4096 /dev/gpt/disk${n} cible# end cible# zpool create -f -o altroot=/mnt -O canmount=off -m none zroot raidz /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2
Configurer et activer ssh sur le serveur cible
cible# ifconfig em0 inet 1.2.3.4 netmask ... # Si on utilise une adresse statique cible# mkdir /tmp/etc cible# mount_unionfs /tmp/etc /etc cible# vi /etc/ssh/sshd_config # allow root login cible# passwd root # Set a root password cible# service sshd onestart # Activer le deamon ssh
Sur le serveur à cloner. Faire un snapshot récursif.
clone# zfs snapshot -r zroot@clone
Envoyer la copie du snapshot à destination du serveur cible:
clone# zfs send -R zroot@clone | ssh root@cible zfs recv -Fdv zroot
receiving full stream of zroot/var/crash@clone into zroot/var/crash@clone received 47.9KB stream in 1 seconds (47.9KB/sec) receiving full stream of zroot/var/tmp@clone into zroot/var/tmp@clone received 153KB stream in 1 seconds (153KB/sec) receiving full stream of zroot/ROOT@clone into zroot/ROOT@clone received 46.3KB stream in 1 seconds (46.3KB/sec)
Une fois que la copie est terminéé. Comparer la source et la destination. Finaliser la configuration en effectuant les mofifcations nécessaires sur le serveur cible.
clone# zfs list cible# zfs list cible# zpool set bootfs=zroot/ROOT/default zroot cible# zpool export zroot cible# zpool import zroot cible# reboot
Conclusion
Le snapshot peut être détruit sur les 2 serveurs :
cible# zfs destroy -R zroot@clone clone# zfs destroy -R zroot@clone