Резервное копирование Active Directory с помощью ПО Bacula. Бэкап Active Directory и LDAP.

Резервное копирование Active Directory с помощью ПО Bacula. Бэкап Active Directory и LDAP.

1 Введение в резервное копирование Active Directory

ИТ компаниям постоянно требуются различного рода решения для резервного копирования, гарантирующие низкую стоимость владения соответствующим ПО. К тому же, многие вычислительные среды, построенные на базе серверов LDAP и Microsoft Active Directory, представляют собой достаточно сложные архитектуры, что в условиях повышенной нагрузки вынуждает ИТ специалистов искать эффективные решения для резервного копирования и восстановления данных.

Данный документ содержит несколько решений, позволяющих выполнять сконфигурированное резервное копирование и восстановление данных серверов Directory, включая Active Directory, с помощью модуля LDAP/MS Active Directory компании Bacula Systems и/или с помощью модуля VSS, являющегося частью Bacula Enterprise Edition 10. Компания Bacula Systems поставляет решения, позволяющие поддерживать работу LDAP серверов, а также специализированные решения для поддержки Microsoft Active Directory и решения, которые могут быть применены на случай аварийного резервного копирования, а также для восстановления данных на уровне отдельных объектов.

Для LDAP и Active Directory ПО Bacula Enterprise Edition предлагает следующие решения:

  • ‘File Daemon’ (FD) и модуль VSS (а также инструмент для восстановления систем «на голое железо») от Bacula позволяет выполнять быстрое восстановление данных системы и Active Directory на уровне отдельных компонентов;
  • VSS модуль Bacula Enterprise Edition используется для быстрого восстановления данных на уровне приложений;
  • MSAD модуль Bacula Enterprise Edition позволяет пообъектно восстанавливать данные LDAP из Active Directory. Данное решение не является частью процесса аварийного восстановления, однако, оно идеально подходит для восстановления данных в результате инцидентов, вызванных ошибками пользователя или отказом ПО (по оценкам Bacula 90% случаев потери данных LDAP происходят по вине пользователя или в результате сбоя ПО)
  • LDAP модуль Bacula Enterprise Edition может использоваться для работы с любыми службами LDAP (например, для резервного копирования и восстановления данных Novell/SUSEs eDirectory, openLDAP, DS389, и т.д.). Модуль является незаменимым инструментов любой схемы резервного копирования и восстановления данных в средах, использующих каталоги LDAP для управления данными.

Плагин Directory Server Bacula Enterprise Edition включает в себя два подмодуля: LDAP и MSAD. Оба подмодуля позволяют создавать бэкапы и восстанавливать данные на уровне объектов.

2 Общее представление о Bacula Enterprise

Bacula Enterprise Edition состоит из 5 основных компонентов:

Служба Director контролирует все действия по созданию бэкапов, восстановлению, проверке и архивированию данных.

Служба Storage Deamon представляет собой ПО, которое сохраняет атрибуты файлов и данных на физических носителях.  

Служба File Daemon или Client устанавливается на каждой машине, бэкап которой необходимо создать.

Служба Catalog отвечает за сохранение индексов файлов, резервные копии которых были созданы.

Служба Consoles позволяет пользователю взаимодействовать со службой Director. Службой можно пользоваться через текстовую консоль (BConsole) или через веб-интерфейс (BWeb Management Suite).

Более подробная информация изложена в основном руководстве. Ниже приведена архитектура, содержащая основные компоненты Bacula Enterprise.

Архитектура Bacula Enterprise Edition

Архитектура Bacula Enterprise Edition

3 Глоссарий бэкапа Active Directory и LDAP 


Active Directory – служба каталогов (MSAD) Microsoft для доменных сетей Windows. Включена в большинство серверных ОС Windows.

LDAP – упрощенный протокол доступа к каталогам, прикладной протокол для доступа и поддержания работы информационных служб распределенных каталогов через IP сети.

Tombstone – удаленный объект AD, невидимый при осуществлении стандартных операций с каталогами.

DN – уникальное имя объекта, полный путь к объекту в дереве.

File Daemon и плагин Directory Server Bacula можно устанавливать на любом хосте Linux, имеющем доступ к защищенным LDAP или MSAD серверам. Установка плагина MSAD на Windows Server не поддерживается должным образом.

