Сегодня мы с Вами вскользь познакомимся с BORG. Как начать с ним работать я не буду писать, про это и без меня неплохо написано, лучше опишу один из реальный кейсов на примере бэкапа небольшой Zabbix системы из прошлого поста. Задача: бэкапить основной сервер и проксик, делать это каждый день, хранить 3 бэкапа, и иметь не убитую ссаным тапком базу.
От этого есть таблэтка, а именно: исключение папки БД из бэкапа, бекап ее сторонней утилитой, скажем innobackupex от Percona и отправку в базу бэкапа уже этого готового дапма. Ну и за одно, тут-же очищаем все что старше 3-х архивов. Чтобы не размусоливать, то в кратце, это выглядит так: # cat /etc/cron.daily/borg_backup На этом хосте база еще не достаточно разрослась, и пока вся система с базой там занимает ~8.7Гб. Но благодаря сжатию и дедупликации, архив BORG’а за 3 дня бэкапов весит всего 5.12Гб. Поскольку мы создаем временную папку с архивом БД, то в процессе создания бэкапа нам понадобится место на диске, около примерно 50% от размера БД, а без указания ключа –compress, все 100%. Об этом важно помнить На сервере проксика база не критична, т.к. это SQLite и даже если ее удалить, то проксик заббикса сам ее пересоздаст, по этому там все еще проще: # cat /etc/cron.daily/borg_backup И даже несмотря на хранение 4-х последних дампов, весь бекап после дедуплекации и сжатия целиком занимает 1.06Гб. Что мне понравилось в BORG: И главное его достоинство: Это единственная бэкапилка на планете, которая принуждает сервер служить Боргам прямо в файле SSH ключей! UPD: Тяжелые проекты которые плохо поддающиеся сжатию тоже жует нормально:#!/bin/sh
mkdir -p /mnt/db_bkp
innobackupex --compress /mnt/db_bkp
borg create -v --stats \
zabbix@backup.server.my.company.com:DailyBackup::'{now:%Y-%m-%d_%H:%M}' \
/ \
--exclude /dev \
--exclude /proc \
--exclude /sys \
--exclude /var/run \
--exclude /run \
--exclude /lost+found \
--exclude /var/lib/lxcfs \
--exclude /var/lib/mysql
rm -R /mnt/db_bkp
borg prune --keep-last 3 zabbix@backup.server.my.company.com:DailyBackup
#!/bin/sh
borg create -v --stats \
proxy@backup.server.my.company.com:DailyBackup::'{now:%Y-%m-%d_%H:%M}' \
/ \
--exclude /dev \
--exclude /proc \
--exclude /sys \
--exclude /var/run \
--exclude /run \
--exclude /lost+found \
--exclude /var/lib/lxcfs
borg prune --keep-last 4 proxy@backup.server.my.company.com:DailyBackup
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.