Sauvegarde des données avec la combinaison FreeFileSync et 7-zip

Antécédents, pour ainsi dire :

Serveur Fujitsu rx300 s6, RAID6 composé de 6 disques de 1 To, avec XenServer 6.2, plusieurs serveurs tournent, parmi lesquels Ubuntu avec plusieurs partages, 3,5 millions de fichiers, 1,5 To de données, tout cela croît progressivement.

Tâche : configurer la sauvegarde des données du serveur de fichiers, partiellement quotidiennement, partiellement hebdomadairement.
Nous avons une machine Windows pour les sauvegardes avec RAID5 (pour des raisons budgétaires, un système classique avec un contrôleur RAID intégré à la carte mère) plus un disque de 2 To pour une copie intermédiaire de l'état actuel des fichiers. Nous aurions pu utiliser n'importe quelle distribution Linux, mais cette machine était déjà disponible avec un tableau RAID et une licence Windows.

Nous installons sur le serveur de sauvegarde FreeFileSync, en configurant un "miroir" de tout le contenu de tous les partages du serveur de fichiers une fois par jour le soir après 18 heures via le planificateur.

Un point important : lors de l'enregistrement de la tâche planifiée, il est impératif de cocher "Fermer la fenêtre de la tâche à la fin", sinon les processus vont se multiplier.

Nous excluons les fichiers temporaires par masque : *.dwl, *.dwl2, *.tmp.

FreeFileSync utilise extrêmement bien le réseau, la copie se fait en plusieurs flux, la vitesse atteint 80 Mo/s lors de la copie de gros fichiers, aucun ralentissement n'a été constaté sur les petits fichiers.

L'archivage se fera déjà sur le serveur de sauvegarde local, au lieu du précédent TheCopier avec archivage sur le réseau. En passant, TheCopier est excellent ! Mais avec ces volumes, il ne parvient tout simplement pas à tout transférer, malgré un interface de 1 Go/s sur la machine de sauvegarde et 2 Go/s sur le serveur de fichiers (réunion de deux cartes réseau).

De plus, auparavant, nous avons utilisé SyncToy, mais avec un nombre de fichiers supérieur à 1,5-2 millions, il a cessé de fonctionner correctement, il ne pouvait tout simplement pas gérer.

Pour archiver les dossiers nécessaires, nous écrivons un script batch pour 7-zip:

set now=%TIME:~0,-3%
set now=%now::=.%
set now=%now: =0%
set now=TE:~-4%.TE:~3,2%.TE:~0,2%_%now%
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_10-04.zip E:10-04
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_35-110.zip E:35-110
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_asu.zip E:asu
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_director.zip E:director
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_gpr.zip E:gpr
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_otiz.zip E:otiz
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_ps.zip E:ps
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_pto.zip E:pto
C:«Program Files»7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_rza.zip E:rza
C:«Program Files»7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_smeta.zip E:smeta

:: a — création d'une archive
:: -tzip ou -t7z — type d'archive ( zip est 1.5-2 fois plus rapide )
:: -mx=1 — degré de compression (1 minimum, 9 maximum, valeurs x=[0 | 1 | 3 | 5 | 7 | 9 ])
:: -mmt=on — active le multithreading si ce n'est déjà fait
:: -mtc=off — désactive les timestamps du système de fichiers (date de création, de modification, etc.)
:: -ssw — compresse également les fichiers ouverts en écriture
:: -xr!.Sync* — exclut les fichiers temporaires BtSync de l'archivage, tout en laissant les fichiers permanents

La construction avec set now=% et ainsi de suite permet de conserver le format de l'heure dans le nom du fichier sans les problèmes qui survenaient lorsque le jour ou le mois était inférieur à 10, c'est-à-dire en ajoutant un zéro.

Commentaire -xr!.Sync* est un vestige de l'utilisation initiale BTSync.

Jusqu'à 500 Go et 700-800 mille fichiers, BTSync fonctionnait encore à peu près, synchronisant à la volée, mais avec les volumes actuels, il consommait beaucoup de mémoire et de ressources CPU à la fois sur le serveur de fichiers Ubuntu et sur le serveur de sauvegarde Windows, où il était exécuté comme un service, et il était également très exigeant pour le système de disque avec des lectures-écritures constantes.

Bien que le logiciel d'archivage soit 7-zip, nous archivons au format zip au lieu du natif 7z, car c'est beaucoup plus rapide, et il n'y a pratiquement aucune différence de compression avec mx=1, comme l'ont prouvé de nombreuses expériences.

Les archives sont exécutées les unes après les autres.

Le nettoyage du dossier avec les archives se fait également par une tâche planifiée à l'aide de l'outil fpurge, laissant des archives datant de moins d'une semaine.
Au final, nous avons une copie des fichiers de la veille, ainsi que des archives de la dernière semaine, les fichiers supprimés par FreeFileSync sont placés dans la corbeille.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster