Я ищу дедупликационное решение для файловой системы с копированием при записи для общих пользовательских данных, таких как /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 недокументирован и не смог реализовать все системные вызовы.
Ответы:
Это звучит очень предприимчиво (как в дорогой).
datadomain предлагает дедупликацию данных и, возможно, netapp с их файловой системой wafl. Но по высокой цене.
«Свободной» альтернативой может быть zfs.
По моему мнению, «лучшей» и наиболее подходящей альтернативой для Linuxy, хотя и на уровне файлов, а не на уровне блоков, будет rsnapshot. Он использует rsync и жесткие ссылки для управления версиями.
Я скорее доверяю старым проверенным инструментам, чем использую новые файловые системы, такие как Btrfs, которых не было достаточно долго, чтобы люди могли обнаружить всевозможные неприятные ошибки.
источник
rsnapshot
не является файловой системой, это скорее хакерская функция для создания функциональности, подобной моментальным снимкам, в устаревших файловых системах, не создающая «настоящие» снимки (снимки должны быть атомарными ) и является инкрементным (см. 2-й абзац). Я бы предпочел использовать относительно новую ФС, чем ту, которая использует инкрементальные значения.Я смотрю и исследую точно так же, я мог бы предложить https://attic-backup.org/quickstart.html#automating-backups на данный момент, кажется, довольно просто и хорошо для резервного копирования Linux.
Существует также bacula с этой функцией, но чердак, кажется, достаточно хорош для большинства случаев.
источник