wall < "cyrus-imapd und Quota"

Broadcast message from spillerm@unixe.de (pts/1) (Fr Jun 27 09:26:33 2008):
4
Diesen Beitrag schrieb ich vor 10 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

Irgendwann hatte ich mir einmal aufnotiert, wie innerhalb des cyrus-imapd Quotas gesetzt und ausgelesen werden; eine Information, die ggf. auch für andere »da draussen« interessant sein könnte

Die administrative Ansteuerung des cyrus-imapd erfolgt über den cyradm, und das umfasst so ziemlich alles: das Anlegen neuer sowie das Löschen nicht mehr benötigter User, das Prüfen der Mailboxgrössen, das Setzen der Zugriffsrechte und so weiter — und natürlich das Setzen und Auslesen der Quota. Ist man erst einmal im cyradm eingeloggt, erfolgt das Setzen der Quota in kB; nachfolgend setzen wir eine Quota von 1GB für den User fritz:

cyradm> sq user.fritz 1048576
quota:1048576

User arno soll eine Quota von 3GB erhalten:

cyradm> sq user.arno 3145728
quota:3145728

Selbstredend ist es günstiger, vorher zu prüfen, wieviel die User fritz und arno schon in ihrer Mailbox haben — und sie gegebenenfalls zum Aufräumen zu ermutigen ;) Wenn die Quota gesetzt ist, können wir schauen, wie ausgelastet die einzelnen Mailboxen im Verhältnis zur gesetzten Quota sind:

cyradm> lq user.arno
STORAGE 257701/3145728 (8.19209416707357%)

arno hat also ~251MB und somit 8.19% seiner Mailbox belegt.

Dazu korrespondierend gibt es noch zwei weitere Files:

$ less /var/imap/quota/a/user.arno
263895518
3145728
$ less /var/imap/quota/f/user.fritz
10966
1048576

Hinweis: der korrekte Pfad steht in Abhängigkeit davon, was in /etc/imapd.conf als configdirectory konfiguriert wurde; in meinem Fall ist das /var/imap. Der Output ist unnötig kompliziert für mein Empfinden; der obere Wert in der Ausgabe für fritz gibt den tatsächlich belegten Speicher der Mailbox an (in Byte!, also in diesem Falle ~10kB), der untere Wert gibt den verfügbaren Speicher der Mailbox an (in kB!, also 1GB). Angeblich werden die Quotas im cyrus über ein 32bit-Integer gesetzt; im Umkehrschluss bedeutet das, dass eine Quota > 4GB zum einem Integer-Überlauf und damit in Zusammenhang stehenden, recht unangenehmen Problemen führt; diese Angabe muss ich jedoch für ganz aktuelle Versionen der Software noch überprüfen.

Im Thunderbird kann man sich die Auslastung als Balken begucken: Rechtsklick auf den Posteingang → Eigenschaften → Quota. Und in der Horde sorgt eine kleine Anpassung dafür, dass die Angabe sichtbar wird (Version 3.2): in imp/config/servers.php:

'quota' => array (
        'driver' => 'cyrus',
        'params' => array()
        )

Ausloggen, einloggen, und die Kapazitätenanzeige erscheint.

4
  1. Andreas E. Mueller

    Kleine Korrektur:

    „Bei versionen älter^H^H^H^H^Hjünger als 2006 zumindest trifft dies nicht mehr zu.“

  2. Andreas E. Mueller

    Bei älteren Cyrus Versionen gab es, meiner Erfahrung nach, einen segmentation fault bei Angaben über 4 GB. Bei versionen älter als 2006 zumindest trifft dies nicht mehr zu.

    Oder war es nur weil ich seitdem ein 64-bit System besitze (und mein cyrus 64-bit compiled war)?

    Weiss nicht mehr so genau… könnte auch gelogen sein.

    Gruss,
    Andy

Keine weitere Reaktionen mehr möglich.