The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Тонкая пула. Бекап 250Гб на раздел с 400Гб."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Резервное копирование)
Изначальное сообщение [ Отслеживать ]

"Тонкая пула. Бекап 250Гб на раздел с 400Гб."  +/
Сообщение от obl email(ok) on 21-Апр-14, 15:43 
Добрый день! Настраиваю бакулу, столкнулся с неким недопониманием логики работы с пулами.
Суть дела вот в чем, по пробую объяснить на пальцах: у меня есть диск на 400Гб и данных на 200 Гб, инкрементарных изменений не много, порядка 50Гб. Бекап надо делать таким образом чтобы не происходило переполнения.
Мне необходимо каждое первое число месяца делать полный бекап и остальные дни дифференциальные.

С составлением расписания и задания для недельного бекапа все просто, т.к. в неделе гарантированно 7 дней и нам необходимо 7 томов. Перед полным бекапом очищается последний volume и переполнения не происходит. Но если мы имеем дело с месяцем то количество дней не одинаково. И если в текущем месяце 30 деней а в пуле 31 волум то полный бекап ляжет в 31й волум, при живом полном в 1м. И мы будем иметь единовременно два полных бекапа, что гарантированно переполняет раздел в моем случае.

Подскажите как составить расписание таким образом чтобы не иметь проблем с переполнением?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Тонкая пула. Бекап 250Гб на раздел с 400Гб."  +/
Сообщение от McLeod095 (ok) on 21-Апр-14, 16:28 
>[оверквотинг удален]
> дифференциальные.
> С составлением расписания и задания для недельного бекапа все просто, т.к. в
> неделе гарантированно 7 дней и нам необходимо 7 томов. Перед полным
> бекапом очищается последний volume и переполнения не происходит. Но если мы
> имеем дело с месяцем то количество дней не одинаково. И если
> в текущем месяце 30 деней а в пуле 31 волум то
> полный бекап ляжет в 31й волум, при живом полном в 1м.
> И мы будем иметь единовременно два полных бекапа, что гарантированно переполняет
> раздел в моем случае.
> Подскажите как составить расписание таким образом чтобы не иметь проблем с переполнением?

Ни разу не сталкивался с данной темой.
Но вдруг поможет
Пишем шедулер в котром полный бекап запускаем только 1 числа
Инкременты запускаем во все остальные дни
Даже в документации в bacula есть такой пример
Schedule {
  Name = "First"
  Run = Level=Full on 1 at 2:05
  Run = Level=Incremental on 2-31 at 2:05
}

Так что я думаю тут все получится
Если хочется обойтись всего 7 томами в разных пулах
тогда наверное придется составить шедулер на каждый день месяца где каждый день менять Pool
  Run = Level=Incremental Pool=Daily mon-sat at 2:05

Будет довольно громоздко
но зато будет работать

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Тонкая пула. Бекап 250Гб на раздел с 400Гб."  +/
Сообщение от obl email(ok) on 21-Апр-14, 16:33 
> Ни разу не сталкивался с данной темой.
> Но вдруг поможет
> Пишем шедулер в котром полный бекап запускаем только 1 числа
> Инкременты запускаем во все остальные дни
> Даже в документации в bacula есть такой пример
> Schedule {
>   Name = "First"
>   Run = Level=Full on 1 at 2:05
>   Run = Level=Incremental on 2-31 at 2:05
> }

В данном случае какраз гарантированно будем ловить несколько раз в год переполнение диска, по описанной выше логике.
- в месяце 30 дней, в пуле 31 том
- 30го числа делается дифференциальный в Volume0030
- 1го полный в Volume0031 (а у нас уже есть Volume0001 - и в нем тоже полная копия)
--- и вот на середине этого задания диск переполняется.

> Так что я думаю тут все получится
> Если хочется обойтись всего 7 томами в разных пулах
> тогда наверное придется составить шедулер на каждый день месяца где каждый день
> менять Pool
>   Run = Level=Incremental Pool=Daily mon-sat at 2:05
> Будет довольно громоздко
> но зато будет работать

Работать будет неделю, а нужно месяц :)
да, и подумал.. все равно не понимаю логики. зачем в данном случае городить огород с пулами и делать такую громоздкую конструкцию?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Тонкая пула. Бекап 250Гб на раздел с 400Гб."  +/
Сообщение от McLeod095 (ok) on 21-Апр-14, 16:49 
>[оверквотинг удален]
>> Так что я думаю тут все получится
>> Если хочется обойтись всего 7 томами в разных пулах
>> тогда наверное придется составить шедулер на каждый день месяца где каждый день
>> менять Pool
>>   Run = Level=Incremental Pool=Daily mon-sat at 2:05
>> Будет довольно громоздко
>> но зато будет работать
> Работать будет неделю, а нужно месяц :)
> да, и подумал.. все равно не понимаю логики. зачем в данном случае
> городить огород с пулами и делать такую громоздкую конструкцию?

Schedule {
Name = "First"
Run = Level=Full Pool=Full_Backup on 1 at 2:05
Run = Level=Incremental Pool=Increment_Backup on 2-31 at 2:05
}

Тогда гарантированно будем полный бекап класть в тот же пул, где уже надо настроить ротацию томов
А в инкрементном можно уже свои правила

