перенести домен samba на CTDB

Я пытаюсь перенести контроллер домена samba (версия 3.6, бэкэнд passdb = tdbsam) в новую кластерную среду с CTDB (та же версия samba). У меня есть функциональное хранилище ceph и настроенный ctdbd в соответствии с документацией.

Однако все доступные руководства предназначены для новых установок, и я не могу перенести текущие данные в CTDB.

Простое восстановление базы данных tdb в CTDB не работает и заканчивается следующей ошибкой:

25/05/2015 22:25:04.849302 [ 5636]: Неверная версия дампа базы данных. Версия файла 7308332182664266836, но ожидаемая версия 1

Конвертация базы данных tdb с помощью ltdbtool тоже не приносит радости.

Как импортировать базы данных tdb samba в ctdb? Спасибо, Марко


person Marko    schedule 25.05.2015    source источник
comment
Кажется, что samba 3.6 не работает должным образом с ctdb 2.5 на centos 6.6. Samba4 из официального репозитория работает нормально.   -  person Marko    schedule 27.05.2015


Ответы (1)


Во-первых, несколько слов предупреждения: не принято кластеризовать контроллер домена с CTDB. Кластеризация/CTDB предназначена для файловых серверов, которые обычно являются рядовыми серверами в домене. Основная цель контроллера домена — предлагать услуги входа в систему для клиентов, и обычно используются другие службы репликации (например, хранение БД в ldap вместо TDB). Кластеризация контроллера домена может быть проблематичной, поскольку весь кластер должен последовательно представляться клиентам как единый сервер. Это может вызвать проблемы с разрешением имен nmbd/NetBIOS. Кроме того, одна проблема заключается в том, что вам необходимо убедиться в том, что в кластере все подчиненные учетные записи пользователей созданы на всех узлах кластера ctdb с одинаковыми идентификаторами пользователей.

Как правило, рекомендуется максимально отделять роли файловых серверов от ролей контроллера домена. Также имейте в виду, что, начиная с Samba 4.0, теперь есть функциональные возможности контроллера домена Active Directory, который поставляется с репликацией базы данных пользователей с несколькими мастерами на уровне протокола.

При этом важно то, что вы не можете свободно заменять версии samba и ctdb. Samba 3.6 должна работать с ctdb 2.5, но Samba необходимо перекомпилировать для используемой версии ctdb. т.е. если Samba была скомпилирована для более старой версии CTDB (например, 1.0.114.X), то этот бинарный пакет не будет работать с CTDB 2.5.

Если у вас есть рабочий набор пакетов samba и ctdb, то процесс переноса предыдущей установки в эту новую установку зависит от того, была ли предыдущая установка также кластером CTDB. Если это так, вы можете сделать

ctdb getdbmap

на старой установке, а затем запустить

ctdb backupdb

во всех базах данных с пометкой PERSISTENT. При новой установке вы используете

ctdb restoredb

восстановить все эти БД.

Если предыдущая установка была некластеризованной Samba, то ваш совет использовать ltdbtool верен. Вы должны

  • скопируйте важные базы данных со старой установки, по крайней мере:

    secrets.tdb passdb.tdb winbindd_idmap.tdb group_mapping.tdb account_policy.tdb share_info.tdb

  • преобразовать их в формат ctdb с помощью ltdbtool

  • убедитесь, что ctdb выключен на всех узлах
  • скопируйте преобразованные базы данных в /var/lib/ctdb/persistent/ на узле номер 0, добавив к имени файла суффикс .0, например. `/var/lib/ctdb/persistent/secrets.tdb.0'
  • запустить ctdb на узле 0
  • запустить ctdb на всех остальных узлах

после этого эти БД должны быть синхронизированы в кластере.

person Michael Adam    schedule 18.06.2015