Репликация Open Directory может не работать; в журнале slapd.log появляется сообщение «Size Limit exceeded» (Превышен максимальный размер)

Репликация Open Directory может не работать; в этом случае в журнале /var/log/slapd.log появляются записи, подобные приведенным ниже.

slapd[209]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (4) Size limit exceeded slapd[209]: do_syncrep2: rid=001 (4) Size limit exceeded

Это может произойти, если сервер Open Directory не работал в течение длительного времени, или если реплика создается при наличии более 11 000 объектов в хранилище данных LDAP. 11 000 — это максимальное количество объектов, которое может быть возвращено при поиске по умолчанию.

Разрешите пользователю _ldap_replicator переопределять ограничение поиска. Для этого измените конфигурацию сервера LDAP на каждом сервере Open Directory. В ходе данного процесса понадобится пройти аутентификацию в качестве администратора каталогов и выполнить несколько команд модификации LDAP в Терминале. Также должна быть известна база поиска, называемая контекстом именования, для сервера LDAP.

Для этого можно выполнить указанные ниже действия.

Сначала найдите базу поиска для сервера LDAP

Найдите базу поиска для сервера LDAP. Обычно это полное доменное имя сервера с добавлением dc= перед каждой меткой и заменой точек на запятые.

Например, базой поиска по умолчанию для сервера с именем хоста server.example.com будет «dc=server,dc=example,dc=com». Базу поиска можно проверить, запросив сам сервер LDAP с помощью указанной ниже команды Терминала.

ldapsearch -x -LLL -b “” -s base namingContexts

Найдите строку, содержащую namingContexts. База поиска будет указана после двоеточия, как в приведенном ниже примере.

dn: namingContexts: dc=server,dc=example,dc=com

Затем получите учетные данные Kerberos для администратора каталогов

По умолчанию именем этого пользователя является diradmin, но при создании мастера Open Directory данное имя могло быть изменено. Это делается с помощью команды kinit в Терминале. Выполните указанную ниже команду, при необходимости подставив правильное имя администратора каталогов вместо diradmin, и введите пароль, когда появится соответствующий запрос. Выходных данных не будет.

kinit diradmin

Затем используйте команду ldapmodify в интерактивном режиме в Терминале, чтобы внести изменения. Просто выполните в Терминале приведенную ниже команду.

ldapmodify

Примечание. В результате будет выведено несколько сообщений SASL с ожиданием ввода. В случае успеха вывод SASL должен выглядеть примерно так:

SASL/GSSAPI authentication started SASL username: diradmin@REALM SASL SSF: 56 SASL data security layer installed.

Измените конфигурацию

Наконец, внесите изменения в конфигурацию. Для этого потребуется ввести весь приведенный ниже текст в окне Терминала в качестве входных данных для команды ldapmodify. Ниже необходимо заменить базу поиска на [search base]. Также следует убрать скобки.

dn: olcDatabase={1}bdb,cn=config changetype: modify add: olcLimits olcLimits: dn.exact="uid=_ldap_replicator,cn=users,[search base]" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited dn: olcDatabase={2}bdb,cn=config changetype: modify add: olcLimits olcLimits: dn.exact="uid=_ldap_replicator,cn=users,[search base]" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited

Теперь нужно нажать клавиши Control-D.

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

modifying entry "olcDatabase={1}bdb,cn=config" modifying entry "olcDatabase={2}bdb,cn=config"

Дополнительная информация

Альтернативный скрипт оболочки

Ниже приведен текст скрипта оболочки, с помощью которого можно автоматизировать данный процесс. Просто выполните команду kinit для администратора каталогов, как указано выше, и запустите этот скрипт. Рекомендации по работе с текстовыми редакторами см. в этой статье.

#!/bin/sh nc=`ldapsearch -x -LLL -b "" -s base namingContexts | awk '/namingContexts/ {print $2}'` ldapmodify <

Этот документ будет обновляться по мере поступления новой информации.

Дата публикации: