Бакула: страх перед вампирами

Привет всем.

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

Это действительно отличная программа, но как только они объяснят (примерно), как она работает, все пройдет гладко.

Введение

Bacula - это программа, которая управляет резервными копиями (резервные копии на испанском языке). Его огромный потенциал заключается в том, насколько хорошо он обрабатывает и автоматизирует задачи резервного копирования, особенно в больших средах (см. Обслуживание нескольких серверов).

Это правда, что если вы просто хотите сделать резервную копию своего персонального компьютера, забудьте об этом, настройка займет слишком много времени. Но если вы оказались в ситуации, когда вам приходится иметь дело с несколькими компьютерами / серверами, Bacula - ваше решение. Сначала вам придется потратить много часов, но если вы оставите все настроенным, пройдут годы, и вам не придется прикасаться к нему снова; Кроме того, как только вы научитесь его использовать, внесенные вами изменения будут небольшими и легкими.

Архитектура

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

Есть 3 основных части, каждая из которых также представляет собой отдельный установочный пакет: Директор, Хранилище и Файл. Как вы можете догадаться, Файл это клиентская машина (та, на которой нужно сделать копии), СХД это машина, на которой хранятся эти копии и директор это машина, которая руководит всем процессом. Конечно, может быть несколько клиентских машин (File), несколько Storage (на случай, если вы хотите разделить копии) и Director (хотя логично было бы одно, вы можете указать несколько).

Файлы, инструменты и демоны

Если все это автоматизировано, то это с помощью демонов. У каждой части есть свой собственный демон: bacula-Director, bacula-fd (file-daemon) и bacula-sd (storage-daemon). И каждый демон работает в соответствии с настройками своего файла, размещенного в / и т.д. / бакула: bacula-dir.conf, bacula-fd.conf, bacula-sd.conf.

Эти файлы конфигурации автоматически создаются во время установки, и требуется изменить только несколько параметров (IP-адрес удаленной машины, собственные сертификаты, автоматическое планирование резервного копирования…). Конфигурация директора самая сложная и обширная, так как именно он обо всем позаботится; обычно он делится на несколько файлов, чтобы не сломать одну голову, тогда в основном файле они все объединяются (аналогично включает в себя Apache2).

Теперь, несмотря на то, что файлы конфигурации - это то место, где находится вся «чича», bacula предлагает нам несколько инструментов для их обработки, поскольку во многих случаях необходимо будет выполнять задачи «вручную». Я просто сосредоточусь на консольном инструменте бконсоль, так как он самый полезный, и все остальное (графики) основаны на нем. Как следует из названия, это интерпретатор команд, который в интерактивном режиме позволяет выполнять различные задания.

Следует сказать, что существует несколько веб-сервисов, которые можно установить на машине Director для управления и мониторинга Bacula. Например, Bacula-Web предлагает вам в виде графиков и таблиц информацию о состоянии резервных копий, заполненности хранилища и т. Д.

Также следует отметить, что работа Bacula основана на каталоге: базе данных (на выбор между MySQL, SQLite и PostgreSQL), где записываются все события, тома, клиенты ... К этой базе данных нельзя прикасаться вручную, через бконсоль Предусмотрены различные команды для взаимодействия с каталогом без использования синтаксиса SQL.

Безопасность

Одна из сильных сторон Bacula - безопасность. У каждого клиента, хранилища и директора есть свой ключ, и в зависимости от соединения он шифруется этим ключом. Каждый может придумать этот ключ по своему вкусу, хотя сама программа генерирует случайное число из 30 символов.

В дополнение к шифрованию, которое предлагает программа, Bacula принимает безопасные соединения с использованием TLS. Поэтому к нашему предыдущему шифрованию мы должны добавить еще одно шифрование сертификата и ключа SSL. Если говорить более серьезно, для каждой машины должны быть созданы уникальный сертификат и ключ. Эта часть настройки немного сложнее.

тома

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

Копии хранятся упакованными в зашифрованные тома, поэтому прямой доступ к файлам невозможен. Это своего рода .tar.gz (так как поддерживает сжатие), но собственный; без каталога данные без резерва спасти невозможно. Для этого есть продвинутые инструменты, но они всегда нуждаются в каком-то компоненте базы данных, и для начинающего пользователя они становятся очень сложными. Вот почему о каталоге нужно заботиться и заботиться (по умолчанию Bacula делает резервную копию каталога после выполнения запланированных работ).

