2

Есть ли инструменты, которые позволяют этот вариант использования:

  1. У меня есть раздел LVM2 vg-vol ;
  2. Я периодически создаю его снимки, сохраняю их (create_new_snapshot --directory=/media/external_storage/snapshots/ --input=/dev/mapper/vg-vol_snapshot --name=qwerty) и удаляю . Ожидается, что инструмент сохранит только измененные блоки. Ожидается, что инструмент не будет специфичным для LVM, просто примите один большой файл, который, как ожидается, будет иметь много блоков с предыдущим таким большим файлом. Хорошо, если сжатие (с сохранением произвольного доступа) поддерживается ...
  3. Я могу смонтировать (используя FUSE, NBD или что-то другое) любой сохраненный снимок, не распаковывая его нигде.

    touch /root/mountpoint
    view_external_snapshot --mountpoint=/root/mountpoint --directory=/media/external_storage/snapshots/ --name=qwerty
    mount -o loop -t reiserfs /root/mountpoint /root/tmpmnt
    

Ближайшая вещь - это rdiff (не rdiff-backup), но я не уверен, смогу ли я получить доступ к содержимому base+delta без распаковки (rdiff patch) сначала ...

Другая связанная вещь - cloop. Он принимает большой файл в качестве входных данных, сжимает его и позволяет получить доступ как блочное устройство после. Но там я не могу хранить дельты, только полный снимок ...

Примечание: вопрос не в резервном копировании на уровне файловой системы (например, в двуличности, rdiff-backup, rsnapshot).

3 ответа3

1

Это также можно сделать с помощью bup. Кажется, чтобы поддержать этот вариант использования.

1

Если вам нужно надежное решение (и, возможно, оно вам нужно) для защиты ваших данных, попробуйте ZFS, которая имеет дедупликацию, прозрачное сжатие и зеркальное отражение на уровне блоков. Существует как модуль ядра, так и оверлей FUSE для Linux.

РЕДАКТИРОВАТЬ: как обсуждалось в чате, другое решение было бы использовать squashfs и воспользоваться режимом добавления, используя датированные каталоги для базы и приращений. Вы можете смонтировать изображение в loopback и использовать rdiff, чтобы найти реальные дельты. Тем не менее, я думаю, что это будет намного медленнее, чем подход ZFS. В конце концов, такие заполненные файловые системы, как ZFS и BTRFS, были созданы для того, чтобы заполнить эти пробелы.

1

Прокатил свой: https://github.com/vi/forsnapshotfs

Он позволяет последовательно записывать новые файлы (повторно используя блоки из предыдущей версии файла), использует сжатие и позволяет монтировать (с простым копированием в памяти) такие файлы.

$ fsfs-write . root_20130326          < /dev/mapper/inside-root_20130326
Completed. new: 9297920   reused: 0         hashcoll: 0     zero: 0  dblref: 0
$ fsfs-write . root_20130625 20130326 < /dev/mapper/inside-root_20130625
Completed. new: 1376582   reused: 7921338   hashcoll: 5380  zero: 0  dblref: 0

# mkdir m m2
# fsfs-mount . m
# mount -o loop,ro   m/root_20130326   m2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .