«Трудносвязанные» части большого файла, в котором только небольшая часть изменилась

Я использую rsync для создания резервных копий:

rsync -a --link-dest=PATHTO/$PREVIOUSBACKUP $SOURCE $CURRENTBACKUP 

Таким образом я экономлю место из-за использования жестких ссылок.

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

Можно ли жестко привязать не весь образ, а только его измененные части? Есть ли какой-нибудь инструмент, который может позаботиться об этом?

  • Как я могу rsync только некоторые файлы в некоторых каталогах
  • inotify и rsync для большого количества файлов
  • Перевод конфигурации rdist с несколькими корнями в rsync
  • Как исключить символическую ссылку в rsync / rsnapshot
  • Что необходимо для сервера rsync в режиме демона
  • rsync плейлист mpd
  • rsync не будет записывать на установленный общий ресурс NFS
  • Можно ли использовать rsync для создания только жестких ссылок, а не копий?
  • One Solution collect form web for “«Трудносвязанные» части большого файла, в котором только небольшая часть изменилась”

    Здесь можно сделать несколько вещей. Обратите внимание: ни один из них на самом деле не использует жесткие ссылки, поскольку они могут указывать только на полный файл. Использование файловой системы btrfs открывает здесь очень полезные возможности. Обратите внимание, что btrfs в настоящее время (последняя версия v3.13) все еще экспериментальна. Однако его способность COW (копирование на запись) идеально подходит для такого рода вещей (при условии, что приемлемо иметь резервную копию в одной и той же файловой системе). Рассмотрим файловую систему btrfs смонтированную в /mnt , вы можете сделать атомный снимок всей файловой системы:

     btrfs subvolume snapshot /mnt /mnt/snapshot 

    Чтобы разрешить частичные снимки, вы должны поместить свои файлы в резервную копию внутри subvolume а не из каталога. Например:

     btrfs subvolume create /mnt/subvol mv stuff /mnt/subvol btrfs subvolume snapshot /mnt/subvol /mnt/subvol_snapshot 

    Помимо использования btfrs , вы также можете рассмотреть возможность установки образа виртуальной машины на одной или обеих сторонах резервной копии и использования rsync между двумя точками подключения.

    В этом блоге показано, как смонтировать образ виртуальной коробки .vdi с использованием qemu-utils . Команды как root (непроверенные):

     modprobe nbd qemu-nbd -c /dev/nbd0 <vdi-file> mount /dev/nbd0p1 /mnt ... umount /mnt qemu-nbd -d /dev/nbd0 

    Наконец, самый простой подход, который может быть использован, – опция --inplace для rsync . На странице руководства:

     --inplace This option changes how rsync transfers a file when its data needs to be updated: instead of the default method of creating a new copy of the file and moving it into place when it is complete, rsync instead writes the updated data directly to the destination file. ... This option is useful for transferring large files with block-based changes or appended data, and also on systems that are disk bound, not network bound. 

    Проблема здесь заключается в том, что нет никакой пользы от использования этого в сочетании с --link-dest (в версиях rsync <2.6.4 эти два несовместимы вообще), поскольку копия файла все равно должна быть создана в пункте назначения.

    Interesting Posts

    autossh в / etc / inittab

    Измените пользователя и загрузите всю среду в сценарий оболочки

    Повторная команда с разными именами файлов

    Могу ли я переназначить SHIFT + CAPS LOCK в консоли Linux?

    Как интегрировать Debian netinstall в существующую конфигурацию PXE?

    Установка Flash Player для Safari в Ubuntu

    Почему `zip` в цикле for работает, когда файл существует, но не тогда, когда он этого не делает?

    Могу ли я удалить файлы в / var / log / journal и / var / cache / abrt-di / usr?

    Продолжить команды оболочки после подключения к SSH

    Сценарий или команда для перечисления всех каталогов верхнего уровня, содержащих подкаталоги с измененными файлами менее 30 дней

    Невозможно записать файл в FreeBSD – файловая система только для чтения

    Что является лучшей практикой при замене системного двоичного кода?

    tmux прокрутка мыши без изменения копии / вставки?

    Разрешения для файлов при удалении пользователя из git

    Инструмент командной строки для поиска и замены многострочного регулярного выражения

    Linux и Unix - лучшая ОС в мире.