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.