Как я могу дедуплицировать мои данные с BTRFS?

15

Я установил Lubuntu 15.04 на свой EEE PC 701 с файловой системой BTRFS. Я хочу дедуплицировать свои данные, но не знаю как.

wb9688
источник

Ответы:

14

Начните с создания полной резервной копии, чтобы, если что-то пошло не так, вы ничего не потеряли.

Я верю, что вы ищете duperemove -d

«Duperemove - это простой инструмент для поиска дублированных экстентов и отправки их для дедупликации. При наличии списка файлов он будет хэшировать их содержимое по блокам и сравнивать эти хэши друг с другом, находя и классифицируя экстенты, которые соответствуют друг другу. Когда задана опция -d, duperemove отправит эти экстенты для дедупликации, используя btrfs-экстент-тот же ioctl.

Duperemove имеет два основных режима работы, один из которых является подмножеством другого.

Режим только для чтения / без дедупликации

При запуске без -d (по умолчанию) функция duperemove выведет одну или несколько таблиц соответствующих экстентов, которые, как она определила, будут идеальными кандидатами для дедупликации. В результате режим readonly полезен для просмотра того, что может делать duperemove при запуске с параметром -d. Вывод также может быть использован другим программным обеспечением для отправки экстентов для дедупликации позднее.

Важно отметить, что этот режим не распечатывает все экземпляры совпадающих экстентов, а только те, которые он рассматривает для дедупликации.

Как правило, duperemove не касается основного представления экстентов, которые он обрабатывает. Некоторые из них могут быть сжаты, подвергаться вводу / выводу или даже уже дедуплицированы. В режиме дедупликации ядро ​​обрабатывает эти детали, и поэтому мы стараемся не копировать эту работу.

Режим дедупликации

Это работает аналогично режиму «только чтение», за исключением того, что дублированные экстенты, найденные в нашем шаге «чтение, хэш и сравнение», будут фактически представлены для дедупликации. Оценка всех дедуплицированных данных будет напечатана после завершения операции. Эта оценка рассчитывается путем сравнения общего количества совместно используемых байтов в каждом файле до и после дедупликации.

См. Справочную страницу по duperemove для получения дополнительной информации о запуске duperemove. "

это, кажется, не появляется в пакете btrfs-tools, но здесь есть страница git hub . Последние открытые и закрытые вопросы (также известные как импульс) доступны здесь.

Пакеты для всех поддерживаемых в настоящее время версий Ubuntu можно найти в этом PPA

Я должен повторить, что резервное копирование настоятельно рекомендуется . Смотрите: https://github.com/markfasheh/duperemove/issues/50

Цитируемый источник: https://github.com/markfasheh/duperemove

Страница man: https://manpages.debian.org/testing/duperemove/duperemove.8.en.html

Старейшина Гик
источник
Когда я набираю duperemove -d, я получаю страницу помощи
wb9688
1
Что вы получаете, когда вы набираете 'man duperemove`? Я считаю, что вам нужно назначить файлы для запуска. как вduperemove [options] files...
Старейшина Компьютерщик
Я только вчера использовал его - FTR, команда duperemove -rdh path1 path2 pathn, где -rдля рекурсивного, -dна самом деле дедупликации, и -hдля удобочитаемых чисел.
Привет, Ангел,
@ Hi-Angel обновленный ответ - добавлена ​​ссылка на справочную страницу
Elder Geek
3

Я всегда использовал постель . Это очень быстро и надежно. Этот инструмент также упоминается на официальной странице btrfs . Я никогда не использовал duperemove (постель старше).

Адам Рычковски
источник
2
На данный момент постель уже не в активном развитии и очень устарела.
Перкинс
3
@ Перкинс Я не согласен. Я только что получил отзыв о проблеме github.com/g2p/bedup/issues/75, которую я разместил сегодня, и с этой помощью я просто «выложил» более 7 ГБ места на моем новом сервере 16.04.
Адам Рычковски
3
Может быть, кто-то снова подхватил это. Я отказался от этого примерно через год, так как он был совершенно неспособен даже должным образом сканировать дубликаты. Тем не менее, если они не обновили его, чтобы использовать новый ioctl, duperemove будет более безопасным, поскольку он выполняет дедупликацию атомарно в пространстве ядра вместо удаления одного из дубликатов и создания копии reflink другого. Но тогда bedup на самом деле получит файлы, достаточно малые для хранения в дереве, что в настоящее время не может быть удалено из-за отсутствия поддержки в ядре.
Перкинс