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

18

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

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

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

Стивен Дарлингтон
источник

Ответы:

20

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

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

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

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

Командир Кин
источник
На самом деле, журналы не просто используются Time Machine. И именно ваш Mac может объявить старые журналы недействительными. Вы можете fseventsdвыполнить поиск в консоли, чтобы увидеть «журнал событий / Тома / .. не синхронизирован с томом. Уничтожает старые журналы». Вновь созданный журнал также будет иметь новый идентификатор, который больше не будет соответствовать идентификатору, сохраненному в резервной копии. Это говорит Time Machine сравнить ваш жесткий диск с последней резервной копией. Если используется несколько резервных дисков, то, если fseventsdсоздается новый журнал, Time Machine в конечном итоге столкнется с «UUID хранилища событий не совпадают» для каждого резервного диска.
Арджан
Монтирование диска в Windows с использованием драйвера файловой системы для чтения / записи, такого как MacDrive, также запустит полное сканирование файловой системы при следующем резервном копировании Time Machine. (С другой стороны, монтировать диск с помощью драйвера файловой системы, доступной только для чтения, в Boot Camp)
Brant
10

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

Chealion
источник
1
+1 - отличная статья!
Командир Кин
Отличная статья. Хотел бы я отметить два ответа как принятые!
Стивен Дарлингтон
У Ars Technica есть еще одна хорошая статья, но я думаю, что ссылка на Earthling Soft охватывает все: arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars/14 И для разработчиков, читающих это: см. практическое
занятие
10

Чтобы легко просмотреть 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, поскольку удаленный диск не будет размонтирован должным образом.)

Если вы используете разреженный пакет (например, при использовании резервной копии в сети), то любое освободившееся пространство не будет восстановлено автоматически (или: не до тех пор, пока пространство не потребуется). Для обеспечения этого, см Как восстановить все / большинство свободного пространства от sparsebundle на 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, устанавливая расширенный атрибут com.apple.metadata:com_apple_backup_excludeItemв своих файлах. Как и до версии 1.1.2 VMware Fusion: blogs.vmware.com/teamfusion/2008/04/vmware-fusion-1.html См. Также 10.5: Показать файлы, которые Time Machine не создает резервные копии, на macosxhints.com/article. php? story = 20080328025026826, которая включает ссылку на исключения машины времени на shifttedbits.org/2007/10/31/time-machine-exclusion
Арджан,
См. Superuser.com/questions/35152/… для получения более подробной информации о запуске Time Machine от имени root в Snow Leopard.
Арьян
1

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

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

Паулс
источник