Я выбрал Bacula (v.5.0.2) для резервного копирования данных наших офисных работников.
Демон директора и хранилища запускается на корневом сервере на основе Debian ( SERVER
) арендован у крупной немецкой хостинговой компании.
Все ценные данные и, следовательно, File Daemon Bacula ( CLIENT
) находится на сервере Samba на основе Debian, который расположен на сайте и подключен к Интернету через ADSL (~ 768 Кбит) за маршрутизатором SOHO (это некоммерческая организация, у которой хронически не хватает денег).
Более того, CLIENT
подключение к Интернету отключается интернет-провайдером каждые 24 часа и его IP действительно меняется время от времени.
Мне удалось настроить базовую инфраструктуру и успешно протестировать резервное копирование и восстановление файлов. Но теперь, когда пришло время определять автоматизированные задания, я столкнулся с проблемой, которую просто не могу понять:
Проблема
Предположим, я хочу, чтобы у каждого офисного работника была работа, и мне нужно сделать резервную копию его общей папки Samba, которая весит около 10GB
. Уровень резервного копирования не имеет значения, поскольку Bacula для начала необходимо выполнить полное резервное копирование.
Но это первоначальное полное резервное копирование не пройдет через офисную сеть, пока принудительное отключение не сделает работу бесполезной.
Вопрос
Есть ли способ разделить начальную рабочую нагрузку на более мелкие части, кроме настройки нескольких заданий (и наборов файлов)?
Или лучше, можно ли как-то приостановить и перезапустить выполняющееся задание, чтобы преодолеть неизбежную потерю соединения?
Что-нибудь еще, о чем я не думал, может помочь?
Резервное копирование занимает количество времени, пропорциональное копируемым данным - если вам нужно переместить 10 ГБ данных, это займет некоторое время (сколько времени определяется скоростью вашего сетевого соединения).
Далее bacula предполагает, что ваше сетевое подключение является надежным - он не ожидает, что ваше соединение разорвется, и, честно говоря, это разумное предположение со стороны bacula.
В НАДЛЕЖАЩИЙ решение вашей проблемы - сменить провайдера.
Откровенно говоря, если ваше сетевое соединение настолько ненадежно, как вы описываете (отключается каждые 24 часа!), И вы не получаете соединение на 100% бесплатно, вы, вероятно, переплачиваете.
Если вы не можете реализовать правильное решение, лучшей альтернативой является запуск локального Storage Daemon на клиентском сайте и резервное копирование на диск там.
Затем вы можете использовать такой инструмент, как rsync
для копирования файлов виртуальной ленты в другое место.
Основными недостатками этого решения являются то, что вам понадобится (по крайней мере) дополнительный диск для резервного копирования, и вам придется управлять заданием rsync (что вы можете сделать с помощью RunAfterBackup
скрипт в Bacula).
В зависимости от ваших потребностей жесткого диска USB может хватить для дополнительного диска.
Другие альтернативы, которые вы описали в своем вопросе, либо ошибочны, либо невозможны.
В частности, в Bacula нет концепции «приостановки» резервного копирования, а разделение резервной копии на несколько заданий (единственный способ разбить ее) означает, что вы провалите подзадачу, а не целиком - вы все равно можете создайте резервную копию, которая не восстановит вас до хорошего / согласованного состояния, если вы это сделаете, поэтому вы на самом деле не решаете проблему.
По состоянию на версия 7.2
, bacula поддерживает приостановку и возобновление заданий (через stop
и resume
/restart
команды).