Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
Записи с темой: серверы (список заголовков)
02:31 

MultiMaster vs. Mirroring

По возможности не используйте Multimaster-репликацию в её полноценном виде:

- теоретически неограниченое количество мастер-серверов,

- каждый мастер-сервер может принимать реплики изменений с любого другого мастер-сервера.

Дело в том, что это работает только в том случае, если все мастер-сервера создаются с нуля и практически одновременно. Это именно так в случае с простым тестом 050-multimaster, на который так любят ссылаться разработчики OpenLDAP. Тем не менее даже такой вроде бы стабильно работающий кластер взаимнореплицируемых серверов может потерять ноду... А потом вторую... В особенности это касается тех случаев, когда нод больше трёх: число три для режима Multimaster'а в OpenLDAP является каким-то магическим порогом, за которым начинаются эксперименты над критически важными данными с плохо прогнозируемыми последствиями.
Mirroring (зеркалирование) - технически тот же MultiMaster (найдите отличия в конфигурации? olcServerID?), но это иная стратегия репликации. Эта стратегия предполагает, что в штатном режиме работы запись производится лишь на одном сервере, а на второй сервер изменения пересылаются репликой. При этом чтение может осуществляться одновременно с двух серверов при помощи внешнего балансирующего нагрузку фронтэнда (не входит в поставку OpenLDAP можно использовать прокси-режимы работы OL). В случае отказа сервера, принимающего операции записи от клиентов, их начинает принимать неактивная часть "зеркала". Как только "отвалившаяся" часть зеркала поднимется, все операции записи, произведённые за время простоя, будут приняты репликой.
В общем, на самом деле, подчёркиваю, никакой принципиальной разницы между мультимастером и зеркалированием нет, кроме собственно количества нод. Но использование описанной стратегии даёт гораздо более предсказуемый результат, даже если вы не используете никаких внешних фронтэндов и все переключения осуществляете вручную.


P.S. Да, и в любом случае backup often ;)

@темы: серверы

21:39 

Одна из распространённых проблем репликации

Если ваша база OpenLDAP упорно отказывается реплицироваться, запустите сервер, на который вы хотите залить реплику, с ключом -d 16384 (отладка механизма репликации). И если там будет явная "ругань" на то, что с мастер-сервера невозможно получить entryUUID для некоторых записей, это значит, что в исходном каталоге не хватает служебных атрибутов, без которых репликация действительно не пойдёт. Отложим обсуждение вопроса о том, почему так бывает, просто пофиксим эту проблему:
Если база относительно небольшая, переведите её в read-only и сделайте полный slapcat:
А теперь... физически удалите файлы базы и залейте LDIF-дамп базы, полученный на шаге 1, обратно:
rm -f /path/to/db/files/*
slapadd -F /path/to/config/dir -n номер_базы -l my_db.ldif
chown -R openldap_user.openldap_group /path/to/db/files/


Примечание: под "номером базы" подразумевается то число, которое проставлено для этой базы в cn=config
То есть, например, для DN=olcDatabase={3}hdb,cn=config номер базы соответственно равен трём. Для самой cn=config номер всегда равен нулю (т.е. это всегда olcDatabase={0}config,cn=config)





@темы: серверы

21:10 

Подводные камни OpenLDAP

Если вы используете сервер каталогов OpenLDAP, в особенности для серьёзных Enterprise решений, избегайте следующего:
1) Консервативной склонности к редактированию конфигурационного файла slapd.conf. Сегодня, завтра и далее по расписанию мейнстримом является cn=config - схема, когда вся конфигурация доступна для динамического изменения через собственно протокол LDAP. Именно так это делается во всех без исключения известных мне современных серверах каталогов, и присутствие в OpenLDAP плоского файлика конфига было лишь временной мерой (при этом, заметьте, на этапе запуска OL ещё и время тратит на то, чтобы сделать из вашего slapd.conf'а всё тот же cn=config!)
2) Чрезмерного увлечения различными крутыми фичами OpenLDAP из любых придуманных Зейленгой RFC, носящих экспериментальный характер. Сегодня они есть, завтра их нет - такова жизнь :)
3) Если вам кажется, что "вот тот overlay/backend" делает как раз такой крутой хак с выворотом, который вам позарез нужен - больно бейте себя по рукам и сначала проверяйте статус разработки этого модуля. Нужно знать, насколько активно он разрабатывается, насколько подробно документирован, есть ли его более-менее подробное описание в официальном OL Admin Guide, а если есть, то подерживает ли он конфигурирование через cn=config. Если модуль не поддерживает cn=config - это верный признак того, что ему пора в топку, мейнтейниться он плохо или вообще никак, и в любой из новых версий OL, которые выходят, сами понимаете, нередко, он может просто кануть в небытие, оставив вас с носом
4) Боже упаси вас делать бэкапы непосредственно бинарных файлов баз типа bdb, hdb и пр. db. Знаете почему? Не только из-за потери транзакций (это как раз не так страшно: в LDAP интенсивные записи редки, а уж конкурентные подавно), но из-за перманентной проблемы несовместимости старых и новых версий библиотек для этих db. Во всяком случае, для BerkeleyDB нельзя быть уверенным даже в том, что минорные версии BDB будут совместимы между собой, а OL просто хлебом не корми, но подавай самые "свежие" библиотеки. Полагайтесь только на полноценные LDIF-дампы, переводя на время дампа базу в read-only, так вы получите заведомо соответствующий "неувядающему" фундаментальному стандарту формат бэкапа.

@темы: серверы

LDAP - заметки на полях

главная