LINUX.ORG.RU

ReOpenLDAP 1.1.6

 , , , ,


1

2

12 августа вышла новая версия ReOpenLDAP — форка общеизвестного OpenLDAP, с устранением массы ошибок и ряда доработок для стабильной работы репликации.

Эта версия, в некотором смысле, является юбилейной — 3 года с момента инициации проекта (публичный форк появился чуть позже). Всё это время ReOpenLDAP работает 24x7 в инфраструктуре ПАО МегаФон, обеспечивая высоконагруженную обработку запросов в multi-master кластере с full-mesh репликацией.

Версия 1.1.6 аккумулирует работу 8 месяцев этого года и включает:

  • более сотни коммитов, в том числе более 50 исправлений ошибок;
  • поддержку musl-libc, а также ряд доработок для совместимости и упрощения сборки;
  • Continuous Integration на инфраструктуре Travis-CI и Circle-CI.

С этим релизом ветка 1.1 получает статус архивно-стабильной. В ней будут исправляться ошибки, но какая-либо разработка будет прекращена.

В свою очередь, работы в ветке 1.2 начнутся с переработки API в сопутствующих ldap-библиотеках с утратой совместимости с предыдущим версиями. Это позволит, с одной стороны, получить более прозрачное и удобное API, которое будет провоцировать меньше ошибок. С другой стороны, переработка API необходима для устранения неоднозначностей и адекватной работы статических анализаторов кода (Coverity, PVS-Studio и др.).

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

К сожалению, новые возможности не даются бесплатно. Для возможности их реализации в libmdbx был существенно переработан (и ещё не зафиксирован) внутренний формат БД, с потерей совместимости с предыдущими версиями.

Пользуюсь случаем, отвечу на частый вопрос «Почему нет пакетов?»:

  • ReOpenLDAP ориентирован на достаточно специализированные сценарии применения, для которых не представляется возможным создать универсальную конфигурацию и собрать соответствующий пакет. Во всех известных (авторам) случаях используются кастомизированные конфигурации (опции configure, включая возможность подключения модулей и оверлеев), в частности используются монолитные сборки с LTO.
  • После анализа кода посредством Coverity (постепенно) стало очевидно, что требуется существенный рефакторинг API с нарушением совместимости. Далее, планируемые (и большей частью уже реализованные) доработки libmdbx также приведут к утрате совместимости по формату БД. Всё это вместе давало повод не формировать пакеты, так как последующие обновления нарушили бы совместимость и только огорчили пользователей.
  • Авторы не владеют информацией (не имеют полноценного видения) о том, в какой именно конфигурации должен быть собран ReOpenLDAP для пакетирования. Поэтому мы (прежде всего) ждем встречной активности от тех, кто уже использует проект или планирует это сделать (состав компонентов и библиотек принципиально не изменится, поэтому всячески приветствуются pull-request-ы с пакетированием).

>>> Релиз на github



Проверено: Aceler ()

Юбилейный 3-летний

В троичной системе счисления что ли?.. Юбилей это обычно круглое число (чуть реже «полукруглое) — 10, 20, 30 (чуть реже также и 15, 25, 35). Ну можно, конечно, выпендриться, и назвать какой-нибудь выпуск с номером 128 юбилейным, или там версию 65536, но 3 года как-то вообще никак не тянет на юбилей, до хоть какого-то более-менее юбилея ещё два года.

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

В троичной системе счисления что ли?.. Юбилей это обычно круглое число (чуть реже «полукруглое) — 10, 20, 30 (чуть реже также и 15, 25, 35). Ну можно, конечно, выпендриться, и назвать какой-нибудь выпуск с номером 128 юбилейным, или там версию 65536, но 3 года как-то вообще никак не тянет на юбилей, до хоть какого-то более-менее юбилея ещё два года.

При работе с исходниками OpenLDAP год считается за 10, примерно так )

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

При работе с исходниками OpenLDAP год считается за 10, примерно так )

сидит такой ошалевший мужик, и вдруг внезапно спрашивает *а какой сейчас год?*

и тут из толпы таких же ошалевших мужиков вдруг голос *юбилейный*

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

отмечали юбилей
много наших полегло

