LINUX.ORG.RU

В ReOpenLDAP репликация в multi-master топологии полностью работает

 , , , ,


3

6

ReOpenLDAP — форк общеизвестного OpenLDAP, созданный в начале 2015 года с целью получения функциональной работоспособности и стабильности, достаточных для высоконагруженной промышленной (коммерческой) эксплуатации.

Одним из важнейших требований при этом является возможность построения кластера из 4 (2+2) или более узлов. В свою очередь это требует стабильной работы механизма синхронизации (репликации) по RFC4533 в режиме multi-master для full mesh топологии.

Однако, оригинальный OpenLDAP неработоспособен в такой конфигурации, механизм репликации просто теряет часть изменений, а в некоторых случаях может удалить все данные. Более того, неизвестно ни одного другого сервера LDAP, который бы корректно реализовывал RFC4533 с поддержкой multi-master и с приемлемой для эксплуатации производительностью.

Проблемы в исходной реализации синхронизации/репликации были замечены в августе 2015, и почти 9 месяцев было потрачено на их устранение.

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

Поэтому мы готовы заявить, что в нашем ReOpenLDAP репликация/синхронизация для multi-master полностью работает как положено. И похоже, что это единственный сервер, пригодный для высоконагруженной промышленной (коммерческой) эксплуатации, причём с открытым исходным кодом.

>>> Исходный код (статус beta) на github



Проверено: Pinkbyte ()
Последнее исправление: Pinkbyte (всего исправлений: 3)

пригодный для высоконагруженной промышленной (коммерческой) эксплуатации

Исходный код (статус beta)

Поржал

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

значит слаб в Ъынтырпрайзе. Поголовно суровые вендоры ставят консьюмерам галимые беты. Оракл,микрософт,вмварь попробуй в день релизов

anonymous
()

Поздравляю. Хоть и не пользуюсь, но ждём ебилдов.

ass ★★★★
()
Ответ на: комментарий от mos

Жаль, ежели так. От такой фрагментированности в конечном счёте проиграют все, в первую очередь, конечно, пользователи

XMs ★★★★★
()
Ответ на: комментарий от XMs

Нашими силами - нет. Но это может попробовать сделать любой желающий, включая автором оригинального OpenLDAP.

ly
() автор топика
Ответ на: комментарий от mos

Хм, зачем? Но иногда он отсматривает issues на github, ну и еще подписан в twitter на нотификации сборок на CI.

ly
() автор топика
Ответ на: комментарий от mos

Да, Говард (aka скрипач) широко известен в узких кругах...

Форк мы сделали из необходимости «ехать». Началось с обсуждения и отказа принять патч, который исправлял 5K варнингов при сборке. В этом «море» 99% конечно была ерунда, но примерно 25 было багами, а 10 - реальном опасные глюки (падения, потеря данных и т.п.).

Как свежий пример https://github.com/ReOpen/ReOpenLDAP/commit/74c8ff8c100e6347dd9629a1a63efb8fa.... Это нашел clang, но если бы не зачистка, то +1 не увидеть к 5000.

ly
() автор топика
Ответ на: 389 от Camel

389++

Приглашаю уважаемого drvtiny для комментария о reopened и 389 (fedora directory service ).

Прошу пардона, писал с телефона, cast не удался.

cast DRVTiny

Camel ★★★★★
()
Ответ на: комментарий от ly

Ну чинили-чинили (долго, трудно, нудно) и починили, примерно так.

[сам пользоваться скорее всего не буду, но] Респект!

X-Pilot ★★★★★
()

Гравицапа. Lol.

А вообще вы молодцы. Только боюсь что позняк метаться: у ldap такая дурная слава благодаря openldap, что её теперь ничем не отмоешь.

zloelamo ★★★★
()
Ответ на: комментарий от mos

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

Крайне редко. В основном в маленьких конторах.

zloelamo ★★★★
()

нкжно поменять название для проекта

kto_tama ★★★★★
()
Ответ на: комментарий от dyasny

В 389 DS конечно много чего работает, только нет львиной доли функционала OpenLDAP, поставляемого модулями. 389 - продукт RH, входящий в определённый стек приложений. Всё, что за рамками этого стека - никому не нужно, хоть башкой об стену бейся. OpenLDAP - открытое ПО с развитой модульной архитектурой. Да, с патчами и сторонними багфиксами у них тяжеловато, но вот модули писать - легко и просто. Поэтому в то время как несовершенный OpenLDAP разве что кашу ещё не умеет самостоятельно варить по changeType: modify, формально куда более стабильный 389 DS не умеет ничего за рамками функционала, нужного компании RedHat.

Хотя у нас в компании используется как раз FreeIPA - и на прошедших выходных она в очередной раз падала с оглушительным грохотом (хозяйство не моё, но факт тот, что админят IPA весьма неглупые люди, и тем не менее но она периодически, раз в 3 месяца в лучшем случае, вполне себе неприятно так валится набок).

