Что делает Машина Времени?

Иногда OS X говорит мне, что это "Подготовка резервной копии..." в течение огромного количества времени. Время, которое требуется, не имеет отношения к объему данных, подлежащих резервному копированию. То же самое для этапа "Завершение резервного копирования...".

Вопрос: что делает OS X, когда это "Подготовка резервного копирования..." и "Завершение резервного копирования..."?

Я знаю, что он выясняет, что делать резервное копирование, а затем записывает изменения, но, безусловно, время, которое требуется, должно быть пропорционально количеству измененных данных. Там достаточно места на диске (поэтому я предполагаю, что это не удаляет старые резервные копии). Я использую TimeCapsule, если это имеет какое-либо значение. С этим все в порядке, мне просто любопытно.

4 ответа

Решение

Вот ответ с другого форума (оригинальный постер мне неизвестен):

Этап "подготовки" в Time Machine обычно выполняется быстро, поскольку Time Machine использует журнал операций файловой системы, чтобы узнать, где найти изменения, для которых необходимо выполнить резервное копирование.

Но есть вещи, которые вы можете сделать, чтобы сделать этот журнал ненадежным. Когда Time Machine обнаруживает, что журнал МОЖЕТ быть недействительным, он выполняет полное сканирование вашей файловой системы, чтобы определить, что на самом деле необходимо сохранить. Это может занять некоторое время. На моем Powerbook (и с внешним приводом Time Machine от FireWire) это может привести к этапу "подготовки", который длится 20 минут. Если вы позволите Time Machine продолжить работу, он в конечном итоге определит, что действительно нужно добавить на диск резервного копирования, и продолжит работу. Это, конечно, лучше, чем просто воспроизвести правильный журнал или просто сделать резервную копию ВСЕГО, даже если на самом деле изменилось только несколько файлов (что заняло бы гораздо больше времени и заняло бы больше места на диске Time Machine).

В первые дни установки Leopard одна из наиболее распространенных вещей, которые вы можете сделать, чтобы сделать журнал ненадежным, - это загрузка с установочного DVD Leopard. Каждый раз, когда вы делаете это, в следующий раз при запуске Time Machine обнаруживается, что ваш жесткий диск МОЖЕТ быть изменен без изменений, отраженных в журнале. Таким образом, он выполняет полное сканирование - долгий этап "подготовки" - чтобы убедиться, что все правильно.

Чтобы легко просмотреть backupd Журнал взглянуть на виджет Time Machine Buddy. Также обратите внимание, что есть другой журнал на самом резервном диске, в скрытом файле .Backup.log который можно найти в папке каждой резервной копии. Это дает некоторую другую информацию, кроме backupd журналы.

Обратите внимание, что часто журналы показывают цифры, которые, кажется, не совпадают:

 Предварительное резервное копирование не требуется: запрошено 821,4 МБ (включая заполнение) [..]
Скопировано 1630 файлов (3,8 МБ) с тома Macintosh HD. 

Выше копируется меньше файлов, чем предполагалось. Поскольку Time Machine использует FSEvents, которая сообщает только об измененных каталогах, я предполагаю, что в приведенном выше примере эти каталоги содержали 821,4 МБ в файлах. При фактическом копировании файлов Time Machine сравнивает измененные каталоги на жестком диске с резервной копией и обнаруживает, что только 3,8 МБ файлы были фактически изменены.

Чтобы увидеть, что было записано в резервную копию, см. TimeTracker (GUI) или timedog (командная строка). Обратите внимание, что даже при запуске с правами администратора эти программы иногда нужно запускать с правами root, чтобы увидеть все файлы. Если этого не сделать, эти инструменты могут, например, не учитывать резервные копии журналов MySQL и данных, принадлежащих _mysql в групповом колесе:

 cd "/ Тома / Резервное копирование 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 июл 2 20:05 данные 

В этих случаях оба инструмента (молча) сообщат о меньшем общем размере резервной копии и меньшем количестве файлов, чем backupd логи в консоли. Итак, если числа не совпадают с журналами, то для TimeTracker:

 sudo ~ / Загрузки /TimeTracker.app/ Содержание /MacOS/TimeTracker 

Аналогично, для timedog:

 cd "/ Тома / Резервное копирование XX/Backups.backupdb/XX" 
sudo ~/ Загрузки / Timedog 

