Я ищу дедупликационное решение для файловой системы с копированием при записи для общих пользовательских данных, таких как /home
и их резервные копии. Он должен использовать оперативную / встроенную / синхронную дедупликацию на уровне блоков с использованием безопасного хеширования (для незначительной вероятности коллизий), такого как SHA256 или TTH . Дублирующиеся блоки не должны даже касаться диска.
Идея состоит в том, что я должен иметь возможность просто скопировать /home/<user>
на внешний жесткий диск с такой же файловой системой, чтобы сделать резервную копию. Просто. Нет необходимости возиться с инкрементными резервными копиями, когда повреждение любого из моментальных снимков почти всегда будет нарушать все последующие моментальные снимки, и нет необходимости использовать специальный инструмент для удаления или «извлечения» снимка. Все должно быть просто сделано из файлового браузера, не беспокоясь. Вы можете себе представить, как легко это будет? Мне никогда не придется дважды думать о резервном копировании!
Я не возражаю против снижения производительности, главное - надежность. Хотя, с конкретными реализациями cp
, mv
и scp
, и плагином файлового браузера, эти операции были бы очень быстрыми, особенно когда есть много дублирования, поскольку они должны были бы только передать отсутствующие блоки. Случайное использование обычных инструментов копирования, которые не интегрируются с FS, займет больше времени, приведет к потере некоторой полосы пропускания при удаленном копировании и потере некоторого ЦП, поскольку дублированные данные будут повторно считываться, повторно передаваться и повторно хэшироваться (хотя ничего не будет переписано), но абсолютно ничего не испортило бы. (Некоторое программное обеспечение для обмена файлами также может принести пользу путем интеграции с FS.)
Так каков лучший способ сделать это?
Я посмотрел на несколько вариантов:
- lessfs - выглядит неуправляемым Любой хороший?
- Opendedup / SDFS - Java? Могу ли я использовать это на Android ?! Что такое SDFS ?
- Btrfs - Некоторые патчи плавают в архивах списков рассылки, но реальной поддержки нет.
- ZFS - Надеюсь, однажды они получат лицензию на условиях настоящей свободной лицензии / лицензии OpenLource, совместимой с GPL.
Кроме того, 2 года назад у меня была попытка в Python использовать Fuse на уровне файлов для использования поверх обычной твердой FS, такой как EXT4, но я обнаружил, что Fuse для Python недокументирован и не смог реализовать все системные вызовы.