Bacula

Обсуждения, связанные со статьями.

Re: Bacula

Непрочитанное сообщение SerGoVec » 21 авг 2013, 11:41

По портам: проверить, что firewall (iptables) не блокирует. Посмотреть, что на порт посажен bacula netstat 'ом (на сервервере естестно). Попробывать telnet 'ом с клиента посмотреть сервер. Посмотреть, что bacula bconsole (status) говорит об этой проблеме. Попробывать изменить порт.

ЛЮДИ, ВОПРОС, КОТОРЫЙ ТЕРЗАЕТ МЕНЯ ДАВНО - КАК СДЕЛАТЬ, ЧТОБЫ BACULA РАЗДЕЛЯЛ БЭКАПЫ??
Немного поподробнее о проблеме: у меня делаются бекапы вида: 4 тома по 4 задания. Каждый том содержит 1 full бекап и 3 дифф. бекапа законкатенированных в едино. (append).
Теперь я делаю бекап Catalog (оказывается потеря Catalog bacula) в случае выхода из строя самой системы ставит существующие бекапы данных в раковую позу. То есть восстановить данные из существующий бекапов на новой системе bacula без каталога нельзя. (это сабж кому интересно).
Делаю я значит бекапы Catalog и все отлично, НО у меня бекапы сливаются в один единственный, А хочется, чтобы они были отдельными: одно задание-один файл бекапа. (или если хотите 1 том).

Задумка (что хочеться): в определенном каталоге иметь 29 файлов (томов) по 1 заданию (1 full бекап) каждый. По прошествие определенного временного интервала перезапись файлов (томов) на новые.

Реализация: (bacula-director)
#-------------------------------------Storage
#**********Catalog.sql**********
Storage {
Name = Disk_Catalog
# Do not use "localhost" here
Address = 192.168.1.1 # current
SDPort = 9103
Password = "XXXX"
Device = Disk-Cat
Media Type = File
}
#*******************************
#-------------------------------------------------
#------------------------------------Schedule
#********WFullCat backup # бэк Catalog=MyCatalog***
Schedule {
Name = "WFullCat"
Run = Level=Full on sat at 06:00 #mon-tue-wed-thu-fri-sat-sun
Run = Level=Full on mon at 06:00
Run = Level=Full on wed at 06:00
Run = Level=Full on fri at 06:00
}
#*************************************************
#--------------------------------------------------
#--------------------------------JobDefs--------------------------------------------------
#*****Шаблон (использую для Job BackupCatalog*************
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Full
Client = SRVB-fd
FileSet = "Catalog"
Schedule = "WFullCat"
Storage = Disk_Catalog
Messages = Standard
Pool = CatPool
Priority = 10
Write Bootstrap = "/var/db/bacula/%c.bsr"
}
#********************************************************
#-------------------------------------------------------------------------------------------------
#------------------------------Job
#******** BackupCatalog {Catalog=MyCatalog}-***********
Job {
Name = "BackupCatalog"
JobDefs = "DefaultJob"
Level = Full
FileSet="Catalog"
Schedule = "WFullCat"
# This creates an ASCII copy of the catalog
# Arguments to make_catalog_backup.pl are:
# make_catalog_backup.pl <catalog-name>
RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog"
# This deletes the copy of the catalog
RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup"
Write Bootstrap = "/var/lib/bacula/%n.bsr"
Priority = 11
}
#
#*****************************************************
#---------------------------------------
#-----------------------------------FileSet--
#*******Catalog=MyCatalog*рез.копии DB**********
# вспоминаем: dbname = "bacula"; DB Address = "127.0.0.1";
#dbuser = "bacula"; dbpassword = "baculapass"
FileSet {
Name = "Catalog"
Include {
Options {
signature = MD5
}
File = "/var/lib/bacula/bacula.sql" # Физическое расположениe файл DB
}
}
#***********************************************
#---------------------------------------------
#-----------------------------Client-------
#********************************
Client {
Name = SRVB-fd
Address = 127.0.0.1
FDPort = 9102
Catalog = MyCatalog
Password = "XXXX"
File Retention = 35 days
Job Retention = 35 days
AutoPrune = yes
}
#********************************
#------------------------------------------------
#---------------------Pool--------------------
#***********для Catalog.sql******
Pool {
Name = CatPool
Pool Type = Backup
Recycle = yes # Повторное использование тома (пишет в 1 том-2том-3том-..29том-1том)
Purge Oldest Volume = yes
AutoPrune = yes # Удаление из Catalog записи о файлах и заданиях - срок хранения (Volume Retention)
Volume Retention = 60 days # Период в теч. которого информация о томах(volumes)
Maximum Volume Jobs = 1 # (1-задание 1-файл!!!)
Maximum Volumes = 29 # задумка: в каталоге 28 файлов с датой изготовления и по циклу далее.
Maximum Volume Bytes = 5G
# Recycle Oldest Volume = yes # Перезапись в существующие тома в данном случие не нужна (отдельные файлы) со своим названием
Label Format = "volume-cat-${Day}_${Month}_${Year}" # макрос день-месяц-год
}
#********************************
#--------------------------------------------------------

