Que fait Time Machine?

18

Parfois, OS X me dit que c'est "Préparer la sauvegarde ..." pendant une énorme période de temps. Le temps qu'il faut semble n'avoir aucune corrélation avec la quantité de données à sauvegarder. Idem pour l'étape "Finition de la sauvegarde ...".

La question: que fait OS X quand il s'agit de "Préparer la sauvegarde ..." et "Fin de la sauvegarde ..."?

Je sais qu'il s'agit de déterminer ce qu'il faut sauvegarder, puis d'enregistrer les modifications, mais le temps que cela prend devrait être proportionnel à la quantité de données qui ont changé. Il y a beaucoup d'espace disque (donc je suppose qu'il ne supprime pas les anciennes sauvegardes). J'utilise une TimeCapsule si cela fait une différence. Rien ne va mal avec ça, je suis juste curieux.

Stephen Darlington
la source

Réponses:

20

Voici une réponse d'un autre forum (affiche originale inconnue de moi):

L'étape de "préparation" dans Time Machine est généralement rapide, car Time Machine utilise un journal des activités du système de fichiers pour savoir où trouver les modifications qui doivent être sauvegardées.

Mais il y a des choses que vous pouvez faire pour rendre ce journal non fiable. Lorsque Time Machine découvre que le journal PEUT ne pas être valide, il effectue une analyse complète de votre système de fichiers pour déterminer ce qui doit vraiment être sauvegardé. Cela peut prendre un certain temps. Sur mon Powerbook (et avec un lecteur Time Machine externe Firewire), cela peut entraîner une étape de "préparation" qui dure 20 minutes. Si vous laissez Time Machine continuer, il finira par comprendre ce qui doit vraiment être ajouté au disque de sauvegarde et continuera. Bien sûr, cela vaut mieux que de simplement jouer le journal est correct ou simplement sauvegarder TOUT à nouveau, même si seuls quelques fichiers peuvent avoir changé (ce qui prendrait beaucoup plus de temps et consommerait plus d'espace disque Time Machine).

Au début des installations de Leopard, l'une des choses les plus courantes que vous pouvez faire pour rendre le journal non fiable est le démarrage à partir du DVD d'installation de Leopard. Chaque fois que vous faites cela, la prochaine fois que Time Machine s'exécute, il découvrira que votre disque dur POURRAIT avoir été modifié sans que les changements soient reflétés dans le journal. Il effectue donc le scan complet - une longue étape de "préparation" - pour s'assurer qu'il fait bien les choses.

Commandant Keen
la source
En fait, les journaux ne sont pas uniquement utilisés par Time Machine. Et c'est votre Mac qui peut déclarer les anciens journaux invalides. Vous pouvez rechercher dans la console pour fseventsdvoir «journal des événements / Volumes / .. désynchronisé avec le volume. Destruction des anciens journaux». Un journal nouvellement créé aura également un nouvel identifiant, qui ne correspondra plus à l'ID stocké avec la sauvegarde. Cela indique à Time Machine de comparer votre disque dur avec la dernière sauvegarde. Si l'on utilise plusieurs disques de sauvegarde, alors si fseventsdun nouveau journal est créé, Time Machine finira par se retrouver dans un "UUID de magasin d'événements ne correspondant pas" pour chaque disque de sauvegarde.
Arjan
Le montage du lecteur sous Windows à l'aide d'un pilote de système de fichiers en lecture / écriture tel que MacDrive déclenchera également une analyse complète du système de fichiers la prochaine fois que Time Machine le sauvegardera. (Le montage du lecteur à l'aide du pilote de système de fichiers en lecture seule dans Boot Camp, en revanche, ne le fait pas)
Brant
10

Pour complimenter la réponse du commandant Keen, je recommande de lire en détail Time Machine de Earthling Soft. De plus, plus d'informations sont consignées dans system.log par backupd (ce qui indiquera pourquoi l'état de préparation est si long et tel)

Chealion
la source
1
+1 - excellent article!
Commandant Keen
Excellent article. J'aimerais pouvoir marquer deux réponses comme acceptées!
Stephen Darlington
Ars Technica a un autre bon article, mais je suppose que le lien Earthling Soft a couvert tout: arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars/14 Et pour les développeurs qui lisent ceci: voir une expérience pratique sur developer.apple.com/mac/articles/cocoa/filesystemevents.html
Arjan
10

Pour afficher facilement le backupdjournal, jetez un œil au widget Time Machine Buddy . Notez également qu'il existe un autre journal sur le disque de sauvegarde lui-même, dans le fichier caché .Backup.logqui se trouve dans le dossier de chaque sauvegarde. Cela donne d'autres informations que les backupdjournaux.

Notez que souvent les journaux affichent des chiffres qui ne semblent pas correspondre:

Aucun amincissement de pré-sauvegarde nécessaire: 821,4 Mo demandés (y compris le remplissage) [..]
1630 fichiers copiés (3,8 Mo) à partir du volume Macintosh HD.

Ci-dessus, moins de fichiers sont réellement copiés que prévu. Comme Time Machine s'appuie sur FSEvents qui ne signale que les répertoires modifiés, je suppose que dans l'exemple ci-dessus, ces répertoires contenaient un total de 821,4 Mo dans les fichiers. Lors de la copie effective des fichiers, Time Machine compare ensuite les répertoires modifiés sur le disque dur avec la sauvegarde et constate que seuls 3,8 Mo de fichiers ont été réellement modifiés.

Pour voir ce qui a été écrit dans la sauvegarde, voir TimeTracker (GUI) ou timedog (ligne de commande). Notez que, même lors de l'exécution en tant qu'utilisateur administrateur, ces programmes doivent parfois être exécutés en tant que root pour voir tous les fichiers. Dans le cas contraire, ces outils pourraient par exemple ne pas prendre en compte les sauvegardes des journaux et données MySQL, détenus par _mysql dans la roue de groupe :

cd "/ Volumes / Sauvegarde de XX / Backups.backupdb / XX / Latest"
sudo ls -l "Macintosh HD / usr / local / mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x --- @ 6 _mysql wheel 374 juil 2 20:05 données

Dans ces cas, les deux outils signalent (en silence) une taille de sauvegarde totale inférieure et moins de fichiers que les backupdjournaux de la console. Donc, si les chiffres ne correspondent pas aux journaux, alors pour TimeTracker:

sudo ~ / Téléchargements / TimeTracker.app / Contenu / MacOS / TimeTracker

De même, pour timedog:

cd "/ Volumes / Sauvegarde de XX / Backups.backupdb / XX" 
sudo ~ / Téléchargements / timedog

Pour trouver facilement des fichiers volumineux sur votre disque dur voir Disk Inventory X . Ce programme n'a rien à voir avec Time Machine, mais peut aider à étudier les problèmes, comme lorsque vous vous demandez pourquoi votre sauvegarde est beaucoup plus petite que l'espace utilisé sur votre disque dur. Notez que ce programme rapportera probablement toujours moins d'espace disque total dans son titre de fenêtre que dans son écran où l'on peut sélectionner le disque à étudier (même en exécutant en tant que root et en choisissant le menu Affichage, Afficher la taille du fichier physique). Mais si la taille totale signalée est vraiment beaucoup plus petite que les totaux réels utilisés sur votre Mac, il peut être utile de s'exécuter en tant que root:

sudo "$ HOME / Téléchargements / Inventaire de disque X.app/Contents/MacOS/Disk Inventory X"

Pour supprimer des fichiers de la sauvegarde (comme si vous découvriez que Time Machine sauvegardait en fait des fichiers énormes, tels qu'un fichier journal MySQL incontrôlable), Apple écrit :

Vous souhaitez supprimer toutes les instances d'un fichier ou dossier précédemment sauvegardé? Assez facile. Lancez Time Machine, sélectionnez l'élément à supprimer, puis choisissez «Supprimer de toutes les sauvegardes» dans le menu d'action de la barre d'outils du Finder.

Maintenant, si les fichiers que vous souhaitez supprimer ne sont visibles que pour root, vous devez également invoquer "Enter Time Machine" en tant que root. Et cela nécessite que le Finder soit lancé en tant que root en premier:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Cela ressemble à un Finder normal, mais vous remarquerez la racine à côté de l'icône du dossier de départ dans la barre latérale du Finder. Utilisez maintenant Shift-Cmd-G (menu Go, Go to Folder) pour accéder, par exemple, /usr/localau dossier dans lequel vous souhaitez supprimer les fichiers du disque de sauvegarde. Ensuite, entrez Time Machine (et validez à nouveau que la racine est affichée à côté de l'icône du dossier de base) et suivez les instructions d'Apple. Lorsque vous avez terminé de supprimer les fichiers de la sauvegarde, appuyez sur Ctrl-C dans Terminal pour arrêter le Finder racine. (J'ai également dû me déconnecter de mon Mac car le disque distant ne se démontait pas correctement.)

