Szukam rozwiązania do deduplikacji systemu plików kopiowania przy zapisie dla ogólnych danych użytkowników, takich jak /home
i ich kopie zapasowe. Powinien on używać deduplikacji online / wbudowanej / synchronicznej na poziomie bloku przy użyciu bezpiecznego mieszania (w przypadku znikomej szansy na kolizję), takiego jak SHA256 lub TTH . Zduplikowane bloki nie muszą nawet dotykać dysku.
Chodzi o to, że powinienem móc po prostu skopiować /home/<user>
na zewnętrzny dysk twardy z takim samym systemem plików, aby wykonać kopię zapasową. Prosty. Bez ingerencji w przyrostowe kopie zapasowe, w których uszkodzenie którejkolwiek z migawek prawie zawsze psuje wszystkie późniejsze migawki i nie trzeba używać konkretnego narzędzia do usuwania ani „pobierania” migawki. Wszystko powinno być po prostu zrobione z przeglądarki plików bez obaw. Czy potrafisz sobie wyobrazić, jakie to byłoby łatwe? Nigdy więcej nie będę musiał myśleć dwa razy o tworzeniu kopii zapasowych!
Nie przeszkadza mi hit wydajności, najważniejsza jest niezawodność. Chociaż, z konkretnych wdrożeń cp
, mv
i scp
oraz wtyczki do przeglądarki plików, operacje te byłyby bardzo szybko, zwłaszcza gdy jest dużo powielania jak oni tylko trzeba przenieść nieobecnych bloków. Przypadkowe użycie konwencjonalnych narzędzi do kopiowania, które nie zintegrują się z FS, zajmie tylko więcej czasu, zmarnuje część przepustowości podczas zdalnego kopiowania i zmarnuje część procesora, ponieważ zduplikowane dane zostaną ponownie odczytane, ponownie przesłane i ponownie zakodowane (chociaż nic nie byłoby przepisane), ale absolutnie niczego nie zepsułoby. (Niektóre oprogramowanie do udostępniania plików może również skorzystać na integracji z FS.)
Jak więc najlepiej to zrobić?
Przejrzałem kilka opcji:
- lessfs - wygląda na niezatrzymany . Coś dobrego?
- Opendedup / SDFS - Java? Czy mogę tego użyć na Androidzie ?! Co oznacza skrót SDFS ?
- Btrfs - Niektóre łatki unoszą się w archiwach list mailingowych, ale nie ma rzeczywistego wsparcia.
- ZFS - mam nadzieję, że pewnego dnia dokonają ponownej licencji na prawdziwej licencji zgodnej z GPL.
Również 2 lata temu próbowałem użyć Pythona przy użyciu Fuse na poziomie pliku, który mógłby być użyty ponad typowym solidnym FS, takim jak EXT4, ale znalazłem Fuse for Python za słabo udokumentowane i nie udało mi się go wdrożyć wszystkie wywołania systemowe.
Odpowiedzi:
Brzmi to bardzo przedsiębiorczo (jak drogo).
datadomain oferuje deduplikację danych i być może netapp ze swoim systemem plików wafl. Ale wysokim kosztem.
„Bezpłatną” alternatywą może być ZFS.
Według mnie jednak „najlepszą” i najbardziej Linuxową alternatywą, choć na poziomie pliku zamiast „poziomu bloku”, byłby rsnapshot. Używa rsync i hardlinks do zarządzania wersjonowaniem.
Raczej ufam starym, sprawdzonym narzędziom niż korzystaniu z nowych systemów plików, takich jak Btrfs, których nie było wystarczająco długo, aby ludzie mogli odkryć wszelkiego rodzaju paskudne błędy.
źródło
rsnapshot
nie jest systemem plików, jest raczej włamaniem do wprowadzenia funkcjonalności podobnej do migawek do starszych systemów plików, nie tworzy „prawdziwych” migawek (migawki mają być atomowe ) i ma charakter przyrostowy (patrz akapit drugi). Wolę używać stosunkowo nowego FS niż czegoś, co korzysta z przyrostów.Patrzę i badam dokładnie to samo, mógłbym teraz napisać https://attic-backup.org/quickstart.html#automating-backups , wydaje się być cichy, prosty i dobry do tworzenia kopii zapasowych linuksa.
Istnieje również pałeczka z tą funkcją, ale strych wydaje się wystarczający w większości przypadków.
źródło