Długo myślałem o wersjonowaniu systemów plików. Jest to funkcja zabójcza i spojrzałem na Wayback, ext3cow, zfs, rozwiązania bezpieczników lub po prostu nakładki cvs / svn / git.
Uważam ext3cow za model spełniający moje wymagania. Przejrzysty, wydajny, ale mogę obejść się bez dodatkowej ls abc@timestamp
funkcji. Tak długo, jak w jakiś sposób otrzymuję zautomatyzowaną, przejrzystą wersję moich plików.
Może to być natychmiastowe lub może być oparte na migawkach w odstępach 10s, 30s, 1m, 5m, 15m itp. Po prostu coś, co skutecznie poradzi sobie z tysiącami plików w danym katalogu o różnych rozmiarach, z których większość jest najmniejsza, ale niektóre od 100 m do 1 gb.
ZFS nie jest tak naprawdę opcją, ponieważ jestem na systemie Linux (i wolałbym nie używać go przez bezpiecznik, ponieważ mam już konfigurację ext3, którą chcę zaktualizować, a nie coś nowego).
Jakie są dostępne rozwiązania?
źródło
Po 8 latach poszukiwania znalazłem SVNFS przez Marco R. Gazzetta (który różni się od starszego projektu o tej samej nazwie przez Johna Maddena [których jeden robi różne rzeczy]). Ten SVNFS używa svn transparentnie w operacjach r / w:
Jest napisany w Pythonie i używa FUSE:
W przykładzie SVNFS używa osobnego katalogu do repozytorium. Chociaż tego nie przetestowałem. Na moje potrzeby chciałbym mieć repozytorium w moim reż.
Znalazłem również odniesienie do możliwości wersjonowania Reiser4 4 lata temu:
Ale też tego nie sprawdziłem.
Dwa lata temu poszedłem szukać dalej, znalazłem projekt FiST do generowania systemów plików , które można ustawiać jeden na drugim, i skontaktowałem się z prof. Erez Zadok z Stony Brook University, który dawno temu był doradcą / mentorem projektu o nazwie versionfs . Cytowanie:
http://www.fsl.cs.sunysb.edu/docs/versionfs-fast04/
http://www.fsl.cs.sunysb.edu/docs/versionfs-msthesis/versionfs.pdf
Wydawało mi się to bardzo interesujące, ale skontaktowanie się z facetami, którzy pracowali nad projektem, ujawniło, że nie jest znanym miejscem jego kodu źródłowego. Sam profesor stwierdził w poczcie:
Więc nie ma tutaj działającego projektu, chociaż koncepcja systemów plików, które można układać jeden na drugim, wydaje mi się bardzo miła. Czy ktoś chciałby rozpocząć projekt oparty na wrapfs , powiadom mnie proszę :)
źródło
Możesz sprawdzić gitfs . Jest to system plików FUSE oparty na git, dość stabilny i bardzo łatwy w użyciu.
Zasadniczo jest to nakładka na git. Za każdym razem, gdy aktualizujesz plik lub katalog, tworzysz zatwierdzenie z tą zmianą (wie, aby zapisać zmiany, aby nie skończyć z 100 zmianami po rozpakowaniu archiwum). Wie również, aby zsynchronizować pilota i scalić konflikty przy użyciu strategii „zawsze akceptuj moje”.
Po zamontowaniu wyświetla dwa katalogi: bieżący i historię .
├── 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
Więcej informacji można znaleźć na tej stronie .
źródło
Bup wygląda obiecująco.
Starsze dyskusje na ten temat tutaj: http://lwn.net/Articles/380983/
źródło
Wypróbuj rsnapshot - sam go nie użyłem, ale natknąłem się na niego, szukając systemów deduplikacji na poziomie plików @.
źródło
Spójrz na Hot Copy z R1Soft.
http://www.r1soft.com/tools/linux-hot-copy/
Jest to moduł jądra, który zapewnia migawki kopiowania przy zapisie dla standardowych systemów bez użycia LVM. Działa dość dobrze dla mnie i mogę go zainstalować bez ponownego uruchamiania.
Zobacz także: http://www.r1soft.com/tools/linux-hot-copy/hcp-tips/
źródło