Ich habe lange über die Versionierung von Dateisystemen nachgedacht. Dies ist eine Killer-Funktion, und ich habe mir Wayback, ext3cow, zfs, Sicherungslösungen oder einfach nur cvs / svn / git-Overlays angesehen.
Ich betrachte ext3cow als das Modell für meine Anforderungen. Transparent, effizient, aber ich kann auf die zusätzliche ls abc@timestamp
Funktion verzichten. Solange ich irgendwie eine automatisierte, transparente Versionierung meiner Dateien bekomme.
Es kann augenblicklich sein oder auf Schnappschüssen in Intervallen von 10 s, 30 s, 1 m, 5 m, 15 m usw. basieren. Nur etwas, das Tausende von Dateien in einem bestimmten Verzeichnis in verschiedenen Größen, die kleinsten, aber einige, effizient verarbeitet über 100 m bis 1 gb.
ZFS ist nicht wirklich eine Option, da ich unter Linux bin (und es vorziehen würde, es nicht über Fuse zu verwenden, da ich bereits ein ext3-Setup habe, das ich versionieren möchte, nicht etwas Neues).
Welche Lösungen gibt es?
quelle
Nach 8 Jahren der Suche fand ich das SVNFS von Marco R. Gazzetta (das sich von älteren Projekten mit dem gleichen Namen von John Madden unterscheidet [welches man verschiedene Dinge tut]). Dieses SVNFS verwendet svn transparent in R / W-Operationen:
Es ist in Python geschrieben und verwendet FUSE:
Im Beispiel verwendet SVNFS ein separates Verzeichnis für das Repo. Obwohl ich es nicht getestet habe. Für meine Bedürfnisse hätte ich gerne ein Repository direkt in meinem Arbeitsverzeichnis.
Ich habe auch vor 4 Jahren einen Hinweis auf die Versionsfunktionen von Reiser4 gefunden:
Aber ich habe es auch nicht überprüft.
Vor zwei Jahren habe ich weiter gesucht, das Projekt FiST zur Generierung stapelbarer Dateisysteme gefunden und mich an prof. Erez Zadok von der Stony Brook University war Berater / Mentor für das Projekt versionfs langer Zeit . Zitat:
http://www.fsl.cs.sunysb.edu/docs/versionfs-fast04/
http://www.fsl.cs.sunysb.edu/docs/versionfs-msthesis/versionfs.pdf
Es schien mir sehr interessant zu sein, aber die Kontaktaufnahme mit den Leuten, die an dem Projekt gearbeitet haben, ergab, dass es keinen bekannten Ort für den Quellcode gibt. Professor selbst erklärte in der Mail:
Es gibt hier also kein funktionierendes Projekt, obwohl mir das Konzept stapelbarer Dateisysteme sehr nett erscheint. Möchte jemand ein Projekt basierend auf Wrapfs starten , benachrichtige mich bitte :)
quelle
Sie können gitfs überprüfen . Es ist ein FUSE-Dateisystem, das auf Git basiert, ziemlich stabil und super einfach zu bedienen ist.
Im Grunde ist es eine Überlagerung über Git. Jedes Mal, wenn Sie eine Datei oder ein Verzeichnis aktualisieren, wird mit dieser Änderung ein Commit erstellt (weiß, dass die Commits überprüft werden müssen, damit beim Entpacken eines Archivs nicht 100 Commits entstehen). Kann auch Ihre Fernbedienung synchronisieren und die Konflikte mithilfe der Strategie "Immer meine akzeptieren" zusammenführen.
Wenn Sie es bereitstellen, erhalten Sie zwei Verzeichnisse: current und history .
├── current │ ├── test1.md │ ├── test2.md │ ├── test3.md -> current/test2.md │ ├── test4.md │ └── test_directory └── history ├── 2014-11-23 │ ├── 20-00-21-d71d1579a7 │ │ └── testing.md │ └── 20-42-32-7d09611d83 │ ├── test2.md │ └── testing.md ├── 2014-12-08 │ ├── 16-38-30-6d6e71fe47 │ │ ├── test2.md │ │ └── test1.md
Weitere Informationen finden Sie auf dieser Seite .
quelle
bup sieht vielversprechend aus.
Ältere Diskussion hier: http://lwn.net/Articles/380983/
quelle
Versuchen Sie es mit rsnapshot - ich habe es selbst nicht verwendet, bin aber beim Betrachten von Deduplizierungssystemen auf Dateiebene darauf gestoßen.
quelle
Schauen Sie sich Hot Copy von R1Soft an.
http://www.r1soft.com/tools/linux-hot-copy/
Dies ist ein Kernelmodul, das Snapshots zum Kopieren beim Schreiben für Standardsysteme ohne Verwendung von LVM bereitstellt. Es hat ziemlich gut für mich funktioniert und ich kann es ohne Neustart installieren.
Siehe auch: http://www.r1soft.com/tools/linux-hot-copy/hcp-tips/
quelle