Active Directory – служба каталогов (MSAD) Microsoft для доменных сетей Windows. Включена в большинство серверных ОС Windows.

LDAP – упрощенный протокол доступа к каталогам, прикладной протокол для доступа и поддержания работы информационных служб распределенных каталогов через IP сети.

Tombstone – удаленный объект AD, невидимый при осуществлении стандартных операций с каталогами.

DN – уникальное имя объекта, полный путь к объекту в дереве.

File Daemon и плагин Directory Server Bacula можно устанавливать на любом хосте Linux, имеющем доступ к защищенным LDAP или MSAD серверам. Установка плагина MSAD на Windows Server не поддерживается должным образом.

4 Модуль Directory Server в Bacula Enterprise Edition

Модуль Directory Server состоит из подмодулей LDAP и MS Active Directory (MSAD).

4.1 Подмодуль бэкапа LDAP

Модуль резервного копирования LDAP разработан для осуществления резервного копирования и восстановления на уровне LDAP объектов. Модуль использует сетевой протокол LDAP и стандартную схему для поиска и выбора объектов. Модуль поддерживает множество различных LDAP серверов. Модуль Directory Server в качестве «подмодуля» Bacula Enterprise Edition позволяет выполнять следующие основные функции в отношении LDAP серверов:

  • Поддерживать следующие уровни резервного копирования: полный, дифференциальный, инкрементальный

  • Поддерживать режим точного резервного копирования (находит удаленные объекты)

  • Правильно сохраняет в каталоге размер и время изменения файлов
  • Позволяет перемещать объекты во время восстановления
  • Поддерживает внутренний формат архивирования типа LDIF
  • Поддерживает функции замены: always, never, ifnewer, ifolder
  • Позволяет подключаться к серверам LDAP по сетевому протоколу LDAP 

  • Поддерживает безопасное соединение ldaps (SSL) с сервером LDAP
  • Поддерживает режим прослушивания для просмотра объектов непосредственно через консоль Bacula
  • Создан и протестирован на Linux.

4.2 Подмодуль MSAD

Модуль резервного копирования Active Directory разработан для осуществления резервного копирования и восстановления на уровне одиночных объектов MS Active Directory. Бэкап Active Directory Server использует сетевой протокол LDAP и схему Active Directory Schema для поиска и восстановления объектов. Примите во внимание то, что несмотря на то, что модуль создает бэкапы Microsoft Active Directory, в настоящий момент он может запускаться только на Linux и Unix машинах. Модуль MSAD создан и протестирован на Linux с использованием сетевого подключения к серверу Microsoft Active Directory. В настоящий момент версия модуля MSAD для Windows отсутствует. Подмодуль MSAD позволяет использовать следующие дополнительные функции для серверов Active Directory:

  • Поддерживает сервера MS Active Directory (с Windows 2003 до Windows 2016)
  • Подключается к серверу MS Active Directory по протоколу LDAP 

  • Позволяет восстанавливать удаленные объекты MS Active Directory 

  • Позволяет управлять специальными параметрами Active Directory.


5 Примеры FileSet для резервного копирования Active Directory

В примере ниже модуль использует конфигурационный файл по умолчанию для создания бэкапа:

В примере ниже модуль использует выбранный конфигурационный файл для создания бэкапа:

В примере ниже все необходимые конфигурационные параметры указываются в командной строке с помощью команды Plugin=….


Конфигурационный файл не используется:

6 Подготовка к бэкапу LDAP

Вы можете указать различные конфигурационные файлы в каждом отдельном определении FileSet. Плагин потребует доступ к учетной записи LDAP/MSAD с разрешениями для создания запросов и чтения объектов с целью их резервного копирования. Учетная запись может являться учетной записью администратора или стандартной учетной записью, которой присвоена роль Backup Operator. Плагин LDAP/MSAD создает виртуальное пространство имен в каталоге Bacula, которые включают «ldap:» или «msad:» префиксы. При этом дерево DN используется в качестве дерева каталога. Виртуальное пространство имен в каталоге Bacula не содержит имена серверов/копий ldap/msad, поэтому администратор резервного копирования должен отличать деревья различных серверов на одном клиенте Bacula FD.

7 Резервное копирование Active Directory и LDAP

