Gibt es eine funktionierende Linux-Backup-Lösung, die inotify verwendet?

17

Das Sichern dauert ewig. Wäre es nicht schön, wenn es einen Daemon geben würde, der inotify verwendet, um nachzuverfolgen, welche Dateien tatsächlich geändert wurden, damit Backups schneller ausgeführt werden können, bevor wir btrfs oder ZFS für die Sicherung inkrementeller Snapshots vertrauen können? Wo ist dieses Programm?

Wie kann ich meine Linux-Box sichern, ohne jedes Mal das gesamte Dateisystem durchsuchen zu müssen? Ich hätte gerne ein Programm, das die neuen oder geänderten Fotos, den Quellcode usw. erkennt und sie in die Warteschlange stellt, damit sie auf mein NAS kopiert werden können.

joeforker
quelle
Sie haben hier nicht wirklich viele Informationen angegeben, insbesondere darüber, was Sie derzeit zum Sichern verwenden und welche Art von Daten. Es gibt verschiedene Sicherungsprogramme, die Journale verwenden, um Änderungen am Dateisystem zu verfolgen und dann während einer Sicherung auf dieses Journal zu verweisen. Was genau versuchen Sie zu sichern, auf welche Art von Gerät / Anwendung, welche Art von Daten und wie sichern Sie diese aktuell?
WerkkreW
@WerkkreW, ich glaube nicht, dass das, was er zu sichern versucht, so wichtig ist. Ich vermute, dass alles, was eine ereignisbasierte Sicherung ermöglicht, interessant wäre, etwas darüber zu erfahren. Die Anfrage ist nicht ungewöhnlich, OSX hat eine ereignisbasierte Zeitmaschine.
Zoredache
Ich bin immer noch der Meinung, dass die Frage etwas genauer geklärt werden muss, bevor sie beantwortet werden kann.
WerkkreW
1
@Zoredache, natürlich ist das, was ich sichern möchte, wichtig! Wenn es nicht wichtig wäre ... oh warte ;-) Ich möchte mein Home-Verzeichnis sichern, ohne eine unbrauchbare Maschine für die n Stunden zu haben, die Rsync für das Crawlen des Ganzen benötigt, wenn das einzige neue Zeug ein Set ist von Fotos von meinem Neugeborenen.
JoeForker
3
Die Frage scheint mir völlig klar zu sein: Das Time Machine-Backup von Mac OS X ist schnell, da es mehrere Überwachungsschritte ausführt, damit es weiß, wo es beim Ausführen eines Backups zu suchen ist. Linux hat inotify, eine ähnliche Funktion wie fsevents, und dennoch sind Linux-Backup-Lösungen, die versuchen, Time Machine zu approximieren (z. B. Dirvish), miserabel langsam, weil sie inotify nicht nutzen. Gibt es welche, die das tun?
Bendin

Antworten:

11

Ich habe meine eigene Frage mit "yum search inotify" beantwortet. Es heißt lsyncd und wird auf Google Code gehostet.

Leider sieht es so aus, als würde immer zuerst eine vollständige Synchronisierung ausgeführt, sodass es mir immer noch nichts ausmacht, wenn mein Computer nicht länger als 14 Stunden am Stück eingeschaltet wäre.

Lsyncd verwendet rsync, um lokale Verzeichnisse mit einem Remote-Computer zu synchronisieren, auf dem rsyncd ausgeführt wird. Lsyncd überwacht mehrere Verzeichnisbäume durch Inotify. Der erste Schritt nach dem Hinzufügen der Überwachungen besteht darin, alle Verzeichnisse mit dem Remote-Host zu synchronisieren und dann eine einzelne Datei durch Sammeln der inotify-Ereignisse zu synchronisieren. Lsyncd ist also eine leichte Live Mirror-Lösung, die einfach zu installieren und zu verwenden ist und sich gut in Ihr System einfügt. Ausführliche Informationen zu den Befehlszeilenoptionen finden Sie unter lsyncd --help.

