I backup completi periodici sono davvero necessari in una configurazione di backup incrementale?


2

Intendo utilizzare un vecchio computer che ho come server di backup remoto per me e alcune altre persone. Siamo tutti geograficamente separati e il piano è di fare backup giornalieri incrementali usando rsync e ssh.

La mia idea originale era di fare un backup completo iniziale, quindi non dovermi più occupare del sovraccarico di farlo, e da quel momento in poi copiare solo i file modificati dall'ultimo backup.

Mi è stato detto che questo potrebbe essere cattivo, ma non riesco a capire perché. Dal momento che ogni istantanea è composta da collegamenti fisici ai file non modificati e da quelli modificati originali, non sarà identico a un nuovo backup completo? Perché dovrei voler fare un altro backup completo?

MODIFICARE:

Avrei dovuto spiegare meglio un punto. Quando intendo lo farò incrementale backup usando rsync, voglio dire questo:

rsync -avh --delete --link-dest=./remote/previous_increment ./local/ ./remote/new_increment

Il che risulta su un'istantanea completa e funzionante, dal momento che conterrà collegamenti fisici a tutti i file non modificati. Anche se il backup completo e tutti quelli incrementali precedenti vengono eliminati, l'ultimo incrementale è ancora coerente. Ma sono abbastanza sicuro che se uno qualsiasi dei file precedenti viene danneggiato, anche gli ultimi lo saranno, dal momento che puntano allo stesso inode.

Cosa succede se eseguo periodicamente un backup completo sintetico lato server, interrompendo i collegamenti sull'ultima istantanea e copiandoli su un'altra HD protetta da scrittura (ad esempio una volta al mese). In questo modo avrei una copia completa ridondante e eviterei comunque il sovraccarico di re-invio dei file.

Questo risolverebbe il problema? Avrei ancora bisogno di fare backup completi?


Direi di sì - nel caso in cui il backup completo originale fallisse.
Journeyman Geek

1
Affidabilità. Se il tuo backup originale o uno qualsiasi dei tuoi incrementali vengono corrotti, il tuo backup è potenzialmente inutile e potresti anche non esserti preoccupato affatto. Dovresti avere regolari backup incrementali e completi.
Mokubai

Ho capito, ha senso. Ho modificato la domanda, pensi che il problema verrebbe risolto con i backup sintetici lato server?
rgcalsaverini

Questo sembra esattamente ciò che è diretto ( dirvish.org ) è destinato a fare.
jia103

Risposte:


6

Normalmente se si eseguono backup incrementali, si archiviano solo i file effettivamente modificati in qualche modo (come un archivio tar) mentre si hanno i file non modificati solo nei precedenti file di backup. In questo modo avresti bisogno di tutti i file di backup per un recupero e non potresti mai eliminare i vecchi backup. Dato che non è praticabile, è necessario creare nuovi backup completi dopo un po 'di tempo.

Quello che state usando è più avanzato (rsnapshot?), Dove si memorizza sempre un set completo di dati, ma si mantiene il minimo in termini di costi condividendo i dati tra i backup attraverso l'uso di collegamenti fisici. In questo modo è possibile eliminare i vecchi backup senza invalidare quelli correnti. Quindi la solita argomentazione non conta.

Modificare:

rsnapshot funziona così:

La prima volta crea solo una copia completa usando rsync.

Qualsiasi backup successivo crea un nuovo albero di directory completo in cui tutti i file sono hardlinks al backup precedente. Successivamente i file modificati vengono sostituiti eseguendo rsync su questo albero.

Quindi ogni backup è completo, ma condivide i dati con i backup più vecchi. Se si elimina un backup precedente, vengono eliminati solo i file diversi in tutti gli altri backup. Per i file condivisi, solo il conteggio del collegamento reale verrebbe ridotto di 1.

Il sovraccarico di un backup è l'albero delle directory aggiuntivo che utilizza naturalmente anche uno spazio. Ma puoi cancellare vecchi alberi di backup senza influenzare quelli rimanenti per recuperare quello spazio.

