Назад | Перейти на главную страницу

Храните несколько версий большого двоичного файла с минимальным дублированием данных (предпочтительно Linux)

Мне нужно хранить несколько версий двоичного файла размером ~ 150 ГБ (qcow2) на серверах Linux с локальным хранилищем, и я надеялся, что есть какое-то решение, которое включает в себя просто сохранение различий, которые можно объединить по мере необходимости, чтобы мне не пришлось создавать еще один копия файла 150 ГБ, когда изменилось только 4 гига. Это вопрос о хранилище, а не об особенностях KVM / qcow2. Я уже изучил некоторые из этих вариантов. В настоящее время используется CentOS 6.3 с EXT4. Файлы должны храниться неограниченное время и должны быть полностью нетронутыми при восстановлении. Я готов изменить файловую систему и т. Д., Если решение того стоит.

ZFS в Linux с дедупликацией может быть вашим другом в этом случае. Есть RPM / репозитории Red Hat доступны для установки.

Даже без дедупликации, если вы можете включить это в рабочий процесс моментального снимка ZFS, попытка сделать это с ZFS даст некоторые значительные преимущества.

Не могли бы вы подробнее объяснить, как вы хотите работать с этими файлами? Вы ищете моментальные снимки на определенный момент времени или копируете несколько версий одних и тех же / похожих файлов в хранилище данных?

я использую librsync для этого. Он доступен для CentOS и других клонов RHEL в Репозиторий EPEL.

Просто используйте:

rdiff signature new.qcow2 /tmp/new.qcow2.rdiffsig
rdiff delta /tmp/new.qcow2.rdiffsig old.qcow2 new.qcow2--old.qcow2.rdiff
rm /tmp/new.qcow2.rdiffsig
xz new.qcow2--old.qcow2.rdiff 

Затем вы можете удалить old.qcow2. Когда он понадобится вам снова, вы сделаете:

xz -d < new.qcow2--old.qcow2.rdiff.xz > /tmp/new.qcow2--old.qcow2.rdiff
rdiff patch new.qcow2 /tmp/new.qcow2--old.qcow2.rdiff old.qcow2
rm /tmp/new.qcow2--old.qcow2.rdiff

Это можно связать - вы можете создать rdiff из old.qcow2 к evenolder.qcow2 и так далее. Это довольно медленно, но очень эффективно - мне обычно не нужно удалять старые резервные копии, используя это. Также есть rdiff-резервное копирование программа, автоматизирующая аналогичную схему для целых каталогов.

Я бы посмотрел на снимки LVM как на решение. Не вдаваясь в подробности, я бы сделал следующее:

  1. Создайте том LVM, достаточно большой, чтобы вместить ваши данные.
  2. Загрузите на этот том начальную копию вашего большого двоичного файла.
  3. Создать снимок LVM.
  4. Используйте rsync, чтобы скопировать другую версию большого файла вместо существующего файла.

На этом этапе вы можете получить доступ к исходному файлу, смонтировав снимок LVM. Также будет доступна последняя версия большого файла. Таким образом можно создать несколько снимков.