DRVTiny ★★★★★
()
Ответ на: комментарий от zloelamo

у ldap такая дурная слава благодаря openldap, что её теперь ничем не отмоешь.

Может, проблема всё-таки в кривых руках автора? ;) Не спорю, что multimaster в OL ещё года 3 назад был глючным, а с тех пор мало что изменилось, поскольку интенсивность разработки у них так себе никакая. Но во-первых далеко на всем вообще MM нужен, да и не всегда он глючен (хотя предсказаниям это слабо поддаётся).

И LDAP != OpenLDAP ни в коем разе: в nix'ах с незапамятного 2000-го года существовали как миниум 2 альтернативы (Netscape iPlanet разделился на 2 части).

Мало того, LDAP-каталог в Active Directory - куда более прочно ассоциируется с LDAP как технологией.

DRVTiny ★★★★★
()
Ответ на: комментарий от DRVTiny

хозяйство не моё, но факт тот, что админят IPA весьма неглупые люди, и тем не менее но она периодически, раз в 3 месяца в лучшем случае, вполне себе неприятно так валится набок

Любопытно. Вот уж что-что, а падения от openldap я не страдал. За шесть лет возни с этим поделием падало оно один раз. Есть правда нюанс: у меня один мастер. Я бы хотел сделать мультимастер, но зная поганую сущность openldap не решаюсь.

Обычно шерсть на заднице дымиться начинает, когда надо модифицировать схему, написать acl, добавить новую ветку репликации и т.д.

zloelamo ★★★★
()
Последнее исправление: zloelamo (всего исправлений: 1)
Ответ на: комментарий от DRVTiny

Может, проблема всё-таки в кривых руках автора? ;)

Да все может быть.

Но, например, дебаг у меня вызывает острую неприязнь - я даже скрипты форматирования писал, чтоб не очуметь. ACL не прост - мне пришлось написать целую статью во внутренюю вики с пояснением каждой acl записи, в первую очередь чтоб самому не забыть. Никакого рабочего способа сделать пуш нотифай по изменениям нет - только через syncrepl или драконить запросами интересующую ветку. Адовый дубляж информации в базе - следствие того, что каждый софт хочет свою схему. И не всегда этот софт можно обдурить (есть несколько приятных модулей упрощающих жизнь, но не капитально).

Мало того, LDAP-каталог в Active Directory - куда более прочно ассоциируется с LDAP как технологией.

У меня начальник много лет работал виндовз админом в крупной компании и с тех пор рубит любой разговор, про Active Direcotory. Да и мне лень разбираться с Виндой, если честно.

zloelamo ★★★★
()
Последнее исправление: zloelamo (всего исправлений: 1)
Ответ на: комментарий от zloelamo

Рубил и буду рубить. Работать надо а не об оффтопе беседовать! Нужная годность.

adstudio
()
Ответ на: комментарий от DRVTiny

В 389 DS конечно много чего работает, только нет львиной доли функционала OpenLDAP, поставляемого модулями. 389 - продукт RH, входящий в определённый стек приложений. Всё, что за рамками этого стека - никому не нужно, хоть башкой об стену бейся.

Есть такое, но качества кода 389 на два порядка выше. Оверлеи в OpenLDAP в своем большинстве очень корявые, впрочем как и сам OpenLDAP.

OpenLDAP - открытое ПО с развитой модульной архитектурой.

Формально - как-бы да. Но в реальности OpenLDAP - анти open source, с анти-командным «rebus» code style, и архитектурой на 80% из костылей. Короче, говнокод на 99.5%, подробности в тексте http://0x1.tv/20151017E

Да, с патчами и сторонними багфиксами у них тяжеловато, но вот модули писать - легко и просто. Поэтому в то время как несовершенный OpenLDAP разве что кашу ещё не умеет самостоятельно варить по changeType: modify, формально куда более стабильный 389 DS не умеет ничего за рамками функционала, нужного компании RedHat.

Обратная сторона медали в том, что в OpenLDAP, примерно никто не знает «как оно работает», а треть модулей в contrib давным-давно даже не собирается, не говоря о работоспособности.

Ну а гении из Symas Corp не взялись устранить проблемы даже за деньги - точнее «деньги welcome, но без SLA» ;)

Хотя у нас в компании используется как раз FreeIPA - и на прошедших выходных она в очередной раз падала с оглушительным грохотом (хозяйство не моё, но факт тот, что админят IPA весьма неглупые люди, и тем не менее но она периодически, раз в 3 месяца в лучшем случае, вполне себе неприятно так валится набок).

Года два назад, когда наши выбирали LDAP-сервер, отбор прошел только OpenLDAP. Остальные либо не имели нужного функционала, либо сразу жутко глючили (на больших базах и в кластере из 4-х узлов), либо не давали производительности.

Например 389 крепко сидит на BerkeleyDB, поэтому по perfomace отстает от OpenLDAP на порядок. Насколько мне известно команда RH даже подумывала перейти на https://github.com/ReOpen/libmdbx, но там по-сути нужно переписать половину core сервера. Короче, пока замяли/отложили.

ly
() автор топика
Ответ на: комментарий от DRVTiny

Может, проблема всё-таки в кривых руках автора? ;) Не спорю, что multimaster в OL ещё года 3 назад был глючным, а с тех пор мало что изменилось, поскольку интенсивность разработки у них так себе никакая. Но во-первых далеко на всем вообще MM нужен, да и не всегда он глючен (хотя предсказаниям это слабо поддаётся).

И LDAP != OpenLDAP ни в коем разе: в nix'ах с незапамятного 2000-го года существовали как миниум 2 альтернативы (Netscape iPlanet разделился на 2 части).

Мало того, LDAP-каталог в Active Directory - куда более прочно ассоциируется с LDAP как технологией.

Хм, всё не так однозначно...

OpenLDAP - уже лет 20 как == Symas Corp, при том они не только «код пишут», но и RFC.

Эти RFC довольно забористы и тоже в каком-то rebus-стиле, IMHO бурда. Так например, глядя на RFC4533 можно сделать десяток реализаций, которые могут быть несовместимы между собой и т.п.

Из-за этого ребята из Microsoft поступают просто - для галочки и маркетинга соблюдают минимум из ограниченного набора RFC по LDAP.

Поэтому «LDAP от Microsoft» и «остальной LDAP» - достаточно разные вещи. Поспрашивайте разработчиков самбы ;)

ly
() автор топика
Ответ на: комментарий от zloelamo

ACL не прост - мне пришлось написать целую статью во внутренюю вики с пояснением каждой acl записи, в первую очередь чтоб самому не забыть. Никакого рабочего способа сделать пуш нотифай по изменениям нет - только через syncrepl или драконить запросами интересующую ветку.

ACL - да, афтары старались ;)

А для получения push-нотификаций специально придуман persistent search (оверлей syncprov), через который и syncrepl работает.

Ну и accesslog еще есть.

ly
() автор топика
Ответ на: комментарий от ly

патч, который исправлял 5K варнингов при сборке.

вы пытались 5к варнингов исправить одним патчем? не удивительно, что его не приняли

ananas ★★★★★
()
Ответ на: комментарий от ananas

вы пытались 5к варнингов исправить одним патчем? не удивительно, что его не приняли

Конечно, зачем быть умней паровоза ;) Но вы бы хоть что-нибудь глянули по ссылкам/коммитам.

Короче, там 90% предупреждений из-за printf в #define Debug() без variadic macro из C99. И некто «скрипач» уперся на том, что C99 не айс и «главное» для OpenLDAP - тотальная совместимость и собирабельность на всяческих платформах, в том числе дремучих.

Что характерно, чуть позже выяснилось:

  • никто не знает толком, какие именно это «старые платформы/системы» без компилятора с поддержкой variadic macro и зачем там openldap.
  • никто не знает когда и на каких «старых платформах/системах» проект собирался (тем более проходил тесты), не обнаружилось ни майнтейнеров, ни пользователей...
  • использование variadic macro обнаружилось в других местах кода OpenLDAP ;)

Однако, из-за variadic macro завернули и этот патч, и все остальные, не глядя на то, что они исправляют явные баги (о которых кричит компилятор).

Ну для полноты картины - за пару месяцев до это был «срач» о необходимости volatile и memory barriers в коде. Собственно скрипач изрекал «вы не понимаете дизайна» и «не сечете в работе компиляторов/cpu/cache и т.п.» - это все примерно до ITS#7969 и ITS#7970 (потом риторика чуть сменилась, но не надолго).

Итого, по сумме набранных «очков» было решено повесить на скрипача ярлык «не совсем адекватен» и сделать фокр.

P.S. Понятно что у человека определенные заслуги в области LDAP-девелопмента, и все делают ошибки, и у любого иногда может снести крышу, но блин:

- Это не отменяет необходимости умения признавать свои ошибки.

- А OpenLDAP сейчас - это образец «как не надо делать».

- За 20 лет проект превратили в кошмар. под лозунгом «вы не понимаете (красоты) дизайна и всех тонкостей».

Короче, люблю людей, просто не всех, однако всем добра ;)

ly
() автор топика