joeforker
quelle
Das ist eine interessante Verbindung, ich hatte sogar darüber nachgedacht, sie selbst umzusetzen. Aber warum heißt es auf der Seite, dass bei jeder Änderung große Dateien erneut übertragen werden? Ich dachte rsync selbst würde das schon vermeiden?
Hanno Fietz
rsync muss die gesamte Datei auf beiden Seiten erneut lesen, um sie so effizient wie möglich zu übertragen. In der lsyncd-Dokumentation wird darauf hingewiesen, dass dies bei großen Dateien möglicherweise nicht effizient ist. Für große Dateien wäre ein Replikationsschema auf Blockebene besser geeignet.
Joeforker
3

Es gibt ein neues System mit dem Namen fsnotify, das entwickelt wurde, um die Mängel zu beheben. Es inotifywurde eingeführt, um die Probleme von zu lösen dnotify. fsnotifylässt Sie ein gesamtes Dateisystem ohne viel Aufhebens ansehen. Hoffentlich fsnotifyhelfen wir Ihnen dabei, all unsere zukünftigen Linux-Backup-Probleme zu lösen.

joeforker
quelle
2

Sie können etwas mit Incron hacken .

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

hayalci
quelle
incron kann Verzeichnisse nicht rekursiv
überwachen
na duh! es schien sehr nützlich: -S
Hayalci
2

Basierend auf Recherchen (keine Tests) scheint es, dass inotify die sehr große Anzahl von Dateien auf den meisten Systemen nicht verarbeiten kann und / oder dies sehr langsam ist. Der Thread unter http://www.pubbs.net/kernel/200905/109416/ war der nützlichste. Er wies auf eine neue Linux-Funktion hin, die in fsnotify (Linux 2.6.31) zu sein scheint oder in Richtung Mainline geht und später.

user26055
quelle
2

Lsyncd synchronisiert den gesamten überwachten Baum beim Start, da dies in 99% der Fälle sinnvoll ist. Sie möchten das Verzeichnis auf dem Zielhost auf dem lokalen Host haben, da andernfalls die Synchronisierung möglicherweise fehlschlägt und Sie Dinge synchronisieren möchten, die Sie im ausgeschalteten Zustand verpasst haben. Wenn Sie jedoch wissen, was Sie tun, können Sie die Startsynchronisierung deaktivieren. Legen Sie einfach die Synchronisierung {..., startup = false} in der Lsyncd-Konfigurationsdatei fest.

In Bezug auf Inotify ist es nicht die Anzahl der Dateien, sondern die Anzahl der Verzeichnisse, die Ressourcen verbrauchen. Ein Verzeichnis ist eine Überwachung, unabhängig davon, wie viele Dateien es enthält.

fanotify, das auf fsnotify aufbaut, wie inotify, sah für die Leute, die Unmengen von Verzeichnissen beobachten, sehr vielversprechend aus, aber derzeit, ab Linux 2.6.37, meldet fanotify überhaupt keine Umbenennungsereignisse (Verschiebungsereignisse), was es für einen Job wie diesen unbrauchbar macht :-(

Axkibe
quelle
Nicht einmal als Löschung gefolgt von einer Erstellung?
Joeforker
1
Nicht in meinen Tests, nein :-( fanotify wurde mit Blick auf den Virenschutz entwickelt, und IMHO ist genau auf das erforderliche Minimum zugeschnitten.
Axkibe
1

Ich habe 6 Monate lang nach der besten Lösung gesucht, um das zu tun, was Sie versuchen. Effizientes Backup auf ein NAS. Nach der ersten Synchronisierung ist alles andere glatt wie Butter. Die neueste Version von Lsyncd funktioniert ganz gut. Ich habe dokumentiert, was ich in der Verbindung unten getan habe. Ersetzen Sie einfach Ihre Ordnerwerte. Hoffe das hilft:

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

Bobo
quelle