File system deduplicato a livello di blocco


8

Sto cercando una soluzione deduplicante di filesystem copy-on-write per dati di utenti generali come /homee backup di esso. Dovrebbe utilizzare la deduplicazione online / in linea / sincrona a livello di blocco utilizzando l'hash sicuro (per probabilità trascurabile di collisioni) come SHA256 o TTH . I blocchi duplicati non devono nemmeno toccare il disco.

L'idea è che dovrei essere in grado di copiare /home/<user>su un HDD esterno con lo stesso filesystem per fare un backup. Semplice. Non si scherza con i backup incrementali in cui la corruzione a una qualsiasi delle istantanee interromperà quasi sempre tutte le istantanee successive e non sarà necessario utilizzare uno strumento specifico per eliminare o "estrarre" un'istantanea. Tutto dovrebbe semplicemente essere fatto dal browser dei file senza preoccupazioni. Riesci a immaginare quanto sarebbe facile? Non dovrei mai più pensarci due volte sul backup!

Non mi dispiace un colpo di prestazione, l'affidabilità è la preoccupazione principale. Anche se, con le implementazioni specifiche di cp, mve scp, e un plugin per il browser di file, queste operazioni sarebbero molto veloce, soprattutto quando c'è un sacco di doppioni come avrebbero solo bisogno di trasferire i blocchi assenti. L'uso accidentale di strumenti di copia convenzionali che non si integrano con FS richiederebbe semplicemente più tempo, sprecando un po 'di larghezza di banda durante la copia in remoto e sprecando parte della CPU, poiché i dati duplicati sarebbero riletti, trasferiti e rielaborati (anche se nulla sarebbe riscritto), ma non corromperà assolutamente nulla. (Alcuni software di condivisione file possono anche essere in grado di trarre vantaggio dall'integrazione con FS.)

Qual è il modo migliore per farlo?

Ho esaminato alcune opzioni:

  • lessfs - Sembra non mantenuto. Nulla di buono?
  • Opendedup / SDFS - Java? Potrei usarlo su Android ?! Cosa significa SDFS ?
  • Btrfs - Alcune patch che fluttuano negli archivi delle mailing list, ma non supportano realmente.
  • ZFS - Si spera che un giorno si riconsegneranno con una vera licenza compatibile GPL gratuita / opensource.

Inoltre, 2 anni fa ho tentato in Python di utilizzare Fuse a livello di file per essere utilizzato sopra un solido FS tipico come EXT4, ma ho trovato Fuse per Python non documentato e non sono riuscito a implementare tutte le chiamate di sistema.


Non è un file system, ma potresti voler esaminare lo strumento di backup Obnam rilasciato di recente .
JanC

@ JanC: Grazie, sembra proprio che il software di backup sia stato eseguito correttamente! Evita questo: "Non si scherza con i backup incrementali in cui il danneggiamento di una qualsiasi delle istantanee interromperà quasi sempre tutte le istantanee successive", ma non questo: "e non è necessario utilizzare uno strumento specifico per eliminare o" estrarre "un snapshot. ". Sicuramente una buona scoperta però! Potrei essere in grado di lavorare con alcuni dei codici Python. :-)
James Haigh l'

@JamesHaigh Potresti voler pubblicare questa idea anche su Ubuntu BrainStorm ; se non l'hai già fatto.
Samik,

@JamesHaigh una delle cose sulla roadmap di Obnam è un filesystem basato su miccia (ma non credo che ci sia una sequenza temporale che mostri quando aspettarselo). Ciò avvicinerebbe "nessuno strumento aggiuntivo".
JanC

Se si desidera evitare la corruzione di un backup rompendo questi ultimi, è sufficiente eseguire un backup incrementale multi generazionale. Invece di fare un pieno di domenica e un differenziale giornaliero che è sempre relativo al giorno prima, ad esempio, mercoledì fai un backup incrementale rispetto a quello completo di domenica (piuttosto che martedì). Quindi, se martedì è danneggiato, non ti interessa poiché se si dispone del backup di mercoledì, si salta lunedì e martedì durante il ripristino.
psusi,

Risposte:


1

Sembra molto impresa (come in costoso).

datadomain offre la deduplicazione dei dati, e forse netapp con il loro filesystem wafl. Ma ad un costo elevato.

Un'alternativa "libera" potrebbe essere zfs.

Secondo me, tuttavia, l'alternativa "migliore" e più linux, sebbene a livello di file anziché a "livello di blocco", sarebbe rsnapshot. Utilizza rsync e hardlink per gestire il controllo delle versioni.

Preferisco fidarmi dei vecchi strumenti comprovati piuttosto che usare un nuovo filesystem come Btrfs che non è stato in giro abbastanza a lungo per consentire alle persone di scoprire tutti i tipi di bug cattivi.


Enterprise? No, è più il tipo di cosa che mi aspetto di vedere di default in Ubuntu in futuro grazie alla sua semplice facilità d'uso. Ho menzionato ZFS ma è CDDL, quindi non gratuito con la maiuscola F. rsnapshotnon è un filesystem, è più di un hack per portare funzionalità simili a istantanee ai filesystem legacy, non crea snapshot "reali" (le snapshot dovrebbero essere atomiche ) ed è incrementale (vedere il secondo paragrafo). Preferirei usare un FS relativamente nuovo piuttosto che qualcosa che usa incrementali.
James Haigh,

Immagino che "livello di file" sia un po 'ambiguo, ma ho visto il termine usato nel contesto di filesystem insieme a livello di blocco, livello di byte e livello di bit. Questo era il contesto in cui lo intendevo.
James Haigh,

1
@JamesHaigh Secondo la Free Software Foundation , il CDDL è una licenza gratuita (come in libertà), non è compatibile con GPL . Ciò significa che il codice CDDL (come l'implementazione ufficiale di ZFS) e il codice GPL (come il kernel Linux) non possono essere legalmente collegati insieme e poiché i driver in Linux sono generalmente collegati come moduli, ciò ostacola il supporto CDDL nei sistemi operativi basati su Linux.
Eliah Kagan,

2
ZFS su Linux probabilmente (dipende da chi chiedi) aggira questo problema essendo distribuito separatamente . In alternativa, FUSE consente ai "driver" di filesystem di operare nello spazio utente dove non è necessario collegarsi al kernel e esiste anche una versione FUSE di ZFS . Quindi hai più opzioni per usare i filesystem ZFS su sistemi operativi come Ubuntu che usano Linux come loro kernel. (Alcuni sistemi operativi, come Debian, ti consentono di usare un kernel diverso.)
Eliah Kagan,

1

Sto cercando e indagando esattamente allo stesso modo, potrei suggerire https://attic-backup.org/quickstart.html#automating- backups per ora, sembra essere abbastanza semplice e buono per i backup di Linux.

C'è anche una bacula con questa funzione, ma la soffitta sembra essere abbastanza buona per la maggior parte dei casi.

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.