# 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
```