Je prévois de sauvegarder mes disques durs volumineux en rsync
prévoyant que cela prendra quelques jours. Est-il prudent d'utiliser le disque dur d'origine (ajout de fichiers) pendant qu'il rsync
fonctionne? Ou est-il préférable de laisser les disques durs intacts jusqu'à la rsync
fin?
27
Réponses:
Comme d'autres l'ont déjà souligné, il est prudent de lire à partir du disque source ou d'utiliser le disque cible en dehors du répertoire cible lorsque rsync est en cours d'exécution. Il est également sûr de lire dans le répertoire cible, surtout si le répertoire cible est rempli exclusivement par l'exécution de rsync.
Ce qui n'est généralement pas sûr, c'est d' écrire dans le répertoire source pendant que rsync est en cours d'exécution. "Écriture" désigne tout ce qui modifie le contenu du répertoire source ou de l'un de ses sous-répertoires, ainsi les mises à jour de fichiers, les suppressions, la création, etc.
Cela ne casse rien, mais la modification peut ou non être récupérée par rsync pour être copiée vers l'emplacement cible. Cela dépend du type de changement, si rsync a déjà analysé ce répertoire particulier et si rsync a déjà copié le fichier ou le répertoire en question.
Cependant, il existe un moyen simple de contourner ce problème : une fois l'opération terminée, exécutez à nouveau rsync avec les mêmes paramètres. (À moins que vous n'ayez un paramètre de suppression funky; si vous le faites, soyez un peu plus prudent.) Cela entraînerait une nouvelle analyse de la source et le transfert de toutes les différences qui n'auraient pas été détectées lors de l'exécution initiale.
La deuxième exécution ne doit transférer que les différences qui se sont produites lors de la précédente exécution de rsync et, en tant que telles, se terminerait beaucoup plus rapidement. Ainsi, vous pouvez utiliser l'ordinateur normalement lors de la première utilisation, mais évitez autant que possible de modifier la source lors de la deuxième utilisation. Si vous le pouvez, envisagez fortement de remonter le système de fichiers source en lecture seule avant de lancer la deuxième exécution de rsync. (Quelque chose comme
mount -o ro,remount /media/source
devrait faire.)la source
@reboot root find / -print &>/dev/null
de ma crontab système, pour remplir le cache. (L'entrée réelle est plus complexe pour prendre en compte quelques cas particuliers sur mon système particulier.) Elle utilise un peu de RAM et une certaine heure wallclock tôt après le démarrage pour améliorer l'analyse de l'arborescence de répertoires un peu moins.updatedb
(construction de la base de données de localisation) ouslocate -u
(idem si vous avez slocate) à la place? De cette façon, vous mettez toujours en cache la hiérarchie, mais vous créez également les bases de données de localisation ou de slocate, ce qui vous permet d’utiliser ces commandes pour trouver rapidement de nombreux fichiers?Cela dépend du système de sauvegarde que vous utilisez, mais en général, il est déconseillé de modifier le contenu d'un périphérique pendant la sauvegarde. Cependant, vous pouvez en lire le contenu. c'est une opération sûre, même si cela ralentit le processus.
Dans votre cas,
rsync
créera une liste de fichiers puis lancera la sauvegarde. Par conséquent, aucun fichier ajouté au disque dur source après le début de la sauvegarde ne sera copié.Ce que je fais est de ne pas utiliser de périphérique du tout pendant une sauvegarde. C'est le moyen le plus sûr d'obtenir une sauvegarde rapide et cohérente.
la source
rsync
qui se terminera dans quelques secondes car seuls les fichiers que j'ai modifiés au cours de l'exécution seront copiés. Tout sera dans les caches, il est donc beaucoup plus facile de s’abstenir de modifications pendant cette période.Il est prudent de lire les données des zones sources en cours d’
rsync
exploitation, mais si vous mettez à jour quoi que ce soit, la copie quirsync
crée / met à jour risque d’être incohérente:Si vous mettez à jour un fichier que rsync a déjà analysé, la mise à jour ne sera pas visualisée avant une prochaine exécution. Si vous mettez à jour un fichier qui n'a pas encore été analysé, la modification sera respectée dans la destination. Si vous mettez à jour des fichiers qui ont été analysés et qui n’ont pas été analysés, vous obtiendrez un mélange d’anciennes et de nouvelles versions dans la destination.
Si vous ajoutez un fichier à un répertoire qui a déjà été analysé, il ne sera pas saisi de la copie de destination cette fois-ci. Si vous supprimez un fichier d'un répertoire qui a déjà été analysé, il restera cette fois dans la copie de destination. En fonction de la manière dont vous appelez,
rsync
toute l’arbre peut être analysé au début ou de manière incrémentielle au fur et à mesure que le processus de synchronisation se produit.Dans certaines circonstances
rsync
, vous verrez l'incohérence et vous avertir. Si vous supprimez un fichier ou un sous-répertoire d'un répertoire qui a déjà été analysé mais dont le contenu n'a pas été analysé, vous obtenez un message d'erreur indiquant que l'objet est manquant. Dans des circonstances similaires, il peut parfois (si la taille et / ou l'horodatage a changé) également avertir de la modification des fichiers en cours d'analyse.Pour certaines sauvegardes, cette incohérence peut ne pas être un problème majeur, mais dans la plupart des cas, il est recommandé de ne pas essayer de synchroniser une source en évolution active.
Si vous utilisez LVM pour diviser votre système de stockage, vous pouvez utiliser un instantané temporaire pour effectuer une sauvegarde ponctuelle. Cela nécessite que vous disposiez de suffisamment d'espace sur le groupe de volumes pour créer un volume d'instantané suffisamment grand pour contenir toutes les modifications qui surviendront pendant la durée pendant laquelle l'instantané est nécessaire. Consultez la documentation de LVM (ou l'un des nombreux exemples en ligne: recherchez "Sauvegarde d'instantané LVM" ou similaire) pour plus de détails.
Même sans LVM, certains systèmes de fichiers prennent en charge les instantanés - vous voudrez peut-être également examiner cette option.
Si vous souhaitez sauvegarder de gros volumes actifs sans interruption prolongée et que vous ne pouvez pas utiliser d'instantanés, il peut suffire d'exécuter l'analyse "en direct", puis d'arrêter l'accès au volume et d'exécuter un autre processus rsync, qui peut prendre beaucoup moins de temps (si nécessaire). très peu de choses ont changé, il suffit de parcourir l’arborescence puis les quelques fichiers mis à jour). De cette façon, la durée pendant laquelle vous devriez éviter les changements pourrait être beaucoup plus courte.
la source
Le disque dur source peut tout lire pendant la synchronisation.
Le disque dur source peut écrire n’importe quel contenu non lié au contenu de rsync.
Le disque dur de destination peut tout lire pendant la synchronisation.
Le disque dur de destination peut écrire n’importe quoi pendant la synchronisation avec la condition d’avoir suffisamment d’espace réservé pour le contenu synchronisé.
Bien sûr, dans tous les cas, il y aura une réduction des performances.
la source
Toutes les réponses actuelles parlent de sécurité des données en termes de cohérence et d’assurance d’un matériel parfait.
Une autre chose à considérer est la sécurité du matériel lui-même. Si vous possédez des disques durs non sauvegardés qui risquent d’être en panne (vous ne le savez peut-être même pas encore) et que vous effectuez une première sauvegarde complète, ne l’utilisez pas. Ne le montez même pas si les données sont critiques. Vous pouvez utiliser un outil tel que
dd
cloner le disque en tant que périphérique bloc. Ce que vous ne voulez pas que la tête de disque recherche, et éventuellement écrit pendant que vous essayez de faire une sauvegarde. Dedd
plus, la sauvegarde initiale devrait être plus rapide car elle copie simplement les bits dans l’ordre (si le lecteur n’est pas entièrement plein, je suppose que rsync gagnerait également dans le cas initial).Pour les sauvegardes incrémentielles ultérieures, rsync est un excellent choix et je suis d’accord à 100% avec les autres réponses.
la source
dd
n’est pas le meilleur choix. Utilisezddrescue
plutôt il gère beaucoup mieux les échecs partiels. Mais ce n'était pas une considération dans la question initiale.