Utilizzo di hard link NTFS per combinare backup completi / differenziali


17

Breve: è possibile (robo) copiare un albero di directory usando collegamenti reali anziché copia fisica?

Voglio fare un backup giornaliero dei miei file di dati, ogni giorno nella sua directory. Ora la maggior parte dei file non cambia ogni giorno, quindi la mia idea per accelerare il backup e utilizzare meno spazio su disco è stata quella di copiare il backup da (giorno 1) a (giorno) utilizzando collegamenti fissi, quindi utilizzare robocopy per sostituire i file che hanno cambiato da ieri. In questo modo avrei solo bisogno di copiare il backup completo una sola volta sull'unità USB, in seguito avrei potuto semplicemente copiare le modifiche e avere ancora directory contenenti tutti i file, condividendo i file con altri backup usando hard link. In questo modo ho ottenuto due backup completi, ma utilizza solo lo spazio file per uno + differenziale e i file di backup sono accessibili senza bisogno di software speciale, il che è un grande vantaggio per me.

È possibile?
Esiste un programma per creare copie hard link di tutti i file in un albero di directory?
Mi sto perdendo qualche trappola di cui non sono a conoscenza?


Questo può essere fatto come si trova qui: blog.mutable.net/post/2007/01/17/…
Bryan

Risposte:


9

C'è un modo per fare i backup come dici tu, ma non credo solo con Robocopy.

Esistono diversi programmi che collegheranno in modo rigido o eseguiranno il backup di dedupie e saranno efficienti in termini di spazio.

Ecco alcuni programmi che ho usato o incontrato:

  • Dupemerge - gratuito - Pur non essendo un "programma di backup", è un hard linker di massa.
  • backup hardlink - gratuito per uso personale - utilizza hard link
  • Duplicati - gratuito - (dedupi che credo come fa rsync)
  • rdiff-backup - gratuito - dedupi come rsync

Credo che ciò che può essere adatto alle tue domande sia Dupemerge. È possibile che Robocopy esegua un file batch per copiare il contenuto in una directory (es. D: \ backups \ YYYY-MM-DD). Al termine di tale comando, il file batch potrebbe chiamare Dupemerge su d: \ backups. Sarebbe difficile collegare i file all'interno e attraverso tutte le sottodirectory di d: \ backups.

Il rovescio della medaglia di questo è che avresti bisogno di spazio sufficiente sull'esterno per contenere il backup unhardhard appena creato. Dopo l'esecuzione di Dupemerge, il backup appena creato sarà fortemente collegato e lo spazio verrà liberato.

Ciò semplificherebbe il ripristino poiché ogni directory datata sembra avere un backup completo.

Come nota a margine, se hai intenzione di utilizzare hard link, mi piace Link Shell Extension . Ti aiuta a sapere ciò che non è collegato, che cos'è ea cosa è collegato.

Ho incontrato altri programmi hard link o deduping, ma mi sono piaciuti di più.


5
+1 Per avere una raccolta decente e menzionare LSE. Tuttavia, hai dimenticato il singolo strumento che dà all'OP quasi esattamente ciò che vuole: ln.exela Delorean Copy ln.exe è scritta dalla stessa persona che scrive sia Dupemerge che LSE. Tutto ciò che manca è il supporto VSS e ... oh guarda! Eccoci qui! ;-)
Afrazier

@afrazier buona chiamata con Delorean Copy. Sembra che Delorean Copy abbia alcune buone funzionalità, anche che il sito Web è buono per le informazioni sui collegamenti NTFS, dovrei leggere di più. Sono sorpreso del limite di link 1023 su Delorean Copy, tuttavia, probabilmente non è un problema per la maggior parte. Dupemerge si collegherà a un altro file a 1022 collegamenti. Suppongo che il modo in cui funziona Delorian Copy, il collegamento a un file non di origine non sarebbe auspicabile? Dovrò leggere di più al riguardo. Ottimo consiglio
Scott McClenning,

2
Il limite di collegamento 1023 è un limite NTFS - L'attributo contatore contatore della voce della directory è solo 10 bit.
Afrazier

Ottimo riepilogo delle opzioni. Sfortunatamente la tua raccomandazione non soddisfa la richiesta del poster originale di copiare solo i file modificati su ogni backup successivo. Sembra ln.exeuna scommessa migliore.
Simon East,

C'è anche l' estensione Shell di collegamento degli stessi produttori ln.exeche forniscono un modo semplice per eseguire questo tipo di backup usando il mouse in Esplora risorse. Crea inoltre directory con data e ora per te durante il processo di backup.
Simon East,

1

BackupAssist ti consentirà esattamente ciò di cui hai bisogno. Il suo uso di hardlink è chiamato "Single Instance Store", ma in realtà è hard link sotto il cofano. Può essere utilizzato, tra le altre cose, per eseguire il backup su unità USB nel modo richiesto o in posizioni remote utilizzando rsync.


1

Abbiamo scritto il nostro strumento per quel tipo di lavoro. Si chiama ntfs-hardlink-backup: https://github.com/International-Nepal-Fellowship/Windows-Tools/tree/master/ntfs-hardlink-backup

Per la creazione di hardlink utilizza lo strumento ln di Hermann Schinagl: http://schinagl.priv.at/nt/ln/ln.html

Quindi potresti anche usarlo direttamente. È abbastanza potente


Si prega di citare le parti essenziali della risposta dai collegamenti di riferimento, in quanto la risposta può diventare non valida se le pagine collegate cambiano.
David Post


-3

C'è un difetto nella tua logica in primo luogo.

Se si creano collegamenti reali come può essere chiamato backup? una volta che il tuo file viene eliminato / danneggiato, anche il tuo cosiddetto backup procede in questo modo. Tutti i requisiti specificati sono generalmente coperti dal software di backup di oggi.

PS: NTFS non supporta gli hard link AFAK.


3
Spiacenti, la mia descrizione non era abbastanza chiara: creo una copia completa usando robocopy su un'unità USB esterna. Per il giorno successivo, creo una copia del collegamento reale, quindi sostituisco tutti i file che sono cambiati da ieri. Ora ho due copie complete sulla mia unità USB, ma al costo dello spazio di un completo + uno differenziale.
Sam,

4
Oh, e ovviamente NTFS supporta i collegamenti reali.
Sam,

1
La tecnica che descrivi è esattamente ciò che rsnapshot(sembra essere inattivo ATM) implementa nel sistema operativo Unixoid. È sicuramente possibile e funziona molto bene. Purtroppo per te rsnapshotnon funziona su Windows (ecco perché scrivo questo solo come commento). Ma le FAQ menzionano qualcosa sulla sincronizzazione remota dei client Windows. Se hai macchine Unixoid in giro, questo potrebbe funzionare per te. Non conosco alcun equivalente di Windows di rsnapshot.
Daniel Böhmer,

Non vedo alcun guadagno creando collegamenti reali a file invariati. I software di backup eseguono il backup in base al bit di archivio attivato / disattivato. Dovresti semplicemente copiare quei file che sono stati modificati dall'ultimo backup. Inoltre, ho avuto l'impressione che SOLO i file system Unix supportino hard link. Grazie per avermelo fatto notare!
anilmwr,

@Halo Ho pensato che dovrebbe essere già usato in molti posti. Peccato che non avessi nessun computer Unix in giro, quindi dovrò aspettare qualcuno che lo sappia per Windows. Grazie per il testa a testa!
Sam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.