живем на openldap-е лет 10. используем сборку с родного гентушного ебилда. прошли bdb-hdb, сейчас на mdb, сразу на него не прыгнули, ибо сыро было стрррашно. падать ничего не падало (прям чтоб катастрофа). были затыки с mdb - место на репликах кончается (вернули дефолтные размеры - «ехает» дальше). мульти-мастеррепликацию как то не решился попробовать, живёт мастер с кучей реплик для чтения, на случай аварии в конфигах заготовка на передачу роли мастера любой другой реплики (не пригодилась ни разу).

режим использования на запись не такой интенсивный, в основном чтение. 3230 учеток, 6072 групп(без учета primary-групп), аутентификация+авторизация отовсюду зацеплена на него, и системные штуки, и прикладуха самописная (java,php и проч. и даже delphi). схемы немного изменены и дописаны (типа работающей на x509-сертах аутентификации)

тут https://github.com/ReOpen/ReOpenLDAP/issues/35 тишина? хотелось бы попробовать. будет готовый ebuild - отлично, если нет - то и сами нарисовать сможем

dab18
()
Ответ на: комментарий от dab18

живем на openldap-е лет 10. используем сборку с родного гентушного ебилда. прошли bdb-hdb, сейчас на mdb, сразу на него не прыгнули, ибо сыро было стрррашно. падать ничего не падало (прям чтоб катастрофа). были затыки с mdb - место на репликах кончается (вернули дефолтные размеры - «ехает» дальше). мульти-мастеррепликацию как то не решился попробовать, живёт мастер с кучей реплик для чтения, на случай аварии в конфигах заготовка на передачу роли мастера любой другой реплики (не пригодилась ни разу).

Исходно в openldap было немало багов/падений в syncprov при обрыве соединений. Текущую ситуацию я не знаю, у нас не падает. Скрипач что-то перекоммичивал к себе, но давненько. А чудо https://github.com/ReOpen/ReOpenLDAP/issues/69 думаю будет жить в openldap вечно.

В backend-mdb есть бага, из-за которой при репликации сохраняются лишние нормализованные значения атрибутов, хотя при совпадении значений с не-нормализованными этого быть не должно. Поэтому, грубо говоря, на реплике размер БД может почти удваиваться.

Еще был десяток багов в LMDB, вокруг перебалансировки дерева, сейчас это вроде-бы все поправлено.

В репликации багов масса, в multi-master режиме добавляются еще и логические баги. Но все они проявляются вероятностно, если карты лягут определенным образом - от потери отдельных изменений до полного сноса DIT.

режим использования на запись не такой интенсивный, в основном чтение. 3230 учеток, 6072 групп(без учета primary-групп), аутентификация+авторизация отовсюду зацеплена на него, и системные штуки, и прикладуха самописная (java,php и проч. и даже delphi). схемы немного изменены и дописаны (типа работающей на x509-сертах аутентификации)

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

тут https://github.com/ReOpen/ReOpenLDAP/issues/35 тишина? хотелось бы попробовать. будет готовый ebuild - отлично, если нет - то и сами нарисовать сможем.

Рисуйте и шлите патчи, мне это делать очень не с руки. Если будут нестыковки (нет уверенности что c SSL/TLS все хорошо) - буду разруливать. liblber и libldap из openldap видимо нужно писать в конфликты, но это уже рабочие моменты.

ly
() автор топика
Ответ на: комментарий от DRVTiny

Ну, если я начну рассказывать об отказах openldap который я в свое время админил, на неполную тысячу юзеров... На самом деле я малоглючных LDAP имплементаций (не безглючных, но вполне рабочих, я имею ввиду) видел всего две - NDS и AD. Микрософт наделали много фигни, но AD работает, и работает прекрасно, по сравнению с альтернативами. Остальное всего лишь догоняет, в том числе и IPA и OpenLDAP.

dyasny ★★★★★
()

Респект вам и уважуха, прям конфетку сделали из этого говнища.

ei-grad ★★★★★
()
Ответ на: комментарий от mos

Мне нра эта упоротость.)

Мне скорее нравится то, что они готовы поднять жопу и попробовать что-нибудь эдакое: переписать openldap, например. Но сам ldap это очень плохая идея.

zloelamo ★★★★
()
Ответ на: комментарий от zloelamo

я имел в виду демократия это плохая форма правления, но ничего лучше пока не придумали.
а чем inherently плоха идея ldap?
кстати, как стандарт, DAP (Х.сколько-то там) вроде же родился как раз из недр индУстрии телекомов... отсюда и особенности.

mos ★★☆☆☆
()
Ответ на: комментарий от mos

Пробема в том, что DAP придумали идиалисты: у нас была иерархия и куча OID разной длинны, но больше всего нас пугали сотни rfc. Нет ничего более беспомощного, безответственного и испорченного чем десяток rfc дополняющий и переопределяющий друг друга.

А практики это не оценили, поэтому dap пошел на фиг сразу - его просто никто не смог реализовать полностью. А ldap постепенно умер, оставшись только в AD.

zloelamo ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.