Есть ли готовые решения или best practice для организации backup'ов с контролем версии?

Хотелось бы получить информацию о том как можно организовать backup с контролем версий старых архивов.

Есть ли готовые инструменты или подробные инструкции как такое организовать и чем?
Гугление даёт rsync для стягивания файлов, но что тогда применить для контроля версий?

Суть задачи:
При возникновении новых файлов на рабочей машине сразу стягивать их на backup машину (тут rsync скорее).
Раз в день, например, делать снапшот резерва, и как то это экономично держать, т.е. только новые файлы или измененные, чтобы была история изменений на протяжении месяца (мб btrfs как то прикрутить).

В общем, есть ли идеи как это лучше реализовать, делать ли свой велосипед или есть что-то готовое?
  • Вопрос задан
  • 2125 просмотров
Пригласить эксперта
Ответы на вопрос 11
nazarpc
@nazarpc
Open Source enthusiast
У меня свой инструмент уже больше года успешно делает снимки BTRFS с контролем количества снимков в зависимости от давности и возможностью резервного копирования на внешний BTRFS диск: https://github.com/nazar-pc/just-backup-btrfs
Ответ написан
Расскажу как я бы делал своими велосипедами.
По rsync данные с вашей машины отправляются на бекап-сервер. Допустим, на бекап-сервере ZFS и со снапшотами всё просто. По крону на бекап-машине клепаем сколько и когда нам хочется ZFS-снапшоты. По крону же, контролируем кол-во созданных снапшотов и удаляем лишние. Если не ZFS, то LVM-снапшоты...
Ответ написан
@Anton_Shevtsov
Duplicity же.. Все есть, сам пользую.
Ответ написан
@hrum
Если локальная сеть, то BackupPC
Работает как часы, на бэкап и восстановление, сам наблюдает за клиентами (например бэкап ноутбуков, которые нерегулярно подключаются к сети) и делает бэкап по необходимости. Веб-морда в наличии, в настройки правда надо вчитаться поначалу. Бесплатен, клиентского софта не требует.

Или bacula, но не бесплатно, зато мощно. На клиенты надо ставить софт.

Мы используем оба пакета, для разных секторов сети, и бакула последней свободной версии, когда она еще была опен сорс, но в ней нет web-frontend, и все из командной строки.
Ответ написан
@Kev
Если нужна оперативная синхронизация - то лучше воспользоваться https://syncthing.net/ или аналогами.

Для резервных копий посоветую rsnapshot rsnapshot.org . Позволяет хранить несколько копий, одинаковые файлы не будут дублироваться за счет жестких ссылок.
Ответ написан
2ord
@2ord
продвинутый чайник
Попробуйте ZBackup + rsync ( + s3fs для Amazon S3).
tar -c /home | zbackup backup /my/backup/repo/backups/home-`date '+%Y-%m-%d'`.tar
zbackup restore /my/backup/repo/backups/home-`date '+%Y-%m-%d'`.tar | tar -xf -

Some filesystems (most notably ZFS and Btrfs) provide deduplication features. They do so only at block level though, without a sliding window, so they can not accomodate to arbitrary byte insertion/deletion in the middle of data.
Ответ написан
SkyCat
@SkyCat
Мы сейчас используем obnam. Есть около 10 репозиториев общим объемом около 300 гигабайт. История есть с самого начала использования, т. е., с декабря 2014 года. Уже несколько раз пришлось воспользоваться восстановлением, все работает отлично и довольно быстро.

Чтобы восстановить данные, нужно смонтировать репозиторий в какую-нибудь директорию и будет доступ ко всем версиям (см. скрин).
ca7d4001a6d04920903f22e02c24b2fe.png
Ответ написан
foboss
@foboss
Под описанную задачу очень подходит bontmia (bash-обертка над rsync). Работает очень похоже на бекапы от Apple, создавая структуру каталогов с хардлинками на неизменные данные.

Если копать сильнее, то на рабочей машине (если там Linux) можно поставить ZFS и передавать на backup-сервер только снепшоты (zfs так умеет). Ну или заморочиться и архивировать в tar и подключенным xdiff3 вместо обычного архиватора.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы