Много лет подряд схема именования томов в Bacula/Bareos приводила меня в полное недоумение. Я не мог понять почему свежеустановленная система резервного копирования создаёт тома в строгом соответствии с настройками прописанными в секция pool, а через какое-то время “слетает с катушек” и начинает записывать данные в старые файлы. Оказалось причина в в том, что Bacula изначально была заточена под ленточные накопители. Агалогично она поступает и с дисками: тома на дисках воспринимаются как ленты. Следствие этой особенности в том, что если Bacula создала том (файл на жёстком диске) то она НИКОГДА не удаляет его с диска. У каждого пула и задания есть параметр Volume Retention который задаёт время по истечении которого файлы попавшие в этот том бакула считает удалёнными. Если установлена опция AutoPrune = yes то bacula удалит записи из каталога (SQL). А если установлена опция ActionOnPurge = Truncate то урежет размер файла до нуля.
Continue reading Разбираемся с томами Bacula/Bareos
Tag: bacula
Удаление списка ожидающих заданий bacula
Случается, что на сторадже заканчивается место до того как bacula соберётся удалять старые файлы. В результате вы получаете одно оповещение, что задача не была выполнена и второе от мониторинга, что закончилось место. Если задача одна-две, это не проблема. Удалили руками и всё в порядке. Но ситуация меняется когда задач много и тем более вы не среагировали за период более чем один цикл бэкапа. Очередь закупоривается и пока она не будет выполнена целиком новые задания не будут выполнены. Данный скрипт позволяет по очереди удалить все задания начиная с последнего по очереди, чтобы дойдя до первого не стартовало следующее за ним.
#!/bin/bash for ID in `echo 'status dir running' | bconsole | sed -n '/Running Jobs:/,/^$/p' | sed -n '/^=\+$/,/^=\+$/p' | grep -v '^=\+$' | awk '/is waiting/{print $1}' | sed -e '1!G;h;$!d'` ; do if [[ ! ${ID} =~ ^[0-9]+$ ]] ; then echo "JobID \"${ID}\" is not a number! Skipping." else echo -e "Do you want to kill waiting job ${ID}" read -p 'Type YES if you really want to delete job: ' input if [[ ! ${input} =~ ^[Yy]$ ]] ; then echo -e "Skip job ${ID}.\n" continue else echo "cancel jobid=${ID}" | bconsole fi fi done
Скрипт удаления старых томов для bacula
Я уже писал о том как вручную удалять старые тома из базы и с диска. Казалось что это однократная операция. Однако пришлось делать это во второй раз. Попутно выявилась проблема с приоритетом команды restore. Диск с бэкапами заполнился, задания застряли в очереди и команда restore создала задание которое послушно встало в хвост очереди. Приоритеты очереди работают только в том случае если очередь движется. Bacula не приостанавливает ткущее задание чтобы выполнить задание с более высоким приоритетом. А оно стоит в очереди и не может выполниться изза нехватки места на диске. Гугл не смог найти ответ как же запустить рестор вне очереди. Пришлось очистить очередь, при помощи команды cancel в bconsole после чего отработал рестор.
Это всё отступления, вернёмся-же к автоматизации:
Continue reading Скрипт удаления старых томов для bacula
Bacula удаление старых томов
В процессе многолетней эксплуатации Bacula у меня возникла ситуация когда мониторинг ругался что диск заполнен, а Bacula даже не собиралась удалять старые тома. Пришлось чистить ручками.
UPDATED: Автоматизация процесса.
Запускаем консоль
# bconsole
Переходим в режим SQL запросов к каталогу
Continue reading Bacula удаление старых томов
Bacula проблема запуска под Winows
Что такое Bacula?
Для тех кто попал на эту страницу случайно и не знает что это за летучая мышь поясню, что Bacula это набор кросплатформенных программ с открытым исходным кодом для резервного копирования данных. Эти программы позволяют администратору сети управлять процессом резервного копирования, восстанавливать данные и проверять их. Они работают с различными носителями включая ленточные (стриммеры). Набор программ построен по клиент/серверной технологи и позволяет выполнять резервное копирование данных от одиночного компьютера до тысяч разнородных компьютеров объеденённых в большую сеть. Поскольку отступление уже затянулось то спешу сообщить, что подробнее можно почитать здесь
Нетерпеливым рекомендую перейти сразу в конец страницы и посмотреть решение вопроса.
Проблема появилась уже при установке.
Установка клиента Bacula для Windows прошла в целом гладко если не считать того, что при установленной по умолчанию в инсталяторе “птичке” “run Bacula service” в логе установки осталась ошибка (в цитате она выделена жирным шрифтом):
Continue reading Bacula проблема запуска под Winows