Автоматическое резервное копирование
«Эллес» предоставляет встроенную систему автоматического резервного копирования домена, основанную на механизме распределенной блокировки через специально выделенный для этой цели объект LDAP. Этот механизм гарантирует, что в любой момент времени резервная копия создается только одним контроллером домена.
| Описание процедуры настройки автоматического резервного копирования в разделе основано на допущении, что все действия выполняются на контроллере домена «Эллес» с полным доступом к базе данных (RWDC). |
Автоматизация резервного копирования в «Эллес»
Работа системы резервного копирования основана на двух компонентах: алгоритме выбора владельца роли генератора резервных копий и планировании выполнения команды резервного копирования.
Владелец роли определяется динамически среди контроллеров домена, в конфигурации которых явно включен механизм резервного копирования (см. описание параметра backup:enable), на основе атрибутов fSMORoleOwner и whenChanged объекта блокировки в LDAP (см. описание параметра backup:backup manager name):
-
атрибут
fSMORoleOwnerсодержит DN контроллера домена AD — текущего владельца роли генератора резервных копий или является пустым, если таковой отсутствует; -
атрибут
whenChangedсодержит дату и время захвата блокировки или последнего факта подтверждения блокировки либо является пустым, если блокировка ни разу не захватывалась.
Проверка выполняется с настраиваемой периодичностью: если атрибут fSMORoleOwner пустой, содержит имя текущего контроллера домена или текущее время больше суммы времени последнего подтверждения роли (whenChanged) и заданной в конфигурации задержки, то контроллер захватывает роль или подтверждает, что является ее владельцем.
Возможность задания задержки позволяет обеспечить захват роли генератора резервных копий определенными контроллерами в приоритетном порядке: например, в многосайтовой топологии контроллеры в основном сайте должны иметь приоритет над контроллерами в дополнительных сайтах (см. рекомендации по настройке).
Владелец роли генератора резервных копий запускает команду резервного копирования (базовый вариант — samba-tool domain backup online) по расписанию, заданному в формате cron-выражения, для создания резервной копии домена, включающей базу данных, sysvol и, при необходимости, DNS-конфигурации и TLS-ключи.
Команда резервного копирования должна выполняться от имени учетной записи доменного пользователя с достаточными полномочиями с аутентификацией Kerberos на основе keytab-файла (см. описание параметра make backup script command).
Результатом является архив в формате .tar.bz2, содержащий данные для восстановления домена.
Настройка системы осуществляется с помощью параметров в файле smb.conf.
Настройка автоматического резервного копирования
Для настройки системы автоматического резервного копирования на контроллере домена «Эллес»:
Создание учетной записи
Для аутентификации samba-tool при создании резервных копий используется доменная учетная запись (например, backupuser):
-
Создайте учетную запись в домене:
samba-tool user add backupuser --random-password
-
Выдайте учетной записи достаточные права. Например, добавьте ее в группу
Backup OperatorsилиDomain Admins:samba-tool group addmembers "Backup Operators" backupuser
-
Сформируйте keytab-файл:
sudo samba-tool domain exportkeytab --principal=backupuser@ELLES.INNO.TECH /app/inno-samba/etc/backupuser.keytab
Настройка прав доступа к файлам и каталогам
Процесс, выполняющий резервное копирование, работает от имени root.
Для корректной работы автоматического резервного копирования необходимо настроить права доступа:
Объект |
Права |
Владелец |
Примечание |
Каталог для сохранения резервных копий (в примерах в разделе — /var/backups/elles) |
|
|
Должен быть доступен для записи |
Keytab-файл (в примерах в разделе — /app/inno-samba/etc/backupuser.keytab) |
|
|
Должен быть доступен для чтения |
Файлы базы данных (sam.ldb, secrets.ldb) и другие файлы, включаемые в резервную копию |
|
|
Должны быть доступны для чтения |
Пример настройки прав на keytab:
sudo chown root:root /app/inno-samba/etc/backupuser.keytab sudo chmod 600 /app/inno-samba/etc/backupuser.keytab
Настройка параметров в smb.conf
Для настройки автоматического резервного копирования на контроллере домена «Эллес» добавьте параметры в секцию [global] файла /app/inno-samba/etc/smb.conf:
-
backup:enable— включает автоматическое резервное копирование;Возможные значения:
-
yes— включить автоматическое резервное копирование; -
no(по умолчанию) — отключить автоматическое резервное копирование.
Без явного указания backup:enable = yesконтроллер не участвует в выборе владельца роли генератора резервных копий и на нем не запускается автоматическое резервное копирование. -
-
backup:backup manager name— имя LDAP-объекта, используемого для управления ролью генератора резервных копий;Имя объекта по умолчанию —
BackupManager.Значением параметра может быть строка, соответствующая допустимому значению атрибута
nameв LDAP.Пример:
backup:backup manager name = MyCustomBackupManager
Объект
CN=BackupManager,CN=Users,<DomainDN>создается автоматически при первом включении автоматического резервного копирования на одном из контроллеров домена (сbackup:enable = yes).Перед включением резервного копирования на других контроллерах дождитесь завершения репликации объекта
BackupManagerпо всему лесу (обычно занимает до 15 минут) и только после этого включайтеbackup:enable = yesна остальных контроллерах.Нарушение порядка может привести к созданию дубликатов объекта блокировки и конфликтам назначения роли генератора резервных копий.
-
backup:make backup schedule— cron-выражение, определяющее расписание запуска резервного копирования;По умолчанию команда резервного копирования запускается ежедневно в 3:00 утра (
backup:make backup schedule = 0 3 * * *).Значением параметра может быть строка, содержащая корректное cron-выражение в формате
<минута> <час> <день месяца> <месяц> <день недели>.Примеры:
# Ежедневно в 3:00 утра (по умолчанию) backup:make backup schedule = 0 3 * * * # Каждый понедельник в 2:30 backup:make backup schedule = 30 2 * * 1 # Каждый первый день месяца в 4:00 backup:make backup schedule = 0 4 1 * *
Расписание вычисляется на основе времени локального контроллера. Убедитесь, что время на всех контроллерах синхронизировано с NTP. -
backup:vote backup manager interval— интервал (в секундах), через который контроллер проверяет состояние роли генератора резервных копий;По умолчанию интервал составляет 1 час (
backup:vote backup manager interval = 3600).Значением параметра может быть целое положительное число, задающее интервал в секундах (минимальное значение —
1).Пример:
backup:vote backup manager interval = 1800
-
backup:vote backup manager timeout— задержка (в секундах), после которой роль считается утерянной, если владелец не обновил атрибутwhenChanged.По умолчанию задержка составляет 4 часа (
backup:vote backup manager timeout = 14400).Значением параметра может быть целое положительное число, задающее таймаут в секундах (минимальное значение —
1).Пример:
backup:vote backup manager timeout = 7200
Для топологии с несколькими сайтами при выборе значения для параметра рекомендуется следовать правилам:
-
основной сайт:
backup:vote backup manager timeout>backup:vote backup manager interval; -
дополнительный сайт:
-
если между сайтами отсутствует репликация по уведомлению:
backup:vote backup manager timeoutдополнительного сайта > [интервал репликации для межсайтового соединения с основным сайтом] +backup:vote backup manager intervalосновного сайта +backup:vote backup manager timeoutосновного сайта; -
если между сайтами действует репликация по уведомлению:
backup:vote backup manager timeoutдополнительного сайта >backup:vote backup manager intervalосновного сайта +backup:vote backup manager timeoutосновного сайта.
-
Тем самым обеспечивается приоритет основного сайта: подтверждение блокировки контроллерами дополнительного сайта происходит реже, чем попытки захвата со стороны контроллеров основного сайта. Таким образом, контроллеры в дополнительном сайте захватывают блокировку только если ни один контроллер в основном сайте неработоспособен. Как только работоспособность контроллеров основного сайта восстановится, роль генератора резервных копий должна снова перейти к контроллеру в основном сайте.
-
-
make backup script command— команда, выполняемая при срабатывании расписания.По умолчанию выполняется команда
/app/inno-samba/bin/samba-tool domain backup online --targetdir=/tmp.Значением параметра может быть строка, содержащая команду
samba-tool domain backup onlineс необходимыми параметрами.Примеры:
# Базовый вариант с аутентификацией на основе keytab make backup script command = /app/inno-samba/bin/samba-tool domain backup online --targetdir=/var/backups/elles --use-keytab=/app/inno-samba/etc/backupuser.keytab -U backupuser # С сохранением DNS-конфигурации и TLS-ключей (только при локальном запуске) make backup script command = /app/inno-samba/bin/samba-tool domain backup online --targetdir=/var/backups/elles --use-keytab=/app/inno-samba/etc/backupuser.keytab -U backupuser --with-dns --with-tls # Без секретов (для безопасного хранения) make backup script command = /app/inno-samba/bin/samba-tool domain backup online --targetdir=/var/backups/elles --use-keytab=/app/inno-samba/etc/backupuser.keytab -U backupuser --no-secrets
При настройке параметра учитывайте:
-
для аутентификации должна использоваться опция
--use-keytabс указанием имени пользователя с достаточными правами; -
опции
--with-dnsи--with-tlsне совместимы с--serverи могут использоваться только при локальном запуске (без--server); -
опция
--no-secretsисключает секреты (пароли, ключи) из резервной копии; -
опция
--no-sysvolисключает содержимое sysvol из резервной копии.
-
Управление автоматическим резервным копированием
Для управления автоматическим резервным копированием доступны команды:
-
просмотр текущих настроек на контроллере домена, включая DN владельца роли генератора резервных копий, расписание и синтаксис команды запуска резервного копирования, а также дату и время последней созданной резервной копии на текущем контроллере домена:
samba-tool domain backup info ... Backup enabled: True Backup manager name: BackupManager Backup manager DN: CN=BackupManager,CN=Users,DC=elles,DC=inno,DC=tech Backup role owner: CN=NTDS Settings,CN=elles_dc1,CN=Servers,CN=Site1,CN=Sites,CN=Configuration,DC=elles,DC=inno,DC=tech Backup role confirmed at: 31/07/2026 14:55:40 Vote backup manager interval (s): 3600 Vote backup manager timeout (s): 14400 Backup schedule: 0 3 * * * Make backup script command: ['samba-tool', 'domain', 'backup', 'online', '--targetdir=/var/backups/elles', '--use-keytab=/app/inno-samba/etc/backupuser.keytab', '-U backupuser'] Last backup timestamp (on this DC): 30/07/2026 03:05:18
-
сброс текущего владельца роли генератора резервных копий (очистка атрибута
fSMORoleOwnerобъекта блокировки в LDAP):samba-tool domain backup reset
См. описание синтаксиса, список доступных параметров и примеры использования команды samba-tool domain backup в разделе
«Резервное копирование и восстановление».
|
Мониторинг и логирование
Система автоматического резервного копирования управляется сервисом mt, предоставляющим метрики для контроля количества запланированных (scheduled), выполненных (executed), успешно выполненных (succeeded) и завершившихся ошибкой (failed) периодических задач (см. раздел
«Метрики запуска периодических задач».
Эти метрики доступны в контейнере CN=TDO,CN=Monitoring в LDAP через порт 3070 (по умолчанию).
Операции, связанные с автоматическим резервным копированием, логируются с классом backup на следующих уровнях:
| Уровень | Описание | Примеры событий |
|---|---|---|
0 |
Ошибки |
"Failed to find backup manager object" (не удалось найти объект блокировки) |
1 |
Предупреждения |
"Failed to make backup, because previous run is still in progress" (попытка запуска резервного копирования, когда предыдущий еще выполняется) |
5 |
Информационные сообщения |
"Update FSMO role owner in backup manager object" (захват роли генератора резервных копий), "Making backup" (начало выполнения резервного копирования) |
Пример настройки логирования событий, связанных с автоматическим резервным копированием, в отдельный файл:
[global]
...
log level = 0 backup:5@/var/log/elles/backup.log
...
Примеры ошибок:
| Сообщение об ошибке | Причина | Решение |
|---|---|---|
Failed to find backup manager object: No such object |
Объект блокировки ( |
Объект создается автоматически при первом запуске с |
Failed to find backup manager object: … |
Ошибка поиска объекта блокировки ( |
Проверьте имя объекта в |
Failed to execute script to make backup |
Система не может запустить команду |
Проверьте, что утилита |
Failed to set last logon time to backup manager object… |
Попытка обновить атрибут |
Проверьте, что объект блокировки ( |
Failed to parse backup schedule string "…" |
Неверный формат cron-выражения в |
Проверьте синтаксис cron-выражения. |
Failed to make backup, because previous run is still in progress |
Предыдущий запуск резервного копирования еще выполняется, и сервис |
Проверьте логи на наличие зависших процессов. |
Failed to add DNS configuration files: … |
При использовании |
Убедитесь, что файлы DNS существуют и доступны для чтения. |
Failed to add TLS certification files: … |
При использовании |
Убедитесь, что директория существует: |
Обновлено: