Existe-t-il une solution de sauvegarde Linux qui utilise inotify?

17

Il faut une éternité pour sauvegarder. Avant que nous puissions faire confiance à btrfs ou à ZFS pour sauvegarder des instantanés incrémentiels, ne serait-il pas bien qu'il y ait un démon qui utilisait inotify pour garder une trace des fichiers qui avaient réellement changé afin que les sauvegardes s'exécutent plus rapidement? Où est ce programme?

Comment puis-je sauvegarder ma box Linux sans avoir à explorer à chaque fois l'ensemble du système de fichiers? Je voudrais un programme qui détecterait les photos nouvelles ou modifiées, le code source, etc. et les mettrait en file d'attente pour être copié sur mon NAS.

joeforker
la source
Vous n'avez pas vraiment donné beaucoup d'informations ici, en particulier concernant ce que vous utilisez actuellement pour sauvegarder, quel type de données. Il existe plusieurs logiciels de sauvegarde qui utilisent des journaux pour suivre les modifications apportées au système de fichiers, puis qui se réfèrent à ce journal pendant une sauvegarde. Qu'essayez-vous exactement de sauvegarder, sur quel type d'appareil / d'application, quelle est la nature des données et quelle est votre méthode actuelle pour les sauvegarder?
WerkkreW
@WerkkreW, je ne pense pas que ce qu'il essaie de sauvegarder soit si important. Je soupçonne que tout ce qui permet une sauvegarde basée sur des événements serait intéressant à connaître. La demande n'est pas inhabituelle, OSX a une machine à remonter le temps qui est basée sur les événements.
Zoredache
Je pense toujours que la question a besoin d'être clarifiée un peu avant d'y répondre.
WerkkreW
1
@Zoredache, bien sûr, ce que je sauvegarde est important! Si ce n'était pas important ... oh attendez ;-) Je veux sauvegarder mon répertoire personnel sans avoir une machine inutilisable pendant les n heures qu'il faudrait à rsync pour explorer le tout, quand le seul nouveau truc est un ensemble de photos de mon nouveau-né.
joeforker
3
La question me semble parfaitement claire: la sauvegarde Time Machine de Mac OS X est rapide car elle surveille les événements pour qu'elle sache où chercher lorsqu'elle exécute une sauvegarde. Linux a inotify, une installation similaire à fsevents, et pourtant les solutions de sauvegarde Linux qui tentent d'approcher Time Machine (par exemple dirvish) sont misérablement lentes car elles ne profitent pas d'inotify. Y en a-t-il qui le font?
bendin

Réponses:

11

J'ai répondu à ma propre question avec "yum search inotify". Il s'appelle lsyncd et est hébergé sur google code.

Malheureusement, il semble qu'il exécute toujours une synchronisation complète en premier, donc cela ne m'aiderait pas si mon ordinateur n'était pas allumé pendant plus de 14 heures à la fois.

Lsyncd utilise rsync pour synchroniser les répertoires locaux avec une machine distante exécutant rsyncd. Lsyncd surveille plusieurs arborescences de répertoires via inotify. La première étape après l'ajout des montres consiste à rsync tous les répertoires avec l'hôte distant, puis à synchroniser un seul fichier en collectant les événements inotify. Donc lsyncd est une solution de miroir live léger qui devrait être facile à installer et à utiliser tout en se mélangeant bien avec votre système. Voir lsyncd --help pour les options détaillées de la ligne de commande.

joeforker
la source
C'est un lien intéressant, j'avais même pensé à l'implémenter moi-même. Mais pourquoi indique-t-il sur la page qu'il retransfert de gros fichiers à chaque changement? Je pensais que rsync lui-même éviterait déjà cela?
Hanno Fietz
rsync doit encore relire le fichier entier aux deux extrémités pour le transférer le plus efficacement possible. La documentation lsyncd a l'intention de dire que cela peut ne pas être efficace pour les fichiers volumineux. Pour les fichiers volumineux, un schéma de réplication au niveau du bloc serait plus approprié.
joeforker
3

Il y a un nouveau système appelé fsnotifyqui est conçu pour résoudre les lacunes inotifyqui ont été introduites pour résoudre les problèmes de dnotify. fsnotifyvous permet de regarder un système de fichiers complet sans trop de bruit. J'espère que fsnotifycela aidera à résoudre tous nos futurs problèmes de sauvegarde Linux.

joeforker
la source
2

Vous pouvez pirater quelque chose avec incron .

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

hayalci
la source
incron ne peut pas regarder les répertoires de manière récursive
joeforker
bien, duh! cela
m'a
2

Sur la base de recherches (pas de tests), il semble qu'inotify ne puisse pas gérer le très grand nombre de fichiers sur la plupart des systèmes et / ou soit très lent à le faire. Le fil à http://www.pubbs.net/kernel/200905/109416/ était le plus utile, il indiquait une nouvelle fonctionnalité linux qui semble être dans ou dirigée vers la ligne principale, fsnotify, qui est dans linux 2.6.31 et ensuite.

user26055
la source
2

Lsyncd synchronise tout l'arbre surveillé au démarrage, car dans 99% des cas, c'est la chose la plus judicieuse à faire. Vous voulez le répertoire sur l'hôte cible que vous avez sur l'hôte local, sinon les synchronisations peuvent échouer et vous voulez synchroniser les choses que vous avez manquées lors de la désactivation. Cependant, si vous savez ce que vous faites, vous pouvez désactiver la synchronisation de démarrage, définissez simplement sync {..., startup = false} dans le fichier de configuration Lsyncd.

en ce qui concerne inotify, ce n'est pas le nombre de fichiers mais le nombre de répertoires qui consomment des ressources. Un répertoire est une montre, quel que soit le nombre de fichiers qu'il contient.

fanotify s'appuyant sur fsnotify comme inotify semblait très prometteur pour les gens qui regardent des tonnes de répertoires, mais actuellement à partir de Linux 2.6.37 fanotify ne signale pas du tout les événements de changement de nom (déplacement), ce qui le rend inutilisable pour un travail comme celui-ci :-(

axkibe
la source
Pas même comme une suppression suivie d'une création?
joeforker
1
pas dans mes tests, non :-( fanotify a été conçu avec le bouclier antivirus à l'esprit, et à mon humble avis est conçu en ce moment exactement au minimum requis.
axkibe
1

J'ai passé 6 mois à chercher la meilleure solution pour réaliser ce que vous essayez de faire; sauvegarde efficace sur un NAS. Après la synchronisation initiale, tout le reste est lisse comme du beurre. La dernière version de Lsyncd fonctionne plutôt bien. J'ai documenté ce que j'ai fait dans le lien ci-dessous. Remplacez simplement les valeurs de votre dossier. J'espère que cela t'aides:

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

Bobo
la source