Esiste una soluzione di backup Linux funzionante che utilizza inotify?


17

Ci vuole un'eternità per eseguire il backup. Prima di poterci affidare a btrfs o ZFS per il backup di istantanee incrementali, non sarebbe bello se ci fosse un demone che usava inotify per tenere traccia di quali file erano effettivamente cambiati in modo che i backup fossero eseguiti più rapidamente? Dov'è questo programma?

Come posso eseguire il backup della mia casella Linux senza dover eseguire la scansione dell'intero filesystem ogni volta? Vorrei un programma che rilevasse le foto nuove o modificate, il codice sorgente, ecc. E le mettesse in coda per essere copiate sul mio NAS.


Non hai davvero fornito molte informazioni qui, in particolare per quanto riguarda ciò che stai attualmente utilizzando per il backup, che tipo di dati. Esistono diversi software di backup che utilizzano i journal per tenere traccia delle modifiche al filesystem e quindi fare riferimento a quel journal durante un backup. Cosa stai esattamente cercando di eseguire il backup, su quale tipo di dispositivo / applicazione, qual è la natura dei dati e qual è il tuo metodo attuale per il backup?
WerkkreW,

@WerkkreW, non credo che ciò che sta cercando di eseguire il backup sia così importante. Sospetto che qualsiasi cosa che consenta il backup basato su eventi sia interessante da conoscere. La richiesta non è insolita, OSX ha una macchina del tempo basata sugli eventi.
Zoredache,

Sento che la domanda necessita di ulteriori chiarimenti prima di poter rispondere.
WerkkreW,

1
@Zoredache, ovviamente quello di cui sto eseguendo il backup è importante! Se non fosse importante ... oh aspetta ;-) Voglio eseguire il backup della mia directory home senza avere una macchina inutilizzabile per le n ore che ci vorrebbe perché rsync eseguisse la scansione di tutto, quando l'unica cosa nuova è un set di foto del mio bambino appena nato.
joeforker,

3
La domanda mi sembra perfettamente chiara: il backup di Time Machine di Mac OS X è veloce perché monitora gli eventi in modo da sapere dove cercare quando esegue un backup. Linux ha inotify, una funzione simile a fsevents, eppure le soluzioni di backup di Linux che tentano di approssimare Time Machine (ad es. Dirvish) sono miseramente lente perché non sfruttano l'inotify. Ce ne sono?
Bendin,

Risposte:


11

Ho risposto alla mia domanda con "yum search inotify". Si chiama lsyncd ed è ospitato su codice google.

Sfortunatamente sembra che prima esegua sempre una rsync completa, quindi non mi aiuterebbe ancora se il mio computer non fosse acceso per più di 14 ore alla volta.

Lsyncd utilizza rsync per sincronizzare le directory locali con una macchina remota che esegue rsyncd. Lsyncd guarda gli alberi di più directory attraverso inotify. Il primo passo dopo aver aggiunto gli orologi è risincronizzare tutte le directory con l'host remoto, quindi sincronizzare un singolo file raccogliendo gli eventi inotify. Quindi lsyncd è una soluzione leggera a specchio live che dovrebbe essere facile da installare e utilizzare mentre si fonde bene con il sistema. Vedi lsyncd --help per le opzioni dettagliate della riga di comando.


È un collegamento interessante, avevo persino pensato di implementarlo da solo. Ma perché dice sulla pagina che ritrasferirà file di grandi dimensioni per ogni modifica? Pensavo che rsync stesso lo avrebbe già evitato?
Hanno Fietz,

rsync deve ancora rileggere l'intero file su entrambe le estremità per trasferirlo nel modo più efficiente possibile. La documentazione di lsyncd intende affermare che ciò potrebbe non essere efficace per file di grandi dimensioni. Per file di grandi dimensioni sarebbe più appropriato uno schema di replica a livello di blocco.
joeforker,

3

Esiste un nuovo sistema chiamato fsnotifyprogettato per risolvere le carenze di inotifycui è stato introdotto per risolvere i problemi dnotify. fsnotifyti permette di guardare un intero filesystem senza troppi problemi. Speriamo che fsnotifypossa aiutare a risolvere tutti i nostri futuri problemi di backup di Linux.


2

Puoi hackerare qualcosa con incron .

 / path1 IN_CLOSE_WRITE rsync -au $ @ / $ # backuphhost: / percorso


incron non può guardare ricorsivamente le directory
joeforker,

bene, duh! mi è sembrato molto utile: -S
hayalci

2

In base alla ricerca (non ai test) sembra che inotify non sia in grado di gestire un numero molto elevato di file sulla maggior parte dei sistemi e / o sia molto lento nel farlo. Il thread su http://www.pubbs.net/kernel/200905/109416/ è stato il più utile, ha indicato una nuova funzionalità di Linux che sembra essere in linea o diretto verso mainline, fsnotify, che è in Linux 2.6.31 e più tardi.


2

Lsyncd sincronizza l'intero albero guardato all'avvio, perché per il 99% dei casi questa è la cosa sensata da fare. Vuoi la directory sull'host di destinazione che hai sull'host locale, altrimenti la sincronizzazione potrebbe non riuscire e vuoi sincronizzare le cose che hai perso mentre era spento. Tuttavia, se sai cosa stai facendo, puoi disattivare la sincronizzazione all'avvio, basta impostare sync {..., startup = false} nel file di configurazione di Lsyncd.

per quanto riguarda inotify, non è il numero di file ma il numero di directory che consumano risorse. Una directory è un watch, indipendentemente dal numero di file che contiene.

fanotify basandosi su fsnotify come inotify sembrava molto promettente per le persone che guardavano tonnellate di directory, ma attualmente su Linux 2.6.37 fanotify non riporta affatto eventi di rinomina (sposta), rendendolo inutilizzabile per un lavoro come questo :-(


Nemmeno come cancellazione seguita da una creazione?
joeforker,

1
no nei miei test, no :-( fanotify è stato progettato pensando allo scudo virus, e l'IMHO è su misura proprio ora esattamente al minimo richiesto.
axkibe,

1

Ho trascorso 6 mesi alla ricerca della migliore soluzione per eseguire ciò che stai cercando di fare; backup efficiente su un NAS. Dopo la sincronizzazione iniziale, tutto il resto è liscio come il burro. L'ultima versione di Lsyncd funziona abbastanza bene. Ho documentato ciò che ho fatto nel seguente link. Basta sostituire i valori della cartella. Spero che sia di aiuto:

https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit


0

esiste un nuovo sistema utilizzato in Asia, chiamato sersync che invece di inotify-tool + risoluzione rsync http://code.google.com/p/sersync/ è molto facile da usare.

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.