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