Come funziona Time Machine

Di tutte le novità che Leopard ha introdotto nell’utilizzo quotidiano del Mac, forse Time Machine è la più complessa, pur se altrettanto semplice da usare. Il rivoluzionario backup automatico integrato non necessita di configurazioni da esperto e crea una copia di sicurezza di tutto il possibile, e di tutto quello che viene modificato sul Mac, spazio su disco permettendo.
La differenza principale tra Time Machine ed un tradizionale software di backup sta nell’approccio con l’utente, un classico programma di backup è costantemente al centro dell’attenzione dell’utente, Time Machine ha un solo obiettivo: farsi dimenticare.
Ormai in molti già lo usano, spesso dopo una diffidenza iniziale, e chi lo usa (ovviamente su un HD aggiuntivo) se n’è già dimenticato.
Ma come funziona realmente Time Machine? Cosa nasconde tutta quella semplicità e dove sono veramente i nostri file che ci appaiono candidamente nell’HD come se fosse grande decine di Terabyte?
In tutta onestà finora non ce lo siamo mai chiesti, ma non è mai troppo tardi.

…Segue

Anatomia di un backup.
Per il cominciare Time Machine copia tutti i contenuti del computer sul disco di destinazione, preferibilmente un disco grande e veloce, meglio se interno. In seguito viene effettuato il backup dei soli file che vengono modificati dall’ultimo backup, che di default cade ogni ora.
Nella cartella Backups.backupdb crea la cartella Computer e dentro varie cartelle identiche, cambia solo il nome formato da “anno-mese-giorno-oraminutisecondi”. Capeggia su tutte l’alias “Latest”, che si riferisce ovviamente all’ultimo backup.
All’interno di queste ordinatissime cartelle, apparentemente sembrano esserci tutte le copie dei nostri file, ma sappiamo che matematicamente è impossibile, per questioni fisiche di spazio sull’HD.
E qui scatta la magia.
È un complesso gioco di link (anche se a noi sembrano cartelle e file reali) in un tortuoso labirinto dove le copie temporali dei file si incrociano tra link. Se si avvia da un precedente Sistema Operativo, come Tiger, tutto il grosso sembrerebbe risiedere in .HFS+ Private Directory Data, dove nelle migliaia di cartelle sono presenti i file realmente copiati e quelli modificati.

Infatti se questo è quanto appare sotto Leopard:


questo invece è quanto ci viene mostrato da Tiger e precedenti:


Time Machine fa uso dell’hard linking, che a differenza degli alias utilizzano un approccio del tipo “inganno l’utente su ciò che non è cambiato”, nel senso che Time Machine effettua la copia cieca nella nuova “fotografia di backup” solo di ciò che è effettivamente cambiato rispetto all’ultimo passaggio. Ciò che non è cambiato, non viene assolutamente ricopiato: Time Machine crea degli hard link verso la risorsa (file o directory) originale permettendo di far un uso migliore delle risorse di memorizzazione aumentando i riferimenti alla risorsa puntata senza sprecare altro spazio (dati) su disco, come invece farebbe un normale link simbolico (alias).

Per questo motivo Apple ha deciso di limitare le possibilità di personalizzazione del programma e di consentire o meno il backup su determinati dischi.
Script come TM Manager, del giovane Antonello Migliorelli, ci permettono di scavalcare i limiti imposti dai programmatori Apple, e “liberare” Time Machine sui dischi di rete ufficialmente non supportati; ma attenzione però, il backup per essere affidabile deve essere eseguito su dischi di rete che abbiano le caratteristiche tecniche indispensabili al corretto funzionamento di Time Machine.
Molto probabilmente le caratteristiche richieste sono il formato HFS+ e sul NAS un protocollo di rete AFP recentissimo.
Qualsiasi altro tipo di configurazione dei dischi può provocare i seguenti malfunzionamenti di Time Machine:
1) Il backup semplicemente non viene eseguito;
2) I vecchi backup non vengono eliminati;
3) Pur funzionando apparentemente non riesce a ripristinare i file totalmente i file e le cartelle.