Чтобы помочь нам организовать несколько резервных копий, Bacula группирует тома в пулы. Например, пул определяется для каждого клиента, поэтому все копии (тома) каждого клиента можно легко различить, поскольку они принадлежат к разным семействам (пулам).

Кроме того, Bacula поддерживает повторное использование / переработку томов. Поэтому, если вам нужно только ежемесячное полное резервное копирование, но вы хотите, чтобы он существовал, вы можете настроить Bacula для перезаписи тома, который ранее содержал эту копию, чтобы избежать ненужного заполнения диска и забыть о необходимости стирать данные самостоятельно. старые вручную.

Копировать уровень и восстанавливает

Можно определить разные задания с их соответствующими графиками. Другими словами, если мы будем делать полное резервное копирование каждый день, наши задачи обслуживания будут не очень эффективными ... но Bacula позволяет нам создавать резервные копии до 3-х различных уровней: полное, дифференциальное и инкрементное.

Полная резервная копия - это классическая копия, все, что вы хотите сделать резервную копию, копируется. В то время как Дифференциал копирует только файлы, которые изменились (или новые) с момента последнего Фулл-хауса. С инкрементными копиями происходит то же самое, но на один уровень ниже, он сравнивает только изменения с момента последнего дифференциального копирования или с момента последнего полного, если оно было более новым. Это очень удобно, если вы хотите сохранить баланс между оптимизацией ресурсов и их полезностью. Благодаря этому мы можем получать файлы разной даты, не занимая много места. Это очень полезно, когда кто-то напортачил и ему нужна конкретная резервная копия на один день.

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

Автоматизация

Вот сильная сторона Bacula. Все задачи резервного копирования планируются в Директоре, также допускаются уровни приоритета. Поэтому планировать несколько задач на один день и время - это нормально. Как только Директор подключился к клиентской машине (со своим FileDaemon), он устанавливает связь с Хранилищем, связанным с указанной задачей, подготавливает зашифрованное соединение и файлы для копирования.

Кроме того, он не только позволяет вам указывать файлы / папки, которые следует скопировать, он также поддерживает выполнение команд / сценариев до, во время и после каждого задания. Поэтому, если вы хотите сделать резервную копию базы данных, вы можете указать путь к сценарию, который дает вам дамп, а затем скопировать этот дамп. Он также позволяет вам указать файлы для копирования общим способом, имея возможность добавлять более конкретные файлы с самого клиентского компьютера. Это нормально иметь общий FileSet для всех систем UNIX (где определены папки для копирования, / etc, / usr, / home / var ...), а затем каждый клиент может указать свои собственные файлы, которые он хочет скопировать.

Bacula также поддерживает повторное использование / переработку томов. Таким образом, если вам требуется только ежемесячная полная резервная копия, но вы хотите, чтобы она существовала, вы можете настроить Bacula для перезаписи тома, который ранее содержал эту копию, чтобы избежать ненужного заполнения диска и забыть о необходимости стирать данные самостоятельно. старые вручную. Очень широко распространено повторное использование пулов, назначенных для инкрементальных и дифференциальных копий, поскольку они просто служат для хранения измененных / новых файлов, каждый раз, когда появляется новый полный, эти тома непригодны для использования, поэтому вы повторно используете их для новых инкрементальных / новых файлов. Дифференциалы.

И все это… как это работает?

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

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

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

Надеюсь, вам понравилось и до следующего раза!


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

