Резервное копирование Rsnapshot – как оно обрабатывает данные?

Вопрос или проблема

Я настроил свой резервный бэкап с помощью Rsnapshot.

Через 3 дня у меня следующее:

196 GB  /backup

3   GB  /backup/daily.0
191 GB  /backup/daily.1
2   GB  /backup/daily.2

Почему второй бэкап содержит больше всего данных (191 GB)??

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

Как Rsnapshot обрабатывает данные инкрементного бэкапа?

То, что у вас есть, нормально. Вам нужно прочитать документацию rsnapshot о том, как это работает; это описано там. Он использует жесткие ссылки при выполнении инкрементного бэкапа, который вы, по-видимому, настроили, учитывая daily.0 и 1 и 2. Когда файлы не изменяются, это жесткая ссылка в других папках daily.? на исходный файл, поскольку они мигрируют к daily.? и weekly.? … однако вы это настроили с помощью выражения (-ий) retain.

https://www.cyberciti.biz/faq/linux-unix-apple-osx-bsd-rsync-copy-hard-links/

также обратите внимание на rsync_long_args --delete, который удалит файлы из резервного копирования, если они удалены на источнике, что, по сути, сводит на нет цель резервного копирования, если вы рассчитываете на защиту от случайного удаления, например, в этом случае вы захотите отредактировать и удалить --delete из rsync_long_args.

Ответ или решение

Rsnapshot – это инструмент для создания резервных копий, который использует утилиту rsync для передачи данных и систему жестких ссылок (hard links) для хранения данных. Основная задача Rsnapshot заключается в экономном использовании дискового пространства при организации резервного копирования.

Теория

Принцип работы Rsnapshot заключается в создании так называемых «инкрементальных» резервных копий, которые используют файловую систему на базе жестких ссылок. Жесткие ссылки — это механизм, позволяющий указывать на один и тот же файл в файловой системе из разных мест, при этом каждый из этих «указателей» будет восприниматься как полный файл. Если исходный файл не изменился, новые копии фактически не занимают дополнительного дискового пространства.

Rsnapshot создает резервные копии через регулярные интервалы времени, например, ежедневно или еженедельно. При первой резервной копии Rsnapshot копирует все данные непосредственно в целевой каталог. Каждая последующая резервная копия сравнивает изменения с предыдущей и копирует только новые или измененные файлы, используя жесткие ссылки для неизменных файлов. Таким образом, даже если кажется, что в каждой резервной копии содержатся полные данные, реально общие данные хранятся один раз.

Пример

Рассмотрим вашу ситуацию, когда вы используете Rsnapshot для ежедневных резервных копий, и у вас представлено три копии:

  • /backup/daily.0 — последняя резервная копия.
  • /backup/daily.1 — предпоследняя резервная копия.
  • /backup/daily.2 — резервная копия за два дня до текущего.

Изначально при первой полной резервной копии (daily.2) все данные копируются в целевую директорию, поэтому она может быть небольшой, если в ней накоплены только измененные или недавно добавленные файлы. Когда вы снимаете следующую резервную копию (daily.1), Rsnapshot создает жесткие ссылки на все файлы, которые не изменились, и записывает изменения. Это может привести к увеличению объема, если в этот день было внесено много изменений или добавлено много новых данных.

Применение

Вернемся к вашему вопросу: почему /backup/daily.1 занимает больше всего места? Во-первых, стоит понимать, что отображаемое использование места может быть обманчивым из-за особенностей работы жестких ссылок. Когда вы смотрите на размер каталога, утилиты могут учитывать общий размер всех файлов, включая файлы с жесткими ссылками, которые фактически не занимают дополнительного места.

Если на второй день было много изменений или добавлений файлов, то даже если они используют жесткие ссылки, текущий каталог может показывать большее потребление пространства. Жесткие ссылки могут записаться как большие объемы из-за подсчета всех ссылок.

Обратите внимание на следующий аспект: если в вашей конфигурации задан параметр rsync_long_args --delete, это может привести к тому, что резервные копии будут удалять файлы, которые удалены из исходного каталога. Так, чтобы обеспечить защиту от случайного удаления данных на источнике, необходимо отказаться от этого параметра или четко контролировать конфигурации rsync.

Чтобы более точно контролировать процесс, ознакомьтесь с детальной документацией Rsnapshot и настройками rsync. Убедитесь, что ваша конфигурация действительно отражает ваши требования по созданию резервных копий. Это поможет избежать недопонимания в будущем.

Используйте возможности Rsnapshot для создания эффективных и экономичных резервных копий, особенно если работаете с ограниченным дисковым пространством. Понимание механизма работы с жесткими ссылками и принципа инкрементального копирования позволит вам более глубоко и точно контролировать процесс резервного копирования, получая все преимущества от использования Rsnapshot.

Оцените материал
Добавить комментарий

Капча загружается...