User Tools

Site Tools


journal:2022:day-2022-06-09

Migration des sauvegardes petra

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 export nfs /data/ops /home/petra /data/petra mount po+l1

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 export nfs /data/ops /nfsshare /data/petra rsync mount /home/petra po+l1
  • 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
journal/2022/day-2022-06-09.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1