Модуль выполняет один базовый запрос, чтобы найти объект резервного копирования и использует страничный контролируемый ответ для получения всех доступных объектов. Модуль сохраняет все стандартные и расширенные атрибуты, полученные с сервера. Такими атрибутами являются системные или динамические атрибуты. Если модуль во время резервного копирования обнаруживает объект ссылочного типа, он не перейдёт к нему и оповестит о нём пользователя, то есть появится сообщение:

(…) Referal found. Will not descend to ref: ldap://…/…

В результате резервного копирования будет создан один файл для каждого объекта, найденного в поддереве Directory Server, начиная с параметра BASEDN.

8 Проверка FileSet

Для проверки FileSet, в частности, если используется перечисление параметров, можно использовать команду estimate:

9 Восстановление

Модуль поддерживает процедуру восстановление данных серверов LDAP или MSAD. Вы не сможете восстанавливать объекты в локальную файловую систему, однако, сможете восстанавливать объекты в исходное местоположение или перемещать их другие части поддерева.

Чтобы восстановить объекты в исходное местоположение, необходимо использовать параметр восстановления where=/. Модуль не предназначен для реализации процедур аварийного восстановления. Пожалуйста, примите во внимание, что для аварийного восстановления серверов MSAD можно использовать модуль VSS, реализованный в Bacula Enterprise.

Объекты LDAP восстанавливаются точно таким же способом в стандартные файлы с помощью команды «restore»:

В случае использования модуля MSAD:

Вы можете изменить поддерево для восстановления, используя параметр where=… и команду восстановления. Команда должна содержать полный путь для перемещения, то есть:

* restore where = «dc=restore, dc=example, dc=com»

Модуль LDAP или MSAD при восстановлении с перемещением объектов работает также, как работает стандартная команда восстановления where=/tmp/ применительно к обычным файлам и каталогам при восстановлении полного пути к поддереву объекта. Вы можете изменить режим перемещения во время процедуры восстановления. Пользователю доступны режимы: always, never, ifnewer, ifolder. Режим может быть изменен при выполнении команды восстановления из консоли bconsole.

Модуль сохраняет все стандартные и расширенные атрибуты, даже если их нельзя восстановить напрямую, или их восстановление невозможно вовсе (атрибуты только для чтения). Некоторые сохраненные атрибуты будут восстановлены не напрямую (например, атрибут ‘memberOf attribute’). Другие атрибуты будут пропущены в процессе восстановления. В таком случае, всю соответствующую информацию вы сможете получить в журнале задач. Пример показан ниже:

10 Варианты восстановления Active Directory

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

Чтобы использовать интерфейс, позволяющий задавать опции восстановления, необходимо во время процедуры восстановления выбрать 13 параметр:

Будут доступны следующие опции:

1: basedn (основное местоположение (DN) для восстановления, это может быть корневое дерево сервера ldap или иное поддерево, например: dc=example,dc=com)