Si ringrazia Michelangelo per aver affrontato il 2 Novembre 2007 l’argomento nell’articolo “Time Machine: una bazzecola” (aggiornamento: leggi commento in basso) e noi ce ne accorgiamo solo oggi!
😉

—Oracle

Un commento a “Come funziona Time Machine”

  1. Purtroppo l’articolo di Michelangelo è andato perso, ma ne avevo conservato una copia nei miei appunti!
    😉

    2 Novembre 2007 @13:30Time Machine: una “bazzecola”

    Post di Michelangelo con tag Apple, Hard link, Leopard, Link, MacOS X, Multi link, Soft link, Symlink, Time Machine, Unix
    L’altro giorno sulla lista del mio gruppo utenti Mac (iMaccanici) si è scatenata una discussione su come funzionasse questo malefico Time Machine a corredo di Leopanz.

    Il funzionamento dell’amenicolo è alquanto semplice seppur inconsueto rispetto ai normali sistemi di backup in uso sui sistemi *nix.

    Cerco di essere breve: alla prima iterazione di Time Machine il sistema effettua la copia “para para” della sorgente di cui effettuare il backup (e vorrei vedé), creando sul disco di destinazione una cartella ad hoc chiamata “Backups.backupdb” dentro la quale viene creata una cartella per ogni macchina che effettua backup. Dentro queste cartelle verranno ficcati tutti i file di backup organizzati per data.

    Comunque: ad ogni iterazione Time Machine fa una fotografia del sistema organizzando i dati all’interno di una cartella nomenclata con la data/ora del momento in cui è stato fatto il backup; e qui casca l’asino.

    Chi vede le cartelle organizzate in siffatto vede delle vere e proprie fotografie, delle copie perfette, di ciò che era il sistema nel preciso istante in cui è avvenuto il passaggio di Time Machine, tanto che qualcuno potrebbe pensare qualcosa del tipo “Eccecazz’, mi copia sempre il contenuto del sistema sul disco anche se non è cambiato niente? Bello spreco…“. Giusta osservazione, tant’è che tecnicamente è proprio così, solo che c’è l’inghippo.

    Il furbacchione fa uso del vecchio trucco dell’hard linking che a differenza del nome provocatorio non è un nuovo genere di film porno, utilizzando un approccio del tipo “inganno l’utente su ciò che non è cambiato“, nel senso che Time Machine effettua la copia cieca nella nuova fotografia di backup solo di ciò che è effettivamente cambiato rispetto all’ultimo passaggio. Ciò che, al contrario, non è cambiato non viene assolutamente ricopiato: Time Machine crea degli hard link verso la risorsa (file o directory) originale.

    Perché questo? Perché un hard link, rispetto ai più “umani” link simbolici, permette di non sprecare spazio e di far un uso migliore delle risorse di memorizzazione aumentando i riferimenti alla risorsa puntata senza sprecare altro spazio (dati) su disco come invece farebbe un normale link simbolico (”alias” per i compaesani Mac).

    Qualcuno però potrebbe obiettare: “Eh, vabé, ma se devi puntare ad un’intera directory, come fai con gli hard link?”: verissimo. Gli hard link in quasi tutti i sistemi operativi moderni non possono puntare a directory (vedi il problema padre-figlio ricorsivo all’infinito) ma MacOS X 10.5 lo permette grazie all’espediente dei multilink: hardlink “multipli” che possono puntare anche a directory. Il sistema permette la creazione di questo tipo di link proprio perché, rispetto all’operatore umano, questi vengono creati e gestiti in modo automatico e “sicuro”.

    E’ da ribadire quindi il fatto che Time Machine non effettua un backup incrementale o differenziale in senso stretto: se si ha un file di 10GB e di questo file cambia un solo bit Time Machine lo ricopierà interamente nel backup successivo.

    Certo, non è il massimo della tecnologia, mi aspettavo una gestione molto più sofisticata ma d’altra parte per com’è stato progettato anche “concettualmente” tutto il sistema questa è di certo una buona soluzione. Non vedo l’ora di provare “Time Machine 2″ grazie agli snapshot di ZFS.;)

I commenti sono stati chiusi.