Hashget.

#Python

Hashget: эффективный сетевой дедупликатор

В отличие от архиваторов, дедупликатор исключает из архива некоторые данные, которые будут доступны при восстановлении. Например, если вы два раза архивируете один и тот же каталог и храните оба архива - скорее всего у вас ненужная избыточность, во втором архиве достаточно хранить только “дельту”, отличающиеся файлы.

Эффективность

Data sample unpacked size .tar.gz hashget .tar.gz
Wordpress-5.1.1 43 Mb 11 Mb ( 26% ) 155 Kb ( 0.3% )
Linux kernel 5.0.4 934 Mb 161 Mb ( 20% ) 4.7 Mb ( 0.5% )
Debian 9 (LAMP) LXC VM 724 Mb 165 Mb ( 23% ) 4.1 Mb ( 0.5% )

Как видим, после сжатия хешгетом, от популярных пакетов остается всего половина процента. При этом каждый “архив” (в сумме с Интернетом) достаточнен для полного восстановления без потерь. Из четырехмегабайтного .gz образа Debian контейнера можно развернуть контейнер в 700+ Мб.

Немного о проекте

В качестве “базы” Hashget использует сеть (стабильные надежные репозитории, например, snapshot.debian.org, wordpress.org, kernel.org) и легко расширяется.

Для ускорения используется собственный сервер, который предоставляешь хеш-пакеты. На данный момент там проиндексировано 44 Gb файлов из проекта Debian.