3. Projektübersicht - Anforderungen
~ 30 Millionen Mailkonten
~ 170 Millionen eingehende Mails / Tag
~ 420 Millionen Logins / Tag (IMAP, SMTP, Webmail)
~ 200 Tausend Provisioning-Requests / Tag
~ 10 Tausend LDAP-Updates / Stunde
4. Projektübersicht - Aufbau
Tools Kunde (IDM, Support etc.)
Provisioning Router
Webmail / Groupware
IMAP / MDA
Altsysteme
Provisioning API LDAP Administrations-Portal
5. UCS Komponenten - Standard
OpenLDAP
Standard UCS: Benutzer, Gruppen, Berechtigungen (interne Administration)
Projektspezifisch: Mailboxen (Adressen, Quota etc.), weitere Objekte
Univention Directory Manager (UDM)
Projektspezifische Pflege von Mailboxen (z.B. Berechnung Quota)
Diverse Konfigurationsobjekte
Univention Management Console (UMC)
Administrations-Portal, Fokus auf Mailboxen
6. UCS Komponenten - Projekt
„Business-Logik“ in UDM-Modulen
Beispiel: Berechnung der Quota einer Mailbox anhand des Vertragsstatus
Provisioning-API
SOAP-Service für Zugriff auf UDM
Benachrichtigung von OX, Dovecot und anderen über Änderungen
7. OpenLDAP Performance
Review in Vorprojekt-Phase:
ist OpenLDAP / UCS performant genug?
BDB-Backend (Standard in UCS 3.x): Performance „ausreichend“
→ aber nur knapp!
MDB: seit 2012 „feature complete“, inzwischen von OpenLDAP
empfohlen
9. OpenLDAP MDB „caveats“
MDB Datenbank ist „sparse file“:
wächst bis „maxsize“, schrumpft nie
Backup / Kopieren mit ungeeigneten Tools generiert Datei mit „maxsize“
MDB backend kann nicht größer als „maxsize“ werden!
Vergrößern nur per export/import (slapcat/slapadd)
MDB generiert sehr viele IO-Operationen/Sekunde
Im Projekt: >10.000 IOPS pro LDAP-Server
Verhalten Konfigurierbar (erhöht Inkonsistenz-Risiko bei crashes)
10. OpenLDAP Security
LDAP ACLs
Dedizierte Accounts je Service (z.B. für OX)
Ein Service „sieht“ nur die LDAP-Attribute die er wirklich braucht
Diverse Rollen (Benutzergruppen) mit ACLs für Administration/Support
LDAP Limits
Ziel: geringere Load bei schlechten Suchanfragen, verringern der Gefahr
von Datenverlusten bei Kompromittierung
Services benötigen i.d.R. nur ein oder kein Objekt im Suchergebnis
Administration benötigt auch keine vollständigen Suchergebnisse
11. OpenLDAP Indices
LDAP Indices sind kritisch für Antwortzeiten
Aber: mehr Indices bedeuten
→ langsamere Änderungen
→ höherer Platzbedarf
Stolpersteine:
performantes Anwenden von Limits benötigt Indices auf „unerwartete“
Attribute
MDB backend hat ein „max limits“ von 128 eincompiliert
13. UCS 4.x - Was geht nicht?
30M User oder Gruppen
Im Projekt: Mailbox ≠ User (kein POSIX etc.)
Hauptproblem: Gruppenmitgliedschaften
Wird die meisten Clients überfordern, inklusive UCS
Überschreitet diverse Limits im UDM / UMC
Samba 4
Aktuelles Limit < 1 Millionen LDAP-Objekte
14. Lessons Learned
UCS
Sizing: „einfacher“ als erwartet
Performance: hängt am Storage
UMC / UDM können ohne Anpassung genutzt werden
Sonstiges
Amazon EC2 / AWS ist für Performance-Tests ungeeignet
Security „hurts“
Minimale funktionale Änderungen haben manchmal Auswirkungen auf ACLs,
Limits, Performance...
15. Vielen Dank für Ihre Aufmerksamkeit!
Kontakt
Ingo Steuwer
Univention GmbH
steuwer@univention.de
www.univention.de