La descrizione della tua strategia di backup suona come rsnapshot per me.

Edit2:

Se si è interessati al bit-rot, cioè che i file di backup esistenti sono corrotti, è possibile aggiungere l'opzione -c a rsync che crea checksum MD5 su file locali e remoti. Ciò aumenterebbe significativamente l'I / O del disco in quanto ogni file dovrebbe essere letto. Ma il traffico di rete aumenta solo leggermente, in quanto solo i checksum di ogni file devono essere trasmessi in aggiunta. Ciò rimuoverebbe l'ultima ragione per un nuovo backup completo.


Non ho mai sentito di rsnapshot prima, ma hai ragione, è esattamente quello che sto facendo con rsync da solo. Ho modificato la domanda, pensi che risolva il problema?
rgcalsaverini

Questa è una grande idea e migliorerebbe notevolmente la coerenza del backup! Quindi, secondo te, con questa strategia non sarebbero necessari ulteriori backup completi?
rgcalsaverini

Un secondo livello di backup può migliorare la sicurezza, ad esempio la copia di un albero di backup su un altro disco rigido. In caso di sfortuna, il backup è stato corrotto prima che il server si arrestasse. Ma non puoi mai essere sicuro al 100%.
Michael Suelmann

1

Backup incrementale, ovvero utilizzo rsync, è un processo più complicato di un backup statico, cioè utilizzando cp. Alcune persone credono che il backup incrementale abbia maggiori probabilità di essere danneggiato.

  1. Il fallimento potrebbe essere nello strumento stesso; rsync su Windows è noto per essere traballante, e a volte cancella i file dal backup quando non dovrebbe.

  2. Se lo strumento di backup memorizza solo la differenza binaria tra le versioni di un file, la perdita di una versione intermedia del file può rendere impossibile la ricostruzione della versione finale del file.


Qualunque sia la tua soluzione di backup, testarlo regolarmente ripristinando una copia dei dati dal backup.


1. Grazie, bello saperlo. 2. Non memorizza tutti i file modificati e gli hard link a quelli non modificati, quindi ogni snapshot è coerente.
rgcalsaverini

1

Penso che ci sia stato un errore di comunicazione.

Il più delle volte quando sento backup completi e backup incrementale le persone significano:
Completo: esegue il backup di tutti i dati.
Incrementale: esegue solo il backup delle modifiche.

Se è necessario ripristinare un backup, si inizia con il backup completo e quindi tutti gli incrementali. Questo può richiedere molto tempo. Questo è uno dei motivi per cui molte aziende eseguono backup completi nel fine settimana e parziali durante i giorni feriali. Fino a cinque parti parziali è gestibile.

Ora rsync di solito non esegue backup parziali. Se invia solo le modifiche sulla rete, ma il risultato finale è una copia completa di tutti i dati. Quindi la ragione più usata per non usare solo partial non si applica.


Si noti che è una buona idea avere almeno due backup. Uno conosciuto e uno funzionante. Alternare tra questi due, o fare e testare un backup annuale, impostarlo solo in lettura e utilizzare altri backup fino al prossimo anno. Quindi ripetere.


Ottimo consiglio sui backup alternativi. Qualche ragione per essere annuale? Posso fare un backup completo sintetico una volta al mese, archiviarlo su anoter HD e impostarlo in sola lettura?
rgcalsaverini

Non c'è motivo per essere annuale tranne che per selezionare un periodo regolare. Usavo 1) nastri settimanali (backup completi) e amp; nastri giorno (lunedì - giovedì incrementale 2) 4 nastri settimanali diversi (# settimana in mese). 3) Backup dell'intero mese (archiviati fuori sede) 4) backup dell'intero anno (conservati in un caveau in un altro edificio). Tutto questo potrebbe essere un po 'troppo per i backup non lavorativi. :)
Hennes

Hehe si, sono solo alcuni dati personali regolari. Ho modificato la mia domanda, ma il punto principale è: Se tengo i backup completi ridondanti generati dal lato server da quelli incrementali, devo ancora fare periodicamente backup completi dai dati originali?
rgcalsaverini
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.