полегло в корпоративе
полегло в моей квартире
на асфальте, за мостом
где-то там за блок-постом
тихо спит Серёга, Настя
позабыв про все несчастья
в луже дрыхнет Бегельман
что совал вчера в карман
незатейливу бумажку
как просил о ней Степан
и Степан лежал в лужайке
возле грязной тарантайки
так прошёл наш славный вечер
так прошёл наш ю б и л е й :D

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

В исконном значении юбилей равняется 50

Я в курсе. Но слова меняют значения со временем, и сейчас десятки лет — уже юбилейные, иногда и пятёрки. А вот чтобы три года было юбилеем, вижу впервые. (Не знаю, что такое -ти).

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

с устранением массы ошибок и ряда доработок для стабильной работы репликации

Зачем было устранять ряд доработок?

Ну так разогнались, аж не шмахгли остановиться )

ly ()

Тысячи программ (некоторые на 2 порядка сложнее сраного ldap сервера) понятно как в пакеты положить, а у них сомнения какие-то.

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

чем оно лучше ldapd? :)

ldapd - по историческим причинам обычно зовется slapd.

slapd - есть несколько подвидов, но все родом из мичигана.

Лучше какого из них?

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

При работе с исходниками OpenLDAP год считается за 10, примерно так )

Типа вредная работа, как на реакторе?

Именно так. Как java головного мозга, только наоборот и острее ;)

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

Тысячи программ (некоторые на 2 порядка сложнее сраного ldap сервера) понятно как в пакеты положить, а у них сомнения какие-то.

Хорошо, путь оно нам просто не надо. Положите - а там посмотрим.

ly ()

И вот ты такой читаешь всё это, и думаешь блин, а ведь Active Directory еще с 2000 года каталог тянет. И данные не теряются и совместимость базы есть. И новые фичи медленно но верно появляются. 17 лет в продакшенах не выключая.

А тут, что не абзац, то «абзац». Такое в продакшн. Лучше сразу в омут.

поддерживает управление геометрией и бесплатную авто-компактификацию

- либо я не с той планеты, либо вы. Это блин, что?

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

И вот ты такой читаешь всё это, и думаешь блин, а ведь Active Directory еще с 2000 года каталог тянет. И данные не теряются и совместимость базы есть. И новые фичи медленно но верно появляются. 17 лет в продакшенах не выключая.

Да, и на луне растут деревья :)

Интересно что будет с AD при 10^7 учеток и хотя-бы 100 обновлений в секунду :)

Если серьезно, то AD - достаточно слабая (с точки зрения нагрузки) реализация без соблюдения стандартов, но вполне подходящая для своих целевых задач. А с учетом интеграции и всех windows-свистелок вокруг - это то что надо для Windows.

В конфигурациях, для которых сделан ReOpenLDAP, крайне маловероятно что какая-либо версия AD, когда-нибудь сможет работать. У все предшествующих и текущих нет никаких шансов, вообще.

Вот отсюда можно понять насколько AD отличается от OpenLDAP = https://www.opennet.ru/opennews/art.shtml?num=14723

А отсюда понять насколько ReOpenLDAP отличается от OpenLDAP = http://bit.ly/2fD7sCL

поддерживает управление геометрией и бесплатную авто-компактификацию

- либо я не с той планеты, либо вы. Это блин, что?

Эти перлы могут быть понятны только админам, которые терпели боль от mdb-бакенда в OpenLDAP.

Для нормальных людей пользуюших AD c 100/1000 учеток - это действительно «с другой планеты».

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

Спасибо за ссылки. Не убедили. Про сравнение производтельности поищу сам нормальных таблиц, конфигураций и тд. А не просто бла бла слов, даже от главного архитектора.

50K в секунду, да наверное, это много. База в 100Gb наверное тоже. Соглашусь, что для Jet цифры непривычные.

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

Пойду почитаю подробней про мультимастер ну и про возможную (яж не знаю еще) «дефрагментацию-дедупликацию-и сжатие на лету», может это и будет та самая авто-компактификация.

Но интерес есть. Спасибо.

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

Лучше какого из них?

текст подчёркнут не просто так. он кликабелен :)

Пардон, этого «слона» я не приметил.

slapd из OpenBSD - это минималистический ldap-сервер, буквально «Compared to OpenLDAP, I call this lightweight, both in terms of requirements and features.» В slapd нет slapi, всяческих плагинов/оверлеев и нет поддержки репликации (тем более multi-master, ибо совсем не просто).

Проще говоря это плохо-сравнимые вещи, сделанные для разных целей.

Но стоит заменить что исходный код btree от Martin Hedenfalk был использован Howard Chu в LMDB. В свою очередь, libmdbx выросла из LMDB (см. https://github.com/leo-yuriev/libmdbx/blob/d21340b3041a25d691473d1a9186b53edc...)

Причем вернуть LMDB/libmdbx назад в OpenBSD сложно, потому-что нет unified buffer cache.

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

Спасибо за ссылки. Не убедили. Про сравнение производтельности поищу сам нормальных таблиц, конфигураций и тд. А не просто бла бла слов, даже от главного архитектора.

Ховард пишет кошмарный код, с точки зрения читаемости и поддерживаемости. Но по части производительности он на коне.

50K в секунду, да наверное, это много. База в 100Gb наверное тоже. Соглашусь, что для Jet цифры непривычные.

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

ReOpenLDAP работает в инфраструктуре МегаФон, это совершенно другая схема, другой режим работы (в обычной жизни такого нет) и другие проблемы (приоритеты).

Использование другого БД или движка (Tarantool, WiredTiger, Aerospike, etc) в принципе возможно, хотя и потребовало-бы реализацию LDAP как протокола доступа. Более того, если бы знали сколько придется «дорабатывать» OpenLDAP напильником, то точно выбрали-бы другой путь (особенно сейчас,а не 4 года назад).

При этом стоит отметить, что подключение дополнительной внешней «спецательной» БД требует разумную (reasonable) координацию транзакций и/или синхронизацию двух (как минимум) доменов MVCC. Обычно от реализации таких решений отказываются, как только приходит понимание что за этим стоит )

Пойду почитаю подробней про мультимастер ну и про возможную (яж не знаю еще) «дефрагментацию-дедупликацию-и сжатие на лету», может это и будет та самая авто-компактификация.

Фича «компактификации», о которой идет речь, имеет отношение только к libmdbx и LMDB. Может быть к другим движка «inspired by LMDB», например Mavibot.

Репликация каталога, при большом темпе обновлений, и тем более в multi-master топологии - это отдельная тема и отдельный логический кошмар.

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

Вы представляете себе АД на высоконагруженном мишн критикал риал тайм посту? Меня от одной мысли как лавкравт напугал.
А «каталог тянет» кто сказал что опенлдап (или едиректори или ндс или апче дс и тд) его не тянет.

Короче сравнение с ад тут какое-то совсем лишнее.

mos ★★★★★ ()

ReOpenLDAP работает 24x7 в инфраструктуре ПАО МегаФон

недавние локауты Мегафон и вообще то что его немного «колбасит» периодически, не с эти-ли связаны ? :-)

MKuznetsov ★★★★★ ()

А на сколько этот проект будет поддерживаться и развиваться, если Мегафон совсем скатится в УГ? Поймите меня правильно, я клиент Мегафона много лет, но что-то в последнее время всё печально становится (инциденты меня не тронули). Мне для работы в целом не надо, просто интересно.

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

ReOpenLDAP работает 24x7 в инфраструктуре ПАО МегаФон


недавние локауты Мегафон и вообще то что его немного «колбасит» периодически, не с эти-ли связаны ? :-)

На самом деле Рим тоже мы подожгли, и далее по-списку...

А что делать, кто-то должен.

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

А на сколько этот проект будет поддерживаться и развиваться,

Понятия не имею, выкинуть/закопать - жалко. Поэтому пока нянчимся, крайние 500 коммитов без каких-либо аффилиаций.

если Мегафон совсем скатится в УГ? Поймите меня правильно, я клиент Мегафона много лет, но что-то в последнее время всё печально становится (инциденты меня не тронули). Мне для работы в целом не надо, просто интересно.