2: ldapuri (универсальный идентификатор ресурсов для сервера MSAD, команда подключения, например: ldap://192.168.0.100/)

3: binddn (восстановление уникального имени пользователя, например: cn=backup,dc=example,dc=com)

4: bindpass (восстановление пароля пользователя)


5: hbindpass (восстановление скрытого пароля пользователя)


6: config (путь к альтернативному конфигурационному файлу)

7: attribs (список дополнительных атрибутов (разделенных запятой), которые необходимо пропустить во время восстановления)

В случае модуля MSAD пользователи могут использовать следующие опции:

Будут доступны следующие опции :

basedn (основное местоположение (DN) для восстановления, это может быть корневое дерево сервера ldap или иное поддерево, например: dc=example,dc=com) . Это основное местоположение (DN) для резервного копирования, это может быть корневое дерево сервера ldap или иное поддерево.

ldapuri (универсальный идентификатор ресурсов для сервера MSAD, команда подключения, например: ldap://192.168.0.100/) . универсальный идентификатор ресурсов для сервера LDAP/MSAD.

binddn (восстановление уникального имени пользователя, например: cn=backup,dc=example,dc=com). Резервная копия уникального имени пользователя.

bindpass (восстановление пароля пользователя). Резервная копия пароля пользователя.


hbindpass (восстановление скрытого пароля пользователя). Резервная копия зашифрованного пароля пользователя.

config (путь к альтернативному конфигурационному файлу). Конфигурационный файл, который содержит все необходимые параметры.

schemaapply (автоматический пропуск известных атрибутов, доступных только для чтения). Булева опция (yes/no), которая позволяет автоматически пропускать доступные только для чтения атрибуты сервера Active Directory.

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

10.1 Восстановление Active Directory

Active Directory это особый вид сервера каталогов, требующий особого обращения в процессе восстановления, что и послужило причиной разработки плагина MSAD.

10.1.1 Восстановление удаленного объекта из контейнера

Текущая версия модуля MSAD поддерживает восстановление удаленных объектов Active Directory. Во время восстановления модуль MSAD автоматически проверяет, имеет ли восстанавливаемый объект доступную удаленную копию в специальном контейнере. При нахождении копии модуль MSAD восстанавливает ее из контейнера и восстанавливает все атрибуты из бэкапа. Эта функция позволяет правильно восстанавливать некоторые системные атрибуты типа SID или objectGUID, которые нельзя восстановить иными методами.

10.1.2 Восстановление memberOf

Модуль распознает и особо бережно восстанавливает атрибут объекта memberOf. После успешного восстановления объекта модуль добавляет восстановленный объект ко всем группам, указанным в списке атрибутов memberOf. Если указанная группа не существует на сервере AD, данная группа пропускается.

10.1.3 Восстановление userAccountControl

Атрибут userAccountControl в Active Directory требует особых прав для успешного выполнения восстановления. Вам, возможно, потребуется добавить группу безопасности Enterprise Admins к пользователю BINDDN или изменить права доступа непосредственно в BINDDN.

Модуль проверит позволено ли восстанавливать атрибут userAccountControl с помощью текущих прав доступа и сообщит пользователю о неуспешном завершении восстановления. В этом случае атрибут userAccountControl будет восстановлен с флагами по умолчанию, то есть учетная запись будет отключена.

10.1.4 sAMAccountName

Атрибут sAMAccountName пользовательских объектов Active Directory представляет собой атрибут, который должен сохранять свою уникальность в контексте всего каталога. Атрибут требует особого обращения во время перемещения при восстановлении, в частности, когда исходный пользовательский уже существует в исходном местоположении. В таком случае, объект, перемещаемый во время восстановления, будет изменен.

По умолчанию атрибуту sAMAccountName присваивается суффикс _$(JobID) с идентификационным номером задачи. То есть если исходному атрибуту sAMAccountName присвоено название testuser, то во время восстановления он примет значение testuser_230, если идентификационный номер задачи представляет собой число 230. Атрибут sAMAccountName изменяется, только при выполнении следующих условий:

  • Задача по восстановлению выполняется с перемещением, параметр where=… имеет значение, отличное от ’/’
  • Значение атрибута sAMAccountName уже существует в контексте каталога, то есть существует исходный пользовательский объект на сервере каталогов.

11 Использование VSS при бэкапе Active Directory

Как было сказано в начале данного документа, резервное копирование Active Directory можно выполнить с помощью стандартных инструментов Bacula для Windows, не используя модули LDAP/MSAD. Стандартное резервное копирование предполагает копирование всей информации с каждого диска за исключением временных файлов. В данном случае используется опция VSS (стандартная опция Bacula), не плагин VSS. Пользователи программного обеспечения Bacula используют данную опцию в течение многих лет. Большинство пользователей используют ее для резервного копирования и восстановления пользовательских файлов, а также для восстановления системы на голое железо. Фактически компания Bacula Systems создала отдельный инструмент WinBMR, который автоматизирует процедуру восстановления системы на голое железо.

Стандартное резервное копирование выполняется без плагина Bacula VSS. При этом, Bacula использует Windows VSS API (не VSS плагин) для создания снапшотов файловой системы с последующим созданием бэкапов. Как правило, подобные бэкапы содержат все файлы операционной системы.

Недостатками подобного метода резервного копирования является невозможность восстановления  отдельных компонентов состояния системы, которые можно восстановить с помощью плагина VSS. Однако пользователь может реализовать один из трех видов восстановления, описанных ниже.

11.1 Восстановление стандартных пользовательских файлов

Модуль VSS позволяет восстанавливать стандартные пользовательские файлы или системные файлы, которые не используются ОС (многие файлы используются системой и не могут быть восстановлены пока система запущена).

11.2 Восстановление на «голое железо»

В процессе восстановления системы на голое железо вы можете восстановить всю систему, включая все файлы состояния системы. Недостаток метода по сравнению с методом, при котором используется плагин VSS,  заключается в том, что вам придется восстанавливать всю систему полностью, а не отдельные ее компоненты.

Примечание: также можно восстанавливать любое подмножество файлов, а не все файлы. Поэтому, если вы разбираетесь в файлах состояния системы, в теории вы сможете восстановить только состояние системы или любой иной компонент системы. На практике, с данной задачей справляются далеко не все пользователи.

В данном документе описан процесс резервного копирования состояния системы и/или нескольких прочих элементов системы, таких как, MSSQL, Exchange. Разница между процедурой создания бэкапов этих элементов и предыдущего элемента заключается в том, что при создании копий последних элементов используется VSS модуль Bacula Enterprise Edition.

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

Недостаток данного метода создания бэкапов заключается в том, что он не может использоваться в процессе восстановления системы на голое железо. Это обусловлено тем, что любой бэкап, содержащий данные, записанные с помощью модуля VSS, требует  модуль VSS для их восстановления. А при восстановлении систем на голое железо нет возможности использовать подсистему VSS.

11.3 Восстановление данных на уровне приложений с помощью VSS модуля

С помощью данных, резервная копия которых создавалась с помощью VSS модуля, можно восстанавливать данные конкретных приложений на запущенной ОС Windows. В частности, используя задокументированный  Microsoft способ восстановления данных Active Directory в режиме Directory Services Restore Mode, можно  заново наполнить домен Active Directory ранее скопированными данными и гарантировать согласованность данных во всей кластерной среде AD.

Данный подход к восстановлению данных можно назвать аварийным восстановлением данных на уровне приложений. Этот подход может использоваться как часть плана по обеспечению отказоустойчивости системы.

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

12 Заключение

Bacula позволяет создавать бэкапы и восстанавливать данные Windows Active Directory с использованием нескольких методов:

  • С помощью Bacula File Daemon (FD) и VSS (а также с помощью модуля для восстановления системы на голое железо). В частности, таким образом можно осуществлять быстрое восстановление системы и восстановление компонентов Active Directory;
  • С помощью VSS модуля Bacula Enterprise Edition. ). В частности, таким образом можно осуществлять быстрое восстановление данных на уровне приложений;
  • С помощью MSAD модуля Bacula Enterprise Edition. ). В частности, таким образом можно осуществлять восстановления отдельных элементов LDAP из Active Directory. Как правило, данный метод не является частью плана по аварийному восстановлению системы. Однако он идеально подходит для восстановления данных после инцидентов, произошедших по вине пользователя или в результате отказа ПО (на такие случаи приходить до 90% всех случаев потери данных по оценке Bacula)

LDAP модуль Bacula Enterprise Edition представляет собой модуль используемый применительно к любой службе каталога LDAP (например, применительно к Novell/SUSEs eDirectory, openLDAP, DS389, и т.д.) Данный метод является важной частью любого плана резервного копирования и восстановления данных в средах, использующих для управления данными каталоги LDAP.

Модуль Bacula Enterprise Edition Directory Server включает в себя подмодули LDAP и MSAD. Оба подмодуля Bacula Enterprise Edition позволяют создавать бэкапы и восстанавливать данные на уровне объектов.

Как было сказано выше, чаще всего используется метод, при котором создается бэкап всех данных. При этом модуль VSS НЕ используется, но используются возможности Windows VSS. Стандартная процедура восстановления, при этом, позволяет восстанавливать любые файлы при запущенной системе, не заблокированные этой системой (преимущественно пользовательские файлы). Можно также отключить систему и выполнить восстановление системы на голое железо, в случае чего будут восстановлены все файлы. Более того, с помощью Bacula Enterprise Edition и модулей ПО может быть выполнено полное аварийное восстановление системы и аварийное восстановление данных на уровне приложений.

Поскольку ПО Bacula Enterprise Edition интегрировано с различными БД платформами и виртуальными средами в отличие от других решений, оно позволяет большим дата центрам со сложной и распределенной ИТ инфраструктурой быстро копировать и восстанавливать данные, используя одну платформу.  Стоит отметить, что лицензии ПО Bacula Enterprise Edition не зависят от объемов данных, что позволяет ИТ отделам существенно сокращать расходы при использовании огромного диапазона функций данного ПО.