Ein ständig wachsender Datenbestand droht viele Mail-Infrastrukturen zu überfordern. Dabei gibt es zumindest für Dovecot einen Weg aus der Speicherfalle.
Für seine Nutzer gilt heute als selbstverständlich, dass das E-Mail-System durchgehend verfügbar ist und immer ausreichend Speicherkapazität zur Verfügung hat. Dennoch sind die Ressourcen natürlich endlich und kosten Geld. Daher kann ein schnell wachsender Datenbestand die Betriebssicherheit einer Mail-Infrastruktur durchaus gefährden. Das muss aber nicht sein.
Schlechte Konzepte
Am einfachsten wäre es, die Mailquotas immer wieder zu erhöhen. Der Nachteil wäre allerdings ein unkontrollierter Zuwachs des Mailvolumens. Der Supportaufwand für die Bearbeitung der Quotas wäre ebenfalls hoch, und es begünstigt diejenigen Nutzer, die ihre Konten nicht pflegen. Alternativ könnte man nur die Inbox mit einer Quota belegen und alle anderen Mailboxen nicht limitieren. Damit wäre der Supportaufwand geringer und die Akzeptanz der Nutzer höher. Doch auch hier wüchse der Datenbestand unkontrolliert.
Stattdessen sollte es das Ziel sein, die Nutzer zwar mit ausreichend Speicher zu versorgen, zugleich aber darauf hinzuwirken, dass sie veraltete und unnötige Mails löschen, was die Qualität des Mailbestands hebt. Der Zeitbedarf für die Wiederherstellung von Mails aus dem Backup sollte ein garantiertes Limit nicht überschreiten und alle Nutzer sollten – von Ausnahmen abgesehen – mit einer einheitlichen Größenbeschränkung ihrer Mailbox auskommen.
Quota-Management
Wie gelangt der Mail-Admin ans Ziel? Indem er sich die Fähigkeit von Dovecot zu Nutze macht, unter einem IMAP-Konto mehrere Speicherpfade zu verwalten. Damit ist es möglich, einerseits die Inbox mit einer eher restriktiven Quota zu belegen und den Nutzern andererseits an einem anderen Ort ein Mailarchiv anzubieten, in das sie aufhebenswerte Mails verlagern können. Dort ist die Quota großzügiger bemessen.
Dieses Konzept führt zu einer Inbox mit ungefähr gleichbleibender Größe. Nur noch der Archivbereich darf anwachsen. Für die Inbox kann der Admin so auch eine bestimmte Wiederherstellungszeit zusichern. Das Recovery des Archivs wäre demgegenüber nachrangig und dürfte länger dauern.
Der Nutzer wird dadurch angehalten seine Mails aktiv zu sortieren, unbedeutende zu löschen, aufhebenswerte zu archivieren und nur aktuelle in der Inbox zu behalten. Durch die weitgehend gleiche Quota für alle fühlen sich die Nutzer gleich behandelt und akzeptieren die Lösung daher auch eher. Diejenigen Mails, die der IMAP-Server dann noch speichern muss, sind inhaltlich ungleich wertvoller als es ein unsortiertes Sammelsurium wäre.
Wie fast immer gibt es allerdings auch hier Pros und Contras. Gegen das Konzept spricht, dass die Komplexität des Systems und somit auch der administrative Aufwand steigt. Das ist ein nicht zu unterschätzender Aspekt, der gut abgewogen sein will. Außerdem sind im Archivbereich keine Shared-Mailbox-Folder mehr möglich, in die sich mehrere Benutzer teilen. Dovecot kann den zusätzlichen Speicherpfad nicht für Shared Mailboxes berücksichtigen. Dafür gibt es derzeit keine Lösung.
Umsetzung
Wie soll der Admin praktisch vorgehen, wenn er dieses Konzept umsetzen will? Zuerst muss er Speicherplatz besorgen und einrichten. Beim Speicher des neuen Archivpfads sollten günstige und langsame Platten ausreichen. Der Archivspeicher ist um einiges größer dimensioniert als der Standardspeicher des E-Mail-Systems. Der neue Speicher wird via »/etc/fstab« an das Verzeichnis »/data/btrfs/arch« gemountet ([1], Listing 1).
Listing 1
Mounten der Mailspeicher
01 # 5 TByte schnell 02 /dev/mapper/mpatha /data/btrfs/mail btrfs noatime,noacl 0 0 03 # 20 TByte langsam 04 /dev/mapper/mpathb /data/btrfs/arch btrfs noatime,noacl 0 0
Im Ordner »/data/btrfs/mail/gibs.net« liegen die Mails des Produktivsystems. Die Archivdaten landen im Pfad »/data/btrfs/arch/gibs.net«. Ein symbolischer Link hilft den Pfad in die Dovecot-Konfiguration zu integrieren. Listing 2 zeigt, wie der symbolische Link für das Archivsystem im Verhältnis zum Standardsystem beschaffen sein sollte. Das Kommando »mkdir -p /archive/vmail/« erstellt den virtuellen Speicherpfad. Nun verlinkt der Admin den Speicherpfad des Archivs mit »ln -s /data/btrfs/arch/gibs.net /archive/vmail/gibs.net«. Er sollte darauf achten, dass Dovecot auf »/data/btrfs/arch/gibs.net« mit dem IMAP-Prozess zugreifen darf.
Listing 2
Links für die Dovecot-Konfiguration
01 mh1:~ # ls -al /vmail/ 02 lrwxrwxrwx vmail vmail 28 31. Dez 2016 gibs.net -> /data/btrfs/mail/gibs.net/ 03 mh1:~ # ls -al /archive/vmail/ 04 lrwxrwxrwx vmail vmail 28 31. Dez 2016 gibs.net -> /data/btrfs/arch/gibs.net/
Nun ist nur noch der IMAP-Namespace [2] in der Dovecot-Konfiguration zu erstellen. Wie in Listing 3 benennt der Admin den Namespace [3] »livearchiv«. Das Präfix des Namespace setzt er auf »INBOX/LiveArchiv«. Dann folgt die Zuweisung des Speichers mit »location = mdbox:/archive%h/mdbox«. Es ist empfehlenswert, dasselbe Mailboxformat [4] zu verwenden wie in der Variablen »mail_location« [5]. Das Homeverzeichnis(»%h«) wird an den Ordner »/archive« gehängt.
Listing 3
IMAP-Namespace-Konfiguration
01 mail_location = mdbox:~/mdbox
02 namespace livearchiv {
03 separator = /
04 prefix = INBOX/LiveArchiv/
05 location = mdbox:/archive%h/mdbox
06 mailbox Archive {
07 special_use = \Archive
08 auto = subscribe
09 }
10 }
Der Namespace sollte zusätzlich einen Special-Use-Ordner [6] »Archiv« enthalten. Mit »auto = subcribe« wird er dann automatisch sichtbar für den Benutzer. Es fehlt noch eine Quota-Zuweisung für den Archiv-Namespace durch eine Quota2-Rule [7]. Man sollt nicht vergessen, die Standard-Quota für die Rule zu setzen. Das ist schnell gemacht, wie Listing 4 zeigt.
Listing 4
Quota Rule
01 quota = dict:User quota:%u.default:ns=INBOX/:file:%h/dovecot-quota 02 quota2 = dict:Archive quota:%u.archive:ns=INBOX/LiveArchiv/:file:/archive%h/dovecot-quota 03 # 04 quota_rule = *:storage=2G 05 quota2_rule = *:storage=20G
Nach dem Neustart des Dovecot-Dienstes, lassen sich individuelle Zuweisungen an einzelne Benutzer konfigurieren. Das kann etwa in einem Dovecot-Passwd-File [8] erfolgen (Listing 5).
Listing 5
Individuelle Zuweisung
01 dich@gibs.net:{PLAIN}geheim:11000:11000::/vmail/gibs.net/dich::userdb_mail=mdbox:~/mdbox userdb_quota_rule=*:storage=3GB userdb_quota2_rule=*:storage=80GB
Das Backup wird komplexer, weil der Archivpfad ein eigenes Backup benötigt. Allerdings hat das Standard-Backup die späteren Archivdaten in den meisten Fällen bereits gesichert, somit sollte ein Vollbackup des Archivspeichers einmal pro Woche reichen. Günstig dafür ist das Wochenende. Es empfehlt sich, den Besitzern des Archivs die Administrationsrechte zu nehmen, die sie nicht mehr brauchen, weil das Archiv nicht mit Shared-Mailboxes geteilt werden kann. Dazu deklariert der Admin ein globales ACL-File (Listing 6) und entzieht dem Besitzer das Admin-Recht (Listing 7).
Listing 6
Globales ACL-File deklarieren
01 plugin {
02 acl = vfile:/vmail/gibs.net/dovecot/global-acl
03 ## acl = vfile
04 }
Listing 7
Entzug der Admin-Rechte
01 INBOX/LiveArchiv owner lrwstipekx 02 INBOX/LiveArchiv/* owner lrwstipekx
Thunderbird & Co
Die Archivierungsfunktion von Thunderbird [9] arbeitet sehr gut mit dem Archiv zusammen. Für Microsoft Outlook [10] hingegen ist das Archiv nur eine normale Mailbox, deshalb lässt es sich nicht mit der Archivierungsfunktion von Outlook verbinden. Apple Mail [11] erkennt den Special-Use-Archivordner und kann ihn nutzen. Für ein Webinterface ist das Archiv eine Mailbox, die manuell zu befüllen ist.
Darüber hinaus wäre es hilfreich, den Benutzern schriftlich etwas an die Hand zu geben, wie das Archiv zu gebrauchen ist. Wie so eine Anleitung aussehen kann, zeigt beispielhaft [12].
Fazit: Mit zusätzlichem Plattenspeicher und Dovecot-Bordmitteln lässt sich eine intelligente Lösung für den Umgang mit großen Mail-Mengen realisieren. So erhalten die Nutzer ausreichend Platz und Motive, ihre Mails zu pflegen.
Infos
- Webseite des BTRFS-Projekts: https://btrfs.wiki.kernel.org/index.php/Main_Page
- RFC2342 zu IMAP4-Namespace: https://www.ietf.org/rfc/rfc2342.txt
- Dovecot-Dokumentation – Namespace: http://wiki.dovecot.org/Namespaces
- Dovecot-Dokumentation – Mailboxformate: https://wiki2.dovecot.org/MailboxFormat
- Dovecot-Dokumentation – Mail Location: http://wiki.dovecot.org/MailLocation
- RFC 6154 zu Special Use: http://www.faqs.org/rfcs/rfc6154.html
- Dovecot-Dokumentation – Quota: https://wiki2.dovecot.org/Quota/Configuration
- Dovecot-Dokumentation – Authentifizierungsmechanismen: http://wiki2.dovecot.org/AuthDatabase
- Mozilla-Thunderbird-Archivierungsfunktion: https://support.mozilla.org/t5/Grundlagen/Archivierte-Nachrichten/ta-p/19237
- Microsof-Outlook-Artikel zum Archivieren: https://support.office.com/de-de/article/Archivieren-in-Outlook-2016-f%C3%BCr-Windows-25f75777-3cdc-4c77-9783-5929c7b47028
- Supportseite Apple Mail: https://support.apple.com/de-de/mail
- Anleitung zur Integration des UHH Live-Archivs in die Thunderbird-Archvierungsfunktion: https://www.rrz.uni-hamburg.de/services/e-mail/daten/live-archiv-integration-thunderbird-v2.pdf