26 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Данхантер сказал

    Некоторые ссылки на сайт мужиков, не говоря уже о. 😉

    http://www.bacula.org/es/
    http://www.bacula.org/en/?page=documentation

    В последнее время я пристрастился к rsync для работы по дому, мои репозитории и документы дублируются на настольном компьютере и ноутбуке, и я часто их синхронизирую, поэтому на моем ноутбуке всегда есть зеркало рабочего стола.

    Я полагаю, что для серверов хороший сценарий rsync, запускаемый cron, сработает, но преимущество bacula в том, что он сохраняет для изменений, а не только для последних.

    1.    Woqer сказал

      Щас ставлю. Я подумал об этом, как только отправил статью на рецензию, но мне пришлось ехать и пока я не наступал на компьютер.

    2.    Woqer сказал

      buah Я думаю, что не могу редактировать ... Я оставляю здесь ссылку на Основную ссылку документации, что некоторые будут связаны с таким количеством ссылок ...
      http://www.bacula.org/5.2.x-manuals/en/main/main/index.html

  2.   Eulalio сказал

    Это нужно прочитать подробно и красным карандашом.

  3.   Юлий Цезарь сказал

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

    BackupPC
    http://backuppc.sourceforge.net/

    На данный момент мы перенесли на эту платформу почти все серверы резервного копирования.

  4.   КЗКГ ^ Гаара сказал

    Несколько лет назад я искал приложение для резервного копирования моих серверов на моей предыдущей работе ... Я пробовал Bacula, но, ммф, это чудовище, отличный вариант без сомнения, но это было слишком много для того, что мне было нужно. В конце концов, я запрограммировал свою собственную систему (сценарии bash), которая делала именно то, что я хотел 😀

  5.   Хоакин сказал

    Так хорошо, спасибо, что поделились!

  6.   adiazc87 сказал

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

    Спасибо за хорошее объяснение.

    1.    Woqer сказал

      Сначала вы должны решить, какую базу данных использовать, взгляните на официальную документацию, которая довольно полная. http://www.bacula.org/5.2.x-manuals/en/main/main/Installing_Bacula.html
      Я бы также посоветовал вам установить его с помощью диспетчера пакетов вашего дистрибутива, например, с помощью apt-get (как в Debian) вы создаете каталог для себя, выполнив пару очень простых шагов.
      Для конфигурации взгляните на http://www.bacula.org/5.2.x-manuals/en/main/main/Installing_Bacula.html Поскольку файлы конфигурации почти готовы, вам просто нужно изменить пару вещей, и в документации по bacula рассказывается, как начать постепенно монтировать, чтобы понять процесс.
      Я бы хотел сделать гид, но завтра уезжаю в отпуск ... может, когда вернусь

  7.   Хуан сказал

    Очень хорошо… это помогло мне начать с посоха….

  8.   Dhuertas сказал

    Отличный инструмент !!! Не знала, хотя в лупу придется изучать, интересно смотрится ...

    Привет!

  9.   GM Черногория сказал

    Здравствуйте, я несколько недель настраивал Bacula в компании, в которой работаю, я многому научился у этого инструмента, это фантастика. Однако у меня есть вопрос, который я не смог решить, и я надеюсь, что кто-то может мне помочь. Могу ли я хранить тома или пулы на каком-либо внешнем диске для резервного копирования вне офиса, а затем восстанавливать их из этих файлов?

    1.    Woqer сказал

      Здравствуйте, конечно, вы можете хранить тома на внешнем диске, но для их восстановления необходимо иметь доступ к bconsole, так как для восстановления файла вам необходимо расшифровать том согласно каталогу.
      С помощью команды восстановления вам дается ряд шагов для выбора тома и т. Д., После чего будет построено дерево каталогов, чтобы вы могли вручную выбирать файлы. Он также позволяет вам выбрать машину и каталог, в котором их восстановить (он даже дает вам возможность восстановления в источник, перезаписывая данные, хотя это не рекомендуется).
      надеюсь, это поможет http://www.bacula.org/en/dev-manual/main/main/Restore_Command.html

      1.    GM Черногория сказал

        Спасибо за быстрый ответ. Я постараюсь объяснить себя на примере, чтобы еще немного прояснить картину 😉. В настоящее время Bacula уже настроена на создание копий дисков. Что произойдет, если я возьму один из томов и скопирую его непосредственно на внешний диск, который я оставлю за пределами центра обработки данных для восстановления в случае какого-либо события. Можно ли восстановить данные, хранящиеся в этом томе, если я повторно подключу внешний диск и попытаюсь открыть его с помощью Bacula ?.

        1.    Woqer сказал

          Дело в том, что вам придется «зарегистрировать» внешний диск как устройство в конфигурации демона хранилища (файл bacula-sd.conf), чтобы bacula могла его видеть. Как только это будет сделано, я не думаю, что у вас возникнет серьезная проблема ... даже в этом случае я бы провел тесты на случай, если каталог не найдет том. Позвольте мне объяснить, когда вы перемещаете том «физически» (то есть перемещаете файл из своей операционной системы), каталог не знает этого, поэтому вам также необходимо удалить том из каталога. Затем обязательно добавьте его обратно в каталог, так как его путь изменился, в bconsole напишите help, чтобы увидеть сводку команд, обрабатывающих каталог.
          Есть два простых решения, если вы не хотите связываться с каталогом. Во-первых, bacula записывает данные непосредственно на внешний диск, и когда вам это надоест, вы добавляете новое устройство в bacula-sd.conf и сохраняете диск в другом месте; поэтому, когда вам нужно что-то восстановить, эти тома по-прежнему отражаются и хорошо настроены в каталоге. Другой вариант - выполнить восстановление на внешний диск, при котором файлы будут сохранены непосредственно на диск, без шифрования, архивирования, сжатия или чего-либо еще, поэтому они всегда будут доступны.

          1.    GM Черногория сказал

            Большое вам спасибо

          2.    Woqer сказал

            кстати, когда вы выполняете восстановление с помощью bconsole, в конце всего вы получите сводку для подтверждения, обычно выбирается опция мода (да / мод / нет), которая позволяет вам изменять некоторые параметры, которые уже предварительно настроены

  10.   Энди сказал

    Bacula - это то, что я всегда начинаю, но никогда не заканчиваю. Это делает меня огромным. Однажды я должен попытаться дать ему еще один шанс из-за возможностей, которые он предлагает.

  11.   BiteAciD сказал

    Изучение Bacula сначала немного обременительно, но как только вы узнаете, как это работает, все станет лучше ...
    Я изучаю эту программу 3 дня, управляю ею из webmin, bconsola и т.д ...
    Возможно, было бы полезно более обширное руководство ... Со своей стороны, я документирую проблемы, с которыми я столкнулся (чтобы понять программу).
    пример:
    - Клиент Windows при установке по умолчанию дает вам пароль доступа, и если вы измените его перед подключением к серверу, он не даст вам доступа ... То есть вы должны использовать тот же пароль и после распознавания устройства вы можете изменить пароль.

    BackupPC - это хорошо, но я думаю, что Bacula на данный момент кажется настолько надежным для производственной среды с большим количеством серверов и рабочих станций.

    привет

    1.    Woqer сказал

      Установка и настройка клиента Windows - это непростая задача, хотя в принципе все работает отлично, когда вы начинаете входить в конфигурации TLS с самоподписанными сертификатами ... начинается кошмар. У меня получилось, но в первый раз это стоило мне времени, гнева и пота!

  12.   Леопольд сказал

    Я хочу получать информацию.

  13.   маймейстер сказал

    Привет добрый день.

    Я мог бы мне помочь, пожалуйста. Я установил bacula, и он работает на моих серверах и без проблем выполняет резервное копирование, которое я могу восстановить. но мой вопрос: есть ли способ сохранить всю операционную систему? как изображение или клон заранее спасибо.

  14.   Густаво сказал

    Статья мне очень понравилась, понятная, простая, полная и приятная для чтения. Мой вопрос: какую версию и какой тип Linux вы больше всего рекомендуете для Bacula? С уважением.

  15.   Маурисио Тобар сказал

    Дорогой, очень хорошо, в статье с некоторыми руководствами мне удалось установить bacula в Centos 6.6, установить клиент на Windows 7, который имеет связь с директором, а также установить Webmin, так как через это я управляю всеми конфигурациями клиента и резервного копирования.
    Все в порядке, пока нет, но во время создания резервной копии она не работает, ничего не делает, пожалуйста, попросите какой-нибудь свет, который освещает меня, что я терплю неудачу, заранее большое спасибо из Чили.

  16.   Иисус сказал

    Доброе утро, уже пару лет работаю с bacula, проблем не было, но однажды bacula перестала запускаться, я искал и не мог запустить службу, мне было легко скопировать файлы и / etc / bacula, но я поискал в Интернете и понял, что моя ошибка заключалась не в копировании папки, в которой сохранен загрузочный файл ..
    Вы знаете, как решить эту проблему?

    Привет из Мехико
    Иисус

  17.   Роберто Гевара сказал

    Привет, я пытаюсь реализовать это между несколькими серверами, но я не могу аутентифицировать хранилища, но я могу аутентифицировать клиентов этих же серверов. Кто-нибудь знает, проблема ли это в версии? У меня есть сервер с версией 2.4, другой с 5.0 и baculumweb с версией 9.0
    спасибо