Si vous utilisez un bundle clairsemé (comme lors de l'utilisation d'une sauvegarde sur le réseau), tout espace libéré ne sera pas récupéré automatiquement (ou: pas avant que l'espace ne soit nécessaire). Pour appliquer ce sujet , voir comment récupérer tous / plus d' espace libre d'un sparsebundle sur OS X . Cela ne s'applique pas uniquement aux fichiers que vous avez supprimés manuellement, mais également aux fichiers supprimés par Time Machine pour les sauvegardes horaires ou quotidiennes expirées, lors de l'amincissement post-sauvegarde .

Time Machine compactera en fait le bundle clairsemé lui-même, lorsque l'espace disque sera épuisé. Mais il semble qu'il puisse d'abord supprimer certaines anciennes sauvegardes lors de l'amincissement avant la sauvegarde , il est donc peut-être sage de compacter manuellement si vous avez déjà supprimé des fichiers volumineux, ou si les sauvegardes expirées peuvent avoir inclus des fichiers volumineux:

Démarrage de l'éclaircie pré-sauvegarde: 53,57 Go demandés (y compris le remplissage) 
    9,90 Go disponibles 
Aucune sauvegarde expirée n'existe - suppression des sauvegardes les plus anciennes pour faire de la place 
Sauvegarde supprimée / Volumes / Sauvegarde de XX / Backups.backupdb / XX / 2007-12-20-172543:
    9,90 Go maintenant disponibles 
Sauvegarde supprimée / Volumes / Sauvegarde de XX / Backups.backupdb / XX / 2007-12-31-005523:
    9,90 Go maintenant disponibles 
Suppression de 2 sauvegardes: la plus ancienne sauvegarde date maintenant du 8 janvier 2008 
Arrêt de la sauvegarde. 
Sauvegarde annulée. 
Image disque Time Machine éjectée. 
Compactage de l'image du disque de sauvegarde pour récupérer de l'espace libre 
Compaction d'image disque de sauvegarde terminée 
Démarrage de la sauvegarde standard
[..]
Démarrage de l'éclaircie pré-sauvegarde: 53,57 Go demandés (y compris le remplissage) 
    12,75 Go disponibles

Un grand merci à Adam Cohen-Rose pour avoir testé ce qui précède; voir son blog pour plus de détails!

Arjan
la source
Certains logiciels peuvent s'exclure de la sauvegarde Time Machine, en définissant l'attribut étendu com.apple.metadata:com_apple_backup_excludeItemsur ses fichiers. Comme les versions antérieures à 1.1.2 de VMware Fusion: blogs.vmware.com/teamfusion/2008/04/vmware-fusion-1.html Voir aussi 10.5: Afficher les fichiers que Time Machine ne sauvegarde pas sur macosxhints.com/article. php? story = 20080328025026826 qui inclut un lien vers exclusions Time Machine sur shiftedbits.org/2007/10/31/time-machine-exclusions
Arjan
Voir superuser.com/questions/35152/… pour plus de détails sur l'exécution de Time Machine en tant que root dans Snow Leopard.
Arjan le
1

Lorsqu'il est coincé dans "Préparation" (ThinningPreBackup)

root# tmutil status
Backup session status:
{
    BackupPhase = ThinningPreBackup;
    ClientID = "com.apple.backupd";
    DateOfStateChange = "2018-10-20 12:02:54 +0000";
    DestinationID = "XXXXXX0A-1XB7-4X3B-A791-6XXXXX4325D89B";
    DestinationMountPoint = "/Volumes/TimeMachineXXX";
    Percent = "-1";
    Running = 1;
    Stopping = 0;
}

Utilisez lsof pour voir à quels fichiers les sauvegardes ont accès - le dernier fichier devrait changer:

root# ps -ef | grep backupd
    0    91     1   0  9:39pm ??         0:00.15 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper -launchd
    0   552     1   0  9:59pm ??         0:49.54 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
    0  1244  1156   0 10:30pm ttys003    0:00.01 grep backupd
root# lsof -p 552
COMMAND PID USER   FD   TYPE DEVICE   SIZE/OFF     NODE NAME
backupd 552 root  cwd    DIR    1,4       1292        2 /
backupd 552 root  txt    REG    1,4     769168 67640888 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
backupd 552 root  txt    REG    1,4   26771408 67698052 /usr/share/icu/icudt59l.dat
backupd 552 root  txt    REG    1,4     236208 67730774 /private/var/db/timezone/tz/2018e.1.0/icutz/icutz44l.dat
backupd 552 root  txt    REG    1,4     841456 67695858 /usr/lib/dyld
backupd 552 root  txt    REG    1,4 1174183936 69140457 /private/var/db/dyld/dyld_shared_cache_x86_64
backupd 552 root    0r   CHR    3,2        0t0      306 /dev/null
backupd 552 root    1u   CHR    3,2        0t0      306 /dev/null
backupd 552 root    2u   CHR    3,2        0t0      306 /dev/null
backupd 552 root    3w   REG    1,9        686  5515544 /Volumes/TimeMachine2/Backups.backupdb/XXXXXXXXXX/2018-10-20-220254.inProgress/.Backup.561729775.162983.log
backupd 552 root    4r   DIR    1,4        136 68977542 /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/tvOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreLocation.framework/English.lproj

Cela indique qu'il fait quelque chose - et d'être patient ...

PaulS
la source