3 votes

Est-ce que rsync serait meilleur que tar, wget et untar?

Je suis en train de migrer vers un nouveau serveur et, en plus des fichiers html/php, j'ai un répertoire qui contient environ 90 000 fichiers pour un total de 24 Go à déplacer.

Lorsque j'ai fait une migration de test, j'ai utilisé tar pour créer une archive tar, puis wget sur le nouvel hôte et ensuite j'ai extrait le fichier tar mais, bien que cela ait bien fonctionné, cela a pris environ 3 heures au total pour se terminer. Cela signifie 3 heures d'arrêt pendant que je faisais cela lors de la migration réelle pour m'assurer qu'aucun nouveau fichier n'arrive ou que des fichiers ont été modifiés, etc.

Je suis maintenant en train de planifier la migration réelle et j'essaie de trouver des moyens plus rapides de le faire et je me demandais si utiliser rsync - je n'ai jamais utilisé rsync que localement et seulement pour un petit nombre de fichiers - serait plus rapide que la méthode ci-dessus?

Je ne suis pas tellement préoccupé par l'utilisation du CPU, de la mémoire ou du réseau tant que le processus effectif se termine plus rapidement car cela sera fait en dehors des heures de pointe lorsque le système est de toute façon plus calme.

5voto

John Mahowald Points 28597

Vous devrez tester pour savoir. Il y a de nombreuses variables telles que la vitesse de votre système de stockage.

Envisagez de restaurer votre archive tar ou votre sauvegarde pendant que l'ancien système est opérationnel. Ensuite, pendant l'arrêt, utilisez rsync pour copier les modifications restantes. Il doit encore vérifier de nombreuses heures de modification de fichiers, ce qui prend du temps, mais il y a beaucoup moins d'E/S et de transfert réseau.

Cette copie progressive est ce dont rsync est bon. Le faire en une seule fois peut ne pas être plus rapide que d'autres outils.

4voto

Rsync peut vous permettre de synchroniser les fichiers sans mettre le serveur hors ligne. Par exemple, vous pourriez effectuer une synchronisation en production, puis mettre le serveur hors ligne, resynchroniser pour vous assurer d'avoir tout ce qui a changé entre-temps, puis allumer le nouveau serveur. La deuxième synchronisation sera incrémentielle et prendra une fraction du temps de la première, réduisant ainsi le temps d'arrêt.

0voto

Ondra Sniper Flidr Points 2563

Rsync ne copiera que les diffs - uniquement les modifications de la source vers le serveur cible. Si vous avez déjà une copie de vos données sur le nouveau serveur, rsync ne copiera que ce qui a été changé entre votre archive et l'état actuel.

0voto

mick Points 685

Si vous voulez faire cela avec tar et non rsync, vous pouvez paralléliser vos tâches :

source :

tar ... | nc hôte port

destination :

nc -l -p port | tar ...

Cela réduira au moins votre temps de moitié

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X