Эмм, ну вы меня тоже поймите - сложно как-либо комментировать ваши взаимоотношения с Компанией, где поправленный мной код просто работает чуть лучше, чем до исправлений (спасибо давно сказали и больше не жалуются, всё).

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

Вот отсюда можно понять насколько AD отличается от OpenLDAP = https://www.opennet.ru/opennews/art.shtml?num=14723
А отсюда понять насколько ReOpenLDAP отличается от OpenLDAP = http://bit.ly/2fD7sCL

А откуда можно понять, чем таким Мегафон отличился от тысяч других телекомов по всему миру, что лишь ему понадобилось так извращаться над OpenLDAP?)

вообще, вы молодцы, конечно.

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

Конечно лишнее, раз не OpenSource и не бесплатно.

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

Я подумал, что вот внедрил я такое для [quoteа высоконагруженном мишн критикал риал тайм посту], а тут бац! и

К сожалению, новые возможности не даются бесплатно. Для возможности их реализации в libmdbx был существенно переработан (и ещё не зафиксирован) внутренний формат БД, с потерей совместимости с предыдущими версиями.

. Именно и только поэтому я вспомнил про AD. Что не умоляет крутости команды ReOpenLDAP. Просто факт того, что AD работает долго и «незаметно», при условии правильной работы с каталогом. То, что вы «сагрились», ну ок. Я изначально не хотел «троллить».

А еще было здорово услышать из ролика по ссылке, как разработчики OpenLDAP динамили заказчика, заплатившего баблос. Норм чо.

Еще раз, есть претензии к форме новости, не к содержанию. Новость интересная, но не «продающая» ни разу. Тут уже наверно надо добавлять ИМХО и пр. И вообще расшаркиваться перед местной «илитой». Простите бес попутал. На святое посягнул.

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

Вот отсюда можно понять насколько AD отличается от OpenLDAP = https://www.opennet.ru/opennews/art.shtml?num=14723
А отсюда понять насколько ReOpenLDAP отличается от OpenLDAP = http://bit.ly/2fD7sCL


А откуда можно понять, чем таким Мегафон отличился от тысяч других телекомов по всему миру, что лишь ему понадобилось так извращаться над OpenLDAP?)

Это вопрос скорее к МегаФону и/или к http://billing.ru/. Но вообще-то, подобные LDAP-ы (в том числе на основе ребрендированного OpenLDAP) поставляются примерно всеми поставщиками (HP, Huaway и т.п.), только без multi-master.

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

А еще было здорово услышать из ролика по ссылке, как разработчики OpenLDAP динамили заказчика, заплатившего баблос.

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

Но слово не воробей... Поэтому уточню - по-сути не сошлись по LSA. Одна сторона примерно не желала платить деньги без приемлемого LSA, а другая брать каких-либо обязательства по срокам со штрафами (из-за «специфики кода» риски на самом деле запредельные).

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

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

Для чего же в пучине времен его (предшественника DAP как стандарт Х.сколько-то) придумали телеком-фирмы?
Остальное не комментирую, как троллинг не воспринимал, а воспринимал как то что и есть - закос в сторону АД ( видимо потому что автор с ним работает). Довольно странный закос. Отдавать прогам в локалке конфиги (групповые блин политики) может наверное любой сервер справочников. И говорить, что АД это всегда просто делает, а нищеброцкие серваки только чинить надо...

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

Просто факт того, что AD работает долго и «незаметно», при условии правильной работы с каталогом.

Стесняюсь спросить, а что значит «правильной работы с каталогом»? Вот если я раскатываю в локалке сервис с авторизациаей в AD посредством LDAP — это «правильная работа»?

Я почему спрашиваю... В моём опыте был случай, когда OpenFire (XMPP-сервер, если что) с парой тысяч активных пользователей положил напрочь контроллер домена.

P.S. Проблема решилась настройкой кеширования в OpenFire.

MumiyTroll ()

Собственно, как был LDAP - «mongo для богатых» так и остался. Точнее, если считать по времени появления, это монга - лдап для бедных.

Но вопрос не в этом. Вопрос- неужели сейчас кто-то начинает новые проекты, пусть даже в «кровавом энтерпрайзе», с использованием LDAP?

anonymous ()