Реализация (bacula-storage):

Device {
Name = Disk-Cat # Catalog -архив db.
Media Type = File
Archive Device = /mnt/BackUP/dbCatalog
LabelMedia = yes; # lets Bacula label unlabeled media. Bacula razmet auto toma backup'a
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
SerGoVec
Юзверь
 
Сообщения: 2
Зарегистрирован: 21 авг 2013, 10:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Bacula

Непрочитанное сообщение SerGoVec » 23 авг 2013, 14:19

Отвечу сам себе: никак. Разделение файлов будет просходить если использовать директиву Purge Oldest Volume = yes которая говорит bacula забыть о присоединение нового архива к старому и начать с нового листа, то есть отдельно. По умолчанию (и это должны знать все) bacula пишет беки в один единственный файл, то есть происходит сцепка (или как я выражаюсь конкатинация). Другой момент (очень интересный): при линковании тома (файла, если мы пишем на винт) автоатически LabelMedia = yes bacula создаст так желаемые нами тома. Но при рециркуляции, так как bacula не имеет стирать файлы - начнет писать новые данные в старую обертку, то есть в старое название созданного тома (файла). Поэтому использование макросов в названии типа vol-bac-${Minute}-${Hour}... сыграет злую шутку - данные новые, название старое. Лучше оставлять имя vol-bac- . Еще один момент, если не использовать директиву Recycle Oldest Volume = yes то bacula честно сделает то количество томов (файлов), сколько указано в расписании (Schedule). То есть, напрмер в расписании указано сделать 4 тома (файла) в один день в определенные часы. Тома будут сделаны. Теперь пытаемся сделать другое расписание - 5 томов, а что в итоге...? В итоге получается 4 файла и самый старый по записи, то есть 1 будет еще раз перезаписан. С параметром Recycle Oldest Volume = yes у меня получилось, что новые тома (файлы) распределились так: 4 тома были перезаписано поверх старых, а еще 1 сделан. Еще один момент, в Pool директива Maximum Volumes = число будет управлять максимальным числов томов (файлов) в каталоге, где будут храниться эти самые тома с данными. Итак если Maximum Volumes = число будет равняться, например 18 (кстати учтите, что рекомендуется делать на 2 Maximum Volumes больше, чем вы хотите иметь томов (файлов) в каталоге) вкупе с директивой Recycle Oldest Volume = yes, то получится 18 ( у меня именно 18 вышло) томов (файлов) в каталоге. Вот собственно и все, что я хотел вам доложить. (так говаривал наш преподаватель по дискретной математике СПБГПУ).

P.S. здесь могут быть ошибки. Умеренная критика приветствуется.
SerGoVec
Юзверь
 
Сообщения: 2
Зарегистрирован: 21 авг 2013, 10:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.

Вернуться в Статьи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron