Transparentna kompresja na HDD pod Linux'em

1

Cześć.

Mam dysk twardy HDD na USB na którym przechowuje sobie jakieś dane archiwalne, zdjęcia itd... I na tym dysku mam Linuxowy system plików EXT4, który nie wspiera "transparent compression". Czy znacie może jakieś inne dobre rozwiązanie (sprawdzone rozwiązanie), które np. kompresowałoby wgrywane dane w locie a przy odczycie odkompresowywało plik? Chodzi o zaoszczędzenie miejsca na dysku. Czytałam o systemie plików ZFS, ale ile razy tego próbowałam tak zawsze były z tym problemy.

Zastanawiam się też jak najlepiej miałabym przechowywać drzewo plików gdybym sama chciała napisać sobie aplikacje, która jest ponad systemem plików i robi to o czym mówię tj. przy wrzucaniu pliku kompresuje go a przy odczycie odkompresowuje. Potrzebny byłby wtedy tylko jakiś klient/moduł do FUSE. Wtedy mogłabym nawet dodać stratną kompresję plików tj. w przypadku zdjęć zmniejszać ich rozmiar o ponad połowę kompresując do rozdzielczości full hd (która dla mnie jest wystarczająca). Tylko żebym mogła szybko przeglądać pliki na dysku, które są skompresowane musiałabym przechowywać gdzieś drzewo plików + np. ewentualne wygenerowane miniaturki zdjęć czy np. drzewo splay najczęściej przeglądanych plików, aby od razu robić ich prefetch. Ktoś ma jakieś rady/pomysł/opinie czy to dobry pomysł?

1

Pytanie jest inne - czy jest sens się w to bawić. Obecnie dysk 2TB kosztyje 200 zł, a 4TB 300. Zastanów się, ile miejsca potrzebujesz i ile możesz oszczędzić proponowanym rozwiązaniem.

2

Widzę "kompresja" czytam "szyfrowanie".

Nie, kompresji nie polecam na dysk backupowy. To tak jak napisano wyżej niepotrzebne oszczędzanie, i bez tego dysk zewnętrzny jest marnej jakości backupem (ransomware, uszkodzenia mechaniczne, żywotność), żeby jeszcze do tego dokładać kompresję - która może zadziała a może nie.

2

Pytanie, po co kompresja w locie? Jest wiele rozwiązań do tworzenia backupów, skompresowanych też. Jak Linux, to polecam DejaDup: https://wiki.gnome.org/Apps/DejaDup/ - kompresuje, szyfruje, bajka. Na dysk zewnętrzny/zasób sieciowy itd. Backup przyrostowy oczywiście.

A przywracanie? W menedżerze plików klikam prawym przyciskiem myszy, wybieram opcję "Przywróć brakujące pliki" i wyświetla mi listę plików/poprzednich wersji z datami, z tego folderu na którym jestem, zaznaczam co chcę przywrócić i tyle. Albo można przywrócić cały backup, wedle życzenia. Śmiem twierdzić, że nawet na Windows nic lepszego nie wymyślono.

Tak naprawdę backup polegający tylko na przekopiowaniu plików na inny nośnik (czy to z kompresją w locie czy nie), nie ma żadnego sensu. Chcesz wykonać nowy backup i co - znów będziesz kopiować wszystko?

0

Uwaga na btrfs - ma jakieś problemy z bielizną:
https://distrowatch.com/weekly.php?issue=20180917#qa

0

Moduł kernela, zrobić wrapper pod syscalla, który wywoła kompresje przy zapisie i dekompresje przy odczycie, warto by było wyznaczyć przy tym miejsce specjalne, oddzielną partycję i w przeciwnym razie wywołać normalnie(uchroni to resztę dysku przed dekompresją danych z innych obszarów), a w dodatku kompresję i dekompresję oddelegować do nieblokującego przerwania dolnopołówkowego, gdyż jest to zadanie czasochłonne.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.