Это старая версия документа!


Резервное копирование и восстановление Samba AD DC

Оригинал: Backup and Recovery
Перевел: Graf
Дата перевода: сентябрь 2013 г.

Введение

Содержание этого документа актуально только для samba 4.x. Надеемся, что данное пособие по резервному копированию и восстановлению samba, будет полезно. Но, имейте ввиду, что написанное здесь, не дает НИКАКИХ ГАРАНТИЙ!

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

Общее

Если у вас запущенно более одного DC:
Никогда не восстанавливайте из резервной копии DC, если хотя бы один другой DC все еще работает!
Вы повредите каталог, так как репликация метаданных рассинхронизируется!

Просто, присоедините новую машину как DC. И все будет синхронизировано с рабочим(и) DC - кроме репликации SysVol, которая пока не реализована.

Если же сломан весь домен на всех DC, вы должны отправить сообщение в samba-technical на http://lists.samba.org, для обсуждения наилучшего способа исправления.

Как можно сделать резервную копию/восстанавление LDB и TDB файлов

Если запланируйте изменение скрипта samba_backup или создание собственного решения, то вы найдете здесь некоторую полезную информацию:

  • Вы никогда не должны копировать работающую базу данных!
  • Онлайн резервные копии файлов *.ldb и *.tdb могут быть сделаны при помощи tdbbackup
  • Файлы созданные при помощи tdbbackup, это целые и невредимые TDB-файлы. tdbbackup делает извлечение безопасным.
  • Для восстановления, резервных копий *.ldb файлов можно просто переименовать их в свои старые названия (убрав *. bak).

О скрипте backup_samba

Samba предоставляет очень простой шелл скрипт резервного копирования баз данных (source4/scripting/bin/samba_backup, в архиве с исходными кодами). Для этого необходимо, чтобы вся Samba была установлена в одном месте (например в /usr/local/samba/). Если вы использовали параметры настройки для хранения частей Samba в разных местах, то вы можете исправить скрипт или использовать его в качестве базы для написания собственного скрипта.

Поскольку, на данный момент, этот скрипт очень прост и вы планируете использовать его без изменений, то вам необходимо знать некоторые вещи :

  • Сценарий не делает резервных копий расширенных ACL. В следствии чего вы теряете разрешения, например, на общий ресурс SysVol. Если у вас есть версия tar, которая поддерживает опцию - -xattrs (см. страницу руководства по использованию tar), вы должны добавить эту опцию ко всем tar командам внутри сценария. Что позволит tar сохранять расширенные ACL в архивах.

Резервное копирование

Samba скрипт, для резервного копирования, не устанавливается во время запуска make install. Рекомендуется скопировать его из директории с исходным кодом (source4/scripting/bin/samba_backup) в систему, например в /usr/sbin и установить разрешения:

# cp ..../source4/scripting/bin/samba_backup /usr/sbin 
# chown root:root /usr/sbin/samba_backup 
# chmod 750 /usr/sbin/samba_backup

Настройте следующие переменные, внутри скрипта, под свои нужды:

FROMWHERE=/usr/local/samba 
WHERE=/usr/local/backups 
DAYS=90

Создайте директорию назначения, которую вы прописали в переменной $WHERE и установите разрешения:

# mkdir /usr/local/backups 
# chmod 750 /usr/local/backups

Запустите скрипт резервного копирования для первого теста

# /usr/sbin/samba_backup

Если сценарий завершился без ошибок, то вы должны найти три файла в папке назначения:

  • etc.{Timestamp}.tar.bz2
  • samba4_private.{Timestamp}.tar.bz2
  • sysvol.{Timestamp}.tar.bz2

Если тест резервного копирования удался, то для ежедневного резервного копирования, вы должны добавить его в cron:

# crontab -e

Для ежедневного резервного копирования в 2 часа ночи, добавьте следующую строку :

0 2 * * *       /usr/sbin/samba_backup

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

Следующее руководство по восстановлению предполагает, что вы сделали резервные копии баз данных при помощи скрипта samba_backup. Если у вас есть свой собственный сценарий, отрегулируйте соответствующие шаги.


Никогда не делайте восстановление и изменение версии одновременно!
Всегда восстанавливайте в системе, которая использует ту же версию Samba, что была во время создания резервной копии!
Восстанавливайте в системе с тем же IP и именем хоста. В противном случае вы будете работать с ошибками в Kerberos и DNS.
Рекомендуем: Восстанавливать на той же ОС, где была создана резервная копия.

Самое важное в ситуации восстановления, это вернуть вашу систему в рабочее состояние. Сделайте изменения позже, если все «поднялось» и тест прошёл успешно. Никогда не делайте изменения вместе с восстановлением!

Если вся ваша система не работает, вы должны сперва настроить всю машину, как описано в практических руководствах (HowTo) ( контроллера AD или рядового сервера).

Удалите те директории, которые мы будем восстанавливать (Samba не должна работать!):

# rm -rf /usr/local/samba/etc 
# rm -rf /usr/local/samba/private 
# rm -rf /usr/local/samba/var/locks/sysvol

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

# cd /usr/local/backups 
# tar -jxf etc.{Timestamp}.tar.bz2 -C /usr/local/samba/ 
# tar -jxf samba4_private.{Timestamp}.tar.bz2 -C /usr/local/samba/ 
# tar -jxf sysvol.{Timestamp}.tar.bz2 -C /usr/local/samba/

Переименуйте файлы *.ldb.bak, в каталоге private, в *.ldb. С GNU find и Bash это можно сделать сразу:

# find /usr/local/samba/private/ -type f -name '*.ldb.bak' -print0 | while read -d $'\0' f ; do mv "$f" "${f%.bak}" ; done

Если ваша резервная копия не содержит расширенные списки управления доступом (ACL) (см. раздел о скрипте backup_samba ), то вы должны запустить:

# samba-tool ntacl sysvolreset

Если вы используете Bind в качестве сервера DNS, вы должны исправить жесткие ссылки на базы данных DNS:

# samba_upgradedns --dns-backend=BIND9_DLZ

Смотрите DNS Backend BIND - New added DNS entries are not resolvable.

Теперь, если восстановление прошло успешно, вы можете запустить samba и начать тестирование.

Подсказка: Конечно, можно восстановить одну базу данных из резервных копий,если вы знаете, какая из них сломана. Но будьте уверены, некоторые базы данных могут быть связаны с другими. И так тщательно, что вы получите неустойчивую систему! Если вы не уверены, зависят ли ваши сломанные данные от других, вы должны спросить в samba-technical на http://lists.samba.org

Практика

Навигация
Печать/экспорт
QR Code
QR Code wiki:articles:samba4_br (generated for current page)