Резервное копирование и восстановление
Инструменты резервного копирования и восстановления позволяют пересоздать домен при возникновении проблем, делающих невозможной его дальнейшую полноценную эксплуатацию.
Примером такой проблемы может служить изменение или удаление какого-либо объекта или группы объектов в базе данных службы каталогов, приводящее к неработоспособности одного из доменных сервисов. Подобное изменение реплицируется на все контроллеры домена. Таким образом, для восстановления работоспособности затронутого им сервиса недостаточно выполнить повторное присоединение к домену какого-либо отдельного контроллера, так как он получит копию базы данных с вызвавшим проблему изменением. В этом случае при наличии резервной копии домена без внесенного «проблемного» изменения она может быть использована для восстановления.
В процессе восстановления создается новый контроллер домена с базой данных из резервной копии. Существующие контроллеры домена должны быть остановлены и заново присоединены к нему.
|
Механизм восстановления из резервной копии не должен использоваться для восстановления работоспособности отдельно взятого контроллера домена в случае возникновения на нем локальной проблемы, не затрагивающей работу всего домена. В этом случае достаточно провести диагностику и устранить проблему на контроллере домена, а затем выполнить повторное присоединение к домену для получения актуальной копии базы данных службы каталогов (см. подраздел «Восстановление работоспособности отдельного контроллера домена»). |
Резервное копирование
Служба каталогов (inno-samba) поддерживает следующие виды резервного копирования:
Во всех режимах создается файл в формате .tar.bz2, содержащий полную резервную копию домена.
| Для использования созданного файла с резервной копией домена в целях анализа отдельных объектов базы данных достаточно распаковать файл и выполнить требуемые запросы к базе данных на диске. |
Онлайн-режим
В онлайн-режиме (online) формируется набор файлов с актуальными данными службы каталогов, не привязанными к состоянию конкретного контроллера домена.
Данный вид резервного копирования оптимально подходит в том случае, если требуется оперативно получить работоспособную долгосрочную или постоянную замену вышедшему из строя домену без детального изучения причин возникновения проблем в работе службы каталогов.
Формат вызова для выполнения операции резервного копирования с помощью samba-tool (см. описание подкоманды в
разделе «Администрирование домена»):
sudo samba-tool domain backup online \ --targetdir=<output-dir> \ --server=<DC-server> \ -U Administrator
Команда может выполняться локально на контроллере домена либо удаленно на другой машине. При использовании в удаленном режиме рекомендуется указать опцию --configfile для включения в состав резервной копии корректных настроек в файле smb.conf.
Автономный режим
В автономном режиме (offline) создается резервная копия локальных файлов контроллера домена, на котором запускается команда резервного копирования.
Данный вид резервного копирования оптимален для изучения причин возникновения проблем в работе службы каталогов, так как при его использовании в резервную копию включаются дополнительные данные, как правило, не подлежащие реплицированию.
В больших доменах на создание такой резервной копии требуется меньше времени, поскольку исключаются временные затраты на передачу данных из базы данных службы каталогов по сети и запись их на локальный диск.
Однако следует учитывать, что в этом случае в файл резервной копии попадает вся чувствительная и секретная информация, существующая в домене.
Кроме того, при копировании базы данных с диска потенциально повышается риск попадания в резервную копию ошибочных данных.
Формат вызова для выполнения операции резервного копирования с помощью samba-tool (см. описание подкоманды в
разделе «Администрирование домена»):
sudo samba-tool domain backup offline \ --targetdir=<output-dir>
Онлайн-режим с переименованием
В онлайн-режиме с переименованием (rename) формируется набор файлов с актуальными данными службы каталогов, не привязанными к состоянию конкретного контроллера домена, с переименованием домена.
Данный вид резервного копирования позволяет с минимальными усилиями временно подменить вышедший из строя домен таким образом, чтобы, с одной стороны, обеспечить работоспособность ключевых сетевых сервисов службы каталогов, а с другой — иметь возможность детально исследовать причины возникновения проблем в существующем домене.
Также он может использоваться для создания копии существующего домена для целей тестирования.
При клонировании базы данных службы каталогов в нее вносятся изменения, обеспечивающие использование другого NetBIOS-имени и другой области DNS в новом домене. Изменяются следующие объекты:
-
все DN-имена;
-
объект раздела домена и его NetBIOS-имя;
-
объекты зоны DNS, а также атрибуты
dnsRoot.
Установленные до момента копирования значения userPrincipalName (UPN) не изменяются. При выполнении команды резервного копирования с переименованием домена с опцией --keep-dns-realm пользователи могут использовать для входа в домен свои полные UPN-имена. В противном случае они могут использовать для входа имена в формате user@new-realm (при условии, что новая область корректно обрабатывается конфигурацией Kerberos).
Атрибуты GPO (gPCFileSysPath и gPLink) не изменяются. Файлы в sysvol сохраняются с прежним именем области в путях (например, sysvol/samba.example.com/Policies). Каталог для файлов политик в sysvol по умолчанию создается с новым именем области (например, sysvol/new.renamed.com/Policies).
Создание домена в режиме переименования состоит из двух шагов:
-
samba-tool domain backup rename— создание клона базы данных службы каталогов, переименование его и формирование файла с резервной копией; -
samba-tool domain backup restore— формирование из резервной копии файлов, необходимых для работы нового контроллера домена.
Формат вызова для выполнения операции резервного копирования с помощью samba-tool (см. описание подкоманды в
разделе «Администрирование домена»):
sudo samba-tool domain backup rename NEWDOMAIN new.renamed.com \ --server=<DC> \ --targetdir=<backup-dir> \ -U Administrator
В результате выполнения команды формируется файл резервной копии <backup-dir>/samba-backup-new.renamed.com-<timestamp>.tar.bz2. Данный файл далее может использоваться для восстановления клонированной и переименованной базы данных на диске. В восстановленном домене будет только один новый контроллер домена с именем, указанными с помощью опции --newservername. В последующем к нему могут быть присоединены другие контроллеры домена. Для указания нового каталога для размещения всех файлов службы каталогов (smb.conf, sam.ldb и т. п.) может использоваться опция --targetdir:
sudo samba-tool domain backup restore \ --newservername=<new-DC-name> \ --targetdir=<restore-dir> \ --backup-file=<backup-file>
Для сохранения и корректного восстановления NTACL файлов sysvol, а также UID прочих внутренних файлов, используемых службой каталогов, данная команда должна выполняться от имени пользователя root.
Перед запуском службы каталогов рекомендуется проверить корректность настроек в восстановленном файле smb.conf и при необходимости вручную внести в него изменения.
Также следует обратить внимание на то, что при запуске службы каталогов автоматически запускается скрипт samba_dnsupdate. При первоначальном обновлении записей DNS в результате его работы в лог-файлах могут появиться ошибки.
Восстановление из резервной копии
Для восстановления домена из резервной копии выполните следующие действия:
-
Предварительно протестируйте возможность восстановления домена из файла с резервной копией, который планируется использовать, одним из следующих способов:
-
при использовании резервной копии, созданной с переименованием домена, достаточно выполнить команду восстановления на новом контроллере домена, запустить службу каталогов и убедиться в корректности работы сервисов;
Резервное копирование с использованием подкоманды renameво многом повторяет резервное копирование с помощью подкомандыonline. Поэтому корректность восстановления из резервной копии, созданной с переименованием, скорее всего, указывает на то, что резервная копия того же домена, полученная в онлайн-режиме, также будет работать корректно. -
выполните команду восстановления для создания всех требуемых файлов на диске без запуска службы каталогов и используйте доступные инструменты (например,
ldbsearch) для проверки корректности объектов в базе данных; -
настройте сетевое оборудование таким образом, чтобы полностью изолировать контроллер домена, на котором планируется выполнять восстановление, от остальной сети, выполните команду восстановления, запустите службу каталогов и убедитесь в корректности работы домена.
-
-
Остановите службу каталогов на всех контроллерах домена. Если планируется создавать резервную копию с переименованием, данный шаг может быть пропущен.
-
Выполните команду
samba-tool domain backup restoreс требуемыми параметрами для восстановления базы данных домена на одном новом контроллере домена (см. описание подкоманды в разделе «Администрирование домена»).Операция восстановления из резервной копии аналогична операции развертывания домена
samba-tool domain provision, выполняемой при первоначальной настройке, за исключением того, что в этом случае в базе данных будут присутствовать все объекты, созданные после инициализации до момента создания резервной копии. Поэтому при восстановлении также необходимо указать имя нового контроллера домена, не существовавшего в прежней сети.В общем виде команда запуска восстановления имеет следующий формат:
sudo samba-tool domain backup restore \ --backup-file=<tar-file> \ --newservername=<DC-name> \ --targetdir=<new-samba-dir>
Указанный целевой каталог должен быть пустым или не должен существовать. Не рекомендуется восстанавливать базу данных домена в том же каталоге, который используется при развертывании или присоединении по умолчанию (например, /usr/local/samba). Вместе этого следует указать с помощью опции
--targetdirдругой каталог, а затем использовать опцию-s(или--configfile) при работе с сервисами службы каталогов.При указании созданного в результате восстановления файла smb.conf служба каталогов будет использовать корректные файлы базы данных.
Контроллер домена, созданный в результате операции восстановления, добавляется в сайт
Default-First-Site-Name. Если он не существует в базе данных, он будет создан. Для указания другого сайта может использоваться опция--site.Перед запуском службы каталогов на новом контроллере домена необходимо проверить корректность настроек в файле smb.conf. Также рекомендуется запустить скрипт
samba_dnsupdate. -
Запустите службу каталогов на новом контроллере домена.
-
Выполните присоединение остальных контроллеров домена к созданному при восстановлении контроллеру (см. описание подкоманды в разделе «Администрирование домена»):
samba-tool domain join <dns-realm> DC \ --server=<restored-dc>
-
При восстановлении домена из резервной копии, созданной с переименованием, необходимо перенастроить сетевое оборудование для перенаправления трафика с существующего домена на новый.
Рекомендуемая стратегия восстановления
Чтобы свести к минимуму неудобства, связанные с необходимостью указывать для файлов базы данных каталог, отличный от каталога по умолчанию, и новое имя для контроллера домена, рекомендуется использовать для восстановления домена из резервной копии временный сервер (или виртуальную машину).
В этом случае процесс восстановления работоспособности домена состоит из следующих шагов:
-
Выполните команду восстановления из резервной копии на временном сервере или виртуальной машине и запустите службу каталогов.
-
По очереди присоедините существующие контроллеры домена к временному контроллеру. При присоединении не требуется изменять имя контроллера или расположение файлов базы данных.
-
Когда все существующие контроллеры будут присоединены к восстановленному домену, удалите из него временный контроллер с использованием подкоманды
samba-tool domain demote(см. описание подкоманды в разделе «Администрирование домена»).
В этом случае новая сеть контроллеров домена будет полностью повторять существующую.
Восстановление работоспособности отдельного контроллера домена
Служба каталогов использует единую распределенную базу данных, которая хранит сведения обо всех сетевых ресурсах домена. Каждый контроллер домена работает с локальной копией этой базы данных. Синхронизацию изменений между такими локальными копиями обеспечивает механизм репликации. При выполнении на существующем контроллере домена команды samba-tool domain join DC локальная копия базы данных полностью перезаписывается актуальной копией распределенной базы данных. Этот процесс называют «повторным вводом» контроллера в домен.
Возможны ситуации, когда в работе отдельного контроллера домена возникают неполадки или он полностью выходит из строя, тогда как остальная часть домена продолжает функционировать корректно. Например, это может быть вызвано ошибками в нереплицируемой части локальной копии базы данных на контроллере или некорректной репликацией изменений с других контроллеров. То есть они не распространяются по домену через механизм репликации и носят локальный характер.
В этом случае для восстановления работоспособности контроллера достаточно повторно ввести его в домен с помощью стандартной команды (см. описание формата вызова и доступных опций в разделе «Администрирование домена»):
samba-tool domain join <domain FQDN> DC -U Administrator
В случае успешного выполнения команды локальная копия базы данных службы каталогов будет заменена актуальной, не содержащей ошибок.