Що робить Time Machine?


18

Іноді OS X каже мені, що це "Підготовка резервного копіювання ..." протягом величезної кількості часу. Час, який потрібно, здається, не має відношення до кількості резервних даних. Те саме для етапу "Завершення резервного копіювання ..."

Питання: що робить OS X, коли це "Підготовка резервного копіювання ..." та "Завершення резервного копіювання ..."?

Я знаю, що з'ясовувати, що створити для резервного копіювання, а потім записати зміни, але, безумовно, час, який потрібно, повинен бути пропорційним кількості даних, які змінилися. Є багато місця на диску (тому я припускаю, що це не видалення старих резервних копій). Я використовую TimeCapsule, якщо це має значення. З цим нічого не піде, мені просто цікаво.

Відповіді:


20

Ось відповідь з іншого форуму (оригінальний невідомий мені плакат):

Етап "підготовки" у Time Machine зазвичай швидкий, оскільки Time Machine використовує журнал діяльності файлової системи, щоб знати, де знайти зміни, які потрібно створити резервну копію.

Але ви можете зробити так, щоб цей журнал був недостовірним. Коли Time Machine виявить, що журнал MIGHT може бути недійсним, він здійснює повне сканування вашої файлової системи, щоб визначити, що потрібно створити резервну копію. Це може зайняти деякий час. У моїй книзі Powerbook (і із зовнішнім приводом брандмауера Time Machine) це може призвести до етапу "підготовки", який триватиме 20 хвилин. Якщо ви дозволите Time Machine продовжуватись, з часом з’ясується, що насправді потрібно додати до резервного диска, і продовжить. Це, звичайно, краще, ніж просто грати в журнал, чи правильно, або просто робити резервне копіювання ВСЕЩЕ знову, хоча лише декілька файлів насправді могли змінитися (що зайняло б набагато більше часу і зайняло більше місця на диску на Time Machine).

У перші дні встановлення Leopard одна з найпоширеніших речей, яку ви можете зробити, що зробить журнал неправдивим - завантаження з встановленого DVD Leopard. Кожен раз, коли ви це зробите, під час наступного запуску Time Machine виявиться, що ваш жорсткий диск MIGHT був змінений без змін, відображених у журналі. Тож робиться повне сканування - тривалий етап "підготовки", щоб гарантувати, що все налагодиться правильно.


Власне, журнали використовуються не просто Time Machine. І саме ваш Mac може визнати старі журнали недійсними. Ви можете шукати в консолі, fseventsdщоб побачити "вхід подій / томи / .. не синхронізовані з томом. Знищення старих журналів". Щойно створений журнал також матиме новий ідентифікатор, який більше не буде відповідати ідентифікатору, збереженому в резервній копії. Це говорить Time Machine, щоб порівняти ваш жорсткий диск з останньою резервною копією. Якщо використовується декілька резервних дисків, тоді, якщо fseventsdстворений новий журнал, то Time Machine з часом наткнеться на "UUID-файли магазину подій не відповідають" для кожного резервного диска.
Ар'ян

Встановлення накопичувача в Windows за допомогою драйвера файлової системи читання / запису, такого як MacDrive, також призведе до повного сканування файлової системи наступного разу, коли Time Machine створить резервну копію. (Монтаж накопичувача за допомогою драйвера файлової системи для читання в Boot Camp, з іншого боку, не працює)
Brant

10

Щоб похвалити відповідь командира Кіна, рекомендую глибоко ознайомитися з машиною часу від Earthling Soft. Додатково більше інформації записується до system.log за допомогою резервного копіювання (що скаже, чому статус підготовки такий довгий і такий)


1
+1 - відмінна стаття!
Командир Кін

Чудова стаття. Бажаю, щоб я міг відзначити дві відповіді як прийняті!
Стівен Дарлінгтон

У Ars Technica є ще одна добра стаття, але я думаю, що посилання Earthling Soft охопило все: arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars/14 А для розробників, які читають це: див. a hands-on на developer.apple.com/mac/articles/cocoa/filesystemevents.html
Arjan

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 / Останні"
sudo ls -l "Macintosh HD / usr / local / mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x --- @ 6 _mysql колесо 374 2 липня 20:05 дані

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

sudo ~ / Завантаження / TimeTracker.app / Зміст / MacOS / TimeTracker

Точно так само для timedog:

cd "/ Томи / Резервне копіювання XX / Backups.backupdb / XX" 
sudo ~ / Завантаження / timedog

Щоб легко знайти великі файли на жорсткому диску см Disk Inventory X . Ця програма не має нічого спільного з Time Machine, але може допомогти розслідувати проблеми, як, наприклад, коли ви замислюєтесь, чому ваша резервна копія набагато менша, ніж місце, яке використовується на жорсткому диску. Зауважте, що ця програма, ймовірно, завжди повідомляє менше загального дискового простору у своєму заголовку вікна, ніж на екрані, де можна вибрати, який диск слід досліджувати (навіть при запуску в якості кореня та виборі меню Перегляд, Показати фізичний розмір файлу). Але якщо повідомлений загальний розмір дійсно набагато менший від фактичних підсумків, використовуваних на вашому Mac, то це може допомогти запустити як root:

sudo "$ HOME / Завантаження / Інвентар диска X.app/Contents/MacOS/Disk Inventory X"

Щоб видалити файли з резервної копії (наприклад, якщо ви виявите, що Time Machine насправді створює резервну копію величезних файлів, таких як утікаючий файл журналу MySQL), Apple пише :

Хочете видалити всі екземпляри файлу чи папки, які раніше були створені? Досить просто. Запустіть машину часу, виберіть елемент, який потрібно видалити, а потім виберіть "Видалити з усіх резервних копій" у меню дій на панелі інструментів Finder.

Тепер, якщо ті файли, які ви хочете видалити, видно лише корінь, тоді вам слід також застосувати "Ввести машину часу" як корінь. І для цього потрібно запустити Finder спочатку як root:

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

Це виглядає як звичайний Finder, але ви помітите корінь поруч із піктограмою домашньої папки на бічній панелі Finder. Тепер використовуйте Shift-Cmd-G (меню «Перейти», «Перейти до папки»), щоб, наприклад, перейти до /usr/localта знайти папку, з якої потрібно видалити файли з резервного диска. Потім введіть Time Machine (і ще раз підтвердіть, що корінь відображається поруч із піктограмою домашньої папки) та дотримуйтесь інструкцій Apple. Завершивши видалення файлів із резервної копії, натисніть Ctrl-C у Terminal, щоб зупинити root-Finder. (Мені також потрібно було вийти з комп’ютера, оскільки віддалений диск не буде відключений належним чином.)

Якщо ви використовуєте розріджений пакет (наприклад, при використанні резервної копії в мережі), то будь-який звільнений простір не буде відтворений автоматично (або: не до необхідності місця). Для забезпечення цього, см Як відновити все / більшість вільного простору від 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, який включає посилання на Виключення машин часу за адресою Shiftsbits.org/2007/10/31/time-machine-excitions
Arjan

Дивіться superuser.com/questions/35152/… для отримання більш детальної інформації про запуск Time Machine як корінь у 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

Це вказує на те, що щось робить - і набратися терпіння ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.