# Migration des sauvegardes petra {{INLINETOC}} Afin de soulager le serveur mutualisé **mutual1** un espace de stockage secondaire est configuré sur un second serveur, cet espace est exporté en nfs et remplacera le dossier `/data/petra` dans le point de montage `/home/petra` sur lequel sont répliqués les sauvegardes des serveurs **txxa**. rsync rsync ops txxa | | .------------|-----------|--------------------. .---------------------------------------------. | Mutual1 : | | | Mutual2 | | v | | | | | | | export nfs | | | /data/ops '---=->/home/petra <---=--------------> /data/petra | | | | | | | | ^ | | | | | mount | | | | | | | | | pool1 | | | | | .---------------------------------------------. .---------------------------------------------. ## Mise en place du fs zfs sur mutual2 Afin de mettre en oeuvre la déduplication sur le serveur mutual2, on va créer un pool zfs avec un fs dédupliqué. * Création d'un pool zfs `pool1`: ``` zpool create -f pool1 /dev/sdb1 zpool status pool: pool1 state: ONLINE config: NAME STATE READ WRITE CKSUM pool1 ONLINE 0 0 0 sdb1 ONLINE 0 0 0 ``` * Création d'un file system zfs `pool1/petra`: ``` zfs create pool1/petra ``` * Montage du pool sur un point de montage legacy (gérable par nfs et fstab) : ``` zfs set mountpoint=/data pool1 ``` * Activation de la déduplication sur le file system zfs `pool1/petra`: ``` zfs set dedup=on pool1/petra zfs get dedup pool1/petra NAME PROPERTY VALUE SOURCE pool1/petra dedup on local ``` * Arrêt des exports NFS: Avant d'arrêter le service il faut démonter les exports montés sur les systèmes distants. ``` service nfs stop ``` * Modification de `/etc/exports`: Seul le file système zfs peut être utilisé en tant qu'export et monté par un client nfs. ``` vi /etc/exports /data/petra 192.168.1.14(rw,sync,no_root_squash,no_all_squash) ``` * Démarrage su service nfs: ``` service nfs start ``` ## Migration du répertoire /data/petra sur mutual1 Pour la migration des données vers le fs zfs `pool1/petra` on va procéder en deux étapes sur **mutual1**: * première étape montage du share nfs provisoire (`/nfsshare`) et réplication des données vers celui-ci * deuxième étape montage du share nfs en lieu et place du montage précédent (`home/petra`) ### Phase 1 Share nfs provisoire rsync rsync ops txxa | | .------------|-----------|--------------------. .---------------------------------------------. | Mutual1 : | | | Mutual2 | | v | | | | | | | export nfs | | | /data/ops | /nfsshare <---=--------------> /data/petra | | | | | | | | ^ | | ^ | | | | rsync | | | mount | | | | | | | | | '---=->/home/petra | | pool1 | | | | | .---------------------------------------------. .---------------------------------------------. * Arrêt du service NFS: Avant d'arrêter le service il faut démonter les exports montés sur les systèmes distants. ``` service nfs stop ``` * Modification de `/etc/fstab` ``` 192.168.1.15:/data/petra /nfsshare nfs defaults 0 0 ``` * Démarrage su service nfs: ``` service nfs start ``` #### synchronisation 09/06/2022 ``` rsync -av /data/petra/ /nfsshare/ .... sent 961243920020 bytes received 17029996 bytes 41482833.10 bytes/sec total size is 961067897037 speedup is 1.00 rsync warning: some files vanished before they could be transferred (code 24) at main.c(1039) [sender=3.0.6] ``` ``` zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT pool1 1.36T 790G 602G - - 8% 56% 1.15x ONLINE - ``` Le taux de déduplication est de 1.15. #### Synchronisation 10/06/2022 ``` rsync -av /data/petra/ /nfsshare/ .... sent 17955753577 bytes received 1578114 bytes 3471692.93 bytes/sec total size is 974978671319 speedup is 54.29 ``` ``` zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT pool1 1.36T 794G 598G - - 9% 57% 1.16x ONLINE - ``` **Automatisation de la synchronisation:**\\ \\ - transfert de la cle publique de **mutual1** vers **mutual2**: `scp ~/.ssh/id_rsa_SNS.pub root@10.103.212.15:`\\ - création de authorized\_keys sur le root de **mutual2**: `touch ~/.ssh/authorized_keys`\\ - intégration de la clé publique de **mutual1** dans le fichier authorized\_keys du root de **mutual2**: `cat ~/id_rsa_SNS.pub >> ~/.ssh/authorized_keys`\\ - crééation du script de synchronisation dans le root de **mutual1**:\\ `cat > ~/syncro-nfsshare.sh << 'EOF' `\\ `#!/bin/bash`\\ `date > root/syncro-nfsshare.log`\\ `rsync -av -X --delete-after --stats /data/petra/ /nfsshare/ >> /root/syncro-nfsshare.log && \`\\ `ssh 10.103.212.15 "zpool list" >> ~/syncro-nfsshare.log`\\ `tail -n40 /root/synchro-nfsshare.log | mailx -s "synchro nfsshare $(date)" -S smtp=smtp://smtp.oc.dgfip:25 -S from="esi.marseille.snsreseau@dgfip.finances.gouv.fr" esi.marseille.snsreseau@dgfip.finances.gouv.fr`\\ `EOF`\\ - Rendre exécutable le script: `chmod +x /root/syncro-nfsshare.sh`\\ - Programmation du contrôle dans cron de **mutual1** avec `crontab -e`:\\ `00 09 * 6 * /root/syncro-nfsshare.sh ` #### synchronisation 13/06/2022 ``` Number of files: 1102416 Number of files transferred: 2347 Total file size: 985831276480 bytes Total transferred file size: 17573300985 bytes Literal data: 17573300985 bytes Matched data: 0 bytes File list size: 24217234 File list generation time: 0.051 seconds File list transfer time: 0.000 seconds Total bytes sent: 17599905800 Total bytes received: 189736 sent 17599905800 bytes received 189736 bytes 4057658.91 bytes/sec total size is 985831276480 speedup is 56.01 Number of files: 1102416 Number of files transferred: 2401 Total file size: 985831276480 bytes Total transferred file size: 17573566801 bytes Literal data: 17573566801 bytes Matched data: 0 bytes File list size: 24217234 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 17600173895 Total bytes received: 190783 sent 17600173895 bytes received 190783 bytes 4057720.96 bytes/sec total size is 985831276480 speedup is 56.01 NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT pool1 1.36T 805G 587G - - 9% 57% 1.16x ONLINE - ``` ### Phase 2 remplacement du montage /home/petra * Démontage du share provisoire ``` umount nfsshare ``` * Démontage de `/home/petra`: ``` umount /home/petra ``` * Modification de `/etc/fstab` La ligne concernat leu point de montage précedent doit être invalidée. ``` #/data/petra /home/petra none bind 0 0 192.168.1.15:/data/petra /home/petra nfs defaults 0 0 ``` * Remonter `/home/petra`: ``` umount /home/petra ```