У меня вопрос по поводу реализации GFS-схемы с bacula на жестком диске (демоны уже работают нормально).
Чего я хочу добиться:
Каждые полгода мне нужна полная резервная копия, которая должна быть доступна не менее 12 месяцев ->
мне нужно хранить резервные копии немного дольше, чем 12 месяцев, чтобы вторая полная резервная копия не перезаписывала первую. Это означает, что будет как минимум 3 полных резервных копии (я выбрал 18 месяцев). Так продолжается дни, месяцы и так далее. Простая GFS-схема.
График{
Имя = "GGFSCycle"
Включено = да
# DailyCycle - объем сохраняется 14 дней
Run = Level=Incremental Pool=DailyPool FullPool=HalfAnnualPool Priority=10 вторник-воскресенье в 03:00
# WeeklyCycle - объем сохраняется 5 недель
Run = Level=Incremental Pool=WeeklyPool FullPool=HalfAnnualPool Priority=11 понедельник в 03:00
# MonthlyCycle - объем хранится 7 месяцев
Run = Level=Differential Pool=MonthlyPool FullPool=HalfAnnualPool Priority=12 февраля-1 июня в 03:00
Run = Level=Differential Pool=MonthlyPool FullPool=HalfAnnualPool Priority=12 август-декабрь 1 в 03:00
# HalfAnnualCycle - данные хранятся 18 месяцев
Запуск = Уровень = Полный пул = HalfAnnualPool Priority = 13 1 января в 03:00
Запуск = Уровень = Полный пул = HalfAnnualPool Priority = 13 1 июля в 03:00
}
Бассейн {
Имя = DailyPool
Тип пула = резервный
Хранилище = резервный сервер-sd
Формат метки = "DailyVol_"
Продолжительность использования объема = 23 часа
Recycle = yes # Bacula может автоматически перерабатывать тома
AutoPrune = yes # Удаление просроченных томов
Удержание объема = 14 дней
Максимальное количество байтов тома = 50M # Ограничить размер тома чем-то разумным
Максимальное количество томов = 1000 # Ограничение количества томов в пуле
# -> макс. 50G
}
Бассейн {
Имя = Еженедельный Пул
Тип пула = резервный
Хранилище = резервный сервер-sd
Формат метки = "WeeklyVol_"
Продолжительность использования объема = 23 часа
Переработка = да
Автоудаление = да
Сохранение объема = 5 недель
Максимальный объем байтов = 500M
Максимальные объемы = 80
# -> макс. 70G
}
Бассейн {
Имя = Месячный пул
Тип пула = резервный
Хранилище = резервный сервер-sd
Формат метки = "MonthlyVol_"
Длительность объемного использования = 2 дня
Переработка = да
Автоудаление = да
Сохранение объема = 7 месяцев
Байты максимального объема = 5G
Максимальные объемы = 80
# -> макс. 170G
}
Бассейн {
Имя = HalfAnnualPool
Тип пула = резервный
Формат метки = "HalfannualVol_"
Хранилище = резервный сервер-sd
Длительность объемного использования = 3 дня
Переработка = да
Автоудаление = да
Сохранение объема = 18 месяцев #1,5 года
Максимальный объем байтов = 35G
Максимальные объемы = 20
# -> макс. 700G
}
Проблема, которую я вижу:
заключается в том, что инкрементная резервная копия всегда ссылается на последнюю инкрементную, дифференциальную или полную резервную копию и сохраняет только те файлы, которые изменились с тех пор.
В моей схеме у меня есть два «разных» инкрементных бэкапа, ежедневный и еженедельный.
Еженедельный всегда ссылается на ежедневный, который пришел накануне, верно? Когда я держу еженедельный файл более 4 недель (я выбрал 5 недель), а ежедневный - только более 10 дней (я выбрал 14 дней), ежедневные файлы будут удалены через 14 дней, но ежемесячный все еще ссылается на них . Значит будет "дырка"?
Я выяснил, возможно ли иметь несколько «уровней» инкрементных резервных копий, например, я мог бы сказать, что еженедельное инкрементное резервное копирование ссылается только на еженедельные резервные копии (уровень 0), а ежедневные инкрементные резервные копии — только на ежедневные (уровень 1). ) проблема исчезнет.
Та же проблема возникала, когда я сохранял полную резервную копию для короткого замыкания.Например, если полная резервная копия перезаписывает единственную существующую, не останется полной резервной копии, на которую могла бы ссылаться дифференциальная резервная копия, и я потеряю все резервные копии, которые я сделал до этого момента.
Что я нашел:
Я поискал в интернете и нашел глава в бакула-документации:
В нем говорится: «Теперь, поскольку каждый из этих различных видов сохранений должен оставаться действительным в течение разных периодов времени, самый простой способ сделать это (и, возможно, единственный) — создать отдельный пул для каждого типа резервного копирования».
Мои вопросы:
- По сути, это означает, что нет другого решения, кроме единых полных, дифференциальных и чернильных пулов, описанных в главе документации bacula. Это правильно?
- Если это неверно, как я могу достичь своей цели с двумя разными инкрементными пулами?
Я также читал о базовых заданиях в документации bacula, это не правильно, но это идет в правильном направлении.
Большое спасибо за ваше время и помощь в чтении до сих пор.
Ps: я не носитель английского языка, и мне жаль, если я делаю ошибки. Если есть что-то, что вас действительно бесит, я хотел бы услышать от вас, чтобы улучшить свой английский.
Спасибо.