Чтобы легко найти большие файлы на вашем жестком диске, см. Disk Inventory X. Эта программа не имеет ничего общего с Time Machine, но может помочь в расследовании проблем, например, когда вы удивляетесь, почему ваша резервная копия намного меньше, чем место на жестком диске. Обратите внимание, что эта программа, вероятно, всегда будет сообщать о меньшем общем объеме дискового пространства в заголовке своего окна, чем на экране, где можно выбрать диск для исследования (даже при запуске от имени root и выборе меню View, Show Physical File Size). Но если указанный общий размер действительно намного меньше, чем фактические итоги, используемые на вашем Mac, то это может помочь запустить от имени пользователя root:

 sudo "$ HOME / Загрузки / Инвентаризация дисков X.app/Contents/MacOS/Disk Inventory X" 

Чтобы удалить файлы из резервной копии (например, если вы обнаружили, что Time Machine на самом деле выполняла резервное копирование некоторых огромных файлов, таких как файл журнала MySQL), Apple пишет:

Хотите удалить все экземпляры файла или папки, для которых ранее были созданы резервные копии? Достаточно просто. Запустите Time Machine, выберите элемент, который нужно удалить, затем выберите "Удалить из всех резервных копий" в меню действий на панели инструментов Finder.

Теперь, если те файлы, которые вы хотите удалить, видны только пользователю root, вы должны также вызвать "Enter Time Machine" в качестве пользователя root. И это требует, чтобы Finder был запущен с правами root:

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

Это похоже на обычный Finder, но вы увидите корневую папку рядом со значком домашней папки на боковой панели Finder. Теперь используйте Shift-Cmd-G (меню "Перейти", "Перейти к папке"), чтобы перейти, например, к /usr/local и найдите папку, из которой вы хотите удалить файлы с резервного диска. Затем введите Time Machine (и еще раз проверьте, что root отображается рядом со значком домашней папки) и следуйте инструкциям Apple. Когда вы закончите удаление файлов из резервной копии, нажмите Ctrl-C в Терминале, чтобы остановить root-Finder. (Мне также нужно было выйти из системы Mac, поскольку удаленный диск не будет размонтирован должным образом.)

Если вы используете разреженный пакет (например, при использовании резервной копии в сети), то любое освободившееся пространство не будет восстановлено автоматически (или: не до тех пор, пока пространство не потребуется). Чтобы применить это, посмотрите, Как освободить все / большинство свободного места от разреженного пакета на OS X. Это относится не только к файлам, которые вы удалили вручную, но и к файлам, удаленным с помощью Time Machine для истекших ежечасных или ежедневных резервных копий, во время прореживания после резервного копирования.

Time Machine фактически сжимает сам разреженный комплект, когда на диске заканчивается место. Но кажется, что он может сначала удалить некоторые старые резервные копии во время утончения перед резервным копированием, поэтому, возможно, было бы целесообразно сжимать вручную, если вы когда-либо удаляли огромные файлы, или если резервные копии с истекшим сроком действия могли содержать огромные файлы:

 Начало прореживания перед резервным копированием: запрошено 53,57 ГБ (включая заполнение), 
    9,90 ГБ доступно 
Резервных копий с истекшим сроком действия не существует - удаляются самые старые резервные копии, чтобы освободить место 
Удаленное резервное копирование / Тома / Резервное копирование XX/Backups.backupdb/XX/2007-12-20-172543:
    9,90 ГБ теперь доступно 
Удаленная резервная копия / Тома / Резервная копия XX/Backups.backupdb/XX/2007-12-31-005523:
    9,90 ГБ теперь доступно 
Удалено 2 резервные копии: самая старая резервная копия теперь 8 января 2008 г. 
Остановка резервного копирования. 
Резервное копирование отменено. 
Извлеченный образ диска Time Machine. 
Сжатие образа резервной копии для восстановления свободного места 
Завершено сжатие образа резервной копии диска 
Запуск стандартного резервного копирования
[..]
Начало прореживания перед резервным копированием: запрошено 53,57 ГБ (включая заполнение), 
    12,75 ГБ доступно 

Большое спасибо Адаму Коэн-Роузу за проверку вышеизложенного; смотрите его блог для более подробной информации!

В качестве дополнения к ответу коммандера Кина я рекомендую прочитать подробное описание Time Machine от Earthling Soft. Кроме того, дополнительная информация заносится в system.log с помощью backupd (что скажет, почему состояние подготовки такое длинное и такое)

Когда застрял в "Подготовка" (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;
}

Используйте lsof, чтобы увидеть, к каким файлам относятся резервные копии - последний файл должен измениться:

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

Это указывает на то, что он что-то делает - и быть терпеливым...

Другие вопросы по тегам