1 votes

Comment améliorer les performances de ma sauvegarde incrémentielle ?

J'utilise actuellement la méthode traditionnelle rsync+cp -al pour créer des sauvegardes incrémentielles/snapshot de notre arborescence de serveurs. Les sauvegardes vont sur une paire de tours à huit disques connectées à la machine de sauvegarde (une machine Sandy Bridge avec 16 Go de RAM, exécutant CentOS 5.5) via quatre connexions eSATA (quatre disques par connexion). Chaque disque est un disque normal de 2 To, ce qui fait que nous avons 32 To d'espace disque connecté à la machine de sauvegarde. Nous sauvegardons ainsi environ 20 To de données sur les serveurs.

Le problème est que chaque sauvegarde quotidienne prend plus de 24 heures, et le véritable tueur de temps n'est pas le rsync réel, mais le temps nécessaire pour effectuer un cp -al de l'arbre localement sur la machine de sauvegarde. Il faut plus de 12 heures rien que pour faire la copie fantôme de l'arborescence, et pour autant que je puisse dire, le retard de performance se situe au niveau du disque (le haut montre que le cp utilise beaucoup de RAM mais pas beaucoup de CPU et surtout en état de sommeil ininterrompu).

Les données du serveur sont réparties sur quatre volumes majeurs (et quelques volumes mineurs), et chacune de ces sauvegardes s'exécute en parallèle (avec quelques décalages dans le cron pour essayer de faire en sorte que le cp de certains disques soit effectué en premier). Il y a deux volumes sur le disque de sauvegarde, tous deux des volumes LVM en bandes de 16 To chacun.

Il est donc évident que je dois améliorer les performances, car il est inutilisable en l'état.

La première question est la suivante : lorsque CentOS 6 sortira, avec la prise en charge de btrfs, la réalisation d'instantanés de sous-volumes avec btrfs augmentera-t-elle sensiblement ces performances ?

La deuxième question est la suivante : existe-t-il un moyen, avec ext3 ou quelque chose d'autre pris en charge dans CentOS 5 ou 6, de l'"encourager" à placer les répertoires/inodes dans une partie d'un volume (qui pourrait être la partie qui est sur un SSD, via LVM) et les fichiers dans une autre ? Cela résoudrait vraisemblablement le problème, mais je ne connais pas de moyens d'inciter ext3 de cette manière.

2voto

David Spillett Points 22424

Vous pouvez essayer d'utiliser --link-dest et les options connexes au lieu de suivre rsync con cp -al . Voir la page de manuel et des tutoriels comme celui-ci pour les détails.

Vous pourriez obtenir un peu plus de vitesse en désactivant le journal d'ext3, bien que je ne le recommande pas car cela augmente le risque de sauvegardes endommagées si quelque chose ne va pas pendant une mise à jour.

Si vos sauvegardes comprennent des répertoires avec beaucoup de fichiers, alors vous pouvez trouver que le reformatage en ext4 ou l'utilisation de l'option dir_index avec ext3 peut améliorer les choses - mais dans les deux cas, vous devrez reformater pour voir tous les avantages, car le simple remontage du système de fichiers avec les nouvelles options ne convertira pas les structures existantes.

0voto

Sonamor Points 212

Envisagez d'utiliser rdiff-backup au lieu de rsync+cp. Il gère automatiquement les anciennes copies de fichiers, vous n'avez donc pas besoin de cp.

De la page rdiff-backup :

"Le répertoire cible finit par être une copie du répertoire source, mais les reverse diffs supplémentaires sont stockés dans un sous-répertoire spécial de ce répertoire cible, de sorte que vous pouvez toujours récupérer les fichiers perdus il y a quelque temps."

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