Je tente d'optimiser la sauvegarde quotidienne d'un instantané LVM d'une grande base de données MySQL. Cela fonctionne assez bien lorsque je me contente de cp
les fichiers (RAID local vers un autre RAID local), avec une vitesse moyenne d'environ 100 Mo/s. Mais comme les fichiers de la base de données (600 Go, la plupart étant dans deux fichiers de 350 Go et 250 Go) ne changent pas beaucoup au cours d'une journée, j'ai pensé qu'il serait plus efficace de ne copier que les blocs modifiés.
Je suis en train d'utiliser
rsync --safe-links --inplace -crptogx -B 8388608 /source/ /destination/
Cela a fonctionné, mais c'était plus lent que la simple copie, et je n'ai pas vu d'activité de lecture sur le disque cible. Je pensais que rsync lirait des blocs (8 Mo) à partir de la source et de la destination, comparerait leurs sommes de contrôle et ne copierait le bloc source dans le fichier cible que s'il avait changé. Me trompé-je ici ? Pourquoi est-ce que je ne vois pas rsync lire à partir de la destination pour déterminer si les blocs ont changé ?
Voici quelques graphiques :
Utilisation du disque : vous voyez que rsync --inplace (seulement fait pour le plus gros fichier le dernier jour) a réduit le "creux" dans l'utilisation du disque de /mnt/backup, ce qui signifie qu'il a effectivement mis à jour le fichier existant sur place.
Stats IO : la sauvegarde est faite de sda vers sdb. En quelque sorte, il y a un pic énorme de lectures à partir de la source, suivi de l'activité normale de lecture(source)+écriture(cible). Je m'attendais à des lectures simultanées à partir des deux périphériques avec peu d'activité d'écriture sur la cible.