Да и делать инкременты так часто без дифов это чревато
все равно получается что для восстановления инфы на определенную дату нужно хранить все инкременты
Для таких вещей я делаю что-то вроде
Schedule {
Name = "First"
Run = Level=Full Pool=Full_Backup 1st mon at 2:05
Run = Level=Differential Pool=Differential_Backup 2nd-5th at 2:05
Run = Level=Incremental Pool=Increment_Backup sun,tue-sat at 2:05
}

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Тонкая пула. Бекап 250Гб на раздел с 400Гб."  +/
Сообщение от obl email(ok) on 21-Апр-14, 17:56 
Да, спасибо за ценный совет!  Довольно красивое решение и очень даже в духе бакулы, очень логичное.


Проверил на небольших интервалах отлично работает и ротируется.
Вот мой рабочий конфиг (расписание подправил под вопрос, чтобы небыло путаницы):


Job {
  Priority = 12
  Storage = srvbackup01-backup-sd
  Name = "backup-test-backup"
    Type = Backup                            
    #Level = Full                                
    Messages = Standard              
    Priority = 11    
    Schedule = "test"
    Write Bootstrap = "/storage/backup/bacula/%c.%n.bsr"  
  Client = backup-fd
  FileSet = "backup set"
  Pool = backup-test
}

Pool {
  Name = backup-test-full                  #    название пула
  Purge Oldest Volume = yes                 #
  Pool Type = Backup                        #
  Recycle = yes                             #   повтороное автоматическое использование томов
  AutoPrune = yes                           #   удалять записи из мускуля старше нижеуказанного значения
  Volume Retention = 1 day                 #     через какое время том может быть снова использован
  File Retention = 31 Days                   #    через какое время информация будет удалена из базы
  Job Retention = 31 Days                    #    через какое время информация о задании будет удалена из базы
  Label Format = "backup-test.full.pool."
  Maximum Volumes = 1                          # Limit number of Volumes in Pool
  Maximum Volume Jobs = 1
}
Pool {
  Name = backup-test-diff                  #    название пула
  Purge Oldest Volume = yes                 #
  Pool Type = Backup                        #
  Recycle = yes                             #   повтороное автоматическое использование томов
  AutoPrune = yes                           #   удалять записи из мускуля старше нижеуказанного значения
  Volume Retention = 1 day                 #     через какое время том может быть снова использован
  File Retention = 31 Days                   #    через какое время информация будет удалена из базы
  Job Retention = 31 Days                    #    через какое время информация о задании будет удалена из базы
  Label Format = "backup-test.diff.pool."
  Maximum Volumes = 31                          # Limit number of Volumes in Pool
  Maximum Volume Jobs = 1
}


Schedule {
    Name = "test"
    
    Run = Level=Full Pool=backup-test-full 1st mon at 3:30
    Run = Level=Differential Pool=backup-test-diff 2-31 at 3:30
}

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Тонкая пула. Бекап 250Гб на раздел с 400Гб."  +/
Сообщение от McLeod095 (ok) on 21-Апр-14, 19:01 
>[оверквотинг удален]
>   Maximum Volumes = 31      
>           #
> Limit number of Volumes in Pool
>   Maximum Volume Jobs = 1
> }
> Schedule {
>  Name = "test"
>  Run = Level=Full Pool=backup-test-full 1st mon at 3:30
>  Run = Level=Differential Pool=backup-test-diff 2-31 at 3:30
> }

Отлично!

Все таки при ограниченном размере хранилища советую посмотреть на схему с инкрменетными бекапами.
http://ru.wikipedia.org/wiki/Резервное_копирование
как говорит вивпедиа дифференциальный бекап реально занимает намного больше места чем инкремент. Если их сгруппировать можно реально уложиться в отведенное место.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Тонкая пула. Бекап 250Гб на раздел с 400Гб."  +/
Сообщение от obl email(ok) on 21-Апр-14, 19:04 

> Если их сгруппировать можно реально уложиться в отведенное место.

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

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Тонкая пула. Бекап 250Гб на раздел с 400Гб."  +/
Сообщение от McLeod095 (??) on 21-Апр-14, 21:41 
>> Если их сгруппировать можно реально уложиться в отведенное место.
> Да, и есть еще один приятный момент - можно уложиться не только
> в место, но и хранить за больший период, не месяц а
> пол-года к примеру.
> И схема с дифф бекапами реально экономит пространство.
> вообще знакомство с бакулой оставляет только положительные эмоции, разбирался долго но
> оно того стоило! :)

Ну за пол года не знаю, все таки надо понимать какой объем нужно хранить и за какое время необходимо восстанавливать. Если учесть что 200 гиг полная копия +15% увеличение размера за пол года, также надо представлять какой инкремент и какой дифф. Составляется план и можно уже сказать сколько места потребуется для какого плана резервного копирования. Ну и дальше уже дело приоритетов.

Bacula одна из лучших систем резервного копирования с которой я работал. Она работает так как написано в документации и про нее довольно часто говорят "Настроил и забыл". Годами работает и не капризничает. Иногда бывают глюки, отловить ни разу не получалось причину, но всегда висла когда делала бекап БД в которой хранит свои данные. То есть может месяц работать или два а потом раз и подвисла. Правда надо отметить что было такое только на